qushaowei
2025-05-29 48ea29772a71aafb7c687a62a5ba4ecc9b6635a8
src/views/flowable/workflow/FlowTodo.vue
@@ -4,15 +4,26 @@
 Date:   2025-02-27
-->
<template>
  <a-card :bordered="false">
  <a-card :bordered='false'>
    <!-- 查询区域 -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="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>
    <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='请选择流程分类'
              ></j-dict-select-tag>
            </a-form-item>
          </a-col>
          <!--<a-col :xl="4" :lg="6" :md="8" :sm="24">-->
@@ -20,37 +31,85 @@
          <!--<a-input placeholder="请输入流程名称" v-model="queryParam.flowName"></a-input>-->
          <!--</a-form-item>-->
          <!--</a-col>-->
          <a-col :xl="4" :lg="6" :md="8" :sm="24">
            <a-form-item label="当前节点">
              <a-input placeholder="请输入当前节点精确查询" v-model="queryParam.name"></a-input>
          <a-col
            :lg='6'
            :md='8'
            :sm='24'
            :xl='4'
          >
            <a-form-item label='当前节点'>
              <a-input
                v-model='queryParam.name'
                placeholder='请输入当前节点精确查询'
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="4" :lg="6" :md="8" :sm="24">
            <a-form-item label="简要描述">
              <a-input placeholder="请输入简要描述" v-model="queryParam.title"></a-input>
          <a-col
            :lg='6'
            :md='8'
            :sm='24'
            :xl='4'
          >
            <a-form-item label='简要描述'>
              <a-input
                v-model='queryParam.title'
                placeholder='请输入简要描述'
              ></a-input>
            </a-form-item>
          </a-col>
          <template v-if="toggleSearchStatus">
            <a-col :xl="8" :lg="8" :md="12" :sm="24">
              <a-form-item label="任务时间范围">
                <j-date :show-time="false" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
                        class="query-group-cust"
                        v-model="queryParam.startTime"></j-date>
                <span class="query-group-split-cust"></span>
                <j-date :show-time="false" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间"
                        class="query-group-cust"
                        v-model="queryParam.endTime"></j-date>
          <template v-if='toggleSearchStatus'>
            <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='请选择开始时间'
                ></j-date>
                <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='请选择结束时间'
                ></j-date>
              </a-form-item>
            </a-col>
          </template>
          <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>
               <a @click="handleToggleSearch" style="margin-left: 8px">
          <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>
              <a
                style='margin-left: 8px'
                @click='handleToggleSearch'
              >
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
              </a>
            </span>
          </a-col>
@@ -60,406 +119,570 @@
    <!-- 查询区域-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"/>
    <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 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>已选择&nbsp;<a style="font-weight: 600">{{
        selectedRowKeys.length }}</a>项&nbsp;&nbsp;
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      <div
        class='ant-alert ant-alert-info'
        style='margin-bottom: 16px;'
      >
        <i class='anticon anticon-info-circle ant-alert-icon'></i>已选择&nbsp;<a style='font-weight: 600'>{{
          selectedRowKeys.length }}</a>项&nbsp;&nbsp;
        <a
          style='margin-left: 24px'
          @click='onClearSelected'
        >清空</a>
      </div>
      <a-table
        ref="table"
        ref='table'
        :columns='columns'
        :dataSource='dataSource'
        :loading='loading'
        :pagination='ipagination'
        :rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
        :scroll='{x:getTableColumnsTotalWidth,y:465}'
        bordered
        size="middle"
        rowKey="id"
        :scroll="{x:getTableColumnsTotalWidth,y:465}"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @change="handleTableChange">
        rowKey='id'
        size='middle'
        @change='handleTableChange'
      >
        <span slot="action" slot-scope="text, record">
            <a @click="handelDetail(record,text)">执行/审批</a>
        <span
          slot='action'
          slot-scope='text, record'
        >
          <a @click='handelDetail(record,text)'>执行/审批</a>
        </span>
      </a-table>
    </div>
    <AssignFileStreamHandle ref="modalFormApproval" :selectShenpiData="selectShenpiData" @searchReset="searchReset"></AssignFileStreamHandle>
    <DispatchFileHandle ref="modalFormDispatchFileXq"  :selectShenpiData="selectDispatchFileXqData" @searchReset="searchReset"></DispatchFileHandle>
    <DispatchFileBachHandleStyle ref="modalFormDispatchFileBatch" @searchReset="searchReset" @ok="modalFormOk"></DispatchFileBachHandleStyle>
    <AssignFileStreamHandle
      ref='modalFormApproval'
      :selectShenpiData='selectShenpiData'
      @searchReset='searchReset'
    ></AssignFileStreamHandle>
    <DispatchFileHandle
      ref='modalFormDispatchFileXq'
      :selectShenpiData='selectDispatchFileXqData'
      @searchReset='searchReset'
    ></DispatchFileHandle>
    <DispatchFileBachHandleStyle
      ref='modalFormDispatchFileBatch'
      @ok='modalFormOk'
      @searchReset='searchReset'
    ></DispatchFileBachHandleStyle>
    <!--单个流程处理-->
    <InspectionOrderHandle ref="modalFormInspectionOrder" :selectShenpiData="selectInspectionOrderData"
                           @searchReset="searchReset"></InspectionOrderHandle>
    <week-maintenance-approval-modal ref="weekMaintenanceApprovalModal" :selectShenpiData="selectWeekMaintenanceData"
                                     @searchReset="searchReset"></week-maintenance-approval-modal>
    <repair-order-approval-modal ref="repairOrderApprovalModal" @searchReset="searchReset"
                                 :selectShenpiData="selectRepairOrderData"></repair-order-approval-modal>
    <out-bound-order-handle ref="outBoundOrderHandle" :selectShenpiData="selectOutBoundOrderData"
                              @searchReset="searchReset"></out-bound-order-handle>
    <InspectionOrderHandle
      ref='modalFormInspectionOrder'
      :selectShenpiData='selectInspectionOrderData'
      @searchReset='searchReset'
    ></InspectionOrderHandle>
    <week-maintenance-approval-modal
      ref='weekMaintenanceApprovalModal'
      :selectShenpiData='selectWeekMaintenanceData'
      @searchReset='searchReset'
    ></week-maintenance-approval-modal>
    <repair-order-approval-modal
      ref='repairOrderApprovalModal'
      :selectShenpiData='selectRepairOrderData'
      @searchReset='searchReset'
    ></repair-order-approval-modal>
    <out-bound-order-handle
      ref='outBoundOrderHandle'
      :selectShenpiData='selectOutBoundOrderData'
      @searchReset='searchReset'
    ></out-bound-order-handle>
    <stocktaking-bound-handle
      ref='stocktakingBoundHandle'
      :selectShenpiData='selectStocktakingBoundOrderData'
      @searchReset='searchReset'
    ></stocktaking-bound-handle>
    <loss-bound-handle
      ref='lossBoundHandle'
      :selectShenpiData='selectLossBoundOrderData'
      @searchReset='searchReset'
    ></loss-bound-handle>
    <!--批量处理-->
    <inspection-order-batch-handle ref="inspectionOrderBatchHandleRef" @searchReset="searchReset"
                                   :taskList="selectionRows"/>
    <inspection-order-batch-handle
      ref='inspectionOrderBatchHandleRef'
      :taskList='selectionRows'
      @searchReset='searchReset'
    />
    <week-maintenance-batch-approval-modal ref="weenMaintenanceBatchApprovalModalRef" @searchReset="searchReset"
                                           :taskList="selectionRows"/>
    <equipment-lean-out-approval-modal ref="equipmentLeanOutApprovalModelRef" @searchReset="searchReset"/>
    <week-maintenance-batch-approval-modal
      ref='weenMaintenanceBatchApprovalModalRef'
      :taskList='selectionRows'
      @searchReset='searchReset'
    />
    <equipment-lean-out-approval-modal
      ref='equipmentLeanOutApprovalModelRef'
      @searchReset='searchReset'
    />
    <second-maintenance-approval-modal ref="secondMaintenanceApprovalModal" :selectShenpiData="selectSecondMaintenanceData"
                                     @searchReset="searchReset"></second-maintenance-approval-modal>
    <third-maintenance-approval-modal ref="thirdMaintenanceApprovalModal" :selectShenpiData="selectThirdMaintenanceData"
                                       @searchReset="searchReset"></third-maintenance-approval-modal>
    <equipment-seal-up-approval-modal ref="equipmentSealUpApprovalModelRef" @searchReset="searchReset"/>
    <second-maintenance-approval-modal
      ref='secondMaintenanceApprovalModal'
      :selectShenpiData='selectSecondMaintenanceData'
      @searchReset='searchReset'
    ></second-maintenance-approval-modal>
    <third-maintenance-approval-modal
      ref='thirdMaintenanceApprovalModal'
      :selectShenpiData='selectThirdMaintenanceData'
      @searchReset='searchReset'
    ></third-maintenance-approval-modal>
    <equipment-seal-up-approval-modal
      ref='equipmentSealUpApprovalModelRef'
      @searchReset='searchReset'
    />
    <inbound-order-handle
      ref='inboundOrderApprovalModal'
      :selectInboundOrderData='selectInboundOrderData'
      @searchReset='searchReset'
    ></inbound-order-handle>
    <equipment-transfer-approval-modal
      ref='equipmentTransferApprovalModelRef'
      @searchReset='searchReset'
    />
    <equipment-scrap-approval-modal
      ref='equipmentScrapApprovalModelRef'
      @searchReset='searchReset'
    />
    <spare-part-apply-handle
      ref='sparePartApplyModal'
      :selectSparePartApplyData='selectSparePartApplyData'
      @searchReset='searchReset'
    ></spare-part-apply-handle>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import JDictSelectTag from '@/components/dict/JDictSelectTag.vue'
  import WeekMaintenanceApprovalModal from '@views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal'
  import RepairOrderApprovalModal from '@views/flowable/workflow/repairOrder/RepairOrderApprovalModal'
  import InspectionOrderHandle from '@views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue'
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import JDictSelectTag from '@/components/dict/JDictSelectTag.vue'
import WeekMaintenanceApprovalModal from '@views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal'
import RepairOrderApprovalModal from '@views/flowable/workflow/repairOrder/RepairOrderApprovalModal'
import InspectionOrderHandle from '@views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue'
  import { getAction } from '@api/manage'
  import InspectionOrderBatchHandle from './InspectionOrder/InspectionOrderBatchHandle'
  import WeekMaintenanceBatchApprovalModal from './weekMaintenance/WeekMaintenanceBatchApprovalModal'
  import AssignFileStreamHandle from '@views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue'
  import DispatchFileHandle from '@views/flowable/workflow/dispatchFile/DispatchFileHandle.vue'
  import DispatchFileBachHandleStyle from '@views/flowable/workflow/dispatchFile/DispatchFileBachHandleStyle#Drawer.vue'
  import OutBoundOrderHandle from '@views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue'
  import EquipmentLeanOutApprovalModal from '@views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue'
  import SecondMaintenanceApprovalModal from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue'
  import ThirdMaintenanceApprovalModal from '@views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue'
  import EquipmentSealUpApprovalModal from '@views/flowable/workflow/sealUp/EquipmentSealUpApprovalModal.vue'
  export default {
    name: 'NcDeviceCharactersList',
    mixins: [JeecgListMixin, mixinDevice],
    components: {
      AssignFileStreamHandle,
      DispatchFileHandle,
      DispatchFileBachHandleStyle,
      WeekMaintenanceBatchApprovalModal,
      InspectionOrderBatchHandle,
      JDictSelectTag,
      WeekMaintenanceApprovalModal,
      RepairOrderApprovalModal,
      InspectionOrderHandle,
      EquipmentLeanOutApprovalModal,
      SecondMaintenanceApprovalModal,
      ThirdMaintenanceApprovalModal,
      OutBoundOrderHandle,
      EquipmentSealUpApprovalModal,
    },
    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'
          },
          {
            title: '流程名称',
            align: 'center',
            dataIndex: 'flowName',
            width: 200
          },
          {
            title: '流程业务简要描述',
            align: 'center',
            dataIndex: 'description',
            width: 350,
            ellipsis: true
import { getAction } from '@api/manage'
import InspectionOrderBatchHandle from './InspectionOrder/InspectionOrderBatchHandle'
import WeekMaintenanceBatchApprovalModal from './weekMaintenance/WeekMaintenanceBatchApprovalModal'
import AssignFileStreamHandle from '@views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue'
import DispatchFileHandle from '@views/flowable/workflow/dispatchFile/DispatchFileHandle.vue'
import DispatchFileBachHandleStyle from '@views/flowable/workflow/dispatchFile/DispatchFileBachHandleStyle#Drawer.vue'
import OutBoundOrderHandle from '@views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue'
import EquipmentLeanOutApprovalModal from '@views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue'
import SecondMaintenanceApprovalModal
  from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue'
import ThirdMaintenanceApprovalModal from '@views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue'
import EquipmentSealUpApprovalModal from '@views/flowable/workflow/sealUp/EquipmentSealUpApprovalModal.vue'
import EquipmentTransferApprovalModal from '@views/flowable/workflow/transfer/EquipmentTransferApprovalModal.vue'
import EquipmentScrapApprovalModal from '@views/flowable/workflow/scrap/EquipmentScrapApprovalModal.vue'
import stocktakingBoundHandle from '@views/flowable/workflow/stocktakingBound/stocktakingBoundHandle.vue'
import lossBoundHandle from '@views/flowable/workflow/lossBound/lossBoundHandle.vue'
import InboundOrderHandle from '@views/flowable/workflow/inboundOrder/InboundOrderHandle.vue'
import SparePartApplyHandle from '@views/flowable/workflow/sparePartApply/SparePartApplyHandle.vue'
          },
          {
            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',
            scopedSlots: { customRender: 'action' },
            align: 'center',
            width: 150,
            fixed: 'right'
export default {
  name: 'NcDeviceCharactersList',
  mixins: [JeecgListMixin, mixinDevice],
  components: {
    lossBoundHandle,
    stocktakingBoundHandle,
    AssignFileStreamHandle,
    DispatchFileHandle,
    DispatchFileBachHandleStyle,
    WeekMaintenanceBatchApprovalModal,
    InspectionOrderBatchHandle,
    JDictSelectTag,
    WeekMaintenanceApprovalModal,
    RepairOrderApprovalModal,
    InspectionOrderHandle,
    EquipmentLeanOutApprovalModal,
    SecondMaintenanceApprovalModal,
    ThirdMaintenanceApprovalModal,
    OutBoundOrderHandle,
    EquipmentSealUpApprovalModal,
    InboundOrderHandle,
    EquipmentTransferApprovalModal,
    EquipmentScrapApprovalModal,
    SparePartApplyHandle
  },
  data() {
    return {
      description: '工作流-我的待办',
      // 表头
      columns: [
        {
          title: '序号',
          dataIndex: '',
          key: 'rowIndex',
          width: 60,
          align: 'center',
          customRender: function (t, r, index) {
            return parseInt(index) + 1
          }
        ],
        url: {
          list: '/assign/flow/toTaskBySelf',
          isSameNode: '/assign/flow/isSameNode'
        },
        dictOptions: {},
        selectShenpiData: {},
        selectDispatchFileXqData:{},
        selectInspectionOrderData: {},
        selectWeekMaintenanceData: {},
        selectSecondMaintenanceData: {},
        selectThirdMaintenanceData: {},
        selectBachData: {},
        selectRepairOrderData: {},
        selectOutBoundOrderData: {},
        //业务信息ID
        dataId: undefined
      }
    },
    created() {
    },
    computed: {
      importExcelUrl: function() {
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
      },
      getTableColumnsTotalWidth() {
        return this.columns.reduce((total, item) => total + item.width, 0)
      }
    },
    methods: {
      loadData(arg) {
        if (!this.url.list) {
          this.$message.error('请设置url.list属性!')
          return
        }
        //加载数据 若传入参数1则加载第一页的内容
        if (arg === 1) {
          this.ipagination.current = 1
        }
        var params = this.getQueryParams()//查询条件
        if (!params) {
          return false
        }
        this.loading = true
        getAction(this.url.list, params).then((res) => {
          if (res.success) {
            // console.log(res)
            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
            this.dataSource = res.result.records || res.result
            if (res.result.total) {
              this.ipagination.total = res.result.total
            } else {
              this.ipagination.total = 0
            }
            if (this.selectedRowKeys.length > 0) this.selectedRowKeys = this.selectionRows = []
            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
          } else {
            this.$message.warning(res.message)
          }
        }).finally(() => {
          this.loading = false
        })
      },
        {
          title: '流程分类',
          align: 'center',
          dataIndex: 'category_dictText'
        },
        {
          title: '流程名称',
          align: 'center',
          dataIndex: 'flowName',
          width: 200
        },
        {
          title: '流程业务简要描述',
          align: 'center',
          dataIndex: 'description',
          width: 350,
          ellipsis: true
      handelDetail(item, index) {
        console.log('点击了详情')
        console.log('item----->', item)
        console.log('index----->', index)
        let processType = this.splitAprocessType(item.category)
        console.log('processType--->', processType)
        switch (processType) {
          case 'drApproval':
            this.handDrDetial(item)
            break
          case 'ggApproval':
            this.handDispatchFileDetial(item)
            break
          case 'sbdjApproval':
            this.handInspectionOrder(item)
            break
          case 'WEEK_MAINTENANCE':
            this.handleWeekMaintenance(item)
            break
          case 'eam_repair':
            this.handleRepairOrder(item)
            break
          case 'equipment_lean_out':
            this.handleEquipmentLeanOut(item)
            break
          case 'second_maintenance':
            this.handleSecondMaintenance(item)
            break
          case 'third_maintenance':
            this.handleThirdMaintenance(item)
            break
          case 'toolOutStorageApproval':
            this.handleToolOutStorageApproval(item)
            break
          case 'equipment_seal_up':
            this.handleEquipmentSealUp(item)
            break
          default:
            alert('没找到该流程')
        },
        {
          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',
          scopedSlots: { customRender: 'action' },
          align: 'center',
          width: 150,
          fixed: 'right'
        }
      ],
      url: {
        list: '/assign/flow/toTaskBySelf',
        isSameNode: '/assign/flow/isSameNode'
      },
      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
        }
      },
      splitAprocessType(title) {
        let parts = title.split(':') // 注意冒号是全角字符,使用对应的字进行分割
        let result = parts[0]
        return result
      },
      handDrDetial(item) {
        this.selectShenpiData = item
        this.$refs.modalFormApproval.clearTableSource()
        this.$refs.modalFormApproval.getAllApproveData(item)
      },
      handDispatchFileDetial(item){
        console.log('item----->', item)
        this.selectDispatchFileXqData = item
        this.$refs.modalFormDispatchFileXq.clearTableSource()
        this.$refs.modalFormDispatchFileXq.getAllApproveData(item)
      },
      handInspectionOrder(record) {
        console.log('record----->', record)
        this.selectInspectionOrderData = Object.assign({}, record)
        this.$refs.modalFormInspectionOrder.visible = true
        this.$refs.modalFormInspectionOrder.title = record.name
        this.$refs.modalFormInspectionOrder.getAllApproveData(record)
        this.$refs.modalFormInspectionOrder.getBasicInformation(record)
      },
      handleWeekMaintenance(item) {
        if (item && item.dataId) {
          this.selectWeekMaintenanceData = Object.assign({}, item)
          this.$refs.weekMaintenanceApprovalModal.handleDetail(item)
          this.$refs.weekMaintenanceApprovalModal.title = item.name
          this.$refs.weekMaintenanceApprovalModal.disableSubmit = false
        }
      },
      /**
       * 点击设备维修分类流程详情时触发
       * @param record
       */
      handleRepairOrder(record) {
        this.selectRepairOrderData = Object.assign({}, record)
        this.$refs.repairOrderApprovalModal.visible = true
        this.$refs.repairOrderApprovalModal.title = record.name
        this.$refs.repairOrderApprovalModal.getAllApproveData(record)
        this.$refs.repairOrderApprovalModal.getBasicInformation(record)
      },
      handleEquipmentLeanOut(item) {
        this.$refs.equipmentLeanOutApprovalModelRef.visible = true
        this.$refs.equipmentLeanOutApprovalModelRef.title = item.name
        this.$refs.equipmentLeanOutApprovalModelRef.handleDetail(item)
        this.$refs.equipmentLeanOutApprovalModelRef.disableSubmit = false
      },
      handleSecondMaintenance(item) {
        if (item && item.dataId) {
          this.selectSecondMaintenanceData = Object.assign({}, item)
          this.$refs.secondMaintenanceApprovalModal.handleDetail(item)
          this.$refs.secondMaintenanceApprovalModal.title = item.name
          this.$refs.secondMaintenanceApprovalModal.disableSubmit = false
        }
      },
      handleThirdMaintenance(item) {
        if (item && item.dataId) {
          this.selectThirdMaintenanceData = Object.assign({}, item)
          this.$refs.thirdMaintenanceApprovalModal.handleDetail(item)
          this.$refs.thirdMaintenanceApprovalModal.title = item.name
          this.$refs.thirdMaintenanceApprovalModal.disableSubmit = false
        }
      },
      handleToolOutStorageApproval(item) {
        if (item && item.dataId) {
          this.selectOutBoundOrderData = Object.assign({}, item)
          this.$refs.outBoundOrderHandle.auditVisible = true
          this.$refs.outBoundOrderHandle.clearTableSource()
          this.$refs.outBoundOrderHandle.getAllApproveData(item)
        }
      }
      handleEquipmentSealUp(item) {
        this.$refs.equipmentSealUpApprovalModelRef.visible = true
        this.$refs.equipmentSealUpApprovalModelRef.title = item.name
        this.$refs.equipmentSealUpApprovalModelRef.handleDetail(item)
        this.$refs.equipmentSealUpApprovalModelRef.disableSubmit = false
      },
      dictOptions: {},
      selectShenpiData: {},
      selectDispatchFileXqData: {},
      selectInspectionOrderData: {},
      selectWeekMaintenanceData: {},
      selectSecondMaintenanceData: {},
      selectThirdMaintenanceData: {},
      selectBachData: {},
      selectRepairOrderData: {},
      selectOutBoundOrderData: {},
      selectLossBoundOrderData: {},
      selectStocktakingBoundOrderData: {},
      selectInboundOrderData: {},
      selectSparePartApplyData: {},
      //业务信息ID
      dataId: undefined
    }
  },
  created() {
  },
  computed: {
    importExcelUrl: function () {
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
    },
    getTableColumnsTotalWidth() {
      return this.columns.reduce((total, item) => total + item.width, 0)
    }
  },
  methods: {
    loadData(arg) {
      if (!this.url.list) {
        this.$message.error('请设置url.list属性!')
        return
      }
      //加载数据 若传入参数1则加载第一页的内容
      if (arg === 1) {
        this.ipagination.current = 1
      }
      var params = this.getQueryParams()//查询条件
      if (!params) {
        return false
      }
      this.loading = true
      getAction(this.url.list, params).then((res) => {
        if (res.success) {
          // console.log(res)
          //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
          this.dataSource = res.result.records || res.result
          if (res.result.total) {
            this.ipagination.total = res.result.total
          } else {
            this.ipagination.total = 0
          }
          if (this.selectedRowKeys.length > 0) this.selectedRowKeys = this.selectionRows = []
          //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
        } else {
          this.$message.warning(res.message)
        }
      }).finally(() => {
        this.loading = false
      })
    },
    handelDetail(item, index) {
      console.log('点击了详情')
      console.log('item----->', item)
      console.log('index----->', index)
      let processType = this.splitAprocessType(item.category)
      console.log('processType--->', processType)
      switch (processType) {
        case 'drApproval':
          this.handDrDetial(item)
          break
        case 'ggApproval':
          this.handDispatchFileDetial(item)
          break
        case 'sbdjApproval':
          this.handInspectionOrder(item)
          break
        case 'WEEK_MAINTENANCE':
          this.handleWeekMaintenance(item)
          break
        case 'eam_repair':
          this.handleRepairOrder(item)
          break
        case 'equipment_lean_out':
          this.handleEquipmentLeanOut(item)
          break
        case 'second_maintenance':
          this.handleSecondMaintenance(item)
          break
        case 'third_maintenance':
          this.handleThirdMaintenance(item)
          break
        case 'toolOutStorageApproval':
          this.handleToolOutStorageApproval(item)
          break
        case 'toolsStocktakingBound':
          this.handleToolStocktakingApproval(item)
          break
        case 'toolsLossApproval':
          this.handleToolLossApproval(item)
          break
        case 'equipment_seal_up':
          this.handleEquipmentSealUp(item)
          break
        case 'toolInStorageApproval':
          this.handleToolInStorage(item)
          break
        case 'equipment_transfer':
          this.handleEquipmentTransfer(item)
          break
        case 'equipment_scrap':
          this.handleEquipmentScrap(item)
          break
        case 'spare_part_apply':
          this.handleSparePartApplyApproval(item)
          break
        default:
          alert('没找到该流程')
      }
    },
    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
      }
    },
    splitAprocessType(title) {
      let parts = title.split(':') // 注意冒号是全角字符,使用对应的字进行分割
      let result = parts[0]
      return result
    },
    handDrDetial(item) {
      this.selectShenpiData = item
      this.$refs.modalFormApproval.clearTableSource()
      this.$refs.modalFormApproval.getAllApproveData(item)
    },
    handDispatchFileDetial(item) {
      console.log('item----->', item)
      this.selectDispatchFileXqData = item
      this.$refs.modalFormDispatchFileXq.clearTableSource()
      this.$refs.modalFormDispatchFileXq.getAllApproveData(item)
    },
    handInspectionOrder(record) {
      console.log('record----->', record)
      this.selectInspectionOrderData = Object.assign({}, record)
      this.$refs.modalFormInspectionOrder.visible = true
      this.$refs.modalFormInspectionOrder.title = record.name
      this.$refs.modalFormInspectionOrder.getAllApproveData(record)
      this.$refs.modalFormInspectionOrder.getBasicInformation(record)
    },
    handleWeekMaintenance(item) {
      if (item && item.dataId) {
        this.selectWeekMaintenanceData = Object.assign({}, item)
        this.$refs.weekMaintenanceApprovalModal.handleDetail(item)
        this.$refs.weekMaintenanceApprovalModal.title = item.name
        this.$refs.weekMaintenanceApprovalModal.disableSubmit = false
      }
    },
    /**
     * 点击设备维修分类流程详情时触发
     * @param record
     */
    handleRepairOrder(record) {
      this.selectRepairOrderData = Object.assign({}, record)
      this.$refs.repairOrderApprovalModal.visible = true
      this.$refs.repairOrderApprovalModal.title = record.name
      this.$refs.repairOrderApprovalModal.getAllApproveData(record)
      this.$refs.repairOrderApprovalModal.getBasicInformation(record)
    },
    handleEquipmentLeanOut(item) {
      this.$refs.equipmentLeanOutApprovalModelRef.visible = true
      this.$refs.equipmentLeanOutApprovalModelRef.title = item.name
      this.$refs.equipmentLeanOutApprovalModelRef.handleDetail(item)
      this.$refs.equipmentLeanOutApprovalModelRef.disableSubmit = false
    },
    handleSecondMaintenance(item) {
      if (item && item.dataId) {
        this.selectSecondMaintenanceData = Object.assign({}, item)
        this.$refs.secondMaintenanceApprovalModal.handleDetail(item)
        this.$refs.secondMaintenanceApprovalModal.title = item.name
        this.$refs.secondMaintenanceApprovalModal.disableSubmit = false
      }
    },
    handleThirdMaintenance(item) {
      if (item && item.dataId) {
        this.selectThirdMaintenanceData = Object.assign({}, item)
        this.$refs.thirdMaintenanceApprovalModal.handleDetail(item)
        this.$refs.thirdMaintenanceApprovalModal.title = item.name
        this.$refs.thirdMaintenanceApprovalModal.disableSubmit = false
      }
    },
    handleToolOutStorageApproval(item) {
      if (item && item.dataId) {
        this.selectOutBoundOrderData = Object.assign({}, item)
        this.$refs.outBoundOrderHandle.auditVisible = true
        this.$refs.outBoundOrderHandle.clearTableSource()
        this.$refs.outBoundOrderHandle.getAllApproveData(item)
      }
    },
    handleToolStocktakingApproval(item) {
      if (item && item.dataId) {
        this.selectStocktakingBoundOrderData = Object.assign({}, item)
        this.$refs.stocktakingBoundHandle.auditVisible = true
        this.$refs.stocktakingBoundHandle.clearTableSource()
        this.$refs.stocktakingBoundHandle.getAllApproveData(item)
      }
    },
    handleToolLossApproval(item) {
      if (item && item.dataId) {
        this.selectLossBoundOrderData = Object.assign({}, item)
        this.$refs.lossBoundHandle.auditVisible = true
        this.$refs.lossBoundHandle.clearTableSource()
        this.$refs.lossBoundHandle.getAllApproveData(item)
      }
    },
    handleEquipmentSealUp(item) {
      this.$refs.equipmentSealUpApprovalModelRef.visible = true
      this.$refs.equipmentSealUpApprovalModelRef.title = item.name
      this.$refs.equipmentSealUpApprovalModelRef.handleDetail(item)
      this.$refs.equipmentSealUpApprovalModelRef.disableSubmit = false
    },
    handleToolInStorage(item) {
      if (item && item.dataId) {
        this.selectInboundOrderData = Object.assign({}, item)
        this.$refs.inboundOrderApprovalModal.auditVisible = true
        this.$refs.inboundOrderApprovalModal.clearTableSource()
        this.$refs.inboundOrderApprovalModal.getAllApproveData(item)
      }
    },
    handleEquipmentTransfer(item) {
      this.$refs.equipmentTransferApprovalModelRef.visible = true
      this.$refs.equipmentTransferApprovalModelRef.title = item.name
      this.$refs.equipmentTransferApprovalModelRef.handleDetail(item)
      this.$refs.equipmentTransferApprovalModelRef.disableSubmit = false
    },
    handleEquipmentScrap(item) {
      this.$refs.equipmentScrapApprovalModelRef.visible = true
      this.$refs.equipmentScrapApprovalModelRef.title = item.name
      this.$refs.equipmentScrapApprovalModelRef.handleDetail(item)
      this.$refs.equipmentScrapApprovalModelRef.disableSubmit = false
    },
    handleSparePartApplyApproval(item) {
      if (item && item.dataId) {
        this.selectSparePartApplyData = Object.assign({}, item)
        this.$refs.sparePartApplyModal.auditVisible = true
        this.$refs.sparePartApplyModal.clearTableSource()
        this.$refs.sparePartApplyModal.getAllApproveData(item)
      }
    },
  }
}
</script>
<style scoped>
  @import '~@assets/less/common.less';
@import '~@assets/less/common.less';
</style>