<!--
|
Description: 工作流-我的待办 List
|
Author: 作者 liuyh
|
Date: 2025-02-27
|
-->
|
<template>
|
<a-card :bordered='false'>
|
<!-- 查询区域 -->
|
<div class='table-page-search-wrapper'>
|
<a-form layout='inline' @keyup.enter.native='searchQuery'>
|
<a-row :gutter='24'>
|
<a-col :lg='6' :md='8' :sm='24' :xl='4'>
|
<a-form-item label='流程分类'>
|
<j-dict-select-tag v-model='queryParam.category' dictCode='flow_type' placeholder='请选择流程分类'/>
|
</a-form-item>
|
</a-col>
|
<a-col :lg='6' :md='8' :sm='24' :xl='4'>
|
<a-form-item label='当前节点'>
|
<a-input v-model='queryParam.name' placeholder='请输入当前节点精确查询'/>
|
</a-form-item>
|
</a-col>
|
<a-col :lg='6' :md='8' :sm='24' :xl='4'>
|
<a-form-item label='简要描述'>
|
<a-input v-model='queryParam.title' placeholder='请输入简要描述'/>
|
</a-form-item>
|
</a-col>
|
<a-col :lg='8' :md='12' :sm='24' :xl='8'>
|
<a-form-item label='任务时间范围'>
|
<j-date v-model='queryParam.startTime' :show-time='false' class='query-group-cust'
|
date-format='YYYY-MM-DD HH:mm:ss' placeholder='请选择开始时间'/>
|
<span class='query-group-split-cust'></span>
|
<j-date v-model='queryParam.endTime' :show-time='false' class='query-group-cust'
|
date-format='YYYY-MM-DD HH:mm:ss' placeholder='请选择结束时间'/>
|
</a-form-item>
|
</a-col>
|
|
<a-col :lg='6' :md='8' :sm='24' :xl='4'>
|
<span class='table-page-search-submitButtons' style='float: left;overflow: hidden;'>
|
<a-button icon='search' type='primary' @click='searchQuery'>查询</a-button>
|
<a-button icon='reload' style='margin-left: 8px' @click='searchReset'>重置</a-button>
|
</span>
|
</a-col>
|
</a-row>
|
</a-form>
|
</div>
|
<!-- 查询区域-END -->
|
|
<!-- 操作按钮区域 -->
|
<div class='table-operator'>
|
<a-dropdown v-if='selectedRowKeys.length > 0 '>
|
<a-menu slot='overlay'>
|
<a-menu-item key='1' @click='batchHandle'>
|
<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' :columns='columns' :dataSource='dataSource' :loading='loading' :pagination='ipagination'
|
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
|
:scroll="{x:'max-content'}" bordered rowKey='id' size='middle'
|
@change='handleTableChange'>
|
<span slot='action' slot-scope='text, record'>
|
<a @click='handelDetail(record,text)'>执行/审批</a>
|
</span>
|
</a-table>
|
</div>
|
|
<!--保养规范-->
|
<maintenance-standard-approval-modal ref="maintenanceStandardApprovalModal" @modalFormOk="modalFormOk"
|
:selectShenpiData="selectedRowData"/>
|
|
<!--点检-->
|
<inspection-order-handle ref="inspectionOrderHandle" :selectShenpiData="selectedRowData"
|
@modalFormOk="modalFormOk"/>
|
|
<!--技术鉴定工单-->
|
<technical-status-evaluation-approval-modal ref="technicalStatusApprovalModal" :selectShenpiData="selectedRowData"
|
@modalFormOk="modalFormOk"/>
|
|
<!--二保工单-->
|
<second-maintenance-approval-modal ref="secondMaintenanceApprovalModal" :selectShenpiData="selectedRowData"
|
@modalFormOk="modalFormOk"/>
|
|
<!--三保工单-->
|
<third-maintenance-approval-modal ref="thirdMaintenanceApprovalModal" :selectShenpiData="selectedRowData"
|
@modalFormOk="modalFormOk"/>
|
|
<!--技术鉴定工单变更-->
|
<technical-status-evaluation-order-change-approval-modal ref="evaluationOrderChangeApprovalModal"
|
:selectShenpiData="selectedRowData"
|
@modalFormOk="modalFormOk"/>
|
|
<!--维修工单-->
|
<repair-order-approval-modal ref="repairOrderApprovalModal" :selectShenpiData="selectedRowData"
|
@modalFormOk="modalFormOk"/>
|
</a-card>
|
</template>
|
|
<script>
|
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
|
import { getAction } from '@api/manage'
|
import MaintenanceStandardApprovalModal from './MaintenanceStandard/MaintenanceStandardApprovalModal'
|
import InspectionOrderHandle from './InspectionOrder/InspectionOrderHandle'
|
import TechnicalStatusEvaluationApprovalModal
|
from './TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal'
|
import SecondMaintenanceApprovalModal from './secondMaintenance/SecondMaintenanceApprovalModal'
|
import ThirdMaintenanceApprovalModal from './thirdMaintenance/ThirdMaintenanceApprovalModal'
|
import TechnicalStatusEvaluationOrderChangeApprovalModal
|
from './TechnicalStatusEvaluation/TechnicalStatusEvaluationOrderChangeApprovalModal'
|
import RepairOrderApprovalModal from './repairOrder/RepairOrderApprovalModal'
|
|
export default {
|
name: 'FlowTodo',
|
mixins: [JeecgListMixin],
|
components: {
|
RepairOrderApprovalModal,
|
TechnicalStatusEvaluationOrderChangeApprovalModal,
|
ThirdMaintenanceApprovalModal,
|
SecondMaintenanceApprovalModal,
|
TechnicalStatusEvaluationApprovalModal,
|
InspectionOrderHandle,
|
MaintenanceStandardApprovalModal
|
},
|
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: 'category_dictText',
|
width: 200
|
},
|
{
|
title: '流程名称',
|
align: 'center',
|
dataIndex: 'flowName',
|
width: 200
|
},
|
{
|
title: '流程业务简要描述',
|
align: 'center',
|
dataIndex: 'description'
|
},
|
{
|
title: '上一步处理人',
|
align: 'center',
|
dataIndex: 'preNodeAssignee_dictText',
|
width: 150
|
},
|
{
|
title: '前驱节点',
|
align: 'center',
|
dataIndex: 'preNode',
|
width: 200
|
},
|
{
|
title: '当前节点',
|
align: 'center',
|
dataIndex: 'name',
|
width: 200
|
},
|
{
|
title: '当前节点开始时间',
|
align: 'center',
|
dataIndex: 'createTime',
|
width: 200
|
},
|
{
|
title: '操作',
|
dataIndex: 'action',
|
fixed: 'right',
|
scopedSlots: { customRender: 'action' },
|
align: 'center',
|
width: 100
|
}
|
],
|
url: {
|
list: '/assign/flow/toTaskBySelf'
|
},
|
selectedRowData: {}
|
}
|
},
|
computed: {
|
importExcelUrl: function() {
|
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
|
}
|
},
|
methods: {
|
handelDetail(record) {
|
let processType = this.splitProcessType(record.category)
|
console.log('processType', processType)
|
switch (processType) {
|
case 'maintenance_standard':
|
this.handleMaintenanceStandard(record)
|
break
|
case 'sbdjApproval':
|
this.handInspectionOrder(record)
|
break
|
case 'second_maintenance':
|
this.handleSecondMaintenance(record)
|
break
|
case 'third_maintenance':
|
this.handleThirdMaintenance(record)
|
break
|
case 'TECHNICAL_STATUS_EVALUATION':
|
this.handleTechnicalStatusEvaluation(record)
|
break
|
case 'EVALUATION_ORDER_CHANGE_PROCESS':
|
this.handleEvaluationOrderChange(record)
|
break
|
case 'eam_repair_order':
|
this.handleRepairOrder(record)
|
break
|
default:
|
alert('没找到该流程')
|
}
|
},
|
|
/**
|
* 点击保养规范分类流程执行审批时触发
|
* @param record
|
*/
|
handleMaintenanceStandard(record) {
|
this.selectedRowData = Object.assign({}, record)
|
this.$refs.maintenanceStandardApprovalModal.visible = true
|
this.$refs.maintenanceStandardApprovalModal.title = '保养规范'
|
this.$refs.maintenanceStandardApprovalModal.getAllApproveData(record)
|
this.$refs.maintenanceStandardApprovalModal.getBasicInformation(record)
|
},
|
|
/**
|
* 点击技术状态鉴定流程执行审批时触发
|
* @param record
|
*/
|
handleTechnicalStatusEvaluation(record) {
|
this.selectedRowData = Object.assign({}, record)
|
this.$refs.technicalStatusApprovalModal.visible = true
|
this.$refs.technicalStatusApprovalModal.title = record.name
|
this.$refs.technicalStatusApprovalModal.handleDetail(record)
|
},
|
|
handleEvaluationOrderChange(record) {
|
this.selectedRowData = Object.assign({}, record)
|
this.$refs.evaluationOrderChangeApprovalModal.visible = true
|
this.$refs.evaluationOrderChangeApprovalModal.title = record.name
|
this.$refs.evaluationOrderChangeApprovalModal.handleApprove(record)
|
},
|
|
/**
|
* 点击二保流程执行审批时触发
|
* @param record
|
*/
|
handleSecondMaintenance(record) {
|
this.selectedRowData = Object.assign({}, record)
|
this.$refs.secondMaintenanceApprovalModal.visible = true
|
this.$refs.secondMaintenanceApprovalModal.title = record.name
|
this.$refs.secondMaintenanceApprovalModal.handleDetail(record)
|
},
|
|
/**
|
* 点击点检工单流程执行审批时触发
|
* @param record
|
*/
|
handInspectionOrder(record) {
|
this.selectedRowData = Object.assign({}, record)
|
this.$refs.inspectionOrderHandle.visible = true
|
this.$refs.inspectionOrderHandle.title = record.name
|
this.$refs.inspectionOrderHandle.handleApprove(record)
|
},
|
|
/**
|
* 点击三保工单流程执行审批时触发
|
* @param record
|
*/
|
handleThirdMaintenance(record) {
|
this.selectedRowData = Object.assign({}, record)
|
this.$refs.thirdMaintenanceApprovalModal.visible = true
|
this.$refs.thirdMaintenanceApprovalModal.title = record.name
|
this.$refs.thirdMaintenanceApprovalModal.handleDetail(record)
|
},
|
|
/**
|
* 点击设备维修分类流程执行审批时触发
|
* @param record
|
*/
|
handleRepairOrder(record) {
|
this.selectedRowData = Object.assign({}, record)
|
this.$refs.repairOrderApprovalModal.visible = true
|
this.$refs.repairOrderApprovalModal.title = record.name
|
this.$refs.repairOrderApprovalModal.handleDetail(record)
|
},
|
|
batchHandle() {
|
const categorySet = new Set(this.selectionRows.map(item => item.category))
|
const nameSet = new Set(this.selectionRows.map(item => item.name))
|
if (categorySet.size !== 1 || nameSet.size !== 1) {
|
this.$notification.info({
|
message: '消息',
|
description: '请选择同一流程分类下的同一当前节点'
|
})
|
return
|
}
|
|
if (categorySet.has('eam_repair')) {
|
this.$notification.info({
|
message: '消息',
|
description: '设备维修流程无法批量处理'
|
})
|
return
|
}
|
|
if (categorySet.has('sbdjApproval')) {
|
this.$refs.inspectionOrderBatchHandleRef.visible = true
|
this.$refs.inspectionOrderBatchHandleRef.title = this.selectionRows[0].name
|
this.$refs.inspectionOrderBatchHandleRef.getAllApproveData(this.selectionRows[0])
|
this.$refs.inspectionOrderBatchHandleRef.getBasicInformation(this.selectionRows[0])
|
} else if (categorySet.has('WEEK_MAINTENANCE')) {
|
this.$refs.weenMaintenanceBatchApprovalModalRef.handleDetail(this.selectionRows[0])
|
this.$refs.weenMaintenanceBatchApprovalModalRef.title = this.selectionRows[0].name
|
}
|
},
|
|
splitProcessType(title) {
|
let parts = title.split(':') // 注意冒号是全角字符,使用对应的字进行分割
|
let result = parts[0]
|
return result
|
}
|
}
|
}
|
</script>
|