<template>
|
<a-card
|
:bordered="false"
|
title="三级保养工单"
|
>
|
<!-- 查询区域 -->
|
<div class="table-page-search-wrapper">
|
<a-form
|
layout="inline"
|
@keyup.enter.native="searchQuery"
|
>
|
<a-row :gutter="24">
|
<a-col
|
:md="6"
|
:sm="8"
|
>
|
<a-form-item label="三级工单编码">
|
<a-input
|
placeholder="请输入三级工单编码"
|
v-model="queryParam.num"
|
></a-input>
|
</a-form-item>
|
</a-col>
|
<a-col
|
:md="6"
|
:sm="8"
|
>
|
<span
|
style="float: left;overflow: hidden;"
|
class="table-page-search-submitButtons"
|
>
|
<a-button
|
type="primary"
|
@click="searchQuery"
|
icon="search"
|
>查询</a-button>
|
<a-button
|
type="primary"
|
@click="searchReset"
|
icon="reload"
|
style="margin-left: 8px"
|
>重置</a-button>
|
</span>
|
</a-col>
|
</a-row>
|
</a-form>
|
</div>
|
<!-- 查询区域-END -->
|
|
<!-- 操作按钮区域 -->
|
<div class="table-operator">
|
<a-button
|
@click="handleAdd"
|
type="primary"
|
icon="plus"
|
v-has="'dailyMaintenanceOrder:add'"
|
>新增</a-button>
|
<a-button
|
v-if="selectedRowKeys.length == 1 && selectionRows[0].status == '8'"
|
@click="handlePrintCheck(selectionRows[0])"
|
type="primary"
|
style="margin-left: 8px"
|
>验收单打印
|
</a-button>
|
<a-button
|
v-if="selectedRowKeys.length == 1 && selectionRows[0].status == '8'"
|
@click="handlePrintInfo(selectionRows[0])"
|
type="primary"
|
style="margin-left: 8px"
|
>移交单打印
|
</a-button>
|
<!-- <a-button
|
v-if="selectedRowKeys.length > 0"
|
type="primary"
|
@click="batchAssign"
|
style="margin-left: 8px"
|
>工单派工</a-button> -->
|
<!-- <a-button
|
type="primary"
|
icon="download"
|
@click="handleExportXls('mom_eam_inspection_order')"
|
>导出</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"
|
><a-icon type="delete" />删除</a-menu-item>
|
</a-menu>
|
<a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
|
</a-dropdown> -->
|
</div>
|
|
<!-- table区域-begin -->
|
<div>
|
<!-- <div
|
class="ant-alert ant-alert-info"
|
style="margin-bottom: 16px;"
|
>
|
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
|
<a
|
style="margin-left: 24px"
|
@click="onClearSelected"
|
>清空</a>
|
</div> -->
|
|
<a-table
|
ref="table"
|
size="middle"
|
:scroll="{ x: 'calc(2800px + 50%)', y: 900 }"
|
bordered
|
rowKey="id"
|
:columns="columns"
|
:dataSource="dataSource"
|
:pagination="ipagination"
|
:loading="loading"
|
class="j-table-force-nowrap"
|
@change="handleTableChange"
|
:rowSelection="rowSelection"
|
:rowClassName="tableRowClass"
|
>
|
|
<span
|
slot="action"
|
slot-scope="text, record"
|
>
|
<a-popconfirm
|
title="确定下发工单吗?"
|
@confirm="() => handleOrderIssue(record)"
|
v-has="'dailyMaintenanceOrder:issue'"
|
>
|
<a v-if="record.status == '1'">下发</a>
|
</a-popconfirm>
|
<a-divider
|
v-if="record.status == '1'"
|
type="vertical"
|
/>
|
<a
|
v-if="record.status === '2'"
|
@click="handleOrderChange(record)"
|
>计划变更</a>
|
<a-divider
|
v-if="record.status == '2'"
|
type="vertical"
|
/>
|
<a-popconfirm
|
title="确定撤回工单吗?"
|
@confirm="() => handleOrderReset(record)"
|
v-has="'dailyMaintenanceOrder:issue'"
|
>
|
<a v-if="record.status == '2'">撤回</a>
|
</a-popconfirm>
|
<a-divider
|
v-if="record.status == '2'"
|
type="vertical"
|
/>
|
<a-popconfirm
|
title="确定恢复工单吗?"
|
@confirm="() => handleOrderRecover(record)"
|
v-has="'dailyMaintenanceOrder:recover'"
|
>
|
<a v-if="record.status == '7'">恢复</a>
|
</a-popconfirm>
|
<a-divider
|
v-if="record.status == '7'"
|
type="vertical"
|
/>
|
<a-popconfirm
|
title="确定作废工单吗?"
|
@confirm="() => handleOrderCancel(record)"
|
v-has="'dailyMaintenanceOrder:recover'"
|
>
|
<a v-if="record.status == '2'">作废</a>
|
</a-popconfirm>
|
<a-divider
|
v-if="record.status == '2'"
|
type="vertical"
|
/>
|
<a-popconfirm
|
title="确定领取工单吗?"
|
@confirm="() => handleOrderGet(record)"
|
v-has="'dailyMaintenanceOrder:get'"
|
>
|
<a v-if="record.status == '2' && record.assignMode == '1'">领取</a>
|
</a-popconfirm>
|
<a
|
v-if="record.status == '2' && record.assignMode == '2' "
|
@click="handleAssignOrder(record)"
|
v-has="'dailyMaintenanceOrder:assign'"
|
>派工</a>
|
<a
|
v-if="record.status == '3'&& record.assignMode == '2' && record.maintenanceUserName != null "
|
@click="handleAssignOrder(record)"
|
v-has="'dailyMaintenanceOrder:assign'"
|
>改派</a>
|
<!-- <a
|
v-if="record.status == '3'"
|
@click="handleAssignOrder(record)"
|
>改派</a> -->
|
<a-divider
|
v-if="record.status == '2'"
|
type="vertical"
|
/>
|
<a-divider
|
v-if="record.status === '3'&& record.assignMode == '2' && record.maintenanceUserName != null "
|
type="vertical"
|
/>
|
<a
|
v-if="record.status === '3' || record.status === '4' "
|
@click="handleOrderExe(record)"
|
v-has="'dailyMaintenanceOrder:exe'"
|
>执行</a>
|
<a-divider
|
v-if="record.status === '3' || record.status === '4' "
|
type="vertical"
|
/>
|
<a
|
v-if="record.status === '1'"
|
@click="handleEdit(record)"
|
v-has="'dailyMaintenanceOrder:edit'"
|
>编辑</a>
|
<a-divider
|
v-if="record.status === '1'"
|
type="vertical"
|
/>
|
<!-- <a
|
v-if="record.status === '5'"
|
@click="handleFinish(record)"
|
>确认</a>
|
<a-divider
|
v-if="record.status === '5'"
|
type="vertical"
|
/> -->
|
<a
|
v-if="record.status === '5'"
|
@click="handlePrecisionCheckOrder(record)"
|
>精度检验</a>
|
<a-divider
|
v-if="record.status === '5'"
|
type="vertical"
|
/>
|
<a-dropdown>
|
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
|
<a-menu slot="overlay">
|
<a-menu-item>
|
<a @click="handleDetail(record)">详情</a>
|
</a-menu-item>
|
<a-menu-item>
|
<a-popconfirm
|
title="确定删除吗?"
|
@confirm="() => handleDelete(record.id)"
|
v-has="'dailyMaintenanceOrder:delete'"
|
>
|
<a v-if="record.status === '1'">删除</a>
|
</a-popconfirm>
|
</a-menu-item>
|
</a-menu>
|
</a-dropdown>
|
</span>
|
|
<span
|
slot="num"
|
slot-scope="text, record"
|
>
|
<a
|
v-if="record.status === '3' || record.status === '4' ||record.status === '5' ||record.status === '7' ||record.status === '8'"
|
class="lot"
|
@click="handleOrderExe(record)"
|
>{{record.num}}</a>
|
<span v-else>{{record.num}}</span>
|
</span>
|
|
</a-table>
|
</div>
|
|
<maintenance-order-modal
|
ref="modalForm"
|
@ok="modalFormOk"
|
></maintenance-order-modal>
|
<finish-devolution-modal
|
ref="FinishDevolutionModal"
|
@ok="modalFormOk"
|
></finish-devolution-modal>
|
<maintenance-order-change-modal
|
ref="MaintenanceOrderChangeModal"
|
@ok="modalFormOk"
|
></maintenance-order-change-modal>
|
<equipment-precision-check-order-modal
|
ref="EquipmentPrecisionCheckOrderModal"
|
@ok="modalFormOk"
|
></equipment-precision-check-order-modal>
|
<maintenance-order-assign-modal
|
ref="MaintenanceOrderAssignModal"
|
@ok="modalFormOk"
|
></maintenance-order-assign-modal>
|
<daily-maintenance-order-exe-drawer
|
ref="DailyMaintenanceOrderExeDrawer"
|
@ok="modalFormOk"
|
></daily-maintenance-order-exe-drawer>
|
</a-card>
|
</template>
|
|
<script>
|
|
import '@/assets/less/TableExpand.less'
|
import { mixinDevice } from '@/utils/mixin'
|
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
|
import MaintenanceOrderModal from './modules/dailyMaintenanceOrder/MaintenanceOrderModal'
|
import FinishDevolutionModal from './modules/dailyMaintenanceOrder/FinishDevolutionModal'
|
import MaintenanceOrderChangeModal from './modules/dailyMaintenanceOrder/MaintenanceOrderChangeModal'
|
import EquipmentPrecisionCheckOrderModal from './modules/dailyMaintenanceOrder/EquipmentPrecisionCheckOrderModal'
|
import MaintenanceOrderAssignModal from './modules/dailyMaintenanceOrder/MaintenanceOrderAssignModal'
|
import DailyMaintenanceOrderExeDrawer from './modules/dailyMaintenanceOrder/DailyMaintenanceOrderExeDrawer'
|
import { getAction, postAction, requestPut } from '@/api/manage'
|
|
export default {
|
name: 'DailyMaintenanceOrderList',
|
mixins: [JeecgListMixin, mixinDevice],
|
components: {
|
MaintenanceOrderModal,
|
FinishDevolutionModal,
|
MaintenanceOrderAssignModal,
|
EquipmentPrecisionCheckOrderModal,
|
DailyMaintenanceOrderExeDrawer,
|
MaintenanceOrderChangeModal
|
},
|
data() {
|
return {
|
description: '日常保养工单',
|
// 表头
|
columns: [
|
{
|
title: '#',
|
dataIndex: '',
|
key: 'rowIndex',
|
width: 60,
|
align: "center",
|
customRender: function (t, r, index) {
|
return parseInt(index) + 1;
|
}
|
},
|
{
|
title: '状态',
|
align: "center",
|
dataIndex: 'statusName'
|
},
|
{
|
title: '保养工单号',
|
align: "center",
|
dataIndex: 'num',
|
scopedSlots: { customRender: 'num' }
|
},
|
{
|
title: '保养周期',
|
align: "center",
|
dataIndex: 'maintenanceCycleName',
|
},
|
{
|
title: '派工方式',
|
align: "center",
|
dataIndex: 'assignModeName'
|
},
|
{
|
title: '设备编码',
|
align: "center",
|
dataIndex: 'equipmentNum',
|
},
|
{
|
title: '设备名称',
|
align: "center",
|
dataIndex: 'equipmentName',
|
},
|
{
|
title: '型号',
|
align: "center",
|
dataIndex: 'equipmentModel',
|
},
|
{
|
title: '保养标准编码',
|
align: "center",
|
dataIndex: 'maintenanceStandardNum',
|
},
|
|
{
|
title: '使用部门',
|
align: "center",
|
dataIndex: 'departName'
|
},
|
{
|
title: '责任班组',
|
align: "center",
|
dataIndex: 'teamName'
|
},
|
{
|
title: '工时定额',
|
align: "center",
|
dataIndex: 'workingHourQuota'
|
},
|
{
|
title: '计划开始时间',
|
align: "center",
|
dataIndex: 'planStartTime',
|
//width: '120px',
|
},
|
{
|
title: '计划结束时间',
|
align: "center",
|
dataIndex: 'planEndTime',
|
//width: '120px',
|
},
|
{
|
title: '实际开始时间',
|
align: "center",
|
dataIndex: 'actualStartTime',
|
//width: '120px',
|
},
|
{
|
title: '实际结束时间',
|
align: "center",
|
dataIndex: 'actualEndTime',
|
//width: '120px',
|
},
|
{
|
title: '实际用时',
|
align: "center",
|
dataIndex: 'actualWorkingHourQuota',
|
},
|
{
|
title: '执行人',
|
align: "center",
|
dataIndex: 'maintenanceUserName'
|
},
|
{
|
title: '问题及相应处理措施描述',
|
align: "center",
|
dataIndex: 'description'
|
},
|
{
|
title: '创建人',
|
align: "center",
|
dataIndex: 'createBy'
|
},
|
{
|
title: '创建日期',
|
align: "center",
|
dataIndex: 'createTime',
|
//width: '120px',
|
},
|
{
|
title: '操作',
|
dataIndex: 'action',
|
align: "center",
|
fixed: "right",
|
width: 300,
|
scopedSlots: { customRender: 'action' }
|
}
|
],
|
url: {
|
list: "/eam/dailyMaintenanceOrder/getDailyMaintenanceOrderList",
|
delete: "/eam/dailyMaintenanceOrder/delete",
|
deleteBatch: "/eam/dailyMaintenanceOrder/deleteBatch",
|
exportXlsUrl: "/eam/dailyMaintenanceOrder/exportXls",
|
importExcelUrl: "eam/dailyMaintenanceOrder/importExcel",
|
edit: "/eam/dailyMaintenanceOrder/editStatus",
|
orderGet: "/eam/dailyMaintenanceOrder/orderGet",
|
},
|
}
|
},
|
|
computed: {
|
importExcelUrl: function () {
|
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
|
},
|
rowSelection() {
|
return {
|
type: 'checkbox',
|
onChange: (selectedRowKeys, selectedRows) => {
|
this.selectedRowKeys = selectedRowKeys;
|
this.onSelectChange(selectedRows);
|
},
|
getCheckboxProps: record => ({
|
props: {
|
disabled: record.distable
|
},
|
}),
|
selectedRowKeys: this.selectedRowKeys,
|
};
|
},
|
},
|
|
methods: {
|
|
// batchAssign() {
|
// this.$refs.MaintenanceOrderAssignModal.visible = true
|
// this.$refs.MaintenanceOrderAssignModal.title = '工单派工'
|
// this.$refs.MaintenanceOrderAssignModal.selectionRows
|
// this.$refs.MaintenanceOrderAssignModal.handleShow()
|
// this.$bus.$emit('selectionRows', this.selectionRows);
|
// },
|
onSelectChange(selectionRows) {
|
this.selectionRows = selectionRows;
|
},
|
|
handlePrintCheck(record) {
|
let href = `${window._CONFIG['domianURL']}/jmreport/view/858867141388996608?id=`+record.id; //网站链接
|
window.open(href, "_blank");
|
},
|
|
|
handlePrintInfo(record) {
|
let href = `${window._CONFIG['domianURL']}/jmreport/view/858930685061042176?id=`+record.id; //网站链接
|
window.open(href, "_blank");
|
},
|
|
|
handleOrderExe(record) {
|
this.$refs.DailyMaintenanceOrderExeDrawer.visible = true
|
this.$refs.DailyMaintenanceOrderExeDrawer.title = '日常保养工单执行'
|
this.$refs.DailyMaintenanceOrderExeDrawer.handleShow(record)
|
if (record.status === '3') {
|
this.$refs.DailyMaintenanceOrderExeDrawer.buttonDistable = true//保存、暂存、报工
|
this.$refs.DailyMaintenanceOrderExeDrawer.revocationDistable = true//撤销按钮
|
this.$refs.DailyMaintenanceOrderExeDrawer.SWbuttonDistable = false//开工按钮
|
} else if (record.status === '4') {
|
this.$refs.DailyMaintenanceOrderExeDrawer.buttonDistable = false
|
this.$refs.DailyMaintenanceOrderExeDrawer.revocationDistable = true
|
this.$refs.DailyMaintenanceOrderExeDrawer.SWbuttonDistable = true
|
} else if (record.status === '5') {
|
this.$refs.DailyMaintenanceOrderExeDrawer.buttonDistable = true
|
this.$refs.DailyMaintenanceOrderExeDrawer.revocationDistable = false
|
this.$refs.DailyMaintenanceOrderExeDrawer.SWbuttonDistable = true
|
} else if (record.status === '7') {
|
this.$refs.DailyMaintenanceOrderExeDrawer.buttonDistable = true
|
this.$refs.DailyMaintenanceOrderExeDrawer.revocationDistable = true
|
this.$refs.DailyMaintenanceOrderExeDrawer.SWbuttonDistable = true
|
}
|
},
|
|
handleFinish: function (record) {
|
this.$refs.FinishDevolutionModal.edit(record);
|
this.$refs.FinishDevolutionModal.title = "生产设备二级保养完工移交单";
|
this.$refs.FinishDevolutionModal.disableSubmit = false;
|
},
|
|
handlePrecisionCheckOrder: function (record) {
|
this.$refs.EquipmentPrecisionCheckOrderModal.edit(record);
|
this.$refs.EquipmentPrecisionCheckOrderModal.title = "生产设备精度检验单";
|
this.$refs.EquipmentPrecisionCheckOrderModal.disableSubmit = false;
|
},
|
|
handleOrderChange: function (record) {
|
|
this.$refs.MaintenanceOrderChangeModal.edit(record);
|
this.$refs.MaintenanceOrderChangeModal.title = "生产设备保养计划变更申请单";
|
this.$refs.MaintenanceOrderChangeModal.disableSubmit = false;
|
},
|
|
|
|
handleOrderIssue(record) {
|
const that = this;
|
requestPut(that.url.edit, { id: record.id, status: '2' }).then((res) => {
|
if (res.success) {
|
that.$message.success("工单下发成功!")
|
that.loadData()
|
} else {
|
that.$message.warning("工单下发失败!")
|
}
|
})
|
},
|
//撤回
|
handleOrderReset(record) {
|
const that = this;
|
requestPut(that.url.edit, { id: record.id, status: '1' }).then((res) => {
|
if (res.success) {
|
that.$message.success("工单撤回成功!")
|
that.loadData()
|
} else {
|
that.$message.warning("工单撤回失败!")
|
}
|
})
|
},
|
handleOrderGet(record) {
|
const that = this;
|
requestPut(that.url.orderGet, { id: record.id, status: '1' }).then((res) => {
|
if (res.success) {
|
that.$message.success("工单领取成功!")
|
that.loadData()
|
} else {
|
that.$message.warning("工单领取失败!")
|
}
|
})
|
},
|
//作废
|
handleOrderCancel(record) {
|
const that = this;
|
requestPut(that.url.edit, { id: record.id, status: '7' }).then((res) => {
|
if (res.success) {
|
that.$message.success("工单作废成功!")
|
that.loadData()
|
} else {
|
that.$message.warning("工单作废失败!")
|
}
|
})
|
},
|
|
//恢复
|
handleOrderRecover(record) {
|
const that = this;
|
requestPut(that.url.edit, { id: record.id, status: '2' }).then((res) => {
|
if (res.success) {
|
that.$message.success("工单恢复成功!")
|
that.loadData()
|
} else {
|
that.$message.warning("工单恢复失败!")
|
}
|
})
|
},
|
|
//改派
|
handleAssignOrder: function (record) {
|
this.$refs.MaintenanceOrderAssignModal.edit(record)
|
this.$refs.MaintenanceOrderAssignModal.title = '工单改派'
|
this.$refs.MaintenanceOrderAssignModal.disableSubmit = false
|
},
|
// modalFormOk() {
|
// alert(0)
|
// // 新增/修改 成功时,重载列表
|
// this.loadData();
|
// //清空列表选中
|
// this.onClearSelected()
|
// },
|
|
//预警颜色
|
tableRowClass(record, index) {
|
if ("1" == record.status || "2" == record.status) {
|
if (record.yellowWarningTime < record.currentDateTime && record.currentDateTime < record.redWarningTime) {
|
return 'yellow'
|
} else if (record.redWarningTime < record.currentDateTime && record.currentDateTime < record.planStartTime) {
|
return 'error'
|
} else if (record.planStartTime < record.currentDateTime) {
|
return 'frozenRowClass'
|
}
|
}
|
},
|
}
|
}
|
</script>
|
<style >
|
@import '~@assets/less/common.less';
|
.frozenRowClass {
|
color: #c9c9c9;
|
font-weight: bold;
|
}
|
.success {
|
color: green;
|
}
|
.error {
|
color: red;
|
font-weight: bold;
|
}
|
.yellow {
|
color: yellow;
|
font-weight: bold;
|
}
|
.fontweight {
|
font-weight: bold;
|
}
|
|
.ant-table-tbody .red {
|
background-color: red !important;
|
}
|
</style>
|