| | |
| | | :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" |
| | | :disabled="repairOrder.status!='2'" |
| | | type="primary" |
| | | >开工</a-button> |
| | | <a-button |
| | | :style="{marginRight: '8px'}" |
| | | @click="handleReport" |
| | | :disabled="repairOrder.status!='3'" |
| | | type="primary" |
| | | >报工</a-button> |
| | | <a-button |
| | | <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="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> |
| | | </a-row> |
| | | </div> |
| | | <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="6"> |
| | | <a-form-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="状态" |
| | | >撤销</a-button> --> |
| | | </a-row> |
| | | </div> |
| | | <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> |
| | | <a-form labelAlign="left"> |
| | | <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" |
| | | class="hightColor" |
| | | > |
| | | <span |
| | | 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="维修工单号" |
| | | >{{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" |
| | | > |
| | | <span |
| | | v-if="this.repairOrder != null" |
| | | class="hightColor" |
| | | >{{ this.repairOrder.num }}</span> |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | | >-</span> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :span="6"> |
| | | <a-form-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="责任班组" |
| | | >{{this.repairOrder.repairOrderUda1_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" |
| | | > |
| | | <span |
| | | v-if="this.repairOrder != null" |
| | | class="hightColor" |
| | | >{{ this.repairOrder.teamId_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="设备编码" |
| | | >{{ this.repairOrder.num }}</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" |
| | | > |
| | | <span |
| | | v-if="this.repairOrder != null" |
| | | class="hightColor" |
| | | >{{ this.repairOrder.equipmentNum }}</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="设备名称" |
| | | >{{ this.repairOrder.teamId_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" |
| | | class="hightColor" |
| | | > |
| | | <span |
| | | v-if="this.repairOrder != null" |
| | | class="hightColor" |
| | | >{{ this.repairOrder.equipmentName}}</span> |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | | >-</span> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :span="6"> |
| | | <a-form-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="设备型号" |
| | | >{{ this.repairOrder.equipmentNum }}</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" |
| | | > |
| | | <span v-if="this.repairOrder != null">{{ this.repairOrder.equipmentModel }}</span> |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | | >-</span> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :span="6"> |
| | | <a-form-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="工时定额" |
| | | >{{ this.repairOrder.equipmentName}}</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.equipmentModel }}</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" |
| | | > |
| | | <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> |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | | >-</span> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row |
| | | hidden |
| | | :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" |
| | | class="hightColor" |
| | | >{{ this.repairOrder.createBy}}</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.createTime}}</span> |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | | >-</span> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | </div> |
| | | <a-tabs |
| | | type="card" |
| | | defaultActiveKey="1" |
| | | > |
| | | <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" /> |
| | | </a-tab-pane> |
| | | <a-tab-pane |
| | | tab='实际工时' |
| | | key="2" |
| | | class="hightColor" |
| | | > |
| | | <RepairOrderActualWorkHoursList |
| | | :repairOrderId="repairOrder.id" |
| | | :repairOrderStatus="repairOrder.status" |
| | | :teamId="repairOrder.teamId" |
| | | /> |
| | | </a-tab-pane> |
| | | <a-tab-pane |
| | | tab='故障分析' |
| | | key="3" |
| | | class="hightColor" |
| | | > |
| | | <!-- <fault-analysis-edit-table |
| | | :repairOrderId="repairOrder.id" |
| | | :repairOrderStatus="repairOrder.status" |
| | | ></fault-analysis-edit-table> --> |
| | | <RepairOrderFaultAnalysisList :mainId="repairOrder" /> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-card> |
| | | </template> |
| | | >{{ this.repairOrder.specificEquipment_dictText}}</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.faultTime }}</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.errUda2 }}</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.createTime }}</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.responsibilityName }}</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.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.formattedElapsedTime}}</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}}</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.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"> |
| | | <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.time3 }}</span> |
| | | <span |
| | | v-else |
| | | class="frozenRowClass" |
| | | >-</span> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | </a-card> |
| | | <a-card :style="getBackground()"> |
| | | <a-tabs |
| | | type="card" |
| | | defaultActiveKey="1" |
| | | > |
| | | <a-tab-pane |
| | | tab='故障分析' |
| | | key="1" |
| | | class="hightColor" |
| | | > |
| | | <RepairOrderFaultAnalysisList :repairOrder="repairOrder" /> |
| | | </a-tab-pane> |
| | | <a-tab-pane |
| | | tab='实际工时' |
| | | key="3" |
| | | class="hightColor" |
| | | > |
| | | <RepairOrderActualWorkHoursList |
| | | :repairOrderId="repairOrder.id" |
| | | :repairOrderStatus="repairOrder.status" |
| | | :teamId="repairOrder.teamId" |
| | | /> |
| | | </a-tab-pane> |
| | | <a-tab-pane |
| | | tab='实际用料' |
| | | key="2" |
| | | class="hightColor" |
| | | > |
| | | <RepairOrderActualMaterialList :mainId="repairOrder" /> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-card> |
| | | <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> |
| | | <a-row :style="{textAlign:'right'}"> |
| | |
| | | <script> |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import { putAction } from '@/api/manage' |
| | | import dayjs from 'dayjs' |
| | | 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 RepairOrderFaultAnalysisList from './moudles/RepairOrderFaultAnalysisReport.vue' |
| | | import RepairOrderActualMaterialList from './moudles/RepairOrderActualMaterialReport' |
| | | import RepairOrderActualWorkHoursList from './moudles/RepairOrderActualHoursReport' |
| | | import RepairOrderFaultAnalysisList from './moudles/RepairOrderFaultAnalysisReport' |
| | | import { getAction } from '../../../../api/manage' |
| | | export default { |
| | | name: 'RepairOrderExcuteDrawer', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | Tooltip, |
| | | ActualMaterialEditTable, |
| | | ActualWorkHoursEditTable, |
| | | FaultAnalysisEditTable, |
| | | RepairOrderActualMaterialList, |
| | | RepairOrderActualWorkHoursList, |
| | | RepairOrderFaultAnalysisList |
| | | RepairOrderFaultAnalysisList, |
| | | dayjs |
| | | }, |
| | | props: { |
| | | repairOrder: { |
| | | type: Object, |
| | | required: false, |
| | | default: {} |
| | | }, |
| | | repairOrderId: { |
| | | type: String, |
| | | default: '', |
| | | }, |
| | | status: { |
| | | type: String, |
| | | default: '', |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | dataSource: [], |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 6 }, |
| | | sm: { span: 7 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 18 }, |
| | | sm: { span: 17 }, |
| | | }, |
| | | 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', |
| | | }, |
| | | elapsedTime: 0, // 记录已过去的时间(单位:毫秒) |
| | | formattedElapsedTime: '0秒', |
| | | time1: '0秒', |
| | | time2: '0秒', |
| | | time3: '0秒', |
| | | timer: null // 格式化后的已过去时间 |
| | | } |
| | | }, |
| | | |
| | |
| | | this.$bus.$on('closeDrawer', (data) => { |
| | | this.handleCancel() |
| | | }) |
| | | this.timer = setInterval(() => { |
| | | this.updateElapsedTime(); |
| | | }, 1000); |
| | | }, |
| | | beforeDestroy() { |
| | | // 在组件销毁前清除计时器 |
| | | clearInterval(this.timer); |
| | | }, |
| | | |
| | | methods: { |
| | |
| | | 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() { |
| | | that.confirmLoading = true; |
| | | 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('开工出现异常') |
| | | } |
| | |
| | | }, |
| | | }) |
| | | }, |
| | | |
| | | // 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('报工出现异常') |
| | | // } |
| | | // }) |
| | | // }, |
| | | |
| | | //报工 |
| | | 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() { |
| | | const that = this; |
| | | that.confirmLoading = true; |
| | | this.$confirm({ |
| | | title: '维修工单报工', |
| | | content: '提示:报工后维修完工,请谨慎操作!', |
| | | okText: '确认', |
| | | cancelText: '取消', |
| | | onOk() { |
| | | that.confirmLoading = true; |
| | | 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; |
| | |
| | | }, |
| | | }) |
| | | }, |
| | | // 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('撤销出现异常') |
| | | // } |
| | | // }) |
| | | // }, |
| | | |
| | | //撤销 |
| | | handleRevoke() { |
| | | const that = this; |
| | | that.confirmLoading = true; |
| | | this.$confirm({ |
| | | title: '完工撤销', |
| | | content: '提示:完工撤销后可继续报工操作!', |
| | | okText: '确认', |
| | | cancelText: '取消', |
| | | onOk() { |
| | | that.confirmLoading = true; |
| | | 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('撤销出现异常') |
| | |
| | | }, |
| | | }) |
| | | }, |
| | | handleSpare() { |
| | | const that = this; |
| | | this.$confirm({ |
| | | title: '等采购件', |
| | | content: '提示:该操作不可撤销,确认开始等采购件?', |
| | | okText: '确认', |
| | | cancelText: '取消', |
| | | onOk() { |
| | | that.confirmLoading = true; |
| | | 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; |
| | | this.$confirm({ |
| | | title: '停止等采购件', |
| | | content: '提示:该操作不可撤销,确认停止等采购件?', |
| | | okText: '确认', |
| | | cancelText: '取消', |
| | | onOk() { |
| | | that.confirmLoading = true; |
| | | 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; |
| | | this.$confirm({ |
| | | title: '等采购件', |
| | | content: '提示:该操作不可撤销,确认等采购件?', |
| | | okText: '确认', |
| | | cancelText: '取消', |
| | | onOk() { |
| | | that.confirmLoading = true; |
| | | 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; |
| | | this.$confirm({ |
| | | title: '停止等采购件', |
| | | content: '提示:该操作不可撤销,确认停止等采购件?', |
| | | okText: '确认', |
| | | cancelText: '取消', |
| | | onOk() { |
| | | that.confirmLoading = true; |
| | | 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]; |
| | | } |
| | | }) |
| | | }, |
| | | 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}秒`; |
| | | }, |
| | | }, |
| | | |
| | | } |
| | |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | .hightColor { |
| | | height: 10%; |
| | | font-weight: bold; |
| | | font-size: 20px; |
| | | height: 2%; |
| | | font-size: 15px; |
| | | color: #1b1e1e; |
| | | } |
| | | .frozenRowClass { |