From 3de531b7986ebec5b022d2360fbb930aa54a1a80 Mon Sep 17 00:00:00 2001 From: cuikaidong <ckd2942379034@163.com> Date: 星期二, 29 七月 2025 14:18:41 +0800 Subject: [PATCH] 设备归还修改 --- src/views/eam/dispose/EamEquipmentLeanOutList.vue | 35 +++++ src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue | 2 src/views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue | 32 ++-- src/views/flowable/workflow/FlowTodo.vue | 15 ++ src/views/flowable/workflow/leanOut/EquipmentReturnApprovalModal.vue | 226 +++++++++++++++++++++++++++++++++++++ 5 files changed, 292 insertions(+), 18 deletions(-) diff --git a/src/views/eam/dispose/EamEquipmentLeanOutList.vue b/src/views/eam/dispose/EamEquipmentLeanOutList.vue index c338f64..d26da1c 100644 --- a/src/views/eam/dispose/EamEquipmentLeanOutList.vue +++ b/src/views/eam/dispose/EamEquipmentLeanOutList.vue @@ -145,7 +145,14 @@ </a-menu> </a-dropdown> </template> - <template v-else> + <template v-if="record.leanStatus === 'WAIT_RETURN'"> + <a-popconfirm title='纭畾褰掕繕鍚�?' @confirm='() => equipmentReturn(record.id)'> + <a>褰掕繕</a> + </a-popconfirm> + <a-divider type='vertical' /> + <a @click='handleDetail(record)'>璇︽儏</a> + </template> + <template v-if="record.leanStatus !== 'WAIT_RETURN' && record.leanStatus !== 'WAIT_SUBMIT'"> <a href="javascript:;" @click="handleDetail(record)" @@ -291,11 +298,37 @@ delete: '/eam/eamEquipmentLeanOut/delete', deleteBatch: '/eam/eamEquipmentLeanOut/deleteBatch', submit: '/eam/eamEquipmentLeanOut/submit', + equipmentReturn: '/eam/eamEquipmentLeanOut/equipmentReturn', } } }, computed: {}, methods: { + equipmentReturn(id) { + if (!this.url.equipmentReturn) { + this.$message.error('璇疯缃畊rl.submit灞炴��!') + return + } + let that = this + getAction(that.url.equipmentReturn, { id: id }).then((res) => { + if (res.success) { + //閲嶆柊璁$畻鍒嗛〉闂 + that.reCalculatePage(1) + // that.$message.success(res.message); + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + } else { + // that.$message.warning(res.message); + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + }, handleSubmit(id) { if (!this.url.submit) { this.$message.error('璇疯缃畊rl.submit灞炴��!') diff --git a/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue b/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue index 038abde..db06d13 100644 --- a/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue +++ b/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue @@ -19,7 +19,7 @@ </a-col> <a-col :span="12"> - <a-form-model-item prop="faultName" label="鏁呴殰绠�绉�"> + <a-form-model-item prop="faultName" label="椹卞姩绫诲瀷"> <a-select placeholder="璇烽�夋嫨鏁呴殰绠�绉�" v-model="model.faultName" @change="handleFaultNameChange"> <a-select-option v-for="item in faultReasonList" :key="item.faultName"> {{ item.faultName }} diff --git a/src/views/flowable/workflow/FlowTodo.vue b/src/views/flowable/workflow/FlowTodo.vue index c5924f6..1dd644c 100644 --- a/src/views/flowable/workflow/FlowTodo.vue +++ b/src/views/flowable/workflow/FlowTodo.vue @@ -242,6 +242,10 @@ ref='equipmentLeanOutApprovalModelRef' @searchReset='searchReset' /> + <equipment-return-approval-modal + ref='equipmentReturnApprovalModelRef' + @searchReset='searchReset' + /> <second-maintenance-approval-modal ref='secondMaintenanceApprovalModal' @@ -307,6 +311,7 @@ import AssignEquipmentFileStreamHandle from '@views/flowable/workflow/assignEquipmentFileStream/AssignEquipmentFileStreamHandle.vue' import OutBoundOrderHandle from '@views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue' import EquipmentLeanOutApprovalModal from '@views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue' +import EquipmentReturnApprovalModal from '@views/flowable/workflow/leanOut/EquipmentReturnApprovalModal.vue' import SecondMaintenanceApprovalModal from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue' import ThirdMaintenanceApprovalModal from '@views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue' import EquipmentSealUpApprovalModal from '@views/flowable/workflow/sealUp/EquipmentSealUpApprovalModal.vue' @@ -334,6 +339,7 @@ RepairOrderApprovalModal, InspectionOrderHandle, EquipmentLeanOutApprovalModal, + EquipmentReturnApprovalModal, SecondMaintenanceApprovalModal, ThirdMaintenanceApprovalModal, OutBoundOrderHandle, @@ -512,6 +518,9 @@ case 'equipment_lean_out': this.handleEquipmentLeanOut(item) break + case 'equipment_return': + this.handleEquipmentReturn(item) + break case 'second_maintenance': this.handleSecondMaintenance(item) break @@ -666,6 +675,12 @@ this.$refs.equipmentLeanOutApprovalModelRef.handleDetail(item) this.$refs.equipmentLeanOutApprovalModelRef.disableSubmit = false }, + handleEquipmentReturn(item) { + this.$refs.equipmentReturnApprovalModelRef.visible = true + this.$refs.equipmentReturnApprovalModelRef.title = item.name + this.$refs.equipmentReturnApprovalModelRef.handleDetail(item) + this.$refs.equipmentReturnApprovalModelRef.disableSubmit = false + }, handleSecondMaintenance(item) { if (item && item.dataId) { this.selectSecondMaintenanceData = Object.assign({}, item) diff --git a/src/views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue b/src/views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue index 8256df4..7bde367 100644 --- a/src/views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue +++ b/src/views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue @@ -52,7 +52,7 @@ </a-form-model-item> </a-col> </a-row> - <div v-if="approvalDisable"> + <div v-if="confirmDisable"> <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 绠$悊鍛樺鎵� </a-divider> <a-row :gutter="24"> @@ -63,26 +63,26 @@ </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalComment" label="瀹℃壒鎰忚"> - <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.approvalComment" + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalComment" label="纭鎰忚"> + <a-textarea placeholder="璇疯緭鍏ョ‘璁ゆ剰瑙�" v-model="model.confirmComment" :disabled="disableSubmit || returnDisable" /> </a-form-model-item> </a-col> </a-row> </div> - <div v-if="returnDisable"> - <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 褰掕繕淇℃伅 - </a-divider> - <a-row :gutter="24"> - <a-col :span="24"> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="returnComment" - label="褰掕繕澶囨敞"> - <a-textarea placeholder="璇疯緭鍏ュ綊杩樺娉�" v-model="model.returnComment" - :disabled="disableSubmit || confirmDisable" /> - </a-form-model-item> - </a-col> - </a-row> - </div> +<!-- <div v-if="returnDisable">--> +<!-- <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 褰掕繕淇℃伅--> +<!-- </a-divider>--> +<!-- <a-row :gutter="24">--> +<!-- <a-col :span="24">--> +<!-- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="returnComment"--> +<!-- label="褰掕繕澶囨敞">--> +<!-- <a-textarea placeholder="璇疯緭鍏ュ綊杩樺娉�" v-model="model.returnComment"--> +<!-- :disabled="disableSubmit || confirmDisable" />--> +<!-- </a-form-model-item>--> +<!-- </a-col>--> +<!-- </a-row>--> +<!-- </div>--> <div v-if="confirmDisable"> <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 绠$悊鍛樼‘璁� </a-divider> diff --git a/src/views/flowable/workflow/leanOut/EquipmentReturnApprovalModal.vue b/src/views/flowable/workflow/leanOut/EquipmentReturnApprovalModal.vue new file mode 100644 index 0000000..8f7f0d8 --- /dev/null +++ b/src/views/flowable/workflow/leanOut/EquipmentReturnApprovalModal.vue @@ -0,0 +1,226 @@ +<template> + <j-modal + :title="title" + :width="800" + :visible="visible" + :confirmLoading="confirmLoading" + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" + switchFullscreen + @ok="handleOk" + @cancel="handleCancel" + centered + cancelText="鍏抽棴"> + + <a-spin :spinning="spinning"> + <a-form-model ref="form" :model="model" :rules="validatorRules"> + <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 鍊熺敤淇℃伅 + </a-divider> + <a-row :gutter="24"> + <a-col :span="12"> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code" label="鍗曟嵁鍙�"> + <a-input v-model="model.code" disabled /> + </a-form-model-item> + </a-col> + <a-col :span="12"> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="璁惧缂栫爜"> + <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" + v-model="model.equipmentId" disabled></lx-search-equipment-select> + </a-form-model-item> + </a-col> + </a-row> + <a-row :guitter="24"> + <a-col :span="12"> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leanDepartId_dictText" label="鍊熷叆杞﹂棿"> + <a-input v-model="model.leanDepartId_dictText" disabled /> + </a-form-model-item> + </a-col> + <a-col :span="12"> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leanPerson_dictText" label="鍊熺敤浜�"> + <a-input v-model="model.leanPerson_dictText" disabled /> + </a-form-model-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="12"> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leanReason" label="鍊熺敤鍘熷洜"> + <a-textarea v-model="model.leanReason" disabled /> + </a-form-model-item> + </a-col> + <a-col :span="12"> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark" label="澶囨敞"> + <a-textarea v-model="model.remark" disabled /> + </a-form-model-item> + </a-col> + </a-row> + <div v-if="confirmDisable"> + <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 绠$悊鍛樼‘璁� + </a-divider> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmComment" + label="纭鎰忚"> + <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.confirmComment" + :disabled="disableSubmit || completionDisable" /> + </a-form-model-item> + </a-col> + </a-row> + </div> + </a-form-model> + </a-spin> + </j-modal> +</template> + +<script> +import { getAction, httpAction } from '@/api/manage' +import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' + +export default { + name: 'EquipmentLeanOutApprovalModal', + components: { + LxSearchEquipmentSelect + }, + props: { + selectShenpiData: { + type: Object + } + }, + data() { + return { + title: '鎿嶄綔', + visible: false, + editable: false, + model: {}, + treeData: [], + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 } + }, + labelColLong: { + xs: { span: 24 }, + sm: { span: 2 } + }, + wrapperColLong: { + xs: { span: 24 }, + sm: { span: 21 } + }, + confirmLoading: false, + spinning: false, + imageSrc: null, + validatorRules: { + approvalDealType: [ + { required: true, message: '璇烽�夋嫨閫氳繃鎴栭┏鍥�!' } + ], + approvalComment: [ + { required: true, message: '璇疯緭鍏ュ鎵规剰瑙�!' } + ], + returnComment: [ + { required: true, message: '璇疯緭鍏ュ綊杩樺娉�!' } + ], + confirmComment: [ + { required: true, message: '璇疯緭鍏ョ‘璁ゆ剰瑙�!' } + ] + }, + url: { + queryById: '/eam/eamEquipmentLeanOut/queryById', + approval: '/eam/eamEquipmentLeanOut/approval', + loadProductionOptions: '/mdc/mdcProduction/loadProductionTreeOptions' + }, + disableSubmit: false + } + }, + created() { + this.loadAllProductionTree() + }, + computed: { + approvalDisable: function() { + return ['WAIT_APPROVAL', 'WAIT_RETURN', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.model.leanStatus) + }, + returnDisable: function() { + return ['WAIT_RETURN', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.model.leanStatus) + }, + confirmDisable: function() { + return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.model.leanStatus) + }, + completionDisable: function() { + return ['COMPLETE'].includes(this.model.leanStatus) + } + }, + methods: { + async handleDetail(item) { + this.initParams() + this.model = {} + let res = await getAction(this.url.queryById, { id: item.dataId }) + this.model = Object.assign({}, res.result) + this.model.dataId = item.dataId + this.model.taskId = item.id + this.model.userId = item.assignee + this.model.instanceId = item.procInstId + this.model.values = item.variables + this.spinning = false; + }, + + recordDetail(record) { + console.log('record', record) + this.initParams() + this.model = Object.assign({}, record) + }, + + initParams() { + this.visible = true + this.spinning = true + }, + + async handleOk() { + const that = this + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = that.spinning = true + let httpurl = this.url.approval + let method = 'put' + httpAction(httpurl, this.model, method).then((res) => { + if (res.success) { + that.$message.success(res.message) + that.$emit('searchReset') + that.close() + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = that.spinning = false + }) + } else { + return false + } + }) + }, + handleCancel() { + this.close() + }, + + close() { + this.$emit('close') + this.visible = false + this.$refs.form.clearValidate() + }, + loadAllProductionTree() { + //鍔犺浇杞﹂棿閫夋嫨鏍� + getAction(this.url.loadProductionOptions).then(res => { + if (res.success) { + this.treeData = [...res.result] + } else { + that.$message.warning(res.message) + } + }) + } + } +} +</script> + +<style lang="less" scoped> + +</style> \ No newline at end of file -- Gitblit v1.9.3