<template>
|
<GlobalWindow
|
:title="title"
|
width="50%"
|
:visible.sync="visible"
|
:confirm-working="isWorking"
|
@confirm="confirm"
|
>
|
<el-form :model="form" ref="form" :rules="rules">
|
<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>
|
<el-radio :label="1" >物流装货</el-radio>
|
<el-radio :label="2" >市公司卸货</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<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-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"
|
format="HH:mm"
|
value-format="HH:mm"
|
placeholder="请选择结束时间"
|
>
|
</el-time-picker>
|
</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>
|
</el-form>
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import BaseOpera from '@/components/base/BaseOpera'
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import { numRuleGtZero } from '@/utils/form'
|
import { allList } from '@/api/business/member'
|
import { getList as deviceList } from '@/api/business/device'
|
export default {
|
name: 'OperaPlatformWindow',
|
extends: BaseOpera,
|
components: { GlobalWindow },
|
data () {
|
return {
|
// 表单数据
|
groupList: [],
|
broadcastList: [],
|
ledList: [],
|
form: {
|
id: null,
|
name: '',
|
type: 0,
|
autoCall: 0,
|
isVirtual: 0,
|
startTime: '',
|
endTime: '',
|
autoCallStartTime: '',
|
autoCallEndTime: '',
|
waitCallTime: '',
|
signInNoticeUsers: [],
|
unFinishNoticeUsers: []
|
},
|
// 验证规则
|
rules: {
|
name: [{ required: true, message: '请输入分组名称 ', trigger: 'blur' }],
|
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 () {
|
this.config({
|
api: '/platform/platformGroup',
|
'field.id': 'id'
|
})
|
},
|
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(){},
|
/**
|
* 打开窗口
|
* @title 窗口标题
|
* @target 编辑的对象
|
*/
|
open (title, target) {
|
this.title = title
|
this.loadMember()
|
this.visible = true
|
// 新建
|
if (target == null) {
|
this.$nextTick(() => {
|
this.$refs.form.resetFields()
|
this.form[this.configData['field.id']] = null
|
})
|
return
|
}
|
// 编辑
|
this.$nextTick(() => {
|
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))
|
}
|
})
|
}
|
}
|
}
|
</script>
|
<style scoped>
|
.labelTip{
|
font-size: 12px;
|
color: #666666;
|
}
|
</style>
|