From 3db6d5c4d17ab9942a5c89a167c1f06ca485f355 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期三, 16 七月 2025 21:21:14 +0800 Subject: [PATCH] 二保工单审批调整 --- src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue | 617 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 391 insertions(+), 226 deletions(-) diff --git a/src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue b/src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue index 7eb37b6..47c06d1 100644 --- a/src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue +++ b/src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue @@ -1,272 +1,437 @@ <template> - <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen - :mask-closable="false" @ok="handleOk" @cancel="handleCancel" centered cancelText="鍏抽棴"> + <j-modal + :title="title" + :width="1200" + :visible="visible" + :confirmLoading="confirmLoading" + switchFullscreen + :mask-closable="false" + @ok="handleOk" + @cancel="handleCancel" + cancelText="鍏抽棴"> <a-spin :spinning="spinning"> <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-row> + <a-row :gutter="24"> <a-col :span="8"> <a-form-model-item prop="orderNum" label="宸ュ崟鍙�"> - <a-input placeholder="宸ュ崟鍙风郴缁熻嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled/> + <a-input placeholder="宸ュ崟鍙风郴缁熻嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled /> </a-form-model-item> </a-col> <a-col :span="8"> - <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜"> - <maintenance-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId" - maintenanceCategory="THIRD_MAINTENANCE" + <a-form-model-item prop="equipmentId" label="璁惧缂栫爜"> + <maintenance-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="model.equipmentId" + :maintenanceCategory="maintenanceCategory" @autocompleteForm="autocompleteForm" - :disabled="!editable"/> + :disabled="editable"></maintenance-equipment-select> </a-form-model-item> </a-col> <a-col :span="8"> - <a-form-model-item prop="standardName" label="瑙勮寖鍚嶇О"> - <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.standardName" disabled/> + <a-form-model-item prop="standardName" label="鏍囧噯鍚嶇О"> + <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.standardName" disabled /> </a-form-model-item> </a-col> </a-row> - - <a-row> + <a-row :gutter="24"> <a-col :span="8"> <a-form-model-item prop="maintenanceDate" label="淇濆吇鏃ユ湡"> - <a-date-picker placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" v-model="model.maintenanceDate" value-format="YYYY-MM-DD" - style="width: 100%"/> + <a-date-picker placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" v-model="model.maintenanceDate" format="YYYY-MM-DD" + style="width: 100%" /> </a-form-model-item> </a-col> +<!-- <a-col :span="8">--> +<!-- <a-form-model-item prop="operator" label="淇濆吇浜�">--> +<!-- <j-search-select-tag v-model="model.operator" placeholder="璇烽�夋嫨淇濆吇浜�" :disabled="!model.equipmentId"--> +<!-- :dictOptions="maintenanceOperatorOptions" />--> +<!-- </a-form-model-item>--> +<!-- </a-col>--> <a-col :span="8"> <a-form-model-item prop="maintenancePeriod" label="淇濆吇鍛ㄦ湡"> - <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled/> + <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled /> </a-form-model-item> </a-col> </a-row> - - <a-row> + <a-row :gutter="24"> <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="remark" label="澶囨敞"> - <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark"/> + <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark" /> </a-form-model-item> </a-row> - - <a-tabs> - <a-tab-pane key="1" tab="淇濆吇椤规槑缁�"> - <j-vxe-table ref="editableDetailTable" rowNumber bordered keep-source :height="300" - :dataSource="detail.dataSource" - :columns="detail.columns"/> - </a-tab-pane> - </a-tabs> + <a-row :gutter="24"> + <a-tabs v-model="activeTabKey"> + <a-tab-pane key="1" tab="淇濆吇椤�" :forceRender="true"> + <j-vxe-table + ref="editableDetailTable" + :rowNumber="true" + :rowSelection="true" + :bordered="true" + :alwaysEdit="true" + :toolbar="true" + :toolbarConfig="detail.toolbarConfig" + keep-source + :height="300" + :dataSource="detail.dataSource" + :columns="detail.columns" + style="margin-top: 8px;" /> + </a-tab-pane> + </a-tabs> + </a-row> </a-form-model> </a-spin> </j-modal> </template> <script> - import { getAction, httpAction } from '@/api/manage' - import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue' - import { JVXETypes } from '@comp/jeecg/JVxeTable' +import { getAction, httpAction } from '@/api/manage' +import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue' +import { JVXETypes } from '@comp/jeecg/JVxeTable' - export default { - name: 'EamThirdMaintenanceOrderModal', - components: { MaintenanceEquipmentSelect }, - data() { - return { - title: '鎿嶄綔', - visible: false, - editable: true, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 6 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 15 } - }, - labelColLong: { - xs: { span: 24 }, - sm: { span: 2 } - }, - wrapperColLong: { - xs: { span: 24 }, - sm: { span: 21 } - }, - confirmLoading: false, - spinning: false, - maintenanceOperatorOptions: [], - validatorRules: { - equipmentId: [ - { required: true, message: '璇烽�夋嫨璁惧!', trigger: 'change' } - ], - maintenanceDate: [ - { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡!', trigger: 'change' } - ] - }, - url: { - add: '/eam/thirdMaintenanceOrder/add', - edit: '/eam/thirdMaintenanceOrder/edit', - standardDetail: '/eam/eamMaintenanceStandardDetail/queryList', - detail: '/eam/thirdMaintenanceOrderDetail/queryList', - userSelect: '/eam/user_select/list' - }, - detail: { - loading: false, - dataSource: [], - columns: [ - { - title: 'ID', - key: 'id', - type: JVXETypes.hidden - }, - { - title: 'orderId', - key: 'orderId', - type: JVXETypes.hidden - }, - { - title: '搴忓彿', - key: 'itemCode', - type: JVXETypes.normal, - width: 60, - align: 'center' - }, - { - title: '淇濆吇閮ㄤ綅', - key: 'itemPart', - type: JVXETypes.normal, - align: 'center' - }, - { - title: '淇濆吇鍐呭', - key: 'itemName', - type: JVXETypes.normal, - align: 'center' - }, - { - title: '楠屾敹鏍囧噯', - key: 'itemDemand', - type: JVXETypes.normal, - align: 'center' - } - ], - toolbarConfig: { - // prefix 鍓嶇紑锛泂uffix 鍚庣紑 - slot: ['prefix', 'suffix'], - // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳 - btn: ['add', 'remove', 'clearSelection'] +export default { + name: 'EamThirdMaintenanceOrderModal', + components: { MaintenanceEquipmentSelect }, + data() { + return { + title: '鎿嶄綔', + visible: false, + editable: false, + maintenanceCategory: 'THIRD_MAINTENANCE', + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 } + }, + labelColLong: { + xs: { span: 24 }, + sm: { span: 2 } + }, + wrapperColLong: { + xs: { span: 24 }, + sm: { span: 21 } + }, + confirmLoading: false, + spinning: false, + activeTabKey: '1', + maintenanceOperatorOptions: [], + validatorRules: { + equipmentId: [ + { required: true, message: '璇烽�夋嫨璁惧!' } + ], + maintenanceDate: [ + { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡!' } + ] + }, + url: { + add: '/eam/thirdMaintenanceOrder/add', + edit: '/eam/thirdMaintenanceOrder/edit', + standardDetail: '/eam/eamMaintenanceStandardDetail/queryList', + detail: '/eam/thirdMaintenanceOrderDetail/queryList', + userSelect: '/eam/user_select/list', + }, + detail: { + loading: false, + dataSource: [], + columns: [ + { + title: 'ID', + key: 'id', + type: JVXETypes.hidden + }, + { + title: 'orderId', + key: 'orderId', + type: JVXETypes.hidden + }, + { + title: '搴忓彿', + key: 'itemCode', + type: JVXETypes.inputNumber, + width: '10%', + align: 'center', + validateRules: [ + { required: true, unique: true, message: '搴忓彿涓嶈兘閲嶅' } + ] + }, + { + title: '閮ㄤ綅', + key: 'itemPart', + type: JVXETypes.textarea, + width: '25%', + align: 'center' + }, + { + title: '淇濆吇椤�', + key: 'itemName', + type: JVXETypes.textarea, + width: '20%', + align: 'center', + validateRules: [ + { required: true, message: '淇濆吇椤逛笉鑳戒负绌猴紒' } + ] + }, + { + title: '淇濆吇瑕佹眰', + key: 'itemDemand', + type: JVXETypes.textarea, + width: '30%', + align: 'center', + validateRules: [ + { required: true, message: '淇濆吇瑕佹眰涓嶈兘涓虹┖锛�' } + ] } + ], + toolbarConfig: { + // prefix 鍓嶇紑锛泂uffix 鍚庣紑 + slot: ['prefix', 'suffix'], + // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳 + btn: ['add', 'remove', 'clearSelection'] } - } + }, + // precisionDetail: { + // loading: false, + // dataSource: [], + // columns: [ + // { + // title: 'ID', + // key: 'id', + // type: JVXETypes.hidden + // }, + // { + // title: 'orderId', + // key: 'orderId', + // type: JVXETypes.hidden + // }, + // { + // title: 'equipmentId', + // key: 'equipmentId', + // type: JVXETypes.hidden + // }, + // { + // title: 'parameterId', + // key: 'parameterId', + // type: JVXETypes.hidden + // }, + // { + // title: '妫�娴嬮」鐩�', + // key: 'parameterId_dictText', + // type: JVXETypes.normal, + // width: '25%', + // align: 'center' + // }, + // { + // title: '鍙傛暟缂栫爜', + // key: 'parameterCode_dictText', + // type: JVXETypes.normal, + // width: '20%', + // align: 'center', + // }, + // { + // title: '鍏佸樊鍊�', + // key: 'parameterValue', + // type: JVXETypes.normal, + // width: '30%', + // align: 'center', + // } + // ], + // toolbarConfig: { + // // prefix 鍓嶇紑锛泂uffix 鍚庣紑 + // slot: ['prefix', 'suffix'], + // // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳 + // btn: ['add', 'remove', 'clearSelection'] + // } + // } + } + }, + created() { + }, + methods: { + add() { + this.initParams(); + //鍒濆鍖栭粯璁ゅ�� + this.model = {} + this.visible = true + this.editable = false + this.detail.dataSource = [] }, - methods: { - add() { - //鍒濆鍖栭粯璁ゅ�� - this.model = {} - this.visible = true - this.editable = true - this.detail.dataSource = [] - }, + edit(record) { + this.initParams(); + this.model = Object.assign({}, record) + this.visible = true + this.editable = true + this.detail.dataSource = [] + this.loadDetail(record.id) + // this.loadPrecisionDetail(record.id) + }, + close() { + this.$emit('close') + this.visible = false + this.$refs.form.clearValidate() + }, + async handleOk() { + const that = this + let errMap = await that.$refs.editableDetailTable.validateTable() + if (errMap) { + this.$message.warning('鏁版嵁鏍¢獙澶辫触锛�') + return + } + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + let tableData = that.$refs.editableDetailTable.getTableData() + let removeData = that.$refs.editableDetailTable.getDeleteData() + that.model.tableDetailList = [...tableData] + that.model.removeDetailList = [...removeData] - edit(record) { - this.model = Object.assign({}, record) - this.visible = true - this.editable = false - this.detail.dataSource = [] - this.loadDetail(record.id) - }, - - async handleOk() { - const that = this - let errMap = await that.$refs.editableDetailTable.validateTable() - if (errMap) { - this.$message.warning('鏁版嵁鏍¢獙澶辫触锛�') - return - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.$refs.form.validate(valid => { - if (valid) { - let tableData = that.$refs.editableDetailTable.getTableData() - let removeData = that.$refs.editableDetailTable.getDeleteData() - that.model.tableDetailList = [...tableData] - that.model.removeDetailList = [...removeData] - - that.confirmLoading = true - let httpurl = '' - let method = '' - if (!this.model.id) { - httpurl += this.url.add - method = 'post' - } else { - httpurl += this.url.edit - method = 'put' - } - httpAction(httpurl, this.model, method).then((res) => { - if (res.success) { - that.$message.success(res.message) - that.$emit('ok') - that.close() - } else { - that.$message.warning(res.message) - } - }).finally(() => { - that.confirmLoading = false - }) + that.confirmLoading = true + let httpurl = '' + let method = '' + if (!this.model.id) { + httpurl += this.url.add + method = 'post' } else { - return false + httpurl += this.url.edit + method = 'put' } - }) - }, - - autocompleteForm(selectObj) { - this.$set(this.model, 'standardName', selectObj.standardName) - this.$set(this.model, 'maintenancePeriod', selectObj.maintenancePeriod) - this.$set(this.model, 'standardId', selectObj.id) - this.$set(this.model, 'equipmentId', selectObj.equipmentId) - if (!this.model.equipmentId) delete this.model.operator - if (!this.model.id) { - this.loadStandardDetail(selectObj.id) - } - this.loadMaintenanceOperatorList(this.model.equipmentId) - }, - - //鍔犺浇璇︽儏鏁版嵁 - loadStandardDetail(standardId) { - this.detail.dataSource = [] - if (standardId) { - this.spinning = true - getAction(this.url.standardDetail, { standardId: standardId }) - .then(res => { - if (res.success) { - this.detail.dataSource = res.result.map(item => ({ - itemCode: item.itemCode, - itemName: item.itemName, - itemPart: item.itemPart, - itemDemand: item.itemDemand - })) - } - }) - .finally(() => { - this.spinning = false - }) - } - }, - - //瑙勮寖閫夋嫨鍙樺寲 - loadDetail(orderId) { - if (orderId) { - getAction(this.url.detail, { orderId: orderId }).then(res => { + httpAction(httpurl, this.model, method).then((res) => { if (res.success) { - this.detail.dataSource = [...res.result] + that.$message.success(res.message) + that.$emit('ok') + that.close() + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = false + }) + } else { + return false + } + }) + }, + handleCancel() { + this.close() + }, + autocompleteForm(selectObj) { + //鏍囧噯鍚嶇О锛屼繚鍏诲懆鏈熶笉鍒锋柊瑙e喅鍔炴硶 + //鍔炴硶涓� validatorRules equipmentId 杩樻槸鏈夐棶棰� + // const newObj = { + // standardName: selectObj.standardName, + // maintenancePeriod: selectObj.maintenancePeriod, + // standardId : selectObj.id, + // equipmentId: selectObj.equipmentId, + // }; + // this.model = Object.assign({}, newObj, this.model) + //鍔炴硶浜� + this.$set(this.model, 'standardName', selectObj.standardName) + this.$set(this.model, 'maintenancePeriod', selectObj.maintenancePeriod) + this.$set(this.model, 'standardId', selectObj.id) + this.$set(this.model, 'equipmentId', selectObj.equipmentId) + // console.log('model', this.model) + if (!this.model.equipmentId) delete this.model.operator + if (!this.model.id) { + this.loadStandardDetail(selectObj.id) + this.loadPrecisionParameterList(selectObj.equipmentId) + } + this.loadMaintenanceOperatorList(this.model.equipmentId) + }, + //鍔犺浇璇︽儏鏁版嵁 + loadStandardDetail(standardId) { + this.detail.dataSource = [] + if (standardId) { + this.spinning = true + getAction(this.url.standardDetail, { standardId: standardId }) + .then(res => { + if (res.success) { + this.detail.dataSource = res.result.map(item => ({ + itemCode: item.itemCode, + itemName: item.itemName, + itemPart: item.itemPart, + itemDemand: item.itemDemand + })) } }) - } - }, - - handleCancel() { - this.close() - }, - - close() { - this.$emit('close') - this.visible = false - this.$refs.form.clearValidate() + .finally(() => { + this.spinning = false + }) } - } + }, + //鏍囧噯閫夋嫨鍙樺寲 + loadDetail(orderId) { + if (orderId) { + getAction(this.url.detail, { orderId: orderId }).then(res => { + if (res.success) { + this.detail.dataSource = [...res.result] + } + }) + } + }, + loadMaintenanceOperatorList(equipmentId) { + this.maintenanceOperatorOptions = [] + let params = { positionCode: 'PCR0001' } + if (equipmentId) { + params.equipmentId = equipmentId + } else { + return + } + const that = this + getAction(this.url.userSelect, params) + .then(res => { + if (res.success) { + that.maintenanceOperatorOptions = res.result.map(item => ({ + key: item.id, + value: item.username, + text: item.realname + })) + if (!that.maintenanceOperatorOptions.find(item => item.value === that.model.operator)) delete that.model.operator + } else { + if (that.model.operator) delete that.model.operator + } + }) + .catch(err => { + if (that.model.operator) delete that.model.operator + }) + }, + // loadPrecisionParameterList(equipmentId) { + // this.precisionDetail.dataSource = [] + // if (equipmentId) { + // this.spinning = true + // getAction(this.url.precisionDetail, { equipmentId: equipmentId }) + // .then(res => { + // if (res.success) { + // this.precisionDetail.dataSource = res.result.map(item => ({ + // equipmentId: item.equipmentId, + // parameterId: item.parameterId, + // parameterId_dictText: item.parameterId_dictText, + // parameterCode_dictText: item.parameterCode_dictText, + // parameterValue: item.parameterValue, + // })) + // } + // }) + // .finally(() => { + // this.spinning = false + // }) + // } + // }, + // loadPrecisionDetail(orderId) { + // if (orderId) { + // getAction(this.url.precisionCheckDetail, { orderId: orderId }).then(res => { + // if (res.success) { + // this.precisionDetail.dataSource = [...res.result] + // } + // }) + // } + // }, + initParams() { + this.detail.dataSource = [] + // this.precisionDetail.dataSource = [] + this.activeTabKey = '1' + }, } -</script> \ No newline at end of file +} +</script> + +<style lang="less" scoped> + +</style> \ No newline at end of file -- Gitblit v1.9.3