From 529061167e2cc6e67c7ee60a9355cdc0a7702502 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期二, 15 七月 2025 15:08:22 +0800 Subject: [PATCH] 1、技术鉴定工单审批维修室主人确认单项检查流程增加展示以及限制条件 2、设备台账页面新增真空热处理炉字段 --- src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue | 1 src/views/eam/equipment/modules/EamEquipmentModal.vue | 65 ++++++++++++++------- src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue | 70 ++++++++++++++++------- src/views/eam/equipment/EamEquipmentLedger.vue | 17 ++++- 4 files changed, 107 insertions(+), 46 deletions(-) diff --git a/src/views/eam/equipment/EamEquipmentLedger.vue b/src/views/eam/equipment/EamEquipmentLedger.vue index 4564585..725b672 100644 --- a/src/views/eam/equipment/EamEquipmentLedger.vue +++ b/src/views/eam/equipment/EamEquipmentLedger.vue @@ -115,8 +115,13 @@ <a-switch checked-children="鏄�" un-checked-children="鍚�" :checked="Boolean(+text)" disabled/> </template> - <!--鎿嶄綔绯荤粺--> + <!--鐏伀鍣�--> <template slot="fireExtinguisher" slot-scope="text"> + <a-switch checked-children="鏄�" un-checked-children="鍚�" :checked="Boolean(+text)" disabled/> + </template> + + <!--鐪熺┖鐑鐞嗙倝--> + <template slot="trueHeatTreatment" slot-scope="text"> <a-switch checked-children="鏄�" un-checked-children="鍚�" :checked="Boolean(+text)" disabled/> </template> @@ -170,7 +175,7 @@ mixins: [JeecgListMixin], components: { ResumeDrawer, - EamEquipmentModal, + EamEquipmentModal }, data() { return { @@ -282,6 +287,12 @@ dataIndex: 'system' }, { + title: '鐪熺┖鐑鐞嗙倝', + align: 'center', + dataIndex: 'trueHeatTreatment', + scopedSlots: { customRender: 'trueHeatTreatment' } + }, + { title: '璁惧绔彛', align: 'center', dataIndex: 'equipmentPort' @@ -341,7 +352,7 @@ title: '璧勪骇鍒堕�犲晢', align: 'center', dataIndex: 'manufacturingEnterprise', - scopedSlots: { customRender: 'manufacturingEnterprise' }, + scopedSlots: { customRender: 'manufacturingEnterprise' } }, { title: '璧勪骇鏉ユ簮鍥藉', diff --git a/src/views/eam/equipment/modules/EamEquipmentModal.vue b/src/views/eam/equipment/modules/EamEquipmentModal.vue index 1f381e5..6609f5a 100644 --- a/src/views/eam/equipment/modules/EamEquipmentModal.vue +++ b/src/views/eam/equipment/modules/EamEquipmentModal.vue @@ -85,7 +85,8 @@ </a-col> <a-col :span="customSpan"> <a-form-model-item label="鐏伀鍣�"> - <j-dict-select-tag dict-code="yn" type="radio" v-model="model.fireExtinguisher"/> + <j-dict-select-tag dict-code="yn" type="radio" v-model="model.fireExtinguisher" + @change="handleRadioChange($event,'fireExtinguisherExpirationDate')"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> @@ -100,7 +101,8 @@ <a-row> <a-col :span="customSpan"> <a-form-model-item label="鎿嶄綔绯荤粺"> - <j-dict-select-tag dict-code="yn " type="radio" v-model="model.operationSystem"/> + <j-dict-select-tag dict-code="yn " type="radio" v-model="model.operationSystem" + @change="handleRadioChange($event,'system')"/> </a-form-model-item> </a-col> <a-col :span="customSpan"> @@ -109,20 +111,24 @@ </a-form-model-item> </a-col> <a-col :span="customSpan"> + <a-form-model-item label="鐪熺┖鐑鐞嗙倝"> + <j-dict-select-tag dict-code="yn " type="radio" v-model="model.trueHeatTreatment"/> + </a-form-model-item> + </a-col> + <a-col :span="customSpan"> <a-form-model-item label="璁惧绔彛"> <a-input placeholder="璇疯緭鍏ヨ澶囩鍙�" v-model="model.equipmentPort"/> </a-form-model-item> </a-col> + </a-row> + + <a-row> <a-col :span="customSpan"> <a-form-model-item label="鍧愭爣鏁伴噺"> <a-input-number placeholder="璇疯緭鍏ュ潗鏍囨暟閲�" v-model="model.coordinateNum" :min="0" :max="12" style="width: 100%"/> </a-form-model-item> </a-col> - - </a-row> - - <a-row> <a-col :span="customSpan"> <a-form-model-item label="閲嶉噺"> <a-input-number placeholder="璇疯緭鍏ラ噸閲�" v-model="model.equipmentWeight" :min="0" style="width: 100%"/> @@ -138,14 +144,15 @@ <a-input placeholder="璇疯緭鍏ュ姛鑳戒綅缃�" v-model="model.functionalLocation"/> </a-form-model-item> </a-col> + + </a-row> + + <a-row> <a-col :span="customSpan"> <a-form-model-item label="瀹夎浣嶇疆"> <a-input placeholder="璇疯緭鍏ュ畨瑁呬綅缃�" v-model="model.installationPosition"/> </a-form-model-item> </a-col> - </a-row> - - <a-row> <a-col :span="customSpan"> <a-form-model-item label="鍑哄巶鏃ユ湡"> <a-date-picker v-model="model.leaveFactoryDate" value-format="YYYY-MM-DD" style="width:100%"/> @@ -161,14 +168,15 @@ <a-input placeholder="璇疯緭鍏ヨ祫閲戞潵婧�" v-model="model.fundingSource"/> </a-form-model-item> </a-col> + + </a-row> + + <a-row> <a-col :span="customSpan"> <a-form-model-item label="楠屾敹鏃ユ湡"> <a-date-picker v-model="model.acceptanceCheckDate" value-format="YYYY-MM-DD" style="width:100%"/> </a-form-model-item> </a-col> - </a-row> - - <a-row> <a-col :span="customSpan"> <a-form-model-item label="鍑哄巶缂栧彿"> <a-input placeholder="璇疯緭鍏ュ嚭鍘傜紪鍙�" v-model="model.factoryNumber"/> @@ -184,14 +192,15 @@ <a-input placeholder="璇疯緭鍏ヨ祫浜ф潵婧愬浗瀹�" v-model="model.originCountry"/> </a-form-model-item> </a-col> + + </a-row> + + <a-row> <a-col :span="customSpan"> <a-form-model-item label="璁惧瑙勬牸"> <a-input placeholder="璇疯緭鍏ヨ澶囪鏍�" v-model="model.equipmentSpecification"/> </a-form-model-item> </a-col> - </a-row> - - <a-row> <a-col :span="customSpan"> <a-form-model-item label="鎬诲姛鐜�(KW)"> <a-input-number placeholder="璇疯緭鍏ユ�诲姛鐜�(KW)" v-model="model.equipmentPower" :min="0" @@ -208,14 +217,15 @@ <a-date-picker v-model="model.warrantyEndDate" value-format="YYYY-MM-DD" style="width:100%"/> </a-form-model-item> </a-col> + + </a-row> + + <a-row> <a-col :span="customSpan"> <a-form-model-item label="璧勪骇鐘舵��"> <j-dict-select-tag dict-code="asset_status" placeholder="璇烽�夋嫨璧勪骇鐘舵��" v-model="model.assetStatus"/> </a-form-model-item> </a-col> - </a-row> - - <a-row> <a-col :span="customSpan"> <a-form-model-item label="鏈涓変繚鏃ユ湡"> <a-date-picker v-model="model.latestThirdMaintenance" value-format="YYYY-MM-DD" @@ -233,15 +243,16 @@ style="width: 100%"/> </a-form-model-item> </a-col> + + </a-row> + + <a-row> <a-col :span="customSpan"> <a-form-model-item label="鎶�鏈姸鎬�"> <j-dict-select-tag placeholder="璇烽�夋嫨鎶�鏈姸鎬�" dict-code="equipment_technology_status" v-model="model.technologyStatus"/> </a-form-model-item> </a-col> - </a-row> - - <a-row> <a-col :span="customSpan"> <a-form-model-item label="鏈鎶�鏈壌瀹氭棩鏈�"> <a-date-picker v-model="model.latestTechnologyCheck" value-format="YYYY-MM-DD" @@ -359,7 +370,8 @@ //鍒濆鍖栭粯璁ゅ�� this.model = { operationSystem: 1, - fireExtinguisher: 0 + fireExtinguisher: 0, + trueHeatTreatment: 0 } this.visible = true }, @@ -370,6 +382,15 @@ this.visible = true }, + /**\ + * 鍗曢�夋鍊煎彂鐢熸敼鍙樻椂瑙﹀彂 + * @param value 鍗曢�夋鍊� + * @param key 鍗曢�夋鍏宠仈瀛楁 + */ + handleRadioChange(value, key) { + if (value == '0') delete this.model[key] + }, + handleOk() { const that = this // 瑙﹀彂琛ㄥ崟楠岃瘉 diff --git a/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue b/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue index 6e1288f..d95a5b7 100644 --- a/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue +++ b/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue @@ -171,6 +171,7 @@ }, getDetailDataByOrderId({ id }) { + this.detail.safetyEquipmentCheckList = this.detail.precisionCheckList = this.detail.otherCheckList = [] this.model.standardId = id this.spinning = true getAction(this.url.detail, { standardId: id }) diff --git a/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue b/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue index 963c6bf..bbcdedd 100644 --- a/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue +++ b/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue @@ -4,8 +4,8 @@ @cancel="handleCancel" centered cancelText="鍏抽棴"> <a-spin :spinning="spinning"> <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-row :gutter="24"> - <a-col :span="8"> + <a-row id="outer-row" :gutter="24"> + <a-col :span="8" class="scroll-col"> <a-tabs> <a-tab-pane tab="鍩虹淇℃伅"> <a-row> @@ -44,17 +44,20 @@ </a-tabs> </a-col> - <a-col :span="model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'?10:16"> + <a-col + :span="model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'&&model.evaluationStatus!='WAIT_EVALUATION'?10:16" + class="scroll-col"> <a-tabs :active-key="activeTabKey" @change="handleTabChange"> <a-tab-pane :key="1" tab="瀹夊叏瑁呯疆妫�鏌�" forceRender - v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='safety_equipment_check'||!Boolean(selectShenpiData.taskDefKey)"> + v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='safety_equipment_check'||selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='safety_equipment_check_confirm'||!Boolean(selectShenpiData.taskDefKey)"> <j-vxe-table ref="editableDetailTable1" rowNumber bordered alwaysEdit keep-source :height="300" :dataSource="detail.safetyEquipmentCheckList" :columns="detail.safetyEquipmentCheckColumns"> <template v-slot:safetyEquipmentCheckResult="props"> - <j-dict-select-tag v-model="props.row.safetyEquipmentCheckResult" :disabled="disableSubmit" + <j-dict-select-tag v-model="props.row.safetyEquipmentCheckResult" placeholder="璇烽�夋嫨妫�鏌ョ粨鏋�" + :disabled="disableSubmit||(model.evaluationStatus!='UNDER_EVALUATION'&&model.evaluationStatus!='WAIT_EVALUATION')||(model.evaluationStatus=='UNDER_EVALUATION'&&selectShenpiData.taskDefKey=='safety_equipment_check_confirm')" @change="$refs['editableDetailTable'+activeTabKey].validateTable()" dictCode="yes_no_none" style="width: 100%"/> </template> @@ -72,8 +75,7 @@ </a-form-model-item> </a-col> <a-col :span="24"> - <a-form-model-item prop="safetyCheckConfirmComment" :labelCol="labelColLong" - :wrapperCol="wrapperColLong" label="纭鎰忚"> + <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="纭鎰忚"> <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.safetyCheckConfirmComment"/> </a-form-model-item> </a-col> @@ -83,12 +85,13 @@ </a-tab-pane> <a-tab-pane :key="2" tab="璁惧绮惧害妫�鏌�" forceRender - v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='equipment_precision_check'||!Boolean(selectShenpiData.taskDefKey)"> + v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='equipment_precision_check'||selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='equipment_precision_check_confirm'||!Boolean(selectShenpiData.taskDefKey)"> <j-vxe-table ref="editableDetailTable2" rowNumber bordered alwaysEdit keep-source :height="300" :dataSource="detail.precisionCheckList" :columns="detail.precisionCheckColumns"> <template v-slot:precisionCheckResult="props"> - <a-input-number v-model="props.row.precisionCheckResult" :disabled="disableSubmit" + <a-input-number v-model="props.row.precisionCheckResult" + :disabled="disableSubmit||(model.evaluationStatus!='UNDER_EVALUATION'&&model.evaluationStatus!='WAIT_EVALUATION')||(model.evaluationStatus=='UNDER_EVALUATION'&&selectShenpiData.taskDefKey=='safety_equipment_check_confirm')" @blur="$refs['editableDetailTable'+activeTabKey].validateTable()" placeholder="璇疯緭鍏ユ鏌ョ粨鏋�" style="width: 100%"/> </template> @@ -117,12 +120,13 @@ </a-tab-pane> <a-tab-pane :key="3" tab="鍏朵粬妫�鏌�" forceRender - v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='other_check'||!Boolean(selectShenpiData.taskDefKey)"> + v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='other_check'||selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='other_check_confirm'||!Boolean(selectShenpiData.taskDefKey)"> <j-vxe-table ref="editableDetailTable3" rowNumber bordered alwaysEdit keep-source :height="300" :dataSource="detail.otherCheckList" :columns="detail.otherCheckColumns"> <template v-slot:otherCheckResult="props"> - <a-textarea v-model="props.row.otherCheckResult" :rows="1" :disabled="disableSubmit" + <a-textarea v-model="props.row.otherCheckResult" :rows="1" + :disabled="disableSubmit||(model.evaluationStatus!='UNDER_EVALUATION'&&model.evaluationStatus!='WAIT_EVALUATION')||(model.evaluationStatus=='UNDER_EVALUATION'&&selectShenpiData.taskDefKey=='safety_equipment_check_confirm')" @blur="$refs['editableDetailTable'+activeTabKey].validateTable()" placeholder="璇疯緭鍏ユ鏌ョ粨鏋�" :autoSize="false"/> @@ -159,7 +163,8 @@ </a-tabs> </a-col> - <a-col :span="6" v-if="model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'"> + <a-col :span="6" + v-if="model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'&&model.evaluationStatus!='WAIT_EVALUATION'"> <a-tabs> <a-tab-pane tab="缁翠慨宸ョ‘璁�"> <a-row> @@ -349,8 +354,8 @@ imageSrc: null, activeTabKey: 1, validatorRules: { - confirmDealType: [ - { required: true, message: '璇烽�夋嫨閫氳繃鎴栭┏鍥�!' } + safetyCheckConfirmResult: [ + { required: true, message: '璇烽�夋嫨纭绫诲瀷' } ], confirmComment: [ { required: true, message: '璇疯緭鍏ョ‘璁ゆ剰瑙�!' } @@ -541,7 +546,7 @@ .catch(err => { this.$notification.error({ message: '娑堟伅', - description: res.message + description: err.message }) }) }, @@ -577,13 +582,15 @@ this.$refs.form.validate(valid => { if (valid) { that.confirmLoading = that.spinning = true - for (let index = 1; index <= 3; index++) { - if (that.$refs['editableDetailTable' + index]) { - this.model.tableDetailList = that.$refs['editableDetailTable' + index].getTableData() - break + + if (this.model.evaluationStatus == 'UNDER_EVALUATION') { + for (let index = 1; index <= 3; index++) { + if (that.$refs['editableDetailTable' + index]) { + this.model.tableDetailList = that.$refs['editableDetailTable' + index].getTableData() + break + } } } - console.log('model', this.model.tableDetailList) httpAction(this.url.approval, this.model, 'put') .then((res) => { @@ -682,8 +689,29 @@ } </script> -<style scoped> +<style scoped lang="less"> /deep/ .ant-select-dropdown-menu { text-align: left; } + + /deep/ .ant-spin-nested-loading { + height: 100%; + + .ant-spin-container { + height: 100%; + + .ant-form { + height: 100%; + + #outer-row { + height: 100%; + + .scroll-col { + height: 100%; + overflow: auto; + } + } + } + } + } </style> \ No newline at end of file -- Gitblit v1.9.3