From 9c094a1fe3e1ae3dadef6433f8401818fe2b8304 Mon Sep 17 00:00:00 2001 From: lzhe <lzhe@example.com> Date: 星期五, 21 六月 2024 10:53:43 +0800 Subject: [PATCH] 1 --- src/views/console/workstation/Dialog.vue | 325 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 221 insertions(+), 104 deletions(-) diff --git a/src/views/console/workstation/Dialog.vue b/src/views/console/workstation/Dialog.vue index effd650..e5693f0 100644 --- a/src/views/console/workstation/Dialog.vue +++ b/src/views/console/workstation/Dialog.vue @@ -7,123 +7,138 @@ 鍩虹淇℃伅 </el-col> <el-col :span="12"> - <el-form-item label="宸ヤ綅缂栧彿" prop="userName"> - <el-input style="width: 240px" v-model="form.userName" placeholder="宸ヤ綅缂栧彿" clearable></el-input> + <el-form-item label="宸ヤ綅缂栧彿" prop="code"> + <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-form-item label="宸ヤ綅鍚嶇О" prop="userName"> - <el-input style="width: 240px" v-model="form.userName" placeholder="宸ヤ綅鍚嶇О" clearable></el-input> + <el-form-item label="宸ヤ綅鍚嶇О" prop="name"> + <el-input style="width: 240px" v-model="form.name" placeholder="宸ヤ綅鍚嶇О" clearable></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="宸ヤ綅绫诲瀷" prop="userName"> - <el-select v-model="type" style="width: 240px"> + <el-form-item label="宸ヤ綅绫诲瀷" prop="type"> + <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-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鎵�灞炲伐浣嶇粍" prop="userName"> - <el-tree-select v-model="form.userName" :data="options.group" :render-after-expand="false" - style="width: 240px" /> - <!-- <el-select v-model="type" style="width: 240px"> - <el-option v-for="item in options" :key="item.value" :label="item.label" - :value="item.value" /> - </el-select> --> + <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-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鐘舵��" prop="userName"> - <el-select v-model="type" style="width: 240px"> - <el-option v-for="item in options.status" :key="item.value" :label="item.label" - :value="item.value" /> - </el-select> + <el-form-item label="鐘舵��" prop="status"> + <el-switch v-model="form.status" :active-value="1" :inactive-value="0" /> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="宸ヤ綅鍥剧墖" prop="avatar"> - <sc-upload v-model="form.avatar" title="宸ヤ綅鍥剧墖"></sc-upload> + <scUpload v-model="form.avatar" title="宸ヤ綅鍥剧墖"></scUpload> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鐢熶骇鏃ュ巻" prop="userName"> - <el-select v-model="type" style="width: 240px"> + <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" /> </el-select> </el-form-item> </el-col> - <el-col :span="24" style="padding:12px 0;"> + <el-col :span="24" style="padding:12px 0;" v-if="form.type == 0"> 鏈哄櫒淇℃伅 </el-col> - - <el-col :span="12"> - <el-form-item label="閫夋嫨鏈哄櫒" prop="userName"> - <!-- <el-select v-model="type" style="width: 240px"> - <el-option v-for="item in options.linkWays" :key="item.value" :label="item.label" - :value="item.value" /> - </el-select> --> - <el-radio-group v-model="form.userName"> - <el-radio v-for="item in options.linkWays" :key="item.value" :value="item.value">{{item.label}}</el-radio> + <el-col :span="12" v-if="form.type == 0 && !form.id"> + <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-group> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item label="鏈哄櫒缂栧彿" prop="userName"> - <el-input style="width: 240px" v-model="form.userName" placeholder="鏈哄櫒缂栧彿" clearable></el-input> + <el-col :span="12" v-if="(form.type == 0 && form.linkWay == 0) || form.id"> + <!-- 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> + <el-input v-if="form.id" :disabled="form.id" v-model="form.machineName"></el-input> </el-form-item> </el-col> <el-col :span="24" style="padding:12px 0;"> 鎵╁睍淇℃伅 </el-col> <el-col :span="12"> - <el-form-item label="宸ョ" prop="userName"> - <el-select v-model="type" style="width: 240px"> + <el-form-item label="宸ョ" prop="deviceType"> + <el-select v-model="form.deviceType" style="width: 240px"> <el-option v-for="item in options.work_type" :key="item.dictKey" :label="item.dictValue" - :value="item.dictKey" /> + :value="item.dictKey - 0" /> </el-select> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鍔犲伐灞炴��" prop="userName"> - <el-select v-model="type" style="width: 240px"> - <el-option v-for="item in options.machining_type" :key="item.dictKey" :label="item.dictValue" - :value="item.dictKey" /> + <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-select> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="绋嬪簭浼犺緭鏂瑰紡" prop="userName"> - <el-select v-model="type" style="width: 240px"> - <el-option label="FTP" value="1" /> - <el-option label="涓插彛" value="" /> + <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-select> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="FTP鐩綍" prop="userName"> - <el-select v-model="type" style="width: 240px"> - <el-option v-for="item in options" :key="item.value" :label="item.label" + <el-form-item label="FTP鐩綍" prop="ftpDirectoryType"> + <el-select v-model="form.ftpDirectoryType" style="width: 240px"> + <el-option v-for="item in options.ftpDirectoryType" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item label="宸ヤ綔鍙�" prop="userName"> - <el-select v-model="type" style="width: 240px"> - <el-option v-for="item in options" :key="item.value" :label="item.label" - :value="item.value" /> + <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-option v-for="item in options.directorys" :key="item.id" :label="item.name" + :value="item.id" /> </el-select> </el-form-item> </el-col> + <el-col :span="4"> + <!-- <el-form-item label="宸ヤ綔鍙�" prop="workbenchVOList"> --> + + <!-- </el-form-item> --> + <span>宸ヤ綔鍙�</span> + + </el-col> + <el-col style="margin-bottom: 14px;"> + <ul class="workbranch"> + <li v-for="item in form.workbenchVOList"> + <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 :span="12"> - <el-form-item label="鏁版嵁鏉冮檺" prop="userName"> - <el-select v-model="type" style="width: 240px"> - <el-option v-for="item in options" :key="item.value" :label="item.label" - :value="item.value" /> - </el-select> + <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-tree-select> </el-form-item> </el-col> </el-row> @@ -155,7 +170,10 @@ calendarList: this.calendarList, linkWays: this.linkWays, work_type: this.work_type, - machining_type: this.machining_type + machining_type: this.machining_type, + listnoband: this.listnoband, + directorys: this.directorys, + ftpDirectoryType: this.ftpDirectoryType } } }, @@ -172,67 +190,82 @@ isSaveing: false, //琛ㄥ崟鏁版嵁 form: { - id: "", - userName: "", - avatar: "", - name: "", - dept: "", - group: [] + id: '', + code: '', + name: '', + type: '', + groupName: '', + status: '', + avatar: '', + calendarCode: '', + linkWay: '', + machineId: '', + machineCode: '', + machineName: '', + deviceType: '', + properties: '', + transmissionMethod: '', + ftpDirectoryType: '', + workbenchVOList: [], + createDept: '', }, //楠岃瘉瑙勫垯 rules: { - avatar: [ - { required: true, message: '璇蜂笂浼犲ご鍍�' } - ], - userName: [ - { required: true, message: '璇疯緭鍏ョ櫥褰曡处鍙�' } + code: [ + { required: true, message: '蹇呭~' } ], name: [ - { required: true, message: '璇疯緭鍏ョ湡瀹炲鍚�' } + { required: true, message: '蹇呭~' } ], - password: [ - { required: true, message: '璇疯緭鍏ョ櫥褰曞瘑鐮�' }, - { - validator: (rule, value, callback) => { - if (this.form.password2 !== '') { - this.$refs.dialogForm.validateField('password2'); - } - callback(); - } - } + type: [ + { required: true, message: '蹇呭~' } ], - password2: [ - { required: true, message: '璇峰啀娆¤緭鍏ュ瘑鐮�' }, - { - validator: (rule, value, callback) => { - if (value !== this.form.password) { - callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); - } else { - callback(); - } - } - } + groupName: [ + { required: true, message: '蹇呭~' } ], - dept: [ - { required: true, message: '璇烽�夋嫨鎵�灞為儴闂�' } + status: [ + { required: true, message: '蹇呭~' } ], - group: [ - { required: true, message: '璇烽�夋嫨鎵�灞炶鑹�', trigger: 'change' } - ] + linkWay: [ + { required: true, message: '蹇呭~' } + ], + machineId: [ + { required: true, message: '蹇呭~' } + ], + directoryId: [ + { required: true, message: '蹇呭~' } + ], }, //鎵�闇�鏁版嵁閫夐」 calendarList: [], work_type: [], machining_type: [], + listnoband: [], + directorys: [], + ftpDirectoryType: [ + { + label: '涓嶅叧鑱旂洰褰�', + value: 0 + }, + { + label: '鍏宠仈鐩綍', + value: 1 + }, + { + label: '鍒涘缓鍚屽悕鐩綍', + value: 2 + }, + ], linkWays: [ { label: '鍏宠仈鏈哄櫒', - value: '0' + value: 0 }, { label: '鍒涘缓鍚屽悕鏈哄櫒', - value: '1' + value: 1 } - ] + ], + tree: [] } }, created() { @@ -245,13 +278,40 @@ this.$API.system.dic.getDic.get({ code: 'machining_type' }).then(res => { this.machining_type = res.data }) + this.$API.workstation.getlistnoband.get().then(res => { + this.listnoband = res.data + }) + this.$HTTP.get(`/api/blade-system/data-scope-manager/tree`).then(res => { + this.tree = res.data.map(item => { + return { + ...item, + label: item.title + } + }) + }) }, methods: { //鏄剧ず open(mode = 'add', params) { this.mode = mode; this.visible = true; - this.params = 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 || [] + }) + }) + } else { + this.form.id = '' + Object.keys(this.form).forEach(key => { + this.form[key] = '' + }) + } return this }, //琛ㄥ崟鎻愪氦鏂规硶 @@ -259,7 +319,7 @@ this.$refs.dialogForm.validate(async (valid) => { if (valid) { this.isSaveing = true; - var res = await this.$API.demo.post.post(this.form); + var res = await this.$API.workstation.add.post(this.form); this.isSaveing = false; if (res.code == 200) { this.$emit('success', this.form, this.mode) @@ -279,14 +339,71 @@ this.form.userName = data.userName this.form.avatar = data.avatar this.form.name = data.name - this.form.group = data.group this.form.dept = data.dept //鍙互鍜屼笂闈竴鏍峰崟涓敞鍏ワ紝涔熷彲浠ュ儚涓嬮潰涓�鏍风洿鎺ュ悎骞惰繘鍘� //Object.assign(this.form, data) + }, + change(id) { + let row = this.options.listnoband.find(v => v.id == id) + if (!row) { + this.form.machineCode = '' + this.form.machineId = '' + this.form.machineName = '' + + } else { + this.form.machineCode = row.machineCode + this.form.machineId = row.id + this.form.machineName = row.machineName + } + this.$HTTP.get(`/api/blade-dnc/ftp-director/get-machine-of-workstation-ftp?id=${this.form.machineId}`).then(res => { + this.directorys = res.data + }) + console.log(row) + }, + nodeClick(node) { + console.log(node) + if (node.parentId == 0) return + this.$nextTick(() => { + this.form.groupId = node.id + this.form.groupName = node.name + }) + }, + nodeClickTree(node) { + this.$nextTick(() => { + this.form.createDept = node.id + }) + }, + addWork() { + this.form.workbenchVOList.push({ + sort: this.form.workbenchVOList.length + 1, + name: '' + }) } } } </script> -<style></style> +<style lang="scss" scoped> +.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; + } + + + } +} +</style> -- Gitblit v1.9.3