| | |
| | | <template> |
| | | <a-card |
| | | title="维修工单" |
| | | title="维修" |
| | | :bordered="false" |
| | | > |
| | | <div class="table-page-search-wrapper"> |
| | |
| | | layout="inline" |
| | | @keyup.enter.native="searchQuery" |
| | | > |
| | | <a-row :gutter="24" style="margin-bottom: 1%;"> |
| | | <a-col |
| | | :xl="24" |
| | | :lg="7" |
| | | :md="8" |
| | | :sm="24" |
| | | > |
| | | <a-form-item label="统一编号群"> |
| | | <a-textarea |
| | | placeholder="请输入所有统一编码,须用“,”隔开,否则可能查询出错误信息" |
| | | v-model="queryParam.nums" |
| | | :auto-size="{ minRows: 2, maxRows:2 }" |
| | | ></a-textarea> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col |
| | | :xl="6" |
| | |
| | | allow-clear |
| | | placeholder="请选择工单状态" |
| | | :triggerChange="true" |
| | | dictCode="repair_order_status" |
| | | dictCode="true_repair_status" |
| | | v-model="queryParam.status" |
| | | /> |
| | | </a-form-item> |
| | |
| | | :md="8" |
| | | :sm="24" |
| | | > |
| | | <a-form-item label="设备编码"> |
| | | <a-form-item label="统一编码"> |
| | | <a-input |
| | | placeholder="请输入设备编码" |
| | | placeholder="请输入统一编码" |
| | | v-model="queryParam.equipmentNum" |
| | | ></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :span="3"> |
| | | <!-- <a-col :span="3"> |
| | | <span |
| | | style="float: left;overflow: hidden;" |
| | | class="table-page-search-submitButtons" |
| | |
| | | <a-icon :type="toggleSearchStatus ? 'up' : 'down'" /> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <template v-if="toggleSearchStatus"> |
| | | <a-row :gutter="24"> |
| | | <a-col |
| | | </a-col> --> |
| | | <a-col |
| | | :xl="6" |
| | | :lg="7" |
| | | :md="8" |
| | |
| | | ></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row :gutter="24"> |
| | | <a-col |
| | | :xl="6" |
| | | :lg="7" |
| | | :md="8" |
| | | :sm="24"> |
| | | <a-form-item |
| | | label="设备所属分类" |
| | | > |
| | | <j-dict-select-tag |
| | | dictCode="mom_eam_equipment_category,name,id" |
| | | placeholder="请输入搜索条件并选择" |
| | | v-model="queryParam.equipmentCategoryId" |
| | | /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col |
| | | :xl="6" |
| | | :lg="7" |
| | | :md="8" |
| | | :sm="24" |
| | | > |
| | | <a-form-item |
| | | label="工区" |
| | | > |
| | | <j-dict-select-tag |
| | | allow-clear |
| | | placeholder="请选择资工区" |
| | | :triggerChange="true" |
| | | dictCode="mom_base_area,name,id,del_flag!='1'" |
| | | v-model="queryParam.factoryModelId" |
| | | /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col |
| | | :xl="6" |
| | | :lg="7" |
| | | :md="8" |
| | | :sm="24" |
| | | > |
| | | <a-form-item |
| | | label="是否关键设备" |
| | | > |
| | | <j-dict-select-tag |
| | | allow-clear |
| | | placeholder="请选择是否关键设备" |
| | | :triggerChange="true" |
| | | dictCode="specific_equipment" |
| | | v-model="queryParam.specificEquipment" |
| | | /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col |
| | | :xl="6" |
| | | :lg="7" |
| | | :md="8" |
| | | :sm="24" |
| | | > |
| | | <a-form-item label="维修状态"> |
| | | <j-dict-select-tag |
| | | allow-clear |
| | | placeholder="请选择维修状态" |
| | | :triggerChange="true" |
| | | dictCode="repair_status" |
| | | v-model="queryParam.repairOrderUda1" |
| | | /> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> |
| | | </template> |
| | | <!-- <a-row :gutter="24"> |
| | | <a-col |
| | | :xl="6" |
| | | :lg="7" |
| | | :md="8" |
| | | :sm="24"> |
| | | <a-form-item |
| | | label="工区" |
| | | > |
| | | <j-dict-select-tag |
| | | allow-clear |
| | | placeholder="请选择工区" |
| | | :triggerChange="true" |
| | | dictCode="mom_base_area,name,id,del_flag!='1'" |
| | | v-model="queryParam.factoryModelId" |
| | | /> |
| | | </a-form-item> |
| | | </a-col> |
| | | </a-row> --> |
| | | </a-form> |
| | | </div> |
| | | <!-- 操作按钮区域 --> |
| | |
| | | key="1" |
| | | @click="handleAddPre(1)" |
| | | ><a-icon type="smile" />自建</a-menu-item> |
| | | <a-menu-item |
| | | <!-- <a-menu-item |
| | | key="2" |
| | | @click="handleAddPre(2)" |
| | | ><a-icon type="copy" />参照故障报修单</a-menu-item> |
| | | ><a-icon type="copy" />参照故障报修单</a-menu-item> --> |
| | | <a-menu-item |
| | | key="2" |
| | | @click="handleAddPre(3)" |
| | |
| | | @click="handleDispatch()" |
| | | :disabled="selectionRows.length==0" |
| | | >派工</a-button> |
| | | <a-button |
| | | type="primary" |
| | | icon="plus" |
| | | @click="getReports" |
| | | >领取</a-button> |
| | | <!-- <a-button type="primary" icon="download" @click="handleExportXls('维修工单')">导出</a-button> |
| | | <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> |
| | | <a-button type="primary" icon="import">导入</a-button> |
| | |
| | | :loading="loading" |
| | | @change="handleTableChange" |
| | | :customRow="clickThenSelect" |
| | | :rowClassName="tableRowClass" |
| | | > |
| | | <!-- :rowSelection="rowSelection" --> |
| | | |
| | | <span slot="jell" slot-scope="text"> |
| | | <j-ellipsis :value="text" :length="8" /> |
| | | </span> |
| | | <span |
| | | slot="specificEquipment" |
| | | slot-scope="text" |
| | | > |
| | | <a-icon type="check" style="color: chartreuse;" v-if="text==='0'" /> |
| | | <a-icon type="close" v-else style="color:red;"/> |
| | | </span> |
| | | <span |
| | | slot="num" |
| | | slot-scope="text, record" |
| | | > |
| | | |
| | | |
| | | <a |
| | | v-if="record.status === '3' || record.status === '4' ||record.status === '5' ||record.status === '7' " |
| | | class="lot" |
| | |
| | | ><j-ellipsis :value="text" :length="15"/></a> |
| | | <span v-else> <j-ellipsis :value="text" :length="15"/></span> |
| | | </span> |
| | | |
| | | <!-- <span |
| | | slot="action" |
| | | slot-scope="text, record" |
| | | > |
| | | <a-popconfirm |
| | | title="确定下发吗?" |
| | | @confirm="() => handleDistribute(record)" |
| | | > |
| | | <a v-if="record.status=='0'">下发</a> |
| | | </a-popconfirm> |
| | | <a-divider |
| | | type="vertical" |
| | | v-if="record.status=='0'" |
| | | /> |
| | | <a-popconfirm |
| | | title="确定撤回吗?" |
| | | @confirm="() => handleWithdraw(record)" |
| | | > |
| | | <a v-if="record.status=='1'">撤回</a> |
| | | </a-popconfirm> |
| | | <a-divider |
| | | type="vertical" |
| | | v-if="record.status=='1'" |
| | | /> |
| | | <a-popconfirm |
| | | title="确定领取吗?" |
| | | @confirm="() => handleReceive(record)" |
| | | > |
| | | <a v-if="record.status=='1'">领取</a> |
| | | </a-popconfirm> |
| | | <a-divider |
| | | type="vertical" |
| | | v-if="record.status=='1'" |
| | | /> |
| | | <a |
| | | v-if="record.status === '2' || record.status === '3' ||record.status === '4'" |
| | | @click="handleOrderExe(record)" |
| | | >执行</a> |
| | | <a-divider |
| | | type="vertical" |
| | | v-if="record.status === '2' || record.status === '3' ||record.status === '4'" |
| | | /> |
| | | <a |
| | | @click="handleEditPre(record)" |
| | | v-if="record.status=='0'" |
| | | >编辑</a> |
| | | <a-divider |
| | | type="vertical" |
| | | v-if="record.status=='0'" |
| | | /> |
| | | <a-dropdown v-if="record.status=='0'"> |
| | | <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item> |
| | | <a-popconfirm |
| | | title="确定删除吗?" |
| | | @confirm="() => handleDelete(record.id)" |
| | | > |
| | | <a>删除</a> |
| | | </a-popconfirm> |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | </span> --> |
| | | <span |
| | | slot="action" |
| | | slot-scope="text, record" |
| | |
| | | v-if="record.status == '1' && record.dispatchMethod == '1' " |
| | | @click="handleAssignOrder(record)" |
| | | >派工</a> |
| | | <a |
| | | <!-- <a |
| | | v-if="record.status == '2' && record.dispatchMethod != null " |
| | | @click="handleAssignOrder(record)" |
| | | >改派</a> |
| | | >改派</a> --> |
| | | <a-divider |
| | | v-if="record.status == '1' || record.status == '2' " |
| | | type="vertical" |
| | |
| | | <repair-order-excute-drawer |
| | | ref="repairOrderExcuteDrawer" |
| | | @ok="modalFormOk" |
| | | :repairOrderId="repairOrderFaultAnalysisMainId" |
| | | :repairOrder="excuteRepairOrder" |
| | | > |
| | | </repair-order-excute-drawer> |
| | | <fault-report-repair |
| | | ref="FaultReportRepair" |
| | | @ok="modalFormOk" |
| | | ></fault-report-repair> |
| | | </a-card> |
| | | </template> |
| | | <script> |
| | |
| | | import EquipmentDocumentList from './RepairOrderEquipmentDocumentList' |
| | | import '@/assets/less/TableExpand.less' |
| | | import { putAction } from '../../api/manage' |
| | | import RepairOrderAssignTask from './modules/repairorder/RepairOrderAssignTask.vue' |
| | | import RepairOrderExcuteDrawer from './modules/repairorder/repairOrderExcuteDrawer.vue' |
| | | import RepairOrderAssignTask from './modules/repairorder/RepairOrderAssignTask' |
| | | import RepairOrderExcuteDrawer from './modules/repairorder/repairOrderExcuteDrawer' |
| | | import FaultDescriptionList from './FaultDescriptionList' |
| | | import FaultReportRepair from './modules/repairorder/moudles/select/FaultReportRepair.vue' |
| | | import store from '@/store' |
| | | import dayjs from 'dayjs' |
| | | export default { |
| | | name: "RepairOrderList", |
| | | mixins: [JeecgListMixin], |
| | |
| | | RepairOrderModal, |
| | | RepairOrderAssignTask, |
| | | RepairOrderExcuteDrawer, |
| | | FaultDescriptionList |
| | | FaultDescriptionList, |
| | | FaultReportRepair, |
| | | store |
| | | }, |
| | | mounted(){ |
| | | let intervalId = setInterval(() => { |
| | | this.loadData(); |
| | | }, 600*1000); // 1000毫秒,即1秒 |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | } |
| | | }, |
| | | { |
| | | title: '关键设备?', |
| | | align: "center", |
| | | dataIndex: 'specificEquipment', |
| | | scopedSlots: { customRender: 'specificEquipment' } |
| | | }, |
| | | { |
| | | title: '状态', |
| | | align: "center", |
| | | dataIndex: 'status_dictText' |
| | | }, |
| | | { |
| | | title: '维修状态', |
| | | align: "center", |
| | | dataIndex: 'repairOrderUda1_dictText', |
| | | customRender:function (t,r,index) { |
| | | return t===null||r.repairOrderUda1===null?'/':t; |
| | | } |
| | | }, |
| | | { |
| | | title: '单据号', |
| | |
| | | dataIndex: 'num', |
| | | scopedSlots: { customRender: 'num' } |
| | | }, |
| | | // { |
| | | // title: '业务类型', |
| | | // align: "center", |
| | | // dataIndex: 'businessType_dictText' |
| | | // }, |
| | | { |
| | | title: '业务类型', |
| | | align: "center", |
| | | dataIndex: 'businessType_dictText' |
| | | }, |
| | | { |
| | | title: '设备编码', |
| | | title: '统一编码', |
| | | align: "center", |
| | | dataIndex: 'equipmentNum' |
| | | }, |
| | |
| | | align: "center", |
| | | dataIndex: 'departId_dictText' |
| | | }, |
| | | // { |
| | | // title: '紧急程度', |
| | | // align: "center", |
| | | // dataIndex: 'urgency_dictText' |
| | | // }, |
| | | // { |
| | | // title: '维保方式', |
| | | // align: "center", |
| | | // dataIndex: 'maintenanceMethod_dictText' |
| | | // }, |
| | | // { |
| | | // title: '外委单位', |
| | | // align: "center", |
| | | // dataIndex: 'outsourcingUnitName' |
| | | // }, |
| | | { |
| | | title: '紧急程度', |
| | | title: '维修班组', |
| | | align: "center", |
| | | dataIndex: 'urgency_dictText' |
| | | }, |
| | | { |
| | | title: '维保方式', |
| | | align: "center", |
| | | dataIndex: 'maintenanceMethod_dictText' |
| | | }, |
| | | { |
| | | title: '外委单位', |
| | | align: "center", |
| | | dataIndex: 'outsourcingUnitName' |
| | | }, |
| | | { |
| | | title: '责任班组', |
| | | align: "center", |
| | | dataIndex: 'teamId_dictText' |
| | | dataIndex: 'teamId_dictText', |
| | | scopedSlots: { |
| | | customRender: 'jell' |
| | | } |
| | | }, |
| | | { |
| | | title: '责任人', |
| | | align: "center", |
| | | dataIndex: 'responsibilityId_dictText' |
| | | }, |
| | | { |
| | | title: '派工方式', |
| | | align: "center", |
| | | dataIndex: 'dispatchMethod_dictText' |
| | | }, |
| | | // { |
| | | // title: '派工方式', |
| | | // align: "center", |
| | | // dataIndex: 'dispatchMethod_dictText' |
| | | // }, |
| | | // { |
| | | // title: '特种设备', |
| | | // align: "center", |
| | | // dataIndex: 'specificEquipment_dictText' |
| | | // }, |
| | | { |
| | | title: '故障时间', |
| | | align: "center", |
| | | dataIndex: 'faultTime' |
| | | }, |
| | | { |
| | | title: '报修人', |
| | | align: "center", |
| | | dataIndex: 'errUda2' |
| | | }, |
| | | { |
| | | title: '故障描述', |
| | | align: "center", |
| | | dataIndex: 'faultDescription' |
| | | }, |
| | | { |
| | | title: '故障原因', |
| | | align: "center", |
| | | dataIndex: 'faultReason' |
| | | }, |
| | | { |
| | | title: '故障现象', |
| | | align: "center", |
| | | dataIndex: 'faultPhenomenon' |
| | | }, |
| | | { |
| | | title: '故障排除', |
| | | align: "center", |
| | | dataIndex: 'faultRemove' |
| | | }, |
| | | { |
| | | title: '预防措施', |
| | | align: "center", |
| | | dataIndex: 'preventiveMeasure' |
| | | dataIndex: 'faultDescription', |
| | | scopedSlots: { |
| | | customRender: 'jell' |
| | | } |
| | | }, |
| | | // { |
| | | // title: '故障时间', |
| | | // title: '故障原因', |
| | | // align: "center", |
| | | // dataIndex: 'faultTime' |
| | | // dataIndex: 'faultReason' |
| | | // }, |
| | | // { |
| | | // title: '故障现象', |
| | | // align: "center", |
| | | // dataIndex: 'faultPhenomenon' |
| | | // }, |
| | | // { |
| | | // title: '故障排除', |
| | | // align: "center", |
| | | // dataIndex: 'faultRemove' |
| | | // }, |
| | | // { |
| | | // title: '预防措施', |
| | | // align: "center", |
| | | // dataIndex: 'preventiveMeasure' |
| | | // }, |
| | | // { |
| | | // title: '故障照片', |
| | |
| | | // align: "center", |
| | | // dataIndex: 'isStop_dictText' |
| | | // }, |
| | | { |
| | | title: '工时定额', |
| | | align: "center", |
| | | dataIndex: 'workingHourQuota' |
| | | }, |
| | | { |
| | | title: '实际工时', |
| | | align: "center", |
| | | dataIndex: 'actualHour' |
| | | }, |
| | | { |
| | | title: '计划开始时间', |
| | | align: "center", |
| | | dataIndex: 'planStartTime' |
| | | }, |
| | | { |
| | | title: '计划结束时间', |
| | | align: "center", |
| | | dataIndex: 'planEndTime' |
| | | }, |
| | | { |
| | | title: '实际开始时间', |
| | | align: "center", |
| | | dataIndex: 'actualStartTime' |
| | | }, |
| | | { |
| | | title: '实际结束时间', |
| | | align: "center", |
| | | dataIndex: 'actualEndTime' |
| | | }, |
| | | // { |
| | | // title: '工时定额', |
| | | // align: "center", |
| | | // dataIndex: 'workingHourQuota' |
| | | // }, |
| | | // { |
| | | // title: '实际工时', |
| | | // align: "center", |
| | | // dataIndex: 'actualHour' |
| | | // }, |
| | | // { |
| | | // title: '计划开始时间', |
| | | // align: "center", |
| | | // dataIndex: 'planStartTime' |
| | | // }, |
| | | // { |
| | | // title: '计划结束时间', |
| | | // align: "center", |
| | | // dataIndex: 'planEndTime' |
| | | // }, |
| | | // { |
| | | // title: '实际开始时间', |
| | | // align: "center", |
| | | // dataIndex: 'actualStartTime' |
| | | // }, |
| | | // { |
| | | // title: '实际结束时间', |
| | | // align: "center", |
| | | // dataIndex: 'actualEndTime' |
| | | // }, |
| | | { |
| | | title: '创建人', |
| | | align: "center", |
| | |
| | | } |
| | | this.onClearSelected() |
| | | this.queryParam.repairOrderType = 0; |
| | | this.queryParam.userId = store.getters.userInfo.id |
| | | var params = this.getQueryParams();//查询条件 |
| | | this.loading = true; |
| | | getAction(this.url.list, params).then((res) => { |
| | |
| | | this.onClearSelected() |
| | | this.$refs.FaultDescriptionList.faultId = '-1' |
| | | }, |
| | | getReports(){ |
| | | this.$refs.FaultReportRepair.title = '故障报修单'; |
| | | this.$refs.FaultReportRepair.loadData(); |
| | | this.$refs.FaultReportRepair.visible = true; |
| | | }, |
| | | tableRowClass(record, index) { |
| | | if ("2" === record.status) { |
| | | if (record.specificEquipment==='0'&&dayjs(record.faultTime).add(12,'hour')<dayjs()) { |
| | | return 'error' |
| | | } else if(dayjs(record.faultTime).add(7,'day')<dayjs()){ |
| | | return 'primary' |
| | | } |
| | | } |
| | | }, |
| | | |
| | | }, |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | .error { |
| | | color: red; |
| | | font-weight: bold; |
| | | } |
| | | .primary { |
| | | color: rgb(255, 0, 251); |
| | | font-weight: bold; |
| | | } |
| | | </style> |