1、我的待办页面 设备维修 分类审批弹窗功能逻辑开发并复用至我的已办和维修工单页面
2、根据会议内容调整系统功能
3、调整设备铭牌打印高度
| | |
| | | style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 |
| | | <a style="margin-left: 24px" @click="onSelectChange([])">清空</a> |
| | | </div> |
| | | |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | |
| | | { |
| | | title: '设备分类', |
| | | align: 'center', |
| | | width: 100, |
| | | dataIndex: 'equipmentCategory_dictText' |
| | | }, |
| | | { |
| | |
| | | width: 100, |
| | | dataIndex: 'installationPosition' |
| | | }, |
| | | |
| | | { |
| | | title: '立项卡号', |
| | | align: 'center', |
| | | width: 100, |
| | | dataIndex: 'cardNumber' |
| | | }, |
| | | { |
| | | title: '出厂编号', |
| | | align: 'center', |
| | | width: 100, |
| | | dataIndex: 'factoryNumber' |
| | | }, |
| | | { |
| | | title: '机床厂家', |
| | | align: 'center', |
| | | width: 100, |
| | | width: 300, |
| | | dataIndex: 'manufacturingEnterprise' |
| | | }, |
| | | { |
| | |
| | | { |
| | | title: '设备端口', |
| | | align: 'center', |
| | | width: 100, |
| | | dataIndex: 'equipmentPort' |
| | | }, |
| | | { |
| | | title: '坐标数量', |
| | | align: 'center', |
| | | width: 100, |
| | | dataIndex: 'coordinateNum' |
| | | }, |
| | | { |
| | | title: '创建人', |
| | | align: 'center', |
| | | width: 100, |
| | | dataIndex: 'createBy_dictText' |
| | | }, |
| | | { |
| | | title: '创建时间', |
| | | align: 'center', |
| | | width: 200, |
| | | dataIndex: 'createTime' |
| | | }, |
| | | { |
| | |
| | | { |
| | | title: '备注', |
| | | align: 'center', |
| | | width: 100, |
| | | dataIndex: 'remark' |
| | | }, |
| | | { |
| | |
| | | } |
| | | |
| | | th { |
| | | font-size: 28px; |
| | | font-size: 24px; |
| | | letter-spacing: 3px; |
| | | padding: 20px; |
| | | padding: 12px; |
| | | } |
| | | |
| | | td { |
| | | font-size: 18px; |
| | | font-size: 14px; |
| | | width: 33%; |
| | | padding: 6px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | class="j-table-force-nowrap" |
| | | @change="handleTableChange"> |
| | | |
| | | <template slot="htmlSlot" slot-scope="text"> |
| | | <div v-html="text"></div> |
| | | </template> |
| | | <template slot="imgSlot" slot-scope="text,record"> |
| | | <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> |
| | | <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" |
| | | style="max-width:80px;font-size: 12px;font-style: italic;"/> |
| | | </template> |
| | | <template slot="fileSlot" slot-scope="text"> |
| | | <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> |
| | | <a-button |
| | | v-else |
| | | :ghost="true" |
| | | type="primary" |
| | | icon="download" |
| | | size="small" |
| | | @click="downloadFile(text)"> |
| | | 下载 |
| | | </a-button> |
| | | </template> |
| | | |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a @click="handleEdit(record)" v-if="isShowAuth('eam:inspection:edit') && record.inspectionStatus === 'WAIT_INSPECTION'" >编辑</a> |
| | | |
| | |
| | | dataIndex: 'action', |
| | | align: 'center', |
| | | fixed: 'right', |
| | | width: 147, |
| | | width: 200, |
| | | scopedSlots: { customRender: 'action' } |
| | | } |
| | | this.columns = [...this.columns, operationColumn] |
| | |
| | | </a-col> |
| | | <a-col :xl="4" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="设备编号"> |
| | | <lx-search-equipment-select placeholder="请输入设备编号或名称搜索" v-model="queryParam.equipmentId"></lx-search-equipment-select> |
| | | <lx-search-equipment-select placeholder="请输入设备编号或名称搜索" |
| | | v-model="queryParam.equipmentId"></lx-search-equipment-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="计划保养日期"> |
| | | <a-range-picker v-model="queryParam.maintenanceDateRange" @change="onMaintenanceDateChange" format="YYYY-MM-DD" value-format="YYYY-MM-DD" /> |
| | | <a-range-picker v-model="queryParam.maintenanceDateRange" @change="onMaintenanceDateChange" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="4" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="保养状态"> |
| | | <j-dict-select-tag placeholder="请选择保养状态" dict-code="week_maintenance_status" v-model="queryParam.maintenanceStatus" /> |
| | | <j-dict-select-tag placeholder="请选择保养状态" dict-code="week_maintenance_status" |
| | | v-model="queryParam.maintenanceStatus"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="4" :lg="7" :md="8" :sm="24"> |
| | |
| | | <a-dropdown v-if="selectedRowKeys.length > 0"> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item key="1" @click="handlerBatchAbolish" v-if="isShowAuth('eam:weekMaintenance:abolish')"> |
| | | <a-icon type="delete" /> |
| | | <a-icon type="delete"/> |
| | | 作废 |
| | | </a-menu-item> |
| | | <a-menu-item key="2" @click="handlerBatchCollect" v-if="isShowAuth('eam:weekMaintenance:collect')"> |
| | | <a-icon type="form" /> |
| | | <a-icon type="form"/> |
| | | 领取 |
| | | </a-menu-item> |
| | | </a-menu> |
| | | <a-button style="margin-left: 8px"> 批量操作 |
| | | <a-icon type="down" /> |
| | | <a-icon type="down"/> |
| | | </a-button> |
| | | </a-dropdown> |
| | | </div> |
| | |
| | | @change="handleTableChange"> |
| | | |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE' && isShowAuth('eam:weekMaintenance:edit')" @click="handleEdit(record)">编辑</a> |
| | | <a-divider type="vertical" v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE' && isShowAuth('eam:weekMaintenance:edit')" /> |
| | | <a-popconfirm title="确定领取吗?" @confirm="() => handlerCollect(record.id)" v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE' && isShowAuth('eam:weekMaintenance:collect')"> |
| | | <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE' && isShowAuth('eam:weekMaintenance:edit')"> |
| | | <a @click="handleEdit(record)">编辑</a> |
| | | |
| | | <a-divider type="vertical"/> |
| | | |
| | | <a-popconfirm title="确定领取吗?" @confirm="() => handlerCollect(record.id)"> |
| | | <a>领取</a> |
| | | </a-popconfirm> |
| | | <a-divider type="vertical" v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE' && isShowAuth('eam:weekMaintenance:collect')" /> |
| | | |
| | | <a-divider type="vertical"/> |
| | | |
| | | <a-dropdown> |
| | | <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> |
| | | <a class="ant-dropdown-link">更多 <a-icon type="down"/></a> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE' && isShowAuth('eam:weekMaintenance:abolish')"> |
| | | <a-menu-item> |
| | | <a-popconfirm title="确定作废吗?" @confirm="() => handlerAbolish(record.id)"> |
| | | <a>作废</a> |
| | | </a-popconfirm> |
| | | </a-menu-item> |
| | | <a-menu-item > |
| | | <a-menu-item> |
| | | <a @click="handleDetail(record)">详情</a> |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | </span> |
| | | </template> |
| | | |
| | | <template v-else> |
| | | <a @click="handleDetail(record)">详情</a> |
| | | </template> |
| | | </span> |
| | | </a-table> |
| | | </div> |
| | | <!-- table区域-end --> |
| | | |
| | | <!-- 表单区域 --> |
| | | <eamWeekMaintenanceOrder-modal ref="modalForm" @ok="modalFormOk"></eamWeekMaintenanceOrder-modal> |
| | | <week-maintenance-approval-modal ref="weekMaintenanceApprovalModal" :selectShenpiData="selectWeekMaintenanceData"></week-maintenance-approval-modal> |
| | | <week-maintenance-approval-modal ref="weekMaintenanceApprovalModal" |
| | | :selectShenpiData="selectWeekMaintenanceData"></week-maintenance-approval-modal> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import '@/assets/less/TableExpand.less' |
| | | import EamWeekMaintenanceOrderModal from './modules/EamWeekMaintenanceOrderModal' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' |
| | | import { deleteAction, getAction } from '@api/manage' |
| | | import WeekMaintenanceApprovalModal from '@views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal' |
| | | import '@/assets/less/TableExpand.less' |
| | | import EamWeekMaintenanceOrderModal from './modules/EamWeekMaintenanceOrderModal' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' |
| | | import { deleteAction, getAction } from '@api/manage' |
| | | import WeekMaintenanceApprovalModal from '@views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal' |
| | | |
| | | export default { |
| | | name: 'EamWeekMaintenanceOrderList', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | LxSearchEquipmentSelect, |
| | | EamWeekMaintenanceOrderModal, |
| | | WeekMaintenanceApprovalModal |
| | | }, |
| | | props: { |
| | | isDisplayOperation: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | description: '周保工单管理页面', |
| | | disableMixinCreated: true, |
| | | selectWeekMaintenanceData:{}, |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | fixed: 'left', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { |
| | | title: '工单号', |
| | | align: 'center', |
| | | dataIndex: 'orderNum', |
| | | fixed: 'left', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '设备编号', |
| | | align: 'center', |
| | | dataIndex: 'equipmentCode', |
| | | fixed: 'left', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '设备名称', |
| | | align: 'center', |
| | | dataIndex: 'equipmentName', |
| | | fixed: 'left', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '标准名称', |
| | | align: 'center', |
| | | dataIndex: 'standardId_dictText', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: '计划保养日期', |
| | | align: 'center', |
| | | dataIndex: 'maintenanceDate', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '实际开始时间', |
| | | align: 'center', |
| | | dataIndex: 'actualStartTime', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '实际结束时间', |
| | | align: 'center', |
| | | dataIndex: 'actualEndTime', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '保养人', |
| | | align: 'center', |
| | | dataIndex: 'operator_dictText', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '保养状态', |
| | | align: 'center', |
| | | dataIndex: 'maintenanceStatus_dictText', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '创建方式', |
| | | align: 'center', |
| | | dataIndex: 'creationMethod_dictText', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '确认人', |
| | | align: 'center', |
| | | dataIndex: 'confirmUser_dictText', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '确认时间', |
| | | align: 'center', |
| | | dataIndex: 'confirmTime', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '确认意见', |
| | | align: 'center', |
| | | dataIndex: 'confirmComment', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '初验收人', |
| | | align: 'center', |
| | | dataIndex: 'initialAcceptanceUser_dictText', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '初验收时间', |
| | | align: 'center', |
| | | dataIndex: 'initialAcceptanceTime', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '初验收意见', |
| | | align: 'center', |
| | | dataIndex: 'initialAcceptanceComment', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '终验收人', |
| | | align: 'center', |
| | | dataIndex: 'finalAcceptanceUser_dictText', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '终验收时间', |
| | | align: 'center', |
| | | dataIndex: 'finalAcceptanceTime', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '终验收意见', |
| | | align: 'center', |
| | | dataIndex: 'finalAcceptanceComment', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '备注', |
| | | align: 'center', |
| | | dataIndex: 'remark', |
| | | width: 60, |
| | | }, |
| | | // { |
| | | // title: '操作', |
| | | // dataIndex: 'action', |
| | | // align: 'center', |
| | | // fixed: 'right', |
| | | // width: 100, |
| | | // scopedSlots: { customRender: 'action' } |
| | | // } |
| | | ], |
| | | url: { |
| | | list: '/eam/weekMaintenanceOrder/list', |
| | | abolish: '/eam/weekMaintenanceOrder/abolish', |
| | | abolishBatch: '/eam/weekMaintenanceOrder/abolishBatch', |
| | | collect: '/eam/weekMaintenanceOrder/collect', |
| | | collectBatch: '/eam/weekMaintenanceOrder/collectBatch', |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | if (!this.isDisplayOperation) { |
| | | return |
| | | } |
| | | const operationColumn = { |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | align: 'center', |
| | | fixed: 'right', |
| | | width: 147, |
| | | scopedSlots: { customRender: 'action' } |
| | | } |
| | | this.columns = [...this.columns, operationColumn] |
| | | this.loadData(1) |
| | | }, |
| | | computed: {}, |
| | | methods: { |
| | | onMaintenanceDateChange: function(value, dateString) { |
| | | this.queryParam.maintenanceDateBegin = dateString[0] |
| | | this.queryParam.maintenanceDateEnd = dateString[1] |
| | | export default { |
| | | name: 'EamWeekMaintenanceOrderList', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | LxSearchEquipmentSelect, |
| | | EamWeekMaintenanceOrderModal, |
| | | WeekMaintenanceApprovalModal |
| | | }, |
| | | handlerAbolish(id) { |
| | | if(!this.url.abolish){ |
| | | this.$message.error("请设置url.abolish属性!") |
| | | props: { |
| | | isDisplayOperation: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | description: '周保工单管理页面', |
| | | disableMixinCreated: true, |
| | | selectWeekMaintenanceData: {}, |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | fixed: 'left', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { |
| | | title: '工单号', |
| | | align: 'center', |
| | | dataIndex: 'orderNum', |
| | | fixed: 'left', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '设备编号', |
| | | align: 'center', |
| | | dataIndex: 'equipmentCode', |
| | | fixed: 'left', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '设备名称', |
| | | align: 'center', |
| | | dataIndex: 'equipmentName', |
| | | fixed: 'left', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '标准名称', |
| | | align: 'center', |
| | | dataIndex: 'standardId_dictText', |
| | | width: 100 |
| | | }, |
| | | { |
| | | title: '计划保养日期', |
| | | align: 'center', |
| | | dataIndex: 'maintenanceDate', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '实际开始时间', |
| | | align: 'center', |
| | | dataIndex: 'actualStartTime', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '实际结束时间', |
| | | align: 'center', |
| | | dataIndex: 'actualEndTime', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '保养人', |
| | | align: 'center', |
| | | dataIndex: 'operator_dictText', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '保养状态', |
| | | align: 'center', |
| | | dataIndex: 'maintenanceStatus_dictText', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '创建方式', |
| | | align: 'center', |
| | | dataIndex: 'creationMethod_dictText', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '确认人', |
| | | align: 'center', |
| | | dataIndex: 'confirmUser_dictText', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '确认时间', |
| | | align: 'center', |
| | | dataIndex: 'confirmTime', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '确认意见', |
| | | align: 'center', |
| | | dataIndex: 'confirmComment', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '初验收人', |
| | | align: 'center', |
| | | dataIndex: 'initialAcceptanceUser_dictText', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '初验收时间', |
| | | align: 'center', |
| | | dataIndex: 'initialAcceptanceTime', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '初验收意见', |
| | | align: 'center', |
| | | dataIndex: 'initialAcceptanceComment', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '终验收人', |
| | | align: 'center', |
| | | dataIndex: 'finalAcceptanceUser_dictText', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '终验收时间', |
| | | align: 'center', |
| | | dataIndex: 'finalAcceptanceTime', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '终验收意见', |
| | | align: 'center', |
| | | dataIndex: 'finalAcceptanceComment', |
| | | width: 60 |
| | | }, |
| | | { |
| | | title: '备注', |
| | | align: 'center', |
| | | dataIndex: 'remark', |
| | | width: 60 |
| | | } |
| | | // { |
| | | // title: '操作', |
| | | // dataIndex: 'action', |
| | | // align: 'center', |
| | | // fixed: 'right', |
| | | // width: 100, |
| | | // scopedSlots: { customRender: 'action' } |
| | | // } |
| | | ], |
| | | url: { |
| | | list: '/eam/weekMaintenanceOrder/list', |
| | | abolish: '/eam/weekMaintenanceOrder/abolish', |
| | | abolishBatch: '/eam/weekMaintenanceOrder/abolishBatch', |
| | | collect: '/eam/weekMaintenanceOrder/collect', |
| | | collectBatch: '/eam/weekMaintenanceOrder/collectBatch' |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | if (!this.isDisplayOperation) { |
| | | return |
| | | } |
| | | var that = this; |
| | | deleteAction(that.url.abolish, {id: id}).then((res) => { |
| | | if (res.success) { |
| | | //重新计算分页问题 |
| | | that.reCalculatePage(1) |
| | | // that.$message.success(res.message); |
| | | that.$notification.success({ |
| | | message:'消息', |
| | | description:res.message |
| | | }); |
| | | that.loadData(); |
| | | const operationColumn = { |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | align: 'center', |
| | | fixed: 'right', |
| | | width: 200, |
| | | scopedSlots: { customRender: 'action' } |
| | | } |
| | | this.columns = [...this.columns, operationColumn] |
| | | this.loadData(1) |
| | | }, |
| | | computed: {}, |
| | | methods: { |
| | | onMaintenanceDateChange: function(value, dateString) { |
| | | this.queryParam.maintenanceDateBegin = dateString[0] |
| | | this.queryParam.maintenanceDateEnd = dateString[1] |
| | | }, |
| | | handlerAbolish(id) { |
| | | if (!this.url.abolish) { |
| | | this.$message.error('请设置url.abolish属性!') |
| | | return |
| | | } |
| | | var that = this |
| | | deleteAction(that.url.abolish, { 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 |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | handlerBatchAbolish() { |
| | | if (!this.url.abolishBatch) { |
| | | this.$message.error('请设置url.abolishBatch属性!') |
| | | return |
| | | } |
| | | if (this.selectedRowKeys.length <= 0) { |
| | | // this.$message.warning('请选择一条记录!'); |
| | | this.$notification.warning({ |
| | | message: '消息', |
| | | description: '请选择一条记录' |
| | | }) |
| | | return |
| | | } else { |
| | | // that.$message.warning(res.message); |
| | | that.$notification.warning({ |
| | | message:'消息', |
| | | description:res.message |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | handlerBatchAbolish() { |
| | | if(!this.url.abolishBatch){ |
| | | this.$message.error("请设置url.abolishBatch属性!") |
| | | return |
| | | } |
| | | if (this.selectedRowKeys.length <= 0) { |
| | | // this.$message.warning('请选择一条记录!'); |
| | | this.$notification.warning({ |
| | | message:'消息', |
| | | description:"请选择一条记录" |
| | | }); |
| | | return; |
| | | } else { |
| | | var ids = ""; |
| | | for (var a = 0; a < this.selectedRowKeys.length; a++) { |
| | | ids += this.selectedRowKeys[a] + ","; |
| | | } |
| | | var that = this; |
| | | this.$confirm({ |
| | | title: "确认作废", |
| | | content: "是否作废选中数据,只有待保养状态的数据才可作废成功?", |
| | | onOk: function () { |
| | | that.loading = true; |
| | | deleteAction(that.url.abolishBatch, {ids: ids}).then((res) => { |
| | | if (res.success) { |
| | | //重新计算分页问题 |
| | | that.reCalculatePage(that.selectedRowKeys.length) |
| | | // that.$message.success(res.message); |
| | | that.$notification.success({ |
| | | message:'消息', |
| | | description:res.message |
| | | }); |
| | | that.loadData(); |
| | | that.onClearSelected(); |
| | | } else { |
| | | // that.$message.warning(res.message); |
| | | that.$notification.warning({ |
| | | message:'消息', |
| | | description:res.message |
| | | }); |
| | | } |
| | | }).finally(() => { |
| | | that.loading = false; |
| | | }); |
| | | var ids = '' |
| | | for (var a = 0; a < this.selectedRowKeys.length; a++) { |
| | | ids += this.selectedRowKeys[a] + ',' |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | //单个领取 |
| | | handlerCollect(id) { |
| | | if(!this.url.collect){ |
| | | this.$message.error("请设置url.collect属性!") |
| | | return |
| | | } |
| | | let that = this; |
| | | getAction(that.url.collect, {id: id}).then((res) => { |
| | | if (res.success) { |
| | | //重新计算分页问题 |
| | | that.reCalculatePage(1) |
| | | // that.$message.success(res.message); |
| | | that.$notification.success({ |
| | | message:'消息', |
| | | description:res.message |
| | | }); |
| | | that.loadData(); |
| | | var that = this |
| | | this.$confirm({ |
| | | title: '确认作废', |
| | | content: '是否作废选中数据,只有待保养状态的数据才可作废成功?', |
| | | onOk: function() { |
| | | that.loading = true |
| | | deleteAction(that.url.abolishBatch, { ids: ids }).then((res) => { |
| | | if (res.success) { |
| | | //重新计算分页问题 |
| | | that.reCalculatePage(that.selectedRowKeys.length) |
| | | // that.$message.success(res.message); |
| | | that.$notification.success({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | that.loadData() |
| | | that.onClearSelected() |
| | | } else { |
| | | // that.$message.warning(res.message); |
| | | that.$notification.warning({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }).finally(() => { |
| | | that.loading = false |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | //单个领取 |
| | | handlerCollect(id) { |
| | | if (!this.url.collect) { |
| | | this.$message.error('请设置url.collect属性!') |
| | | return |
| | | } |
| | | let that = this |
| | | getAction(that.url.collect, { 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 |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | //批量领取 |
| | | handlerBatchCollect() { |
| | | if (!this.url.collectBatch) { |
| | | this.$message.error('请设置url.abolishBatch属性!') |
| | | return |
| | | } |
| | | if (this.selectedRowKeys.length <= 0) { |
| | | // this.$message.warning('请选择一条记录!'); |
| | | this.$notification.warning({ |
| | | message: '消息', |
| | | description: '请选择一条记录' |
| | | }) |
| | | return |
| | | } else { |
| | | // that.$message.warning(res.message); |
| | | that.$notification.warning({ |
| | | message:'消息', |
| | | description:res.message |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | //批量领取 |
| | | handlerBatchCollect(){ |
| | | if(!this.url.collectBatch){ |
| | | this.$message.error("请设置url.abolishBatch属性!") |
| | | return |
| | | } |
| | | if (this.selectedRowKeys.length <= 0) { |
| | | // this.$message.warning('请选择一条记录!'); |
| | | this.$notification.warning({ |
| | | message:'消息', |
| | | description:"请选择一条记录" |
| | | }); |
| | | return; |
| | | } else { |
| | | var ids = ""; |
| | | for (var a = 0; a < this.selectedRowKeys.length; a++) { |
| | | ids += this.selectedRowKeys[a] + ","; |
| | | } |
| | | var that = this; |
| | | this.$confirm({ |
| | | title: "确认领取", |
| | | content: "是否领取选中数据,只有待保养状态的数据才可领取成功?", |
| | | onOk: function () { |
| | | that.loading = true; |
| | | deleteAction(that.url.collectBatch, {ids: ids}).then((res) => { |
| | | if (res.success) { |
| | | //重新计算分页问题 |
| | | that.reCalculatePage(that.selectedRowKeys.length) |
| | | // that.$message.success(res.message); |
| | | that.$notification.success({ |
| | | message:'消息', |
| | | description:res.message |
| | | }); |
| | | that.loadData(); |
| | | that.onClearSelected(); |
| | | } else { |
| | | // that.$message.warning(res.message); |
| | | that.$notification.warning({ |
| | | message:'消息', |
| | | description:res.message |
| | | }); |
| | | } |
| | | }).finally(() => { |
| | | that.loading = false; |
| | | }); |
| | | var ids = '' |
| | | for (var a = 0; a < this.selectedRowKeys.length; a++) { |
| | | ids += this.selectedRowKeys[a] + ',' |
| | | } |
| | | }); |
| | | var that = this |
| | | this.$confirm({ |
| | | title: '确认领取', |
| | | content: '是否领取选中数据,只有待保养状态的数据才可领取成功?', |
| | | onOk: function() { |
| | | that.loading = true |
| | | deleteAction(that.url.collectBatch, { ids: ids }).then((res) => { |
| | | if (res.success) { |
| | | //重新计算分页问题 |
| | | that.reCalculatePage(that.selectedRowKeys.length) |
| | | // that.$message.success(res.message); |
| | | that.$notification.success({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | that.loadData() |
| | | that.onClearSelected() |
| | | } else { |
| | | // that.$message.warning(res.message); |
| | | that.$notification.warning({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }).finally(() => { |
| | | that.loading = false |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | handleDetail(record) { |
| | | this.selectWeekMaintenanceData = Object.assign({}, record) |
| | | this.$refs.weekMaintenanceApprovalModal.recordDetail(record) |
| | | this.$refs.weekMaintenanceApprovalModal.title = '详情' |
| | | this.$refs.weekMaintenanceApprovalModal.disableSubmit = true |
| | | } |
| | | }, |
| | | handleDetail(record) { |
| | | this.selectWeekMaintenanceData = Object.assign({}, record) |
| | | this.$refs.weekMaintenanceApprovalModal.recordDetail(record) |
| | | this.$refs.weekMaintenanceApprovalModal.title = '详情'; |
| | | this.$refs.weekMaintenanceApprovalModal.disableSubmit = true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | @import '~@assets/less/common.less'; |
| | | </style> |
| | |
| | | <!-- 操作按钮区域 --> |
| | | <div class="table-operator" v-if="isDisplayOperation"> |
| | | <a-button @click="handleOpenReceiveFaultModal" type="primary" icon="plus">领取</a-button> |
| | | <a-button type="primary" icon="download" @click="handleExportXls('维修工单')">导出</a-button> |
| | | <!--<a-button type="primary" icon="download" @click="handleExportXls('维修工单')">导出</a-button>--> |
| | | <a-dropdown v-if="selectedRowKeys.length > 0"> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item key="1" @click="batchDel"> |
| | |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | @change="handleTableChange" |
| | | :scroll="{x:'max-content'}" |
| | | /> |
| | | > |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a @click="handleDetail(record)">详情</a> |
| | | </span> |
| | | </a-table> |
| | | </div> |
| | | <!-- table区域-end --> |
| | | |
| | | <receive-fault-modal ref="receiveFaultModalRef" @ok="loadData"/> |
| | | |
| | | <repair-order-approval-modal ref="repairOrderApprovalModal" :selectShenpiData="selectRepairOrderData"/> |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | import ReceiveFaultModal from './modules/EamRepairOrderList/ReceiveFaultModal' |
| | | import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api' |
| | | import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect' |
| | | import RepairOrderApprovalModal from '../../flowable/workflow/repairOrder/RepairOrderApprovalModal' |
| | | |
| | | export default { |
| | | name: 'EamRepairOrderList', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | RepairOrderApprovalModal, |
| | | LxSearchEquipmentSelect, |
| | | ReceiveFaultModal |
| | | }, |
| | | props:{ |
| | | isDisplayOperation:{ |
| | | type:Boolean, |
| | | default:true |
| | | props: { |
| | | isDisplayOperation: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | { |
| | | title: '故障原因', |
| | | align: 'center', |
| | | dataIndex: 'faultReason', |
| | | width: 150 |
| | | dataIndex: 'faultReason' |
| | | }, |
| | | { |
| | | title: '维修结果描述', |
| | | align: 'center', |
| | | dataIndex: 'repairDescription', |
| | | dataIndex: 'repairDescription' |
| | | // width: 300 |
| | | }, |
| | | { |
| | | title: '维修图片', |
| | | align: 'center', |
| | | dataIndex: 'imageFiles', |
| | | width: 100 |
| | | }, |
| | | |
| | | } |
| | | // { |
| | | // title: '维修图片', |
| | | // align: 'center', |
| | | // dataIndex: 'imageFiles', |
| | | // width: 100 |
| | | // }, |
| | | // { |
| | | // title: '是否委外', |
| | | // align: 'center', |
| | |
| | | // }, |
| | | ], |
| | | report_repair_status_list: [], |
| | | selectRepairOrderData: {}, |
| | | url: { |
| | | list: '/eam/eamRepairOrder/list', |
| | | delete: '/eam/eamRepairOrder/delete', |
| | |
| | | return |
| | | } |
| | | this.initDictData('report_repair_status') |
| | | // const operationColumn = { |
| | | // title: '操作', |
| | | // dataIndex: 'action', |
| | | // align: 'center', |
| | | // scopedSlots: { customRender: 'action' } |
| | | // } |
| | | // this.columns = [...this.columns, operationColumn] |
| | | const operationColumn = { |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | align: 'center', |
| | | width: 100, |
| | | scopedSlots: { customRender: 'action' } |
| | | } |
| | | this.columns = [...this.columns, operationColumn] |
| | | this.loadData(1) |
| | | }, |
| | | methods: { |
| | |
| | | handleOpenReceiveFaultModal() { |
| | | this.$refs.receiveFaultModalRef.visible = true |
| | | }, |
| | | |
| | | /** |
| | | * 点击详情触发 |
| | | * @param record 表格行信息 |
| | | */ |
| | | handleDetail(record) { |
| | | this.selectRepairOrderData = Object.assign({}, record) |
| | | this.$refs.repairOrderApprovalModal.visible = true |
| | | this.$refs.repairOrderApprovalModal.title = '详情' |
| | | this.$refs.repairOrderApprovalModal.disableSubmit = true |
| | | this.$refs.repairOrderApprovalModal.getAllApproveData(record) |
| | | this.$refs.repairOrderApprovalModal.getBasicInformation({ ...record, dataId: record.id }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24" v-if="isDisplayOperation"> |
| | | <a-form-item label="单据状态"> |
| | | <a-select placeholder="请选择单据状态" v-model="queryParam.reportStatus" allow-clear> |
| | | <a-form-item label="报修状态"> |
| | | <a-select placeholder="请选择报修状态" v-model="queryParam.reportStatus" allow-clear> |
| | | <a-select-option v-for="item in report_repair_status_list" :key="item.value">{{ item.label }} |
| | | </a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="故障简称"> |
| | | <!-- <a-select placeholder="请选择故障简称" v-model="queryParam.faultName" allow-clear>--> |
| | | <!-- <a-select-option v-for="item in faultReasonList" :key="item.faultName">--> |
| | | <!-- {{ item.faultName }}--> |
| | | <!-- </a-select-option>--> |
| | | <!-- </a-select>--> |
| | | <a-input placeholder="请输入故障简称" v-model="queryParam.faultName" allow-clear/> |
| | | <a-form-item label="故障描述"> |
| | | <a-input placeholder="请输入故障描述" v-model="queryParam.faultDescription" allow-clear/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">--> |
| | | <!-- <a-form-item label="故障分类">--> |
| | | <!-- <a-input placeholder="请输入故障分类" v-model="queryParam.faultType"></a-input>--> |
| | | <!-- </a-form-item>--> |
| | | <!-- </a-col>--> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="故障时间"> |
| | | <a-range-picker showTime v-model="faultTimeRange" value-format="YYYY-MM-DD HH:mm:ss" |
| | |
| | | <!-- 操作按钮区域 --> |
| | | <div class="table-operator" v-if="isDisplayOperation"> |
| | | <a-button @click="handleAdd" type="primary" icon="plus">新增</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> |
| | | </a-upload> |
| | | <!--<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>--> |
| | | <!--</a-upload>--> |
| | | <a-dropdown v-if="selectedRowKeys.length > 0"> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item key="1" @click="batchDel"> |
| | |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | class="j-table-force-nowrap" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type:isDisplayOperation?'checkbox':'radio'}" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type:isDisplayOperation?'checkbox':'radio',getCheckboxProps:getCheckboxProps}" |
| | | @change="handleTableChange"> |
| | | |
| | | <template slot="imageFiles" slot-scope="text, record" v-if="text"> |
| | |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '状态', |
| | | title: '报修状态', |
| | | align: 'center', |
| | | dataIndex: 'reportStatus_dictText', |
| | | width: 100 |
| | |
| | | created() { |
| | | this.initDictData('breakdown_flag') |
| | | this.initDictData('report_repair_status') |
| | | this.getFaultReasonListByApi() |
| | | if (!this.isDisplayOperation) this.queryParam = Object.assign({} ,this.propsQueryParam) |
| | | if (!this.isDisplayOperation) this.queryParam = Object.assign({}, this.propsQueryParam) |
| | | else { |
| | | const operationColumn = { |
| | | title: '操作', |
| | |
| | | width: 150 |
| | | } |
| | | this.columns = [...this.columns, operationColumn] |
| | | this.getFaultReasonListByApi() |
| | | } |
| | | this.loadData(1) |
| | | }, |
| | |
| | | this.$refs.imagesPreviewModalRef.visible = true |
| | | }, |
| | | |
| | | getCheckboxProps(record) { |
| | | return { |
| | | props: { |
| | | disabled: record.reportStatus !== 'WAIT_REPAIR' |
| | | } |
| | | } |
| | | }, |
| | | |
| | | searchReset() { |
| | | if (this.isDisplayOperation) this.queryParam = {} |
| | | else this.queryParam = Object.assign({}, this.propsQueryParam) |
| | |
| | | <a-input placeholder="请输入故障分类" v-model="model.faultType_dictText" readOnly/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="故障描述"> |
| | | <a-input placeholder="请输入故障描述" v-model="model.faultDescription" readOnly/> |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="故障描述" prop="faultDescription" :labelCol="labelColLong" |
| | | :wrapperCol="wrapperColLong"> |
| | | <a-textarea placeholder="请输入故障描述" v-model="model.faultDescription"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | |
| | | <a-col :span="12"> |
| | | <a-form-model-item prop="faultStartTime" label="故障开始时间"> |
| | | <a-date-picker showTime placeholder="请选择故障开始时间" v-model="model.faultStartTime" |
| | | :allow-clear="false" value-format="YYYY-MM-DD HH:mm:ss"/> |
| | | :allow-clear="false" value-format="YYYY-MM-DD HH:mm:ss" :disabledDate="disabledDate" |
| | | :disabledTime="disabledTime"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | |
| | |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item prop="imageFiles" label="报修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> |
| | | <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3" v-model="model.imageFilesResult"/> |
| | | <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3" |
| | | v-model="model.imageFilesResult"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <!-- <a-form-model-item prop="reportStatus" label="报修状态">--> |
| | | <!-- <a-input placeholder="请输入报修状态" v-model="model.reportStatus" />--> |
| | | <!-- </a-form-model-item>--> |
| | | |
| | | </a-form-model> |
| | | </a-spin> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { httpAction } from '@/api/manage' |
| | | import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' |
| | | import { httpAction } from '@/api/manage' |
| | | import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' |
| | | import moment from 'moment' |
| | | |
| | | export default { |
| | | name: 'EamReportRepairModal', |
| | | components: { LxSearchEquipmentSelect }, |
| | | props: { |
| | | breakdownFlagList: { |
| | | type: Array |
| | | export default { |
| | | name: 'EamReportRepairModal', |
| | | components: { LxSearchEquipmentSelect }, |
| | | props: { |
| | | breakdownFlagList: { |
| | | type: Array |
| | | }, |
| | | faultReasonList: { |
| | | type: Array |
| | | } |
| | | }, |
| | | faultReasonList: { |
| | | type: Array |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | title: '操作', |
| | | visible: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 8 } |
| | | data() { |
| | | return { |
| | | title: '操作', |
| | | visible: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 8 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 12 } |
| | | }, |
| | | labelColLong: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 4 } |
| | | }, |
| | | wrapperColLong: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 18 } |
| | | }, |
| | | confirmLoading: false, |
| | | validatorRules: { |
| | | faultStartTime: [ |
| | | { required: true, message: '请选择故障开始时间' } |
| | | ], |
| | | breakdownFlag: [ |
| | | { required: true, message: '请选择是否停机' } |
| | | ], |
| | | equipmentId: [ |
| | | { required: true, message: '请输入设备编号或名称搜索' } |
| | | ], |
| | | faultName: [ |
| | | { required: true, message: '请选择故障简称' } |
| | | ], |
| | | faultDescription: [ |
| | | { required: true, message: '请输入故障描述' } |
| | | ] |
| | | }, |
| | | url: { |
| | | add: '/eam/eamReportRepair/add', |
| | | edit: '/eam/eamReportRepair/edit' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | add() { |
| | | //初始化默认值 |
| | | this.edit({ |
| | | faultDescription: '', |
| | | breakdownFlag: this.breakdownFlagList.find(item => item.label === '否').value |
| | | }) |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 12 } |
| | | |
| | | edit(record) { |
| | | this.model = Object.assign({}, record, { imageFilesResult: record.imageFiles && this.isJSON(record.imageFiles) ? JSON.parse(record.imageFiles) : null }) |
| | | this.visible = true |
| | | }, |
| | | labelColLong: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 4 } |
| | | |
| | | handleFaultNameChange(value) { |
| | | const faultReasonItem = this.faultReasonList.find(item => item.faultName === value) |
| | | this.model.faultType = faultReasonItem.faultCategory |
| | | this.model.faultType_dictText = faultReasonItem.faultCategory_dictText |
| | | this.model.faultDescription = faultReasonItem.faultDescription |
| | | }, |
| | | wrapperColLong: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 18 } |
| | | |
| | | handleOk() { |
| | | const that = this |
| | | // 触发表单验证 |
| | | console.log('model---------------', that.model) |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true |
| | | let httpUrl = '' |
| | | let method = '' |
| | | if (!this.model.id) { |
| | | httpUrl += this.url.add |
| | | method = 'post' |
| | | } else { |
| | | httpUrl += this.url.edit |
| | | method = 'put' |
| | | } |
| | | httpAction(httpUrl, this.model, method).then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message) |
| | | that.$emit('ok') |
| | | } else { |
| | | that.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false |
| | | that.close() |
| | | }) |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | confirmLoading: false, |
| | | validatorRules: { |
| | | faultStartTime: [ |
| | | { required: true, message: '请选择故障开始时间' } |
| | | ], |
| | | breakdownFlag: [ |
| | | { required: true, message: '请选择是否停机' } |
| | | ], |
| | | equipmentId: [ |
| | | { required: true, message: '请输入设备编号或名称搜索' } |
| | | ], |
| | | faultName: [ |
| | | { required: true, message: '请选择故障简称' } |
| | | ] |
| | | |
| | | // 判断是不是JSON字符串 |
| | | isJSON(str) { |
| | | try { |
| | | JSON.parse(str) |
| | | return true // 如果这里没有抛出异常,说明是JSON格式的字符串 |
| | | } catch (e) { |
| | | return false // 如果抛出异常,说明不是JSON格式的字符串 |
| | | } |
| | | }, |
| | | url: { |
| | | add: '/eam/eamReportRepair/add', |
| | | edit: '/eam/eamReportRepair/edit' |
| | | |
| | | /** |
| | | * 禁用日期 |
| | | * @params current 被禁用的时间 |
| | | */ |
| | | disabledDate(current) { |
| | | // Can not select days after today |
| | | return current > moment().endOf('day') |
| | | }, |
| | | |
| | | /** |
| | | * 禁用日期中的时间 |
| | | * @returns {{disabledHours: (function(): Array), disabledMinutes: (function(): Array)}} |
| | | */ |
| | | disabledTime() { |
| | | function range(start, end) { |
| | | const result = [] |
| | | for (let i = start; i < end; i++) { |
| | | result.push(i) |
| | | } |
| | | return result |
| | | } |
| | | |
| | | return { |
| | | disabledHours: () => range(moment().hour() + 1, 24), |
| | | disabledMinutes: () => range(moment().minute(), 60) |
| | | } |
| | | }, |
| | | |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | if (this.$refs.form) this.$refs.form.clearValidate() |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | add() { |
| | | //初始化默认值 |
| | | this.edit({ |
| | | breakdownFlag: this.breakdownFlagList.find(item => item.label === '是').value |
| | | }) |
| | | }, |
| | | edit(record) { |
| | | this.model = Object.assign({}, record) |
| | | this.visible = true |
| | | }, |
| | | handleFaultNameChange(value) { |
| | | const faultReasonItem = this.faultReasonList.find(item => item.faultName === value) |
| | | this.model.faultType = faultReasonItem.faultCategory |
| | | this.model.faultType_dictText = faultReasonItem.faultCategory_dictText |
| | | this.model.faultDescription = faultReasonItem.faultDescription |
| | | }, |
| | | |
| | | handleOk() { |
| | | const that = this |
| | | // 触发表单验证 |
| | | console.log('model---------------', that.model) |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true |
| | | let httpUrl = '' |
| | | let method = '' |
| | | if (!this.model.id) { |
| | | httpUrl += this.url.add |
| | | method = 'post' |
| | | } else { |
| | | httpUrl += this.url.edit |
| | | method = 'put' |
| | | } |
| | | httpAction(httpUrl, this.model, method).then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message) |
| | | that.$emit('ok') |
| | | } else { |
| | | that.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false |
| | | that.close() |
| | | }) |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | this.$refs.form.clearValidate() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | |
| | | <inspection-order-handle ref="modalFormInspectionOrderXq" :selectShenpiData="selectInspectionOrderXqData"/> |
| | | |
| | | <week-maintenance-approval-modal ref="weekMaintenanceApprovalModal" :selectShenpiData="selectWeekMaintenanceData"/> |
| | | |
| | | <repair-order-approval-modal ref="repairOrderApprovalModal" :selectShenpiData="selectRepairOrderData"/> |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | import JDictSelectTag from '@/components/dict/JDictSelectTag.vue' |
| | | import InspectionOrderHandle from './InspectionOrder/InspectionOrderHandle' |
| | | import WeekMaintenanceApprovalModal from './weekMaintenance/WeekMaintenanceApprovalModal' |
| | | import RepairOrderApprovalModal from './repairOrder/RepairOrderApprovalModal' |
| | | |
| | | export default { |
| | | name: 'NcDeviceCharactersList', |
| | | mixins: [JeecgListMixin, mixinDevice], |
| | | components: { |
| | | RepairOrderApprovalModal, |
| | | WeekMaintenanceApprovalModal, |
| | | InspectionOrderHandle, |
| | | JDictSelectTag |
| | |
| | | }, |
| | | dictOptions: {}, |
| | | selectWeekMaintenanceData: {}, |
| | | selectInspectionOrderXqData: {} |
| | | selectInspectionOrderXqData: {}, |
| | | selectRepairOrderData: {} |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | break |
| | | case 'WEEK_MAINTENANCE': |
| | | this.handleWeekMaintenance(item) |
| | | break |
| | | case 'eam_repair': |
| | | this.handleRepairOrder(item) |
| | | break |
| | | default: |
| | | alert('没找到该流程') |
| | |
| | | processInstanceId: procInsId |
| | | }) |
| | | this.$refs.modalFormInspectionOrderXq.getBasicInformation(record) |
| | | }, |
| | | |
| | | /** |
| | | * 点击设备维修分类流程详情时触发 |
| | | * @param record |
| | | */ |
| | | handleRepairOrder(record) { |
| | | this.selectRepairOrderData = Object.assign({}, record) |
| | | const { procInsId, taskName } = this.selectRepairOrderData |
| | | this.$refs.repairOrderApprovalModal.visible = true |
| | | this.$refs.repairOrderApprovalModal.disableSubmit = true |
| | | this.$refs.repairOrderApprovalModal.title = taskName |
| | | this.$refs.modalFormInspectionOrderXq.getAllApproveData({ |
| | | ...record, |
| | | procInstId: procInsId, |
| | | processInstanceId: procInsId |
| | | }) |
| | | this.$refs.repairOrderApprovalModal.getBasicInformation(record) |
| | | } |
| | | } |
| | | } |
| | |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-col :xl="4" :lg="6" :md="8" :sm="24"> |
| | | <a-form-item label="流程分类"> |
| | | <j-dict-select-tag placeholder="请选择流程分类" v-model="queryParam.category" |
| | | dictCode="flow_type"></j-dict-select-tag> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-col :xl="4" :lg="6" :md="8" :sm="24"> |
| | | <a-form-item label="流程名称"> |
| | | <a-input placeholder="请输入流程名称" v-model="queryParam.flowName"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-col :xl="4" :lg="6" :md="8" :sm="24"> |
| | | <a-form-item label="简要描述"> |
| | | <a-input placeholder="请输入简要描述" v-model="queryParam.title"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="10" :lg="11" :md="12" :sm="24"> |
| | | <a-col :xl="8" :lg="8" :md="12" :sm="24"> |
| | | <a-form-item label="当前操作时间"> |
| | | <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" |
| | | v-model="queryParam.startTime"></j-date> |
| | |
| | | v-model="queryParam.endTime"></j-date> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-col :xl="4" :lg="6" :md="8" :sm="24"> |
| | | <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> |
| | | <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> |
| | | <a-button @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> |
| | |
| | | title: '流程分类', |
| | | align: 'center', |
| | | dataIndex: 'category_dictText', |
| | | width: 300 |
| | | }, |
| | | { |
| | | title: '流程名称', |
| | |
| | | |
| | | <template v-slot:reportFlag="props"> |
| | | <j-dict-select-tag v-model="props.row.reportFlag" |
| | | :placeholder="props.row.inspectionResult==='2'?'请选择异常是否保修':''" |
| | | :placeholder="props.row.inspectionResult==='2'?'请选择异常是否报修':''" |
| | | :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'" |
| | | dictCode="yn" |
| | | style="width: 100%"/> |
| | |
| | | <template> |
| | | <a-modal |
| | | <j-modal |
| | | :width="1200" |
| | | :visible="visible" |
| | | :title="title" |
| | | :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" |
| | | @cancel="handCancel" |
| | | @ok="submitForm" |
| | | :mask-closable="false" |
| | | :confirmLoading="confirmLoading" |
| | | centered |
| | | > |
| | | <a-spin :spinning="spinning"> |
| | |
| | | <a-row> |
| | | <a-col :span="twoColSpan*2"> |
| | | <a-form-model-item label="是否需要领用备件" prop="isUseSpare"> |
| | | <a-radio-group v-model="tableRowRecord.isUseSpare"> |
| | | <a-radio-group v-model="tableRowRecord.isUseSpare" |
| | | :disabled="isDisableUseSpare"> |
| | | <a-radio :value="1">是</a-radio> |
| | | <a-radio :value="0">否</a-radio> |
| | | </a-radio-group> |
| | |
| | | </a-row> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane key='2' tab='流程节点'> |
| | | <a-card :bordered="false"> |
| | | <a-timeline> |
| | | <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index"> |
| | | <div> |
| | | <h3 style="font-weight: bold">{{item.taskName}}</h3> |
| | | <div>处理人:{{item.assignee_dictText}}</div> |
| | | <div v-if="index !==0">处理时长:{{item.duration}}</div> |
| | | <div v-if="item.name !== '提交申请'">处理类型:{{item.sequenceFlowName}}</div> |
| | | <div v-if="item.description">处理意见:{{item.description}}</div> |
| | | </div> |
| | | </a-timeline-item> |
| | | </a-timeline> |
| | | </a-card> |
| | | </a-tab-pane> |
| | | <template v-if="selectShenpiData.procInstId"> |
| | | <a-tab-pane key='2' tab='流程节点'> |
| | | <a-card :bordered="false"> |
| | | <a-timeline> |
| | | <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index"> |
| | | <div> |
| | | <h3 style="font-weight: bold;">{{item.taskName}}</h3> |
| | | <div>处理人:{{item.assignee_dictText}}</div> |
| | | <div v-if="index !==0">处理时长:{{item.duration}}</div> |
| | | <div v-if="item.name !== '提交申请'">处理类型:{{item.sequenceFlowName}}</div> |
| | | <div v-if="item.description">处理意见:{{item.description}}</div> |
| | | </div> |
| | | </a-timeline-item> |
| | | </a-timeline> |
| | | </a-card> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane key='3' tab='流程图'> |
| | | <img :src="imageSrc" alt="Fetched Image"/> |
| | | </a-tab-pane> |
| | | <a-tab-pane key='3' tab='流程图'> |
| | | <img :src="imageSrc" alt="Fetched Image"/>--> |
| | | </a-tab-pane> |
| | | </template> |
| | | </a-tabs> |
| | | |
| | | <template v-if="isDisplayConfirmSpare"> |
| | | <template v-if="tableRowRecord.isUseSpare===1&&isDisableUseSpare"> |
| | | <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">管理员领用备件 |
| | | </a-divider> |
| | | |
| | | <a-row> |
| | | <a-col :span="twoColSpan*2"> |
| | | <a-form-model-item prop="sparePartDescription" label="备件描述"> |
| | | <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='WAIT_SPARES'" |
| | | v-model="tableRowRecord.sparePartDescription"/> |
| | | <a-textarea placeholder="请输入备件描述" :readOnly="disableSubmit||tableRowRecord.repairStatus!=='WAIT_SPARES'" |
| | | v-model="tableRowRecord.sparePartDescription"></a-textarea> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </template> |
| | | |
| | | <template v-if="tableRowRecord.sparePartDescription"> |
| | | <template v-if="Boolean(tableRowRecord.sparePartDescription)&&isDisplayRepairResult"> |
| | | <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">维修结果上报</a-divider> |
| | | <a-row> |
| | | <a-col :span="twoColSpan*2"> |
| | |
| | | </template> |
| | | </a-form-model> |
| | | </a-spin> |
| | | </a-modal> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | twoColSpan: 12, |
| | | inputReadOnly: true, |
| | | disableSubmit: false, |
| | | confirmLoading: false, |
| | | spinning: false, |
| | | tableRowRecord: {}, |
| | | hitaskDataSource: [], |
| | |
| | | } |
| | | }, |
| | | computed: { |
| | | isDisplayConfirmSpare() { |
| | | return ['WAIT_SPARES', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) |
| | | isDisableUseSpare() { |
| | | return this.disableSubmit || this.tableRowRecord.repairStatus !== 'UNDER_REPAIR' || Boolean(this.tableRowRecord.sparePartDescription) |
| | | }, |
| | | isDisplayRepairResult() { |
| | | return ['UNDER_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) |
| | | }, |
| | | isDisableSubmitRepairResult() { |
| | | return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus) |
| | |
| | | * @param record 待办记录信息 |
| | | */ |
| | | getAllApproveData(record) { |
| | | if (!record.procInstId) return |
| | | console.log('record----->', record) |
| | | const { procInstId, processDefinitionId, processInstanceId, processDefinitionKey } = record |
| | | const param = { procInstId } |
| | |
| | | // 触发表单验证 |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true |
| | | that.confirmLoading = that.spinning = true |
| | | const { isUseSpare, faultReason, repairDescription, sparePartDescription, imageFiles, equipmentId } = that.tableRowRecord |
| | | const { dataId, id, procInstId, taskDefKey, variables } = that.selectShenpiData |
| | | |
| | |
| | | .then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message) |
| | | that.$emit('ok') |
| | | that.handCancel() |
| | | that.$emit('searchReset') |
| | | } else { |
| | | that.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false |
| | | that.confirmLoading = that.spinning = false |
| | | }) |
| | | } else { |
| | | return false |