| | |
| | | :loading="confirmLoading" |
| | | :disabled="repairOrder.status!='3'||repairOrder.repairOrderUda1==='needPart'||repairOrder.repairOrderUda1==='needSpare'" |
| | | type="primary" |
| | | >报工</a-button> |
| | | >修完</a-button> |
| | | <!-- <a-button |
| | | :style="{marginRight: '8px'}" |
| | | @click="handleRevoke" |
| | |
| | | </a-row> |
| | | </div> |
| | | <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> |
| | | <a-divider |
| | | orientation="center" |
| | | style="font-size: large;font-style: italic;color: #66aeed;" |
| | | > 基础信息 </a-divider> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="6"> |
| | | <a-form-item |
| | |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-divider |
| | | orientation="center" |
| | | style="font-size: large;font-style: italic;color: #66aeed;" |
| | | > 报修领取信息 </a-divider> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="6"> |
| | | <a-form-item |
| | |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-divider |
| | | orientation="center" |
| | | style="font-size: large;font-style: italic;color: #66aeed;" |
| | | > 维修信息 </a-divider> |
| | | <a-row |
| | | :gutter="24" |
| | | > |
| | |
| | | label="维修时长" |
| | | class="hightColor" |
| | | > |
| | | <span v-if="this.repairOrder != null">{{ this.repairOrder.actualHour }}</span> |
| | | <span v-if="this.repairOrder != null">{{this.formattedElapsedTime}}</span> |
| | | |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | |
| | | label="完成人" |
| | | class="hightColor" |
| | | > |
| | | <span v-if="this.repairOrder != null">{{ this.repairOrder.recipientUserId_dictText }}</span> |
| | | <span v-if="this.repairOrder != null">{{ this.repairOrder.recipientUserId}}</span> |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-divider |
| | | orientation="center" |
| | | style="font-size: large;font-style: italic;color: #66aeed;" |
| | | > 等采购件 </a-divider> |
| | | <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.time1 }}</span> |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | | >-</span> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-divider |
| | | orientation="center" |
| | | style="font-size: large;font-style: italic;color: #66aeed;" |
| | | > 等加工件 </a-divider> |
| | | <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.time2 }}</span> |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | | >-</span> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-divider |
| | | orientation="center" |
| | | style="font-size: large;font-style: italic;color: #66aeed;" |
| | | > 验收信息 </a-divider> |
| | | <a-row |
| | | :gutter="24" |
| | | > |
| | |
| | | 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-if="this.repairOrder != null">{{ this.time3 }}</span> |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | |
| | | <script> |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import { putAction } from '@/api/manage' |
| | | import dayjs from 'dayjs' |
| | | import Tooltip from 'ant-design-vue/es/tooltip' |
| | | import RepairOrderActualMaterialList from './moudles/RepairOrderActualMaterialReport' |
| | | import RepairOrderActualWorkHoursList from './moudles/RepairOrderActualHoursReport' |
| | |
| | | Tooltip, |
| | | RepairOrderActualMaterialList, |
| | | RepairOrderActualWorkHoursList, |
| | | RepairOrderFaultAnalysisList |
| | | RepairOrderFaultAnalysisList, |
| | | dayjs |
| | | }, |
| | | props: { |
| | | repairOrder: { |
| | |
| | | dataSource: [], |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 6 }, |
| | | sm: { span: 12 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 18 }, |
| | | sm: { span: 12 }, |
| | | }, |
| | | url: { |
| | | orderStart: "eam/repairOrder/start", |
| | |
| | | handlePartStop:"/eam/repairOrder/handlePartStop", |
| | | getInfo:'/eam/repairOrderFaultAnalysis/list', |
| | | }, |
| | | elapsedTime: 0, // 记录已过去的时间(单位:毫秒) |
| | | formattedElapsedTime: '0秒', |
| | | time1:'0秒', |
| | | time2:'0秒', |
| | | time3:'0秒', |
| | | timer:null // 格式化后的已过去时间 |
| | | } |
| | | }, |
| | | |
| | | mounted() { |
| | | this.$bus.$on('closeDrawer', (data) => { |
| | | this.handleCancel() |
| | | }) |
| | | // this.$bus.$on('closeDrawer', (data) => { |
| | | // this.handleCancel() |
| | | // }) |
| | | this.timer = setInterval(() => { |
| | | this.updateElapsedTime(); |
| | | }, 1000); |
| | | }, |
| | | beforeDestroy() { |
| | | // 在组件销毁前清除计时器 |
| | | clearInterval(this.timer); |
| | | }, |
| | | |
| | | methods: { |
| | |
| | | }, |
| | | //报工 |
| | | handleReportPro(){ |
| | | |
| | | let that = this; |
| | | getAction(that.url.getInfo,{repairOrderId:this.repairOrder.id}).then(res=>{ |
| | | if(res.success){ |
| | |
| | | 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('报工出现异常') |
| | | that.$message.error(res.message) |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false; |
| | |
| | | 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('撤销出现异常') |
| | |
| | | this.repairOrder = res.result.records[0]; |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | updateElapsedTime() { |
| | | const stardand = new Date(); |
| | | if(this.repairOrder.actualEndTime!==null&&this.repairOrder.actualEndTime!==undefined&&this.repairOrder.actualEndTime!==''){ |
| | | this.formattedElapsedTime = this.repairOrder.actualHour+'时'; |
| | | }else if(this.repairOrder.actualStartTime!==null&&this.repairOrder.actualStartTime!==undefined&&this.repairOrder.actualStartTime!==''){ |
| | | const startDateTime = dayjs(this.repairOrder.actualStartTime, { format: 'YYYY-MM-DD HH:mm:ss' }); |
| | | this.elapsedTime = stardand-startDateTime; |
| | | this.formattedElapsedTime = this.formatTime(this.elapsedTime); |
| | | }else{ |
| | | this.formattedElapsedTime="开工后计算时长"; |
| | | } |
| | | if(this.repairOrder.repairOrderUda3!==null&&this.repairOrder.repairOrderUda3!==undefined&&this.repairOrder.repairOrderUda3!==''){ |
| | | this.time1 = this.repairOrder.spareTime+'时'; |
| | | }else if(this.repairOrder.repairOrderUda2!==null&&this.repairOrder.repairOrderUda2!==undefined&&this.repairOrder.repairOrderUda2!==''){ |
| | | const startDateTime1 = dayjs(this.repairOrder.repairOrderUda2, { format: 'YYYY-MM-DD HH:mm:ss' }); |
| | | this.time1 = this.formatTime(stardand-startDateTime1); |
| | | }else{ |
| | | this.time1 = "等采购件后计算时长" |
| | | } |
| | | if(this.repairOrder.repairOrderUda5!==null&&this.repairOrder.repairOrderUda5!==undefined&&this.repairOrder.repairOrderUda5!==''){ |
| | | this.time2 = this.repairOrder.partTime+'时'; |
| | | }else if(this.repairOrder.repairOrderUda4!==null&&this.repairOrder.repairOrderUda4!==undefined&&this.repairOrder.repairOrderUda4!==''){ |
| | | const startDateTime2 = dayjs(this.repairOrder.repairOrderUda4, { format: 'YYYY-MM-DD HH:mm:ss' }); |
| | | this.time2 = this.formatTime(stardand-startDateTime2); |
| | | }else{ |
| | | this.time2 = "等加工件后计算时长" |
| | | } |
| | | if(this.repairOrder.acceptTime!==null&&this.repairOrder.acceptTime!==undefined&&this.repairOrder.acceptTime!==''){ |
| | | this.time3 = this.repairOrder.faultHour+'时'; |
| | | }else if(this.repairOrder.faultTime!==null&&this.repairOrder.faultTime!==undefined&&this.repairOrder.faultTime!==''){ |
| | | const startDateTime3 = dayjs(this.repairOrder.faultTime, { format: 'YYYY-MM-DD HH:mm:ss' }); |
| | | this.time3 = this.formatTime(stardand-startDateTime3); |
| | | }else{ |
| | | this.time3 = "验收后计算时长" |
| | | } |
| | | }, |
| | | formatTime(timeInMilliseconds) { |
| | | // 将毫秒转换为更友好的格式(例如:x小时x分钟x秒) |
| | | // 这里只是一个简单的实现,你可能需要根据需求进行更改 |
| | | const seconds = Math.floor(timeInMilliseconds / 1000); |
| | | const minutes = Math.floor(seconds / 60); |
| | | const hours = Math.floor(minutes / 60); |
| | | |
| | | return `${hours}时 ${minutes % 60}分 ${seconds % 60}秒`; |
| | | }, |
| | | }, |
| | | |
| | | } |