From 5cbba170e270e6f1c99a91e27dbb7951a27d596a Mon Sep 17 00:00:00 2001 From: “linengliang” <vanSuperEnergy@163.com> Date: 星期五, 24 十一月 2023 16:41:32 +0800 Subject: [PATCH] 故障报修验收 --- src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue | 602 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 505 insertions(+), 97 deletions(-) diff --git a/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue b/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue index 6dbccfe..75e3de3 100644 --- a/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue +++ b/src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue @@ -4,29 +4,64 @@ :width="drawerWidth" :visible="visible" @close="handleCancel" - :confirmLoading="confirmLoading" + :loading="confirmLoading" :maskClosable="maskClosable" > <a-card :style="getBackground()"> - <template> - <a-card> <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> <a-row :style="{textAlign:'left'}"> <a-button :style="{marginRight: '8px'}" @click="handleStart" + :loading="confirmLoading" :disabled="repairOrder.status!='2'" type="primary" >寮�宸�</a-button> <a-button :style="{marginRight: '8px'}" - @click="handleReport" - :disabled="repairOrder.status!='3'" + @click="handleSpare" + :loading="confirmLoading" + :disabled="repairOrder.status!=='3' + ||repairOrder.repairOrderUda1==='needSpare'||repairOrder.repairOrderUda1==='needPart' + ||(repairOrder.repairOrderUda2!==null&&repairOrder.repairOrderUda3!==null)" + type="primary" + v-if="repairOrder.repairOrderUda1!=='needSpare'" + >绛夐噰璐欢</a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handleSpareStop" + :loading="confirmLoading" + type="primary" + v-if="repairOrder.repairOrderUda1==='needSpare'" + >绛夐噰璐欢鍋滄</a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handlePart" + :loading="confirmLoading" + :disabled="repairOrder.status!='3' + ||repairOrder.repairOrderUda1==='needPart'||repairOrder.repairOrderUda1==='needSpare' + ||(repairOrder.repairOrderUda4!==null&&repairOrder.repairOrderUda5!==null)" + type="primary" + v-if="repairOrder.repairOrderUda1!=='needPart'" + >绛夊姞宸ヤ欢</a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handlePartStop" + :loading="confirmLoading" + type="primary" + v-if="repairOrder.repairOrderUda1==='needPart'" + >绛夊姞宸ヤ欢鍋滄</a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handleReportPro" + :loading="confirmLoading" + :disabled="repairOrder.status!='3'||repairOrder.repairOrderUda1==='needPart'||repairOrder.repairOrderUda1==='needSpare'" type="primary" >鎶ュ伐</a-button> <a-button :style="{marginRight: '8px'}" @click="handleRevoke" + :loading="confirmLoading" :disabled="repairOrder.status!='4'" type="primary" >鎾ら攢</a-button> @@ -45,6 +80,23 @@ v-if="this.repairOrder != null" class="hightColor" >{{this.repairOrder.status_dictText}}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="缁翠慨鐘舵��" + class="hightColor" + > + <span + v-if="this.repairOrder != null" + class="hightColor" + >{{this.repairOrder.repairOrderUda1_dictText}}</span> <span v-else class="frozenRowClass" @@ -85,11 +137,13 @@ >-</span> </a-form-item> </a-col> + </a-row> + <a-row :gutter="24"> <a-col :span="6"> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" - label="璁惧缂栫爜" + label="缁熶竴缂栫爜" class="hightColor" > <span @@ -102,8 +156,6 @@ >-</span> </a-form-item> </a-col> - </a-row> - <a-row :gutter="24"> <a-col :span="6"> <a-form-item :labelCol="labelCol" @@ -139,30 +191,13 @@ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" - label="宸ユ椂瀹氶" + label="鍏抽敭璁惧?" class="hightColor" > <span v-if="this.repairOrder != null" class="hightColor" - >{{ this.repairOrder.workingHourQuota }}</span> - <span - v-else - class="frozenRowClass" - >-</span> - </a-form-item> - </a-col> - <a-col :span="6"> - <a-form-item - :labelCol="labelCol" - :wrapperCol="wrapperCol" - label="鎵ц浜�" - class="hightColor" - > - <span - v-if="this.repairOrder != null" - class="hightColor" - >{{ this.repairOrder.recipientUserId_dictText}}</span> + >{{ this.repairOrder.specificEquipment_dictText}}</span> <span v-else class="frozenRowClass" @@ -175,10 +210,10 @@ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" - label="寮�濮嬫椂闂�" + label="鎶ヤ慨鏃堕棿" class="hightColor" > - <span v-if="this.repairOrder != null">{{ this.repairOrder.actualStartTime }}</span> + <span v-if="this.repairOrder != null">{{ this.repairOrder.faultTime }}</span> <span v-else class="frozenRowClass" @@ -189,13 +224,10 @@ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" - label="鍒涘缓浜�" + label="鎶ヤ慨浜�" class="hightColor" > - <span - v-if="this.repairOrder != null" - class="hightColor" - >{{ this.repairOrder.createBy}}</span> + <span v-if="this.repairOrder != null">{{ this.repairOrder.errUda2 }}</span> <span v-else class="frozenRowClass" @@ -206,13 +238,222 @@ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" - label="鍒涘缓浜�" + label="棰嗗彇鏃堕棿" class="hightColor" > + <span v-if="this.repairOrder != null">{{ this.repairOrder.createTime }}</span> <span - v-if="this.repairOrder != null" - class="hightColor" - >{{ this.repairOrder.createTime}}</span> + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="棰嗗彇浜�" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.responsibilityName }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + </a-row> + <a-row + :gutter="24" + > + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="寮�宸ユ椂闂�" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.actualStartTime}}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="瀹屽伐鏃堕棿" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.actualEndTime }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="缁翠慨鏃堕暱" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.actualHour }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="瀹屾垚浜�" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.recipientUserId_dictText }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + </a-row> + <a-row + :gutter="24" + > + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="楠屾敹鏃堕棿" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.acceptTime }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="楠屾敹浜�" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.errUda3 }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="鏁呴殰鏃堕暱" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.faultHour }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + </a-row> + <a-row + :gutter="24" + > + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="绛夐噰璐欢寮�濮�" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda2}}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="绛夐噰璐欢缁撴潫" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda3 }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="绱鏃堕棿" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.spareTime }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + </a-row> + <a-row + :gutter="24" + > + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="绛夊姞宸ヤ欢寮�濮�" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda4 }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="绛夊姞宸ヤ欢缁撴潫" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda5 }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="绱鏃堕棿" + class="hightColor" + > + <span v-if="this.repairOrder != null">{{ this.repairOrder.partTime }}</span> <span v-else class="frozenRowClass" @@ -221,47 +462,39 @@ </a-col> </a-row> </div> + </a-card> + <a-card :style="getBackground()"> <a-tabs type="card" defaultActiveKey="1" > - <a-tab-pane - tab='瀹為檯鐢ㄦ枡' + <a-tab-pane + tab='鏁呴殰鍒嗘瀽' key="1" class="hightColor" > - <!-- <actual-material-edit-table - :repairOrderId="repairOrder.id" - :repairOrderStatus="repairOrder.status" - ></actual-material-edit-table> --> - <RepairOrderActualMaterialList :mainId="repairOrder"/> + <RepairOrderFaultAnalysisList :repairOrder="repairOrder"/> </a-tab-pane> <a-tab-pane tab='瀹為檯宸ユ椂' - key="2" - class="hightColor" - > - <!-- <actual-work-hours-edit-table - :repairOrderId="repairOrder.id" - :repairOrderStatus="repairOrder.status" - ></actual-work-hours-edit-table> --> - <RepairOrderActualWorkHoursList :mainId="repairOrder"/> - </a-tab-pane> - <a-tab-pane - tab='鏁呴殰鍒嗘瀽' key="3" class="hightColor" > - <!-- <fault-analysis-edit-table + <RepairOrderActualWorkHoursList :repairOrderId="repairOrder.id" :repairOrderStatus="repairOrder.status" - ></fault-analysis-edit-table> --> - <RepairOrderFaultAnalysisList :mainId="repairOrder"/> + :teamId="repairOrder.teamId" + /> + </a-tab-pane> + <a-tab-pane + tab='瀹為檯鐢ㄦ枡' + key="2" + class="hightColor" + > + <RepairOrderActualMaterialList :mainId="repairOrder" /> </a-tab-pane> </a-tabs> </a-card> - </template> - </a-card> <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> <a-row :style="{textAlign:'right'}"> <a-button @@ -279,20 +512,15 @@ import { JeecgListMixin } from '@/mixins/JeecgListMixin' import { putAction } from '@/api/manage' import Tooltip from 'ant-design-vue/es/tooltip' -import ActualMaterialEditTable from './moudles/ActualMaterialEditTable.vue' -import ActualWorkHoursEditTable from './moudles/ActualWorkHoursEditTable.vue' -import FaultAnalysisEditTable from './moudles/FaultAnalysisEditTable.vue' -import RepairOrderActualMaterialList from './moudles/RepairOrderActualMaterialReport.vue' -import RepairOrderActualWorkHoursList from './moudles/RepairOrderActualHoursReport.vue' +import RepairOrderActualMaterialList from './moudles/RepairOrderActualMaterialReport' +import RepairOrderActualWorkHoursList from './moudles/RepairOrderActualHoursReport' import RepairOrderFaultAnalysisList from './moudles/RepairOrderFaultAnalysisReport.vue' +import { getAction } from '../../../../api/manage' export default { name: 'RepairOrderExcuteDrawer', mixins: [JeecgListMixin], components: { Tooltip, - ActualMaterialEditTable, - ActualWorkHoursEditTable, - FaultAnalysisEditTable, RepairOrderActualMaterialList, RepairOrderActualWorkHoursList, RepairOrderFaultAnalysisList @@ -302,6 +530,14 @@ type: Object, required: false, default: {} + }, + repairOrderId: { + type: String, + default:'', + }, + status:{ + type: String, + default:'', } }, data() { @@ -325,14 +561,20 @@ url: { orderStart: "eam/repairOrder/start", orderReport: "eam/repairOrder/report", - orderRevoke: "eam/repairOrder/revoke" + orderRevoke: "eam/repairOrder/revoke", + reload:"/eam/repairOrder/list", + handleSpare:"/eam/repairOrder/handleSpare", + handlePart:"/eam/repairOrder/handlePart", + handleSpareStop:"/eam/repairOrder/handleSpareStop", + handlePartStop:"/eam/repairOrder/handlePartStop", + getInfo:'/eam/repairOrderFaultAnalysis/list', }, } }, mounted() { this.$bus.$on('closeDrawer', (data) => { - this.visible = false; + this.handleCancel() }) }, @@ -357,40 +599,206 @@ this.visible = false; //this.repairOrder.id = "-1" }, - handleStart(record) { - putAction(this.url.orderStart, this.repairOrder).then(res => { - if (res.result) { - this.$message.success('寮�宸ユ垚鍔�'); - this.repairOrder.status = '3' - this.$emit('loadData'); - } else { - this.$message.error('寮�宸ュ嚭鐜板紓甯�') - } + //寮�宸� + handleStart() { + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '缁翠慨宸ュ崟寮�宸�', + content: '鎻愮ず锛氬紑宸ュ悗鏃犳硶鎾ゅ洖锛岃璋ㄦ厧鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + putAction(that.url.orderStart, that.repairOrder).then(res => { + if (res.result) { + that.$message.success('寮�宸ユ垚鍔�'); + that.repairOrder.status = '3' + that.$emit('loadData'); + that.reload(); + } else { + that.$message.error('寮�宸ュ嚭鐜板紓甯�') + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + //鎶ュ伐 + handleReportPro(){ + let that = this; + getAction(that.url.getInfo,{repairOrderId:this.repairOrder.id}).then(res=>{ + if(res.success){ + if(res.result.records.length===0){ + that.$message.warning("鏁呴殰鍒嗘瀽灏氭湭濉啓锛岃濉啓鍚庡啀鎶ュ伐") + }else if(res.result.records[0].repairOrderFaultAnalysisUda1===null||res.result.records[0].repairOrderFaultAnalysisUda1===undefined||res.result.records[0].repairOrderFaultAnalysisUda1===''){ + that.$message.warning("鏁呴殰鐜拌薄灏氭湭濉啓锛岃濉啓鍚庡啀鎶ュ伐") + }else if(res.result.records[0].faultCause===null||res.result.records[0].faultCause===undefined||res.result.records[0].faultCause===''){ + that.$message.warning("鏁呴殰妫�鏌ュ皻鏈~鍐欙紝璇峰~鍐欏悗鍐嶆姤宸�") + }else if(res.result.records[0].maintenanceMeasures===null||res.result.records[0].maintenanceMeasures===undefined||res.result.records[0].maintenanceMeasures===''){ + that.$message.warning("鏁呴殰缁翠慨灏氭湭濉啓锛岃濉啓鍚庡啀鎶ュ伐") + }else if(res.result.records[0].suggestion===null||res.result.records[0].suggestion===undefined||res.result.records[0].suggestion===''){ + that.$message.warning("鏁呴殰棰勯槻灏氭湭濉啓锛岃濉啓鍚庡啀鎶ュ伐") + }else{ + that.handleReport(); + } + } }) }, handleReport() { - putAction(this.url.orderReport, this.repairOrder).then(res => { - if (res.result) { - this.$message.success('鎶ュ伐鎴愬姛'); - this.repairOrder.status = '4' - this.$emit('loadData'); - } else { - this.$message.error('鎶ュ伐鍑虹幇寮傚父') - } + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '缁翠慨宸ュ崟鎶ュ伐', + content: '鎻愮ず锛氭姤宸ュ悗缁翠慨瀹屽伐锛岃璋ㄦ厧鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + putAction(that.url.orderReport, that.repairOrder).then(res => { + if (res.result) { + that.$message.success('鎶ュ伐鎴愬姛'); + that.repairOrder.status = '4' + that.reload(); + that.$emit('loadData'); + } else { + that.$message.error('鎶ュ伐鍑虹幇寮傚父') + } + }).finally(() => { + that.confirmLoading = false; + // + }) + }, }) }, + //鎾ら攢 handleRevoke() { - putAction(this.url.orderRevoke, this.repairOrder).then(res => { - if (res.result) { - this.$message.success('鎾ら攢鎴愬姛'); - this.repairOrder.status = '3' - this.$emit('loadData'); - } else { - this.$message.error('鎾ら攢鍑虹幇寮傚父') - } + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '瀹屽伐鎾ら攢', + content: '鎻愮ず锛氬畬宸ユ挙閿�鍚庡彲缁х画鎶ュ伐鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + putAction(that.url.orderRevoke, that.repairOrder).then(res => { + if (res.result) { + that.$message.success('鎾ら攢鎴愬姛'); + that.repairOrder.status = '3' + that.$emit('loadData'); + } else { + that.$message.error('鎾ら攢鍑虹幇寮傚父') + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, }) }, - + handleSpare(){ + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '绛夐噰璐欢', + content: '鎻愮ず锛氳鎿嶄綔涓嶅彲鎾ら攢锛岀‘璁ゅ紑濮嬬瓑閲囪喘浠�?', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + putAction(that.url.handleSpare, that.repairOrder).then(res => { + if (res.result) { + that.$message.success('鎿嶄綔鎴愬姛'); + that.reload(); + that.$emit('loadData'); + } else { + that.$message.error('鎿嶄綔鍑虹幇寮傚父') + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + handleSpareStop(){ + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '鍋滄绛夐噰璐欢', + content: '鎻愮ず锛氳鎿嶄綔涓嶅彲鎾ら攢锛岀‘璁ゅ仠姝㈢瓑閲囪喘浠�?', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + putAction(that.url.handleSpareStop, that.repairOrder).then(res => { + if (res.result) { + that.$message.success('鎿嶄綔鎴愬姛'); + that.reload(); + that.$emit('loadData'); + } else { + that.$message.error('鎿嶄綔鍑虹幇寮傚父') + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + handlePart(){ + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '绛夐噰璐欢', + content: '鎻愮ず锛氳鎿嶄綔涓嶅彲鎾ら攢锛岀‘璁ょ瓑閲囪喘浠�?', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + putAction(that.url.handlePart, that.repairOrder).then(res => { + if (res.result) { + that.$message.success('鎿嶄綔鎴愬姛'); + that.reload(); + that.$emit('loadData'); + } else { + that.$message.error('鎿嶄綔鍑虹幇寮傚父') + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + handlePartStop(){ + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '鍋滄绛夐噰璐欢', + content: '鎻愮ず锛氳鎿嶄綔涓嶅彲鎾ら攢锛岀‘璁ゅ仠姝㈢瓑閲囪喘浠�?', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + putAction(that.url.handlePartStop, that.repairOrder).then(res => { + if (res.result) { + that.$message.success('鎿嶄綔鎴愬姛'); + that.reload(); + that.$emit('loadData'); + } else { + that.$message.error('鎿嶄綔鍑虹幇寮傚父') + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + reload(){ + getAction(this.url.reload,{id:this.repairOrder.id}).then(res=>{ + if( res.result.records.length!==0){ + this.repairOrder = res.result.records[0]; + } + }) + } }, } -- Gitblit v1.9.3