From b4feac3bad1287c19ccaf78d11bb312daa09689e Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期二, 22 四月 2025 10:31:14 +0800 Subject: [PATCH] 1、我的待办页面 设备维修 分类审批弹窗功能逻辑开发 2、设备台帐页面设备履历功能开发 3、故障报修页面调整上传图片功能逻辑 --- src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue | 235 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 120 insertions(+), 115 deletions(-) diff --git a/src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue b/src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue index f158743..07f5254 100644 --- a/src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue +++ b/src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue @@ -9,7 +9,7 @@ centered > <a-spin :spinning="spinning"> - <a-form-model :model='tableRowRecord' :rules='validatorRules' :labelCol='labelCol' + <a-form-model ref="form" :model='tableRowRecord' :rules='validatorRules' :labelCol='labelCol' :wrapperCol='wrapperCol'> <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">鎶ヤ慨鍩虹淇℃伅</a-divider> @@ -25,18 +25,13 @@ </a-form-model-item> </a-col> <a-col :span='threeColSpan'> - <a-form-model-item label='鍗曟嵁鐘舵��'> - <a-input :readOnly='inputReadOnly' v-model='tableRowRecord.repairStatus_dictText'/> + <a-form-model-item label='缁翠慨璐熻矗浜�'> + <a-input :readOnly='inputReadOnly' v-model='tableRowRecord.repairer'/> </a-form-model-item> </a-col> </a-row> <a-row> - <a-col :span='threeColSpan'> - <a-form-model-item label='缁翠慨璐熻矗浜�'> - <a-input :readOnly='inputReadOnly' v-model='tableRowRecord.repairer'/> - </a-form-model-item> - </a-col> <a-col :span="threeColSpan"> <a-form-model-item label="鏁呴殰寮�濮嬫椂闂�"> <a-input :readOnly='inputReadOnly' v-model="tableRowRecord.faultStartTime"/> @@ -54,7 +49,8 @@ <a-row> <a-col :span='threeColSpan*3'> <a-form-model-item label='鎶ヤ慨鍥剧墖' :labelCol='labelColLong' :wrapperCol='wrapperColLong'> - <j-image-upload v-model="tableRowRecord.imageFiles" disabled :is-multiple="true" :number="3"/> + <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" disabled :number="3" + v-model="tableRowRecord.reportImageFiles"/> </a-form-model-item> </a-col> </a-row> @@ -63,37 +59,40 @@ <a-tabs v-model="activeTabKey"> <a-tab-pane key="1" tab="棰嗙敤澶囦欢"> - <a-form-model ref="form" :model="approveData" :rules="validatorRules" :labelCol='labelCol' - :wrapperCol='wrapperCol'> - <a-row> + <a-row> + <a-col :span="twoColSpan*2"> + <a-form-model-item label="鏄惁闇�瑕侀鐢ㄥ浠�" prop="isUseSpare"> + <a-radio-group v-model="tableRowRecord.isUseSpare"> + <a-radio :value="1">鏄�</a-radio> + <a-radio :value="0">鍚�</a-radio> + </a-radio-group> + </a-form-model-item> + </a-col> + + <template v-if="tableRowRecord.isUseSpare===0"> <a-col :span="twoColSpan*2"> - <a-form-model-item label="鏄惁闇�瑕侀鐢ㄥ浠�" prop="status"> - <a-radio-group v-model="approveData.status"> - <a-radio :value="1">鏄�</a-radio> - <a-radio :value="0">鍚�</a-radio> - </a-radio-group> + <a-form-model-item label="鏁呴殰鍘熷洜" prop="faultReason"> + <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_REPAIR'" + v-model="tableRowRecord.faultReason" rows="4" + placeholder="璇疯緭鍏ユ晠闅滃師鍥�"/> </a-form-model-item> </a-col> - - <template v-if="approveData.status===0"> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="鏁呴殰鍘熷洜" prop="faultReason"> - <a-input v-model="approveData.faultReason" rows="4" placeholder="璇疯緭鍏ユ晠闅滃師鍥�"/> - </a-form-model-item> - </a-col> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="缁翠慨缁撴灉鎻忚堪" prop="repairResultDescription"> - <a-textarea v-model="approveData.repairResultDescription" placeholder="璇疯緭鍏ョ淮淇粨鏋滄弿杩�"/> - </a-form-model-item> - </a-col> - <a-col :span="twoColSpan*2"> - <a-form-model-item label="缁翠慨鍥剧墖"> - <j-image-upload v-model="approveData.imageFiles" :is-multiple="true" :number="3"/> - </a-form-model-item> - </a-col> - </template> - </a-row> - </a-form-model> + <a-col :span="twoColSpan*2"> + <a-form-model-item label="缁翠慨缁撴灉鎻忚堪" prop="repairDescription"> + <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_REPAIR'" + v-model="tableRowRecord.repairDescription" + placeholder="璇疯緭鍏ョ淮淇粨鏋滄弿杩�"/> + </a-form-model-item> + </a-col> + <a-col :span="twoColSpan*2"> + <a-form-model-item label="缁翠慨鍥剧墖"> + <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3" + :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_REPAIR'" + v-model="tableRowRecord.imageFiles"/> + </a-form-model-item> + </a-col> + </template> + </a-row> </a-tab-pane> <a-tab-pane key='2' tab='娴佺▼鑺傜偣'> @@ -113,33 +112,55 @@ </a-tab-pane> <a-tab-pane key='3' tab='娴佺▼鍥�'> - <img :src="imageSrc" alt="Fetched Image"/>--> + <img :src="imageSrc" alt="Fetched Image"/> </a-tab-pane> </a-tabs> - <template> + <template v-if="isDisplayConfirmSpare"> <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">绠$悊鍛橀鐢ㄥ浠� </a-divider> <a-row> - <a-col :span="twoColSpan"> - <a-form-model-item prop="confirmDealType" label="澶勭悊绫诲瀷"> - <j-dict-select-tag type='radio' v-model='tableRowRecord.confirmDealType' dictCode='approved_rejected' - :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'" - placeholder="璇烽�夋嫨澶勭悊绫诲瀷"/> - </a-form-model-item> - </a-col> - - <a-col :span="twoColSpan"> - <a-form-model-item prop="confirmComment" label="澶勭悊鎰忚"> - <a-textarea placeholder="璇疯緭鍏ュ鐞嗘剰瑙�" - :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'" - v-model="tableRowRecord.confirmComment"/> + <a-col :span="twoColSpan*2"> + <a-form-model-item prop="sparePartDescription" label="澶囦欢鎻忚堪"> + <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='WAIT_SPARES'" + v-model="tableRowRecord.sparePartDescription"/> </a-form-model-item> </a-col> </a-row> </template> + <template v-if="tableRowRecord.sparePartDescription"> + <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">缁翠慨缁撴灉涓婃姤</a-divider> + <a-row> + <a-col :span="twoColSpan*2"> + <a-form-model-item label="鏁呴殰鍘熷洜" prop="faultReason"> + <a-input :readOnly="disableSubmit||isDisableSubmitRepairResult" v-model="tableRowRecord.faultReason" + rows="4" placeholder="璇疯緭鍏ユ晠闅滃師鍥�"/> + </a-form-model-item> + </a-col> + </a-row> + + <a-row> + <a-col :span="twoColSpan*2"> + <a-form-model-item label="缁翠慨缁撴灉鎻忚堪" prop="repairDescription"> + <a-textarea :readOnly="disableSubmit||isDisableSubmitRepairResult" + v-model="tableRowRecord.repairDescription" + placeholder="璇疯緭鍏ョ淮淇粨鏋滄弿杩�"/> + </a-form-model-item> + </a-col> + </a-row> + + <a-row> + <a-col :span="twoColSpan*2"> + <a-form-model-item label="缁翠慨鍥剧墖"> + <lx-upload :disabled="disableSubmit||isDisableSubmitRepairResult" :returnUrl="false" :isMultiple="true" + file-type="image" :number="3" + v-model="tableRowRecord.imageFiles"/> + </a-form-model-item> + </a-col> + </a-row> + </template> </a-form-model> </a-spin> </a-modal> @@ -162,7 +183,6 @@ data() { return { title: '', - form: this.$form.createForm(this), threeColSpan: 8, twoColSpan: 12, inputReadOnly: true, @@ -189,13 +209,16 @@ sm: { span: 20 } }, validatorRules: { - status: [ + isUseSpare: [ { required: true, message: '璇烽�夋嫨鏄惁闇�瑕侀鐢ㄥ浠�' } + ], + sparePartDescription: [ + { required: true, message: '璇疯緭鍏ュ浠舵弿杩�' } ], faultReason: [ { required: true, message: '璇疯緭鍏ユ晠闅滃師鍥�' } ], - repairResultDescription: [ + repairDescription: [ { required: true, message: '璇疯緭鍏ョ淮淇粨鏋滄弿杩�' } ] }, @@ -206,8 +229,16 @@ queryBomDataById: '/eam/eamRepairOrder/queryById', diagramView: '/assign/flow/diagramView', queryHisTaskList: '/assign/flow/queryHisTaskList', - approve: '/activit/assign/file/approve' + approve: '/eam/eamRepairOrder/perform' } + } + }, + computed: { + isDisplayConfirmSpare() { + return ['WAIT_SPARES', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) + }, + isDisableSubmitRepairResult() { + return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) } }, methods: { @@ -249,12 +280,15 @@ const that = this const param = { id: record.dataId } this.tableRowRecord = {} - this.approveData = { status: 0 } this.activeTabKey = '1' getAction(this.url.queryBomDataById, param) .then((res => { if (res.success) { - that.tableRowRecord = res.result + that.tableRowRecord = Object.assign({}, res.result, { + isUseSpare: res.result.isUseSpare === null ? 0 : res.result.isUseSpare, + imageFiles: JSON.parse(res.result.imageFiles), + reportImageFiles: JSON.parse(res.result.reportImageFiles) + }) console.log('this.tableRowRecord----->', that.tableRowRecord) } })) @@ -269,27 +303,34 @@ this.$refs.form.validate(valid => { if (valid) { that.confirmLoading = true + const { isUseSpare, faultReason, repairDescription, sparePartDescription, imageFiles, equipmentId } = that.tableRowRecord + const { dataId, id, procInstId, taskDefKey, variables } = that.selectShenpiData + const flowTaskVo = {} - flowTaskVo.status = that.approveData.status - flowTaskVo.approveContent = flowTaskVo.comment = that.approveData.approveContent - flowTaskVo.dataId = this.selectShenpiData.dataId - flowTaskVo.taskId = this.selectShenpiData.id - flowTaskVo.userId = flowTaskVo.assignee = this.selectShenpiData.assignee - flowTaskVo.instanceId = this.selectShenpiData.procInstId - flowTaskVo.targetKey = this.selectShenpiData.taskDefKey - flowTaskVo.values = this.selectShenpiData.variables + flowTaskVo.isUseSpare = isUseSpare + flowTaskVo.faultReason = faultReason + flowTaskVo.repairDescription = repairDescription + flowTaskVo.sparePartDescription = sparePartDescription + flowTaskVo.imageFilesResult = imageFiles + flowTaskVo.equipmentId = equipmentId + flowTaskVo.id = dataId + flowTaskVo.dataId = dataId + flowTaskVo.taskId = id + flowTaskVo.instanceId = procInstId + flowTaskVo.targetKey = taskDefKey + flowTaskVo.values = variables console.log('琛ㄥ崟鎻愪氦鏁版嵁', flowTaskVo) - // httpAction(this.url.approve, flowTaskVo, 'post') - // .then((res) => { - // if (res.success) { - // that.$message.success(res.message) - // that.$emit('ok') - // } else { - // that.$message.warning(res.message) - // } - // }).finally(() => { - // that.confirmLoading = false - // }) + httpAction(this.url.approve, flowTaskVo, 'post') + .then((res) => { + if (res.success) { + that.$message.success(res.message) + that.$emit('ok') + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = false + }) } else { return false } @@ -298,44 +339,8 @@ handCancel() { this.visible = false - this.$refs.form.clearValidate() + if (this.$refs.form) this.$refs.form.clearValidate() } } } -</script> -<style scoped> - .btn-custom { - background-color: #4CAF50; /* 缁胯壊鑳屾櫙 */ - color: #fff; /* 鐧借壊鏂囧瓧 */ - } - - .left_qiu { - position: absolute; - left: -74px; - top: 0; - width: 54px; - border-radius: 50%; - height: 54px; - font-size: 13px; - margin: auto; - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: center; - background: #0099ff; - transform: translate(0, 0); - } - - /deep/ .ant-timeline-item-tail { - left: -29px !important; - } - - .left_qiu span { - width: 3em; - display: block; - color: #fff; - text-align: center; - } - - @import '~@assets/less/common.less'; -</style> \ No newline at end of file +</script> \ No newline at end of file -- Gitblit v1.9.3