doum
2025-09-12 5e5a317f936e4e333809298930fb771fc0bdc9ac
admin/src/components/business/OperaPlatformGroupWindow.vue
@@ -10,6 +10,12 @@
      <el-form-item label="分组名称:" prop="name">
        <el-input v-model="form.name" placeholder="请输入分组名称" v-trim/>
      </el-form-item>
      <el-form-item label="是否虚拟月台组" prop="isVirtual" >
        <el-radio-group v-model="form.isVirtual" @change="chagneVirtural">
          <el-radio :label="0">否</el-radio>
          <el-radio :label="1">是</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="业务类型:" prop="type">
        <el-radio-group v-model="form.type" >
          <el-radio  :label="0"  >安泰物流卸货</el-radio>
@@ -17,16 +23,29 @@
          <el-radio  :label="2"  >市公司卸货</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="工作时间:" prop="startTime">
        <div style=" display: inline-block">
      <el-form-item label="选择签到通知人员" prop="signInNoticeUsers">
        <el-select v-model="form.signInNoticeUsers" filterable multiple clearable @change="changeSignInNoticeUsers" placeholder="请选择">
          <el-option v-for="item in memberList" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="选择作业未完成通知人员" prop="unFinishNoticeUsers">
        <el-select v-model="form.unFinishNoticeUsers" filterable multiple clearable @change="changeUnFinishNoticeUsers" placeholder="请选择">
          <el-option v-for="item in memberList" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
      </el-form-item>
      <div style=" display: inline-block">
      <el-form-item label="工作时间:" prop="startTime"  style=" display: inline-block">
          <el-time-picker
              style="width: 150px;display: inline-block"
              v-model="form.startTime"
              format="HH:mm"
              value-format="HH:mm"
              placeholder="请选择开始时间"
          >
          </el-time-picker> 至
          > </el-time-picker>
        </el-form-item>至
        <el-form-item label="" prop="endTime"  style=" display: inline-block">
          <el-time-picker
              style="width: 150px;display: inline-block"
              v-model="form.endTime"
@@ -35,9 +54,35 @@
              placeholder="请选择结束时间"
          >
          </el-time-picker>
        </div>
      </el-form-item>
        </div>
      <el-form-item label="是否自动叫号" prop="autoCall">
        <el-radio-group v-model="form.autoCall">
          <el-radio :label="0" :value="0">否</el-radio>
          <el-radio :label="1" :value="1">是</el-radio>
        </el-radio-group>
      </el-form-item>
      <div>
      <el-form-item label="自动叫号时间:" prop="autoCallStartTime"  style=" display: inline-block">
          <el-time-picker
              style="width: 150px;display: inline-block"
              v-model="form.autoCallStartTime"
              format="HH:mm"
              value-format="HH:mm"
              placeholder="请选择开始时间"
          >
          </el-time-picker> </el-form-item>至
        <el-form-item label="" prop="autoCallEndTime"  style=" display: inline-block">
          <el-time-picker
              style="width: 150px;display: inline-block"
              v-model="form.autoCallEndTime"
              format="HH:mm"
              value-format="HH:mm"
              placeholder="请选择结束时间"
          >
          </el-time-picker>
       </el-form-item>
      </div>
      <el-form-item label="叫号等待时间(分钟):" prop="waitCallTime">
        <el-input type="number"  v-model="form.waitCallTime" placeholder="请输入叫号等待时间(分钟)" v-trim/>
      </el-form-item>
@@ -49,7 +94,7 @@
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { numRuleGtZero } from '@/utils/form'
import { allList } from '@/api/platform/platformGroup'
import { allList } from '@/api/business/member'
import { getList as deviceList } from '@/api/business/device'
export default {
  name: 'OperaPlatformWindow',
@@ -65,15 +110,26 @@
        id: null,
        name: '',
        type: 0,
        autoCall: 0,
        isVirtual: 0,
        startTime: '',
        endTime: '',
        waitCallTime: ''
        autoCallStartTime: '',
        autoCallEndTime: '',
        waitCallTime: '',
        signInNoticeUsers: [],
        unFinishNoticeUsers: []
      },
      // 验证规则
      rules: {
        name: [{ required: true, message: '请输入分组名称 ', trigger: 'blur' }],
        type: [{ required: true, message: '请选择业务类型 '}]
      }
        type: [{ required: true, message: '请选择业务类型' }],
        signInNoticeUsers: [{ required: true, message: '请选择签到通知人员', trigger: 'blur' }],
        unFinishNoticeUsers: [{ required: true, message: '请选择作业未完成通知人员', trigger: 'blur' }],
        isVirtual: [{ required: true, message: '请选择是否虚拟月台', trigger: 'change' }],
        autoCall: [{ required: true, message: '请选择是否自动叫号', trigger: 'change' }]
      },
      memberList: []
    }
  },
  created () {
@@ -83,6 +139,79 @@
    })
  },
  methods: {
    chagneVirtural(){
      /*if(this.form.isVirtual ==1){
        this.form.type=1
      }*/
    },
    changeSignInNoticeUsers(e) {
      if (this.form.signInNoticeUsers.length > 5) {
        this.form.signInNoticeUsers.splice(this.form.signInNoticeUsers.length - 1, 1)
        this.$message.warning('最多只能选择五个人员!')
      }
    },
    changeUnFinishNoticeUsers(e) {
      if (this.form.unFinishNoticeUsers.length > 5) {
        this.form.unFinishNoticeUsers.splice(this.form.unFinishNoticeUsers.length - 1, 1)
        this.$message.warning('最多只能选择五个人员!')
      }
    },
    // 确认新建
    __confirmCreate () {
      this.$refs.form.validate((valid) => {
        if (!valid) {
          return
        }
        let obj = JSON.parse(JSON.stringify(this.form))
        obj.signInNoticeUsers = obj.signInNoticeUsers.join(',')
        obj.unFinishNoticeUsers = obj.unFinishNoticeUsers.join(',')
        // 调用新建接口
        this.isWorking = true
        this.api.create(obj)
          .then(() => {
            this.visible = false
            this.$tip.apiSuccess('新建成功')
            this.$emit('success')
          })
          .catch(e => {
            // this.$tip.apiFailed(e)
          })
          .finally(() => {
            this.isWorking = false
          })
      })
    },
    __confirmEdit () {
      this.$refs.form.validate((valid) => {
        if (!valid) {
          return
        }
        let obj = JSON.parse(JSON.stringify(this.form))
        obj.signInNoticeUsers = obj.signInNoticeUsers.join(',')
        obj.unFinishNoticeUsers = obj.unFinishNoticeUsers.join(',')
        // 调用新建接口
        this.isWorking = true
        this.api.updateById(obj)
          .then(() => {
            this.visible = false
            this.$tip.apiSuccess('修改成功')
            this.$emit('success')
          })
          .catch(e => {
            // this.$tip.apiFailed(e)
          })
          .finally(() => {
            this.isWorking = false
          })
      })
    },
    loadMember() {
      allList({
        type: 2
      }).then(res => {
        this.memberList = res
      })
    },
    seleTime(){},
    /**
     * 打开窗口
@@ -91,6 +220,7 @@
     */
    open (title, target) {
      this.title = title
      this.loadMember()
      this.visible = true
      // 新建
      if (target == null) {
@@ -105,6 +235,12 @@
        for (const key in this.form) {
          this.form[key] = target[key]
        }
        if (this.form.signInNoticeUsers) {
          this.form.signInNoticeUsers = this.form.signInNoticeUsers.split(',').map(item => Number(item))
        }
        if (this.form.unFinishNoticeUsers) {
          this.form.unFinishNoticeUsers = this.form.unFinishNoticeUsers.split(',').map(item => Number(item))
        }
      })
    }
  }