From 3db6d5c4d17ab9942a5c89a167c1f06ca485f355 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期三, 16 七月 2025 21:21:14 +0800 Subject: [PATCH] 二保工单审批调整 --- src/views/system/modules/UserModal.vue | 86 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 75 insertions(+), 11 deletions(-) diff --git a/src/views/system/modules/UserModal.vue b/src/views/system/modules/UserModal.vue index 76bd7f1..ce2b780 100644 --- a/src/views/system/modules/UserModal.vue +++ b/src/views/system/modules/UserModal.vue @@ -74,12 +74,12 @@ <a-input-search :readOnly="true" v-model="model.equipmentIds" @search="deviceSearch" enter-button placeholder="璇烽�夋嫨璁惧" :disabled="!model.selectedProduction"/> </a-form-model-item> - <a-form-model-item label="EAM涓績鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="areaId"> - <j-multi-select-tag :triggerChange="true" v-model="model.eamFactoryIds" dictCode="mom_base_area,name,id,del_flag = 0 and type = 1" placeholder="璇风淮鎶や腑蹇�"/> + <a-form-model-item label="EAM涓績鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eamFactoryIds"> + <JSelectBaseFactory v-model="model.selectedBaseFactory" :multi="true" @back="backBaseFactoryInfo" :backProduction="true" :treeProductOpera="true"/> </a-form-model-item> <a-form-model-item label="EAM璁惧鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!productionDisabled"> - <a-input-search :readOnly="true" v-model="model.eamEquipmentIds" @search="deviceSearch" enter-button placeholder="璇烽�夋嫨璁惧" :disabled="!model.selectedProduction"/> + <a-input-search :readOnly="true" v-model="model.eamEquipmentIds" @search="eamDeviceSearch" enter-button placeholder="璇烽�夋嫨EAM璁惧" :disabled="!model.selectedBaseFactory"/> </a-form-model-item> <a-form-model-item label="缁翠慨閮ㄩ棬/鐝粍鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!repairDepartDisabled"> @@ -100,6 +100,9 @@ </div> <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'閫夋嫨璁惧'"/> + + <select-eam-device-modal ref="selectEamDeviceModal" @selectFinished="selectEamOK" :title="'閫夋嫨EAM璁惧'"/> + </a-drawer> </template> @@ -116,13 +119,17 @@ import { mapActions } from 'vuex' import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api' import SelectDeviceModal from './SelectDeviceModal' + import SelectEamDeviceModal from './SelectEamDeviceModal' + import JSelectBaseFactory from "@comp/jeecgbiz/JSelectBaseFactory.vue"; export default { name: 'UserModal', components: { + JSelectBaseFactory, SelectDeviceModal, JSelectProduction, - JSelectRepairDepart + JSelectRepairDepart, + SelectEamDeviceModal }, data() { return { @@ -140,12 +147,12 @@ validatorRules: { username: [{ required: true, message: '璇疯緭鍏ョ敤鎴疯处鍙�!' }, { validator: this.validateUsername }], - password: [{ - required: true, - pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, - message: '瀵嗙爜鐢�8浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!' - }, - { validator: this.validateToNextPassword, trigger: 'change' }], + // password: [{ + // required: true, + // pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, + // message: '瀵嗙爜鐢�8浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!' + // }, + // { validator: this.validateToNextPassword, trigger: 'change' }], confirmpassword: [{ required: true, message: '璇烽噸鏂拌緭鍏ョ櫥褰曞瘑鐮�!' }, { validator: this.compareToFirstPassword }], realname: [{ required: true, message: '璇疯緭鍏ョ敤鎴峰悕绉�!' }], @@ -181,17 +188,20 @@ syncUserByUserName: '/act/process/extActProcess/doSyncUserByUserName',//鍚屾鐢ㄦ埛鍒板伐浣滄祦 queryTenantList: '/sys/tenant/queryList', userRepairDepartList: '/sys/user/userRepairDepartList', + userBaseFactoryList: '/sys/user/userBaseFactoryList', repairDepartTreeList: '/eam/eamBaseRepairDepart/queryTreeList' }, tenantsOptions: [], rolesOptions: [], nextDepartOptions: [], nextProductionOptions: [], + nextBaseFactoryOptions:[], nextRepairDepartOptions: [], isDepartType: '', model: { selectedProduction: '', - selectedRepairDeparts: '' + selectedRepairDeparts: '', + selectedBaseFactory:'', } } }, @@ -210,6 +220,17 @@ } // 濡傛灉娓呯┖杞﹂棿鍊煎垯閲嶇疆閫夋嫨璁惧 if (newVal === '') this.model.equipmentIds = '' + } + }, + 'model.selectedBaseFactory': { + handler(newVal, oldVal) { + if (newVal && this.$refs.selectEamDeviceModal) { + // 濡傛灉杞﹂棿閫夋嫨鍓嶅悗涓嶄竴鑷村垯閲嶇疆閫夋嫨璁惧 + if ((oldVal && newVal !== oldVal)) this.model.eamEquipmentIds = '' + this.$refs.selectEamDeviceModal.queryTreeData(newVal) + } + // 濡傛灉娓呯┖杞﹂棿鍊煎垯閲嶇疆閫夋嫨璁惧 + if (newVal === '') this.model.eamEquipmentIds = '' } } }, @@ -265,6 +286,7 @@ selectedroles: '', selecteddeparts: '', selectedProduction: '', + selectedBaseFactory:'', selectedRepairDeparts: '' }) }, @@ -288,6 +310,7 @@ that.getUserDeparts(record.id) that.getUserProductions(record.id) that.getUserRepairDeparts(record.id) + this.getUserBaseFactorys(record.id) } }, isDisabledAuth(code) { @@ -403,6 +426,27 @@ } }) }, + getUserBaseFactorys(userid) { + let that = this + // 鑾峰彇EAM涓績/宸ュ尯/宸ユ鍒嗛厤 + getAction(that.url.userBaseFactoryList, { userId: userid }).then((res) => { + if (res.success) { + let BaseFactoryOptions = [] + let selectedBaseFactoryOptionsKeys = [] + for (let i = 0; i < res.result.length; i++) { + selectedBaseFactoryOptionsKeys.push(res.result[i].key) + //鏂板璐熻矗缁翠慨閮ㄩ棬/鐝粍閫夋嫨涓嬫媺妗� + BaseFactoryOptions.push({ + value: res.result[i].key, + label: res.result[i].title + }) + } + + this.$set(this.model, 'selectedBaseFactory', selectedBaseFactoryOptionsKeys.join(',')) + that.nextBaseFactoryOptions = BaseFactoryOptions + } + }) + }, backDepartInfo(info) { this.model.departIds = this.model.selecteddeparts this.nextDepartOptions = info.map((item, index, arr) => { @@ -413,6 +457,13 @@ backProductionInfo(info) { this.model.productionIds = this.model.selectedProduction this.nextProductionOptions = info.map((item, index, arr) => { + let c = { label: item.text, value: item.value + '' } + return c + }) + }, + backBaseFactoryInfo(info) { + this.model.eamFactoryIds = this.model.selectedBaseFactory + this.nextBaseFactoryOptions = info.map((item, index, arr) => { let c = { label: item.text, value: item.value + '' } return c }) @@ -429,6 +480,7 @@ this.userId = '' this.nextDepartOptions = [] this.nextProductionOptions = [] + this.nextBaseFactoryOptions = [] this.nextRepairDepartOptions = [] this.departIdShow = false }, @@ -437,6 +489,7 @@ this.visible = false this.disableSubmit = false this.nextDepartOptions = [] + this.nextProductionOptions = [] this.nextProductionOptions = [] this.nextRepairDepartOptions = [] this.departIdShow = false @@ -615,6 +668,13 @@ this.$refs.selectDeviceModal.checkedKeys = this.model.equipmentIds ? this.model.equipmentIds.split(',') : [] }, + eamDeviceSearch(){ + this.$refs.selectEamDeviceModal.visible = true + this.$refs.selectEamDeviceModal.selectedRowKeys = [] + this.$refs.selectEamDeviceModal.selectedRows = [] + this.$refs.selectEamDeviceModal.checkedKeys = this.model.eamEquipmentIds ? this.model.eamEquipmentIds.split(',') : [] + }, + /** * 閫夋嫨宸叉湁璁惧鍚庣偣鍑荤‘瀹氭椂瑙﹀彂 * @param data 宸查�夋嫨鐨勮澶囨暟缁� @@ -622,6 +682,10 @@ selectOK(data) { console.log('data=', data) this.$set(this.model, 'equipmentIds', data.join(',')) + }, + selectEamOK(data) { + console.log('data=', data) + this.$set(this.model, 'eamEquipmentIds', data.join(',')) } } } -- Gitblit v1.9.3