| | |
| | | <template> |
| | | <el-dialog :title="titleMap[mode]" v-model="visible" :width="800" destroy-on-close @closed="$emit('closed')"> |
| | | <el-form :model="form" :rules="rules" :disabled="mode == 'show'" ref="dialogForm" label-width="120px" |
| | | label-position="center"> |
| | | <el-form v-if="visible" :model="form" :rules="rules" :disabled="mode == 'show'" ref="dialogForm" |
| | | label-width="120px" label-position="center"> |
| | | <el-row> |
| | | <el-col :span="24" style="padding:12px 0;"> |
| | | 基础信息 |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="工位编号" prop="code"> |
| | | <el-input style="width: 240px" :disabled="form.id" v-model="form.code" placeholder="工位编号" clearable></el-input> |
| | | <el-input style="width: 240px" :disabled="!!form.id" v-model="form.code" placeholder="工位编号" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="工位类型" prop="type"> |
| | | <el-select v-model="form.type" style="width: 240px" :disabled="form.id"> |
| | | <el-select v-model="form.type" style="width: 240px" :disabled="!!form.id"> |
| | | <el-option v-for="item in options.types" :key="item.value" :label="item.label" |
| | | :value="item.value" /> |
| | | </el-select> |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="所属工位组" prop="groupName"> |
| | | <el-tree-select @node-click="nodeClick" v-model="form.groupName" :data="options.group" :check-on-click-node="true" |
| | | style="width: 240px" /> |
| | | <el-tree-select @node-click="nodeClick" v-model="form.groupName" :data="options.group" |
| | | :check-on-click-node="true" style="width: 240px" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="状态" prop="status"> |
| | | <el-switch v-model="form.status" :active-value="1" :inactive-value="0"/> |
| | | <el-switch v-model="form.status" :active-value="1" :inactive-value="0" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | |
| | | <scUpload v-model="form.avatar" title="工位图片"></scUpload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-col :span="12" v-show="!form.id"> |
| | | <el-form-item label="生产日历" prop="calendarCode"> |
| | | <el-select v-model="form.calendarCode" style="width: 240px"> |
| | | <el-option v-for="item in options.calendarList" :key="item.id" :label="item.name" |
| | | :value="item.id" /> |
| | | :value="item.code" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- 修改的次日生效 --> |
| | | <el-col :span="11" v-show="form.id"> |
| | | <el-form-item label="生产日历" prop="calendarCode"> |
| | | <el-select v-model="form.calendarCodeWaiting" style="width: 240px"> |
| | | <el-option v-for="item in options.calendarList" :key="item.id" :label="item.name" |
| | | :value="item.code" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | </el-col> |
| | | <el-col :span="1" v-show="form.id"> |
| | | <div style="display: flex;align-items: center;height: 32px;margin-bottom: 18px;"> |
| | | <el-tooltip class="box-item" effect="dark" content="修改后的日历次日生效" placement="top-start"> |
| | | <el-icon> |
| | | <el-icon-warning-filled style="vertical-align: middle" /> |
| | | </el-icon> |
| | | </el-tooltip> |
| | | </div> |
| | | |
| | | </el-col> |
| | | <el-col :span="24" style="padding:12px 0;" v-if="form.type == 0"> |
| | | 机器信息 |
| | | </el-col> |
| | | <el-col :span="12" v-if="form.type == 0 && !form.id"> |
| | | <el-form-item label="选择机器" prop="linkWay" > |
| | | <el-form-item label="选择机器" prop="linkWay"> |
| | | <el-radio-group v-model="form.linkWay"> |
| | | <el-radio v-for="item in options.linkWays" :key="item.value" :label="item.value">{{item.label}}</el-radio> |
| | | <el-radio v-for="item in options.linkWays" :key="item.value" :label="item.value">{{ |
| | | item.label }}</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <!-- machineCode --> |
| | | <el-form-item label="机器编号" prop="machineId"> |
| | | <!-- <el-input style="width: 240px" v-model="form.machineId" placeholder="机器编号" clearable></el-input> --> |
| | | <el-select v-if="!form.id" v-model="form.machineId" style="width: 240px" @change="change" clear filterable> |
| | | <el-option v-for="item in options.listnoband" :key="item.id" :label="item.machineName" :value="item.id" |
| | | > |
| | | {{ `${item?.machineCode}-${item?.machineName}-${item?.brand}` }}</el-option> |
| | | <el-select v-if="!form.id" v-model="form.machineId" style="width: 240px" @change="change" clear |
| | | filterable> |
| | | <el-option v-for="item in options.listnoband" :key="item.id" :label="item.machineName" |
| | | :value="item.id"> |
| | | {{ `${item?.machineCode}-${item?.machineName}${item?.brand ? '-' + item.brand : ''}` |
| | | }}</el-option> |
| | | </el-select> |
| | | <el-input v-if="form.id" :disabled="form.id" v-model="form.machineName"></el-input> |
| | | </el-form-item> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="加工属性" prop="properties"> |
| | | <el-select v-model="form.properties" style="width: 240px"> |
| | | <el-option v-for="item in options.machining_type" :key="item.dictKey" :label="item.dictValue" |
| | | :value="item.dictKey" /> |
| | | <el-option v-for="item in options.machining_type" :key="item.dictKey" |
| | | :label="item.dictValue" :value="item.dictKey - 0" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="程序传输方式" prop="transmissionMethod"> |
| | | <el-select v-model="form.transmissionMethod" style="width: 240px"> |
| | | <el-option label="FTP" :value="1" /> |
| | | <el-option label="串口" :value="2" /> |
| | | <el-option label="FTP" :value="1" /> |
| | | <el-option label="串口" :value="2" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> --> |
| | | <el-col :span="12" v-if="form.ftpDirectoryType == 1"> |
| | | <el-form-item label="关联目录" prop="directoryId"> |
| | | <el-select v-model="form.directoryId" style="width: 240px"> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="4"> |
| | | <!-- <el-form-item label="工作台" prop="workbenchVOList"> --> |
| | | |
| | | <!-- </el-form-item> --> |
| | | <!-- <el-col :span="4"> |
| | | <span>工作台</span> |
| | | |
| | | |
| | | </el-col> |
| | | <el-col style="margin-bottom: 14px;"> |
| | | <ul class="workbranch"> |
| | | <li v-for="item in form.workbenchVOList"> |
| | | <span>{{ item.sort}}</span> |
| | | <span>{{ item.sort }}</span> |
| | | <el-input v-model="item.name" style="width: 200px"></el-input> |
| | | </li> |
| | | </ul> |
| | | <el-button style="margin-left: 50px;margin-top: 8px" @click="addWork">添加工作台</el-button> |
| | | </el-col> |
| | | </el-col> --> |
| | | <el-col :span="12"> |
| | | <el-form-item label="数据权限" prop="createDept"> |
| | | <el-tree-select clearable @node-click="nodeClickTree" v-model="form.createDept" :data="tree" :check-on-click-node="true" |
| | | style="width: 240px"> |
| | | <template #default="{ data: { title } }"> |
| | | {{ title }}</template |
| | | > |
| | | <el-form-item label="所属部门" prop="createDept"> |
| | | <el-tree-select :props="{ |
| | | label: 'title', |
| | | id: 'id', |
| | | }" clearable @node-click="nodeClickTree" v-model="form.createDept" :data="tree" |
| | | :check-on-click-node="true" style="width: 240px"> |
| | | <!-- <template #default="{ data: { title } }"> |
| | | {{ title }}</template> --> |
| | | </el-tree-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | status: '', |
| | | avatar: '', |
| | | calendarCode: '', |
| | | calendarCodeWaiting: '', |
| | | linkWay: '', |
| | | machineId: '', |
| | | machineCode: '', |
| | |
| | | status: [ |
| | | { required: true, message: '必填' } |
| | | ], |
| | | linkWay:[ |
| | | linkWay: [ |
| | | { required: true, message: '必填' } |
| | | ], |
| | | machineId:[ |
| | | machineId: [ |
| | | { required: true, message: '必填' } |
| | | ], |
| | | directoryId:[ |
| | | directoryId: [ |
| | | { required: true, message: '必填' } |
| | | ], |
| | | }, |
| | |
| | | methods: { |
| | | //显示 |
| | | open(mode = 'add', params) { |
| | | this.isSaveing = false; |
| | | this.mode = mode; |
| | | this.visible = true; |
| | | |
| | | console.log('---------', params) |
| | | if (params) { |
| | | Object.keys(this.form).forEach(key => { |
| | | this.form[key] = params[key] |
| | | }) |
| | | this.$HTTP.get(`/api/blade-cps/workstation/get?workstationId=${params.id}`).then(res => { |
| | | this.form =res?.data |
| | | this.$HTTP.get(`/api/blade-cps/workstation-workbench/listWorkbench?workstationId=${params.id}`).then(res => { |
| | | this.form.workbenchVOList =res?.data?.workstationList || [] |
| | | |
| | | this.$HTTP.get(`/api/smis/workstation/get?workstationId=${params.id}`).then(res => { |
| | | this.form = res?.data |
| | | if (this.form.calendarCode && !this.form.calendarCodeWaiting) this.form.calendarCodeWaiting = this.form.calendarCode |
| | | this.$HTTP.get(`/api/smis/workstation-workbench/listWorkbench?workstationId=${params.id}`).then(res => { |
| | | this.form.workbenchVOList = res?.data?.workstationList || [] |
| | | }) |
| | | }) |
| | | }else { |
| | | } else { |
| | | this.form.id = '' |
| | | this.form.workbenchVOList = [] |
| | | Object.keys(this.form).forEach(key => { |
| | | this.form[key] = '' |
| | | }) |
| | |
| | | }, |
| | | //表单提交方法 |
| | | submit() { |
| | | if (!this.form.workbenchVOList) { |
| | | this.form.workbenchVOList = [] |
| | | } |
| | | if (this.mode === 'add' && this.form.linkWay === 1) { |
| | | this.form.machineId |
| | | this.form.machineCode = this.form.code |
| | | this.form.machineName = this.form.name |
| | | } |
| | | this.$refs.dialogForm.validate(async (valid) => { |
| | | if (valid) { |
| | | this.isSaveing = true; |
| | | var res = await this.$API.workstation.add.post(this.form); |
| | | try { |
| | | var res = await this.$API.workstation.add.post(this.form); |
| | | } catch (error) { |
| | | this.isSaveing = false; |
| | | } |
| | | this.isSaveing = false; |
| | | if (res.code == 200) { |
| | | this.$emit('success', this.form, this.mode) |
| | |
| | | //可以和上面一样单个注入,也可以像下面一样直接合并进去 |
| | | //Object.assign(this.form, data) |
| | | }, |
| | | change (id) { |
| | | let row = this.options.listnoband.find(v=>v.id ==id) |
| | | if (!row) { |
| | | change(id) { |
| | | let row = this.options.listnoband.find(v => v.id == id) |
| | | if (!row) { |
| | | this.form.machineCode = '' |
| | | this.form.machineId = '' |
| | | this.form.machineName = '' |
| | | |
| | | }else { |
| | | } else { |
| | | this.form.machineCode = row.machineCode |
| | | this.form.machineId = row.id |
| | | this.form.machineName = row.machineName |
| | |
| | | }) |
| | | console.log(row) |
| | | }, |
| | | nodeClick (node) { |
| | | nodeClick(node) { |
| | | console.log(node) |
| | | if (node.parentId == 0) return |
| | | this.$nextTick(() => { |
| | |
| | | this.form.groupName = node.name |
| | | }) |
| | | }, |
| | | nodeClickTree (node) { |
| | | nodeClickTree(node) { |
| | | this.$nextTick(() => { |
| | | this.form.createDept = node.id |
| | | }) |
| | | }, |
| | | addWork () { |
| | | addWork() { |
| | | if (!this.form.workbenchVOList) { |
| | | this.form.workbenchVOList = [] |
| | | } |
| | | this.form.workbenchVOList.push({ |
| | | sort: this.form.workbenchVOList.length + 1, |
| | | name: '' |
| | |
| | | .workbranch { |
| | | list-style: none; |
| | | padding-left: 50px; |
| | | |
| | | li { |
| | | margin-top: 8px; |
| | | |
| | | span { |
| | | display: inline-block; |
| | | width: 25px; |
| | | height: 25px; |
| | | line-height: 25px; |
| | | text-align: center; |
| | | border-radius: 50%; |
| | | background: #ccc; |
| | | margin-right: 8px; |
| | | height: 25px; |
| | | line-height: 25px; |
| | | text-align: center; |
| | | border-radius: 50%; |
| | | background: #ccc; |
| | | margin-right: 8px; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | </style> |