<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.equipmentNum"
|
></a-input>
|
</a-form-item>
|
</a-col>
|
<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 :span="6">
|
<a-form-item
|
label="使用部门"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
>
|
<j-dict-select-tag
|
dictCode="sys_depart,depart_name,id"
|
placeholder="请输入使用部门"
|
v-model="queryParam.useDepartId"
|
/>
|
</a-form-item>
|
</a-col>
|
<a-col :span="6">
|
<a-form-item
|
label="状态"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
>
|
<j-dict-select-tag
|
dictCode="daily_inspection_standard_status"
|
placeholder="请选择状态"
|
v-model="queryParam.status"
|
/>
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row :gutter="24">
|
<a-col :span="6">
|
<a-form-item
|
label="责任班组"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
>
|
<j-dict-select-tag
|
dictCode="mom_base_team,name,id,status='1' and del_flag='0'"
|
placeholder="请选择责任班组"
|
v-model="queryParam.teamId"
|
/>
|
</a-form-item>
|
</a-col>
|
<a-col :span="7">
|
<a-form-item label="点检时间">
|
<a-range-picker
|
style="width: 100%;"
|
format="YYYY-MM-DD HH:mm:ss"
|
v-model="finishTime"
|
@change="timeChange"
|
/>
|
</a-form-item>
|
</a-col>
|
</a-row>
|
</a-form>
|
</div>
|
<!-- 查询区域-END -->
|
|
<!-- 操作按钮区域 -->
|
<div class="table-operator">
|
<a-button
|
@click="handleAdd"
|
type="primary"
|
icon="plus"
|
v-has="'dailyInspectionOrder:add'"
|
>新增</a-button>
|
<a-button
|
type="primary"
|
@click="searchQuery"
|
icon="search"
|
style="margin-left: 8px"
|
>查询</a-button>
|
<a-button
|
type="primary"
|
@click="searchReset"
|
icon="reload"
|
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(2200px + 50%)', y: 900 }"
|
bordered
|
rowKey="id"
|
:columns="columns"
|
:dataSource="dataSource"
|
:pagination="ipagination"
|
:loading="loading"
|
class="j-table-force-nowrap"
|
@change="handleTableChange"
|
:rowClassName="tableRowClass"
|
>
|
<!-- :rowSelection="rowSelection" -->
|
<!-- :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" -->
|
|
<span
|
slot="action"
|
slot-scope="text, record"
|
>
|
<a-popconfirm
|
title="确定接收工单吗?"
|
@confirm="() => handleOrderIssue(record)"
|
v-has="'dailyInspectionOrder:issue'"
|
>
|
<a v-if="record.status == '1'">接收</a>
|
</a-popconfirm>
|
<a-divider
|
v-if="record.status == '1'"
|
type="vertical"
|
/>
|
<a-popconfirm
|
title="确定撤回工单吗?"
|
@confirm="() => handleOrderReset(record)"
|
v-has="'dailyInspectionOrder: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="'dailyInspectionOrder: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="'dailyInspectionOrder: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="'dailyInspectionOrder: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="'dailyInspectionOrder:assign'"
|
>派工</a> -->
|
<!-- <a
|
v-if="record.status == '2'&& record.assignMode == '3' && record.inspectionUserName != null "
|
@click="handleAssignOrder(record)"
|
v-has="'dailyInspectionOrder:assign'"
|
>改派</a>
|
<a
|
v-if="record.status == '3'"
|
@click="handleAssignOrder(record)"
|
v-has="'dailyInspectionOrder:assign'"
|
>改派</a>-->
|
<a-divider
|
v-if="record.status == '2'"
|
type="vertical"
|
/>
|
<a-divider
|
v-if="record.status === '3'"
|
type="vertical"
|
/>
|
<a
|
v-if="record.status === '3' || record.status === '4' "
|
@click="handleOrderExe(record)"
|
v-has="'dailyInspectionOrder:exe'"
|
>执行</a>
|
<a-divider
|
v-if="record.status === '3' || record.status === '4' "
|
type="vertical"
|
/>
|
<a-popconfirm
|
title="维修人确认完工吗?"
|
@confirm="() => handleOrderRepairConfirm(record)"
|
v-has="'dailyInspectionOrder:repairConfirm'"
|
>
|
<a v-if="record.status == '5'">维修确认</a>
|
</a-popconfirm>
|
<a-divider
|
v-if="record.status == '5'"
|
type="vertical"
|
/>
|
<a
|
v-if="record.status === '1'"
|
@click="handleEdit(record)"
|
v-has="'dailyInspectionOrder:edit'"
|
>编辑</a>
|
<a-divider
|
v-if="record.status === '1'"
|
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="'dailyInspectionOrder: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 === '6' "
|
class="lot"
|
@click="handleOrderExe(record)"
|
>{{record.num}}</a>
|
<span v-else>{{record.num}}</span>
|
</span>
|
|
</a-table>
|
</div>
|
|
<daily-inspection-order-modal
|
ref="modalForm"
|
@ok="modalFormOk"
|
></daily-inspection-order-modal>
|
|
<inspection-order-assign-modal
|
ref="InspectionOrderAssignModal"
|
@ok="modalFormOk"
|
></inspection-order-assign-modal>
|
|
<inspection-order-exe-modal
|
ref="InspectionOrderExeModal"
|
@ok="modalFormOk"
|
></inspection-order-exe-modal>
|
<daily-inspection-order-exe-drawer
|
ref="DailyInspectionOrderExeDrawer"
|
@ok="modalFormOk"
|
></daily-inspection-order-exe-drawer>
|
|
</a-card>
|
</template>
|
|
<script>
|
|
import '@/assets/less/TableExpand.less'
|
import { mixinDevice } from '@/utils/mixin'
|
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
|
import DailyInspectionOrderModal from './modules/dailyInspectionOrder/DailyInspectionOrderModal'
|
import InspectionOrderAssignModal from './modules/dailyInspectionOrder/InspectionOrderAssignModal'
|
import InspectionOrderExeModal from './modules/dailyInspectionOrder/InspectionOrderExeModal'
|
import DailyInspectionOrderExeDrawer from './modules/dailyInspectionOrder/DailyInspectionOrderExeDrawer'
|
import { getAction, postAction, requestPut } from '@/api/manage'
|
import moment from 'moment'
|
|
export default {
|
name: 'DailyInspectionOrderList',
|
mixins: [JeecgListMixin, mixinDevice],
|
components: {
|
DailyInspectionOrderModal,
|
InspectionOrderExeModal,
|
DailyInspectionOrderExeDrawer,
|
InspectionOrderAssignModal
|
},
|
data() {
|
return {
|
description: '自主维护点检工单',
|
finishTime: [],
|
// 表头
|
columns: [
|
{
|
title: '#',
|
dataIndex: '',
|
key: 'rowIndex',
|
width: 60,
|
align: "center",
|
customRender: function (t, r, index) {
|
return parseInt(index) + 1;
|
}
|
},
|
|
{
|
title: '点检工单号',
|
align: "center",
|
dataIndex: 'num',
|
scopedSlots: { customRender: 'num' }
|
},
|
{
|
title: '统一编码',
|
align: "center",
|
dataIndex: 'equipmentNum'
|
},
|
{
|
title: '状态',
|
align: "center",
|
width: 100,
|
dataIndex: 'statusName'
|
},
|
{
|
title: '点检周期',
|
align: "center",
|
width: 100,
|
dataIndex: 'inspectionCycleName'
|
},
|
// {
|
// title: '点检日期',
|
// align: "center",
|
// dataIndex: 'inspectionDate',
|
// customRender: function (text) {
|
// return !text ? "" : (text.length > 10 ? text.substr(0, 10) : text)
|
// }
|
// },
|
// {
|
// title: '点检时间',
|
// align: "center",
|
// dataIndex: 'inspectionTime',
|
// // customRender: function (text) {
|
// // return !text ? "" : (text.length > 10 ? text.substr(11, 20) : text)
|
// // }
|
// },
|
// {
|
// title: '截止时间',
|
// align: "center",
|
// dataIndex: 'inspectionDeadline',
|
// },
|
|
{
|
title: '设备名称',
|
align: "center",
|
dataIndex: 'equipmentName'
|
},
|
{
|
title: '设备型号',
|
align: "center",
|
dataIndex: 'equipmentModel'
|
},
|
{
|
title: '使用部门',
|
align: "center",
|
dataIndex: 'useDepartName'
|
},
|
{
|
title: '责任班组',
|
align: "center",
|
dataIndex: 'teamName'
|
},
|
// {
|
// title: '开工条件',
|
// align: "center",
|
// dataIndex: 'startWorkCondition',
|
// customRender: (text) => {
|
// if (text == '1') {
|
// return "是";
|
// } else if (text == '0') {
|
// return "否";
|
// }
|
// },
|
// },
|
// {
|
// title: '点检标准编码',
|
// align: "center",
|
// dataIndex: 'inspectionStandardNum'
|
// },
|
|
// {
|
// title: '派工方式',
|
// align: "center",
|
// dataIndex: 'assignModeName'
|
// },
|
// {
|
// title: '点检结果',
|
// align: "center",
|
// dataIndex: 'result'
|
// },
|
{
|
title: '点检人',
|
align: "center",
|
dataIndex: 'inspectionUserName'
|
},
|
{
|
title: '点检时间',
|
align: "center",
|
dataIndex: 'actualEndTime',
|
// customRender: function (text) {
|
// return !text ? "" : (text.length > 10 ? text.substr(0, 10) : text)
|
// }
|
},
|
{
|
title: '维修确认人',
|
align: "center",
|
dataIndex: 'repairConfirmPerson'
|
},
|
{
|
title: '确认时间',
|
align: "center",
|
dataIndex: 'repairConfirmDate',
|
// customRender: function (text) {
|
// return !text ? "" : (text.length > 10 ? text.substr(0, 10) : text)
|
// }
|
},
|
// {
|
// title: '创建人',
|
// align: "center",
|
// dataIndex: 'createBy'
|
// },
|
// {
|
// title: '创建日期',
|
// align: "center",
|
// dataIndex: 'createTime',
|
// },
|
|
{
|
title: '操作',
|
dataIndex: 'action',
|
align: "center",
|
fixed: "right",
|
width: 230,
|
scopedSlots: { customRender: 'action' }
|
}
|
],
|
url: {
|
list: "/eam/inspectionOrder/getInspectionOrderList",
|
delete: "/eam/inspectionOrder/delete",
|
deleteBatch: "/eam/inspectionOrder/deleteBatch",
|
exportXlsUrl: "/eam/inspectionOrder/exportXls",
|
importExcelUrl: "eam/inspectionOrder/importExcel",
|
edit: "/eam/inspectionOrder/editStatus",
|
orderGet: "/eam/inspectionOrder/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: {
|
|
// handleOrderExe(record) {
|
// this.$refs.InspectionOrderExeModal.visible = true
|
// this.$refs.InspectionOrderExeModal.title = '日常点检执行'
|
// this.$refs.InspectionOrderExeModal.handleShow(record)
|
// },
|
//改派
|
handleAssignOrder: function (record) {
|
this.$refs.InspectionOrderAssignModal.edit(record)
|
this.$refs.InspectionOrderAssignModal.title = '工单改派'
|
this.$refs.InspectionOrderAssignModal.disableSubmit = false
|
},
|
handleOrderExe(record) {
|
this.$refs.DailyInspectionOrderExeDrawer.visible = true
|
this.$refs.DailyInspectionOrderExeDrawer.title = '自主维护点检执行'
|
this.$refs.DailyInspectionOrderExeDrawer.handleShow(record)
|
if (record.status === '3') {
|
this.$refs.DailyInspectionOrderExeDrawer.buttonDistable = true//保存、暂存、报工
|
this.$refs.DailyInspectionOrderExeDrawer.revocationDistable = true//撤销按钮
|
this.$refs.DailyInspectionOrderExeDrawer.SWbuttonDistable = false//开工按钮
|
} else if (record.status === '4') {
|
this.$refs.DailyInspectionOrderExeDrawer.buttonDistable = false
|
this.$refs.DailyInspectionOrderExeDrawer.revocationDistable = true
|
this.$refs.DailyInspectionOrderExeDrawer.SWbuttonDistable = true
|
} else if (record.status === '5') {
|
this.$refs.DailyInspectionOrderExeDrawer.buttonDistable = true
|
this.$refs.DailyInspectionOrderExeDrawer.revocationDistable = false
|
this.$refs.DailyInspectionOrderExeDrawer.SWbuttonDistable = true
|
} else if (record.status === '6') {
|
this.$refs.DailyInspectionOrderExeDrawer.buttonDistable = true
|
this.$refs.DailyInspectionOrderExeDrawer.revocationDistable = true
|
this.$refs.DailyInspectionOrderExeDrawer.SWbuttonDistable = true
|
}
|
},
|
|
onSelectChange(selectionRows) {
|
this.selectionRows = selectionRows;
|
},
|
|
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: '3' }).then((res) => {
|
if (res.success) {
|
that.$message.success("工单领取成功!")
|
that.loadData()
|
} else {
|
that.$message.warning("工单领取失败!")
|
}
|
})
|
},
|
//维修确认
|
handleOrderRepairConfirm(record) {
|
const that = this;
|
requestPut(that.url.edit, { id: record.id, status: '6' }).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("工单恢复失败!")
|
}
|
})
|
},
|
|
searchReset() {
|
this.queryParam = {}
|
this.finishTime = []
|
this.loadData(1);
|
},
|
|
timeChange() {
|
this.queryParam.inspectionStartTime = moment(this.finishTime[0]).format("YYYY-MM-DD HH:mm:ss")
|
this.queryParam.inspectionEndTime = moment(this.finishTime[1]).format("YYYY-MM-DD HH:mm:ss")
|
},
|
|
|
//预警颜色
|
tableRowClass(record, index) {
|
if (("1" == record.status || "2" == record.status) && "1日" == record.inspectionCycleName) {
|
if (record.redWarningTime < record.currentDateTime) {
|
return 'error'
|
}
|
}
|
},
|
|
|
}
|
}
|
</script>
|
<style>
|
@import '~@assets/less/common.less';
|
.frozenRowClass {
|
color: #c9c9c9;
|
font-weight: bold;
|
}
|
.success {
|
color: green;
|
}
|
.error {
|
color: red;
|
font-weight: bold;
|
}
|
.yellow {
|
color: rgba(255, 255, 0, 0.443);
|
font-weight: bold;
|
}
|
.fontweight {
|
font-weight: bold;
|
}
|
|
.ant-table-tbody .red {
|
background-color: red !important;
|
}
|
</style>
|