zhaowei
5 天以前 48d85187a16a313c5244a830862db5e672e6997d
1、点检工单预览
2、技术鉴定工单变更
3、调整样式
已添加1个文件
已修改14个文件
1848 ■■■■■ 文件已修改
src/views/eam/equipment/EamEquipmentLedger.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/EamInspectionOrderList.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/EamTechnicalStatusEvaluationOrderChangeList.vue 389 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderChangeModal.vue 226 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/modeler/modelerDesign.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/FlowCompleted.vue 404 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/FlowLedger.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/FlowTodo.vue 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/MaintenanceStandard/MaintenanceStandardApprovalModal.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationOrderChangeApprovalModal.vue 364 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/equipment/EamEquipmentLedger.vue
@@ -102,7 +102,7 @@
        <!--使用部门-->
        <template slot="factoryOrgCode" slot-scope="text,record">
          {{[record.gsfactoryOrgCode_dictText,record.zxfactoryOrgCode_dictText,record.gqfactoryOrgCode_dictText,record.factoryOrgCode_dictText].filter(item=>item).join('/')}}
          {{[record.zxfactoryOrgCode_dictText,record.gqfactoryOrgCode_dictText,record.factoryOrgCode_dictText].filter(item=>item).join('/')}}
        </template>
        <!--安装位置-->
@@ -220,7 +220,6 @@
          },
          {
            title: '使用部门',
            align: 'center',
            dataIndex: 'factoryOrgCode',
            scopedSlots: { customRender: 'factoryOrgCode' }
          },
src/views/eam/maintenance/EamInspectionOrderList.vue
@@ -97,7 +97,14 @@
          </a-dropdown>
          </template>
          <a v-else @click="handleDetail(record)">详情</a>
          <template v-else>
            <template v-if="record.inspectionStatus=='COMPLETE'">
              <a @click="handlePrint(record)">预览</a>
              <a-divider type="vertical"/>
            </template>
             <a @click="handleDetail(record)">详情</a>
          </template>
        </span>
      </a-table>
    </div>
@@ -143,22 +150,26 @@
            align: 'center',
            customRender: function(t, r, index) {
              return parseInt(index) + 1
            }
            },
            fixed: 'left'
          },
          {
            title: '统一编码',
            align: 'center',
            dataIndex: 'equipmentCode'
            dataIndex: 'equipmentCode',
            fixed: 'left'
          },
          {
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName'
            dataIndex: 'equipmentName',
            fixed: 'left'
          },
          {
            title: '设备型号',
            align: 'center',
            dataIndex: 'equipmentModel'
            dataIndex: 'equipmentModel',
            fixed: 'left'
          },
          {
            title: '工单号',
@@ -176,7 +187,8 @@
            dataIndex: 'inspectionDate',
            customRender: function(text) {
              return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
            }
            },
            width: 150
          },
          {
            title: '点检过期日期',
@@ -184,7 +196,8 @@
            dataIndex: 'expirationTime',
            customRender: function(text) {
              return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
            }
            },
            width: 150
          },
          {
            title: '创建方式',
@@ -204,7 +217,8 @@
          {
            title: '点检时间',
            align: 'center',
            dataIndex: 'operateTime'
            dataIndex: 'operateTime',
            width: 150
          },
          {
            title: '维修工',
@@ -214,12 +228,14 @@
          {
            title: '确认时间',
            align: 'center',
            dataIndex: 'confirmTime'
            dataIndex: 'confirmTime',
            width: 150
          },
          {
            title: 'HF编码',
            align: 'center',
            dataIndex: 'hfCode'
            dataIndex: 'hfCode',
            width: 250
          }
        ],
        url: {
@@ -244,7 +260,8 @@
        title: '操作',
        dataIndex: 'action',
        align: 'center',
        scopedSlots: { customRender: 'action' }
        scopedSlots: { customRender: 'action' },
        fixed: 'right'
      }
      this.columns = [...this.columns, operationColumn]
      this.loadData(1)
@@ -261,8 +278,7 @@
        this.$refs.modalFormXq.visible = true
        this.$refs.modalFormXq.title = '详情'
        this.$refs.modalFormXq.disableSubmit = true
        this.$refs.modalFormXq.getAllApproveData(record)
        this.$refs.modalFormXq.getBasicInformation({ ...record, dataId: record.id })
        this.$refs.modalFormXq.handleDetail(record)
      },
      handleInspection(id) {
@@ -303,6 +319,7 @@
          }
        })
      },
      batchZf(type) {
        var ids = ''
        for (var a = 0; a < this.selectedRowKeys.length; a++) {
@@ -335,6 +352,7 @@
          }
        })
      },
      batchLq(type) {
        var ids = ''
        for (var a = 0; a < this.selectedRowKeys.length; a++) {
@@ -368,6 +386,12 @@
          }
        })
      },
      handlePrint(record) {
        let href = `${window._CONFIG['domianURL']}/jmreport/view/1105664887569121280?equipmentCode=` + record.equipmentCode
        window.open(href, '_blank')
      },
      onInspectionDateChange: function(value, dateString) {
        this.queryParam.inspectionDateBegin = dateString[0]
        this.queryParam.inspectionDateEnd = dateString[1]
src/views/eam/technical/EamTechnicalStatusEvaluationOrderChangeList.vue
@@ -1,46 +1,35 @@
<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 :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="删除标记">
              <a-input placeholder="请输入删除标记" v-model="queryParam.delFlag"></a-input>
          <a-col :xl="5" :lg="6" :md="8" :sm="12">
            <a-form-item label="统一编码">
              <lx-search-equipment-select placeholder="请输入统一编码或名称搜索" v-model="queryParam.equipmentId"/>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="工单ID">
              <a-input placeholder="请输入工单ID" v-model="queryParam.orderId"></a-input>
            </a-form-item>
          </a-col>
        <template v-if="toggleSearchStatus">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
          <a-col :xl="4" :lg="6" :md="8" :sm="12">
            <a-form-item label="变更单号">
              <a-input placeholder="请输入变更单号" v-model="queryParam.changeOrderNum"></a-input>
              <a-input placeholder="请输入变更单号" v-model="queryParam.changeOrderNum"/>
            </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.applicant"></a-input>
          <a-col :xl="5" :lg="6" :md="8" :sm="12">
            <a-form-item label="申请时间">
              <a-range-picker v-model="queryParam.dates" @change="handleDateRangeChange" value-format="YYYY-MM-DD"/>
            </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.factoryOrgCode"></a-input>
          <a-col :xl="4" :lg="6" :md="8" :sm="12">
            <a-form-item label="变更状态">
              <j-dict-select-tag dict-code="    technical_status_evaluation_order_change_status" placeholder="请选择变更状态"
                                 v-model="queryParam.changeStatus"/>
            </a-form-item>
          </a-col>
          </template>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
          <a-col :xl="4" :lg="6" :md="8" :sm="12">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
              </a>
            </span>
          </a-col>
@@ -48,78 +37,58 @@
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <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-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"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @change="handleTableChange">
    <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource"
             :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}" @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <tamplate v-if="record.changeStatus=='WAIT_SUBMIT'">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
          <a-divider type="vertical"/>
      </a-table>
    </div>
          <a-popconfirm title="确定提交吗?" @confirm="handleSubmit(record.id)">
             <a>提交</a>
          </a-popconfirm>
          <a-divider type="vertical"/>
          <a-popconfirm title="确定作废吗?" @confirm="handleAbolish(record.id)">
            <a>作废</a>
          </a-popconfirm>
          </tamplate>
          <a @click="handleDetail(record)"
             v-if="record.changeStatus!='WAIT_SUBMIT'&&record.changeStatus!='ABOLISH'">详情</a>
        </span>
    </a-table>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamTechnicalStatusEvaluationOrderChange-modal ref="modalForm" @ok="modalFormOk"></eamTechnicalStatusEvaluationOrderChange-modal>
    <eamTechnicalStatusEvaluationOrderChange-modal ref="modalForm" @ok="modalFormOk"/>
    <!--变更流程弹窗-->
    <technical-status-evaluation-order-change-approval-modal ref="evaluationOrderChangeApprovalModal"
                                                             :selectShenpiData="selectedRowData"/>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import EamTechnicalStatusEvaluationOrderChangeModal from './modules/EamTechnicalStatusEvaluationOrderChangeModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect'
  import { getAction } from '@/api/manage'
  import TechnicalStatusEvaluationOrderChangeApprovalModal
    from '../../flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationOrderChangeApprovalModal'
  export default {
    name: "EamTechnicalStatusEvaluationOrderChangeList",
    mixins:[JeecgListMixin],
    name: 'EamTechnicalStatusEvaluationOrderChangeList',
    mixins: [JeecgListMixin],
    components: {
      TechnicalStatusEvaluationOrderChangeApprovalModal,
      LxSearchEquipmentSelect,
      EamTechnicalStatusEvaluationOrderChangeModal
    },
    data () {
    data() {
      return {
        description: '技术状态鉴定工单变更管理页面',
        // è¡¨å¤´
@@ -127,129 +96,195 @@
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
           },
           {
            title: '删除标记',
            align:"center",
            dataIndex: 'delFlag'
           },
           {
            title: '工单ID',
            align:"center",
            key: 'rowIndex',
            width: 60,
            align: 'center',
            customRender: function(t, r, index) {
              return parseInt(index) + 1
            },
            fixed: 'left'
          },
          {
            title: '统一编码',
            align: 'center',
            dataIndex: 'equipmentCode',
            fixed: 'left'
          },
          {
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName',
            fixed: 'left'
          },
          {
            title: '设备型号',
            align: 'center',
            dataIndex: 'equipmentModel',
            fixed: 'left'
          },
          {
            title: '工单号',
            align: 'center',
            dataIndex: 'orderId'
           },
           {
          },
          {
            title: '变更单号',
            align:"center",
            align: 'center',
            dataIndex: 'changeOrderNum'
           },
           {
          },
          {
            title: '申请人',
            align:"center",
            dataIndex: 'applicant'
           },
           {
            align: 'center',
            dataIndex: 'applicant_dictText'
          },
          {
            title: '申请部门',
            align:"center",
            dataIndex: 'factoryOrgCode'
           },
           {
            align: 'center',
            dataIndex: 'factoryOrgCode_dictText'
          },
          {
            title: '申请日期',
            align:"center",
            align: 'center',
            dataIndex: 'applyDate'
           },
           {
            title: '变更状态;待提交、待主管审核、待部门确认、待保障部确认、已作废、已完成',
            align:"center",
            dataIndex: 'changeStatus'
           },
           {
            title: '变更原因;生产任务急无法停机、设备故障正处于维修状态、设备已报废、设备大修、搬迁、改造',
            align:"center",
            dataIndex: 'applyReason'
           },
           {
          },
          {
            title: '变更状态',
            align: 'center',
            dataIndex: 'changeStatus_dictText'
          },
          {
            title: '变更原因',
            align: 'center',
            dataIndex: 'applyReason_dictText'
          },
          {
            title: '变更鉴定日期',
            align:"center",
            dataIndex: 'deferredMaintenanceDate'
           },
           {
            align: 'center',
            dataIndex: 'deferredEvaluationDate'
          },
          {
            title: '主管领导签字',
            align:"center",
            dataIndex: 'equipmentManagerSignature'
           },
           {
            align: 'center',
            dataIndex: 'equipmentManagerSignature_dictText'
          },
          {
            title: '主管领导签字时间',
            align:"center",
            align: 'center',
            dataIndex: 'equipmentManagerSignatureTime'
           },
           {
            title: '部门领导签字;根据变更原因类型区分不同的人审批',
            align:"center",
            dataIndex: 'departManagerSignature'
           },
           {
          },
          {
            title: '部门领导签字',
            align: 'center',
            dataIndex: 'departManagerSignature_dictText'
          },
          {
            title: '部门领导签字时间',
            align:"center",
            align: 'center',
            dataIndex: 'departManagerSignatureTime'
           },
           {
            title: '部门领导意见',
            align:"center",
            dataIndex: 'departManagerComment'
           },
           {
          },
          {
            title: '生产保障部领导签字',
            align:"center",
            dataIndex: 'productionSupportSignature'
           },
           {
            align: 'center',
            dataIndex: 'productionSupportSignature_dictText'
          },
          {
            title: '生产保障部领导签字时间',
            align:"center",
            align: 'center',
            dataIndex: 'productionSupportSignatureTime'
           },
           {
            title: '生产保障部领导意见',
            align:"center",
            dataIndex: 'productionSupportComment'
           },
           {
          },
          {
            title: 'HF编码',
            align:"center",
            align: 'center',
            dataIndex: 'hfCode'
           },
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            align: 'center',
            scopedSlots: { customRender: 'action' },
            fixed: 'right',
            width: 200
          }
        ],
        url: {
          list: "/eam/eamTechnicalStatusEvaluationOrderChange/list",
          delete: "/eam/eamTechnicalStatusEvaluationOrderChange/delete",
          deleteBatch: "/eam/eamTechnicalStatusEvaluationOrderChange/deleteBatch",
          exportXlsUrl: "eam/eamTechnicalStatusEvaluationOrderChange/exportXls",
          importExcelUrl: "eam/eamTechnicalStatusEvaluationOrderChange/importExcel",
       },
    }
  },
  computed: {
    importExcelUrl: function(){
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
        selectedRowData: {},
        url: {
          list: '/eam/eamTechnicalStatusEvaluationOrderChange/list',
          edit: '/eam/eamTechnicalStatusEvaluationOrderChange/edit',
          submit: '/eam/eamTechnicalStatusEvaluationOrderChange/submit',
          abolish: '/eam/eamTechnicalStatusEvaluationOrderChange/abolish'
        }
      }
    },
    methods: {
      /**
       * æäº¤æ—¶è§¦å‘
       * @param id
       */
      handleSubmit(id) {
        const that = this
        that.loading = true
        getAction(this.url.submit, { id })
          .then(res => {
            if (res.success) {
              that.$notification.success({
                message: '消息',
                description: res.message
              })
              that.loadData()
              that.loading = false
            } else {
              that.$notification.warning({
                message: '消息',
                description: res.message
              })
            }
          })
      },
      /**
       * ä½œåºŸæ—¶è§¦å‘
       * @param id
       */
      handleAbolish(id) {
        const that = this
        that.loading = true
        getAction(this.url.abolish, { id })
          .then(res => {
            if (res.success) {
              that.$notification.success({
                message: '消息',
                description: res.message
              })
              that.loadData()
            } else {
              that.$notification.warning({
                message: '消息',
                description: res.message
              })
              that.loading = false
            }
          })
      },
      /**
       * ç‚¹å‡»è¯¦æƒ…时触发时触发
       * @param record
       */
      handleDetail(record) {
        this.$refs.evaluationOrderChangeApprovalModal.title = '详情'
        this.$refs.evaluationOrderChangeApprovalModal.disableSubmit = true
        this.$refs.evaluationOrderChangeApprovalModal.visible = true
        this.$refs.evaluationOrderChangeApprovalModal.handleDetail(record)
      },
      /**
       * ç”³è¯·æ—¶é—´å‘生改变时触发
       * @param dateStringArray
       */
      handleDateRangeChange(dateStringArray) {
        this.queryParam.dateBegin = dateStringArray[0]
        this.queryParam.dateEnd = dateStringArray[1]
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
</script>
src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue
@@ -46,29 +46,38 @@
        <span slot="action" slot-scope="text, record">
          <template v-if="record.evaluationStatus === 'WAIT_EVALUATION'">
            <a-popconfirm title="确定领取吗?"
                          @confirm="handleReceive(record.id)">
            <a-popconfirm title="确定领取吗?" @confirm="handleReceive(record.id)">
            <a>领取</a>
          </a-popconfirm>
           <a-divider type="vertical"/>
          </template>
            <a @click="handleDetail(record)">详情</a>
          <template v-if="record.evaluationStatus == 'WAIT_EVALUATION'||record.evaluationStatus=='LOCKED'">
             <a @click="handleOrderChange(record)">变更</a>
             <a-divider type="vertical"/>
          </template>
          <a @click="handleDetail(record)">详情</a>
        </span>
    </a-table>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <!--工单弹窗-->
    <eamTechnicalStatusEvaluationOrder-modal ref="modalForm" @ok="modalFormOk"/>
    <technical-status-evaluation-approval-modal ref="technicalStatusEvaluationApprovalModal"
                                                :selectShenpiData="selectedOrderData"/>
    <!--工单变更弹窗-->
    <eamTechnicalStatusEvaluationOrderChange-modal ref="orderChangeModal" @ok="modalFormOk"/>
  </a-card>
</template>
<script>
  import EamTechnicalStatusEvaluationOrderModal from './modules/EamTechnicalStatusEvaluationOrderModal'
  import EamTechnicalStatusEvaluationOrderChangeModal from './modules/EamTechnicalStatusEvaluationOrderChangeModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import { getAction } from '@/api/manage'
  import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect'
@@ -81,7 +90,8 @@
    components: {
      TechnicalStatusEvaluationApprovalModal,
      LxSearchEquipmentSelect,
      EamTechnicalStatusEvaluationOrderModal
      EamTechnicalStatusEvaluationOrderModal,
      EamTechnicalStatusEvaluationOrderChangeModal
    },
    data() {
      return {
@@ -263,6 +273,10 @@
      }
    },
    methods: {
      /**
       * ç‚¹å‡»é¢†å–时触发
       * @param id
       */
      handleReceive(id) {
        let that = this
        this.loading = true
@@ -284,11 +298,25 @@
          })
      },
      /**
       * ç‚¹å‡»å˜æ›´æ—¶è§¦å‘
       * @param record
       */
      handleOrderChange(record) {
        this.$refs.orderChangeModal.title = '变更'
        this.$refs.orderChangeModal.add(record)
      },
      /**
       * ç‚¹å‡»è¯¦æƒ…时触发
       * @param record
       */
      handleDetail(record) {
        this.selectedOrderData = Object.assign({}, record)
        this.$refs.technicalStatusEvaluationApprovalModal.recordDetail(record)
        this.$refs.technicalStatusEvaluationApprovalModal.title = '详情'
        this.$refs.technicalStatusEvaluationApprovalModal.visible = true
        this.$refs.technicalStatusEvaluationApprovalModal.disableSubmit = true
        this.$refs.technicalStatusEvaluationApprovalModal.recordDetail(record)
      }
    }
  }
src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderChangeModal.vue
@@ -1,162 +1,140 @@
<template>
  <j-modal
    :title="title"
    :width="800"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
  <j-modal :title="title" :width="1300" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
           @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="删除标记">
          <a-input-number v-model="model.delFlag"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderId" label="工单ID">
          <a-input placeholder="请输入工单ID" v-model="model.orderId" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="changeOrderNum" label="变更单号">
          <a-input placeholder="请输入变更单号" v-model="model.changeOrderNum" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicant" label="申请人">
          <a-input placeholder="请输入申请人" v-model="model.applicant" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryOrgCode" label="申请部门">
          <a-input placeholder="请输入申请部门" v-model="model.factoryOrgCode" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applyDate" label="申请日期">
          <a-input placeholder="请输入申请日期" v-model="model.applyDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="changeStatus" label="变更状态;待提交、待主管审核、待部门确认、待保障部确认、已作废、已完成">
          <a-input placeholder="请输入变更状态;待提交、待主管审核、待部门确认、待保障部确认、已作废、已完成" v-model="model.changeStatus" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applyReason" label="变更原因;生产任务急无法停机、设备故障正处于维修状态、设备已报废、设备大修、搬迁、改造">
          <a-input placeholder="请输入变更原因;生产任务急无法停机、设备故障正处于维修状态、设备已报废、设备大修、搬迁、改造" v-model="model.applyReason" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deferredMaintenanceDate" label="变更鉴定日期">
          <a-input placeholder="请输入变更鉴定日期" v-model="model.deferredMaintenanceDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentManagerSignature" label="主管领导签字">
          <a-input placeholder="请输入主管领导签字" v-model="model.equipmentManagerSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentManagerSignatureTime" label="主管领导签字时间">
          <a-input placeholder="请输入主管领导签字时间" v-model="model.equipmentManagerSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departManagerSignature" label="部门领导签字;根据变更原因类型区分不同的人审批">
          <a-input placeholder="请输入部门领导签字;根据变更原因类型区分不同的人审批" v-model="model.departManagerSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departManagerSignatureTime" label="部门领导签字时间">
          <a-input placeholder="请输入部门领导签字时间" v-model="model.departManagerSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departManagerComment" label="部门领导意见">
          <a-input placeholder="请输入部门领导意见" v-model="model.departManagerComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionSupportSignature" label="生产保障部领导签字">
          <a-input placeholder="请输入生产保障部领导签字" v-model="model.productionSupportSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionSupportSignatureTime" label="生产保障部领导签字时间">
          <a-input placeholder="请输入生产保障部领导签字时间" v-model="model.productionSupportSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionSupportComment" label="生产保障部领导意见">
          <a-input placeholder="请输入生产保障部领导意见" v-model="model.productionSupportComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCode" label="HF编码">
          <a-input placeholder="请输入HF编码" v-model="model.hfCode" />
        </a-form-model-item>
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
        <a-row>
          <a-col :span="8">
            <a-form-model-item label="工单号">
              <a-input placeholder="选择设备后自动带出" disabled v-model="model.orderId"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item label="变更单号">
              <a-input placeholder="系统自动生成" disabled v-model="model.changeOrderNum"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item label="统一编码">
              <technical-status-equipment-select placeholder="请输入统一编码或名称搜索" v-model="model.equipmentId" disabled/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="deferredEvaluationDate" label="变更鉴定日期">
              <a-date-picker v-model="model.deferredEvaluationDate" value-format="YYYY-MM-DD" style="width: 100%"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="applyReason" label="变更原因">
              <j-dict-select-tag v-model="model.applyReason" placeholder="请选择变更原因"
                                 dict-code="technical_status_evaluation_order_change_reason"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="备注" :labelCol="{span:2}" :wrapperCol="{span:21}">
              <a-textarea v-model="model.remark" placeholder="请输入备注"/>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { httpAction } from '@/api/manage'
  import moment from "moment"
  import { postAction } from '@/api/manage'
  import TechnicalStatusEquipmentSelect from '../../equipment/modules/TechnicalStatusEquipmentSelect'
  export default {
    name: "EamTechnicalStatusEvaluationOrderChangeModal",
    data () {
    name: 'EamTechnicalStatusEvaluationOrderChangeModal',
    components: { TechnicalStatusEquipmentSelect },
    data() {
      return {
        title:"操作",
        title: '操作',
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
          sm: { span: 6 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
          sm: { span: 15 }
        },
        confirmLoading: false,
        validatorRules:{
        validatorRules: {
          deferredEvaluationDate: [{ required: true, message: '请选择日期', trigger: 'change' }],
          applyReason: [{ required: true, message: '请选择变更原因', trigger: 'change' }]
        },
        url: {
          add: "/eam/eamTechnicalStatusEvaluationOrderChange/add",
          edit: "/eam/eamTechnicalStatusEvaluationOrderChange/edit",
        },
          add: '/eam/eamTechnicalStatusEvaluationOrderChange/add',
          edit: '/eam/eamTechnicalStatusEvaluationOrderChange/edit'
        }
      }
    },
    created () {
    },
    methods: {
      add () {
        //初始化默认值
        this.edit({});
      add({ id, equipmentId }) {
        this.model = Object.assign({ orderId: id, equipmentId })
        this.visible = true
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      edit(record) {
        this.model = Object.assign({}, record)
        this.visible = true
      },
      close () {
        this.$emit('close');
        this.visible = false;
        this.$refs.form.clearValidate();
      },
      handleOk () {
        const that = this;
      handleOk() {
        const that = this
        // è§¦å‘表单验证
         this.$refs.form.validate(valid => {
        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';
            that.confirmLoading = true
            let httpUrl
            if (!that.model.id) {
              httpUrl = that.url.add
            } else {
              httpUrl = that.url.edit
            }
            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;
            postAction(httpUrl, that.model)
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  if (!that.model.id) {
                    that.$router.push('/eam/technical/order/change')
                    return
                  }
                  that.close()
                  that.$emit('ok')
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              })
              .finally(() => {
                that.confirmLoading = false
              })
          } else {
            return false
          }
        })
      },
      handleCancel () {
      handleCancel() {
        this.close()
      },
      close() {
        this.$emit('close')
        this.visible = false
        this.$refs.form.clearValidate()
      }
    }
  }
</script>
<style lang="less" scoped>
</style>
</script>
src/views/flowable/modeler/modelerDesign.vue
@@ -8,7 +8,6 @@
          v-model="queryParams.name"
          placeholder="请输入名称"
          clearable
          size="small"
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
src/views/flowable/workflow/FlowCompleted.vue
@@ -1,8 +1,3 @@
<!--
 Description: å·¥ä½œæµ-我的已办 List
 Author: ä½œè€… liuyh
 Date:   2025-02-27
-->
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
@@ -17,13 +12,11 @@
          </a-col>
          <a-col :xl="10" :lg="11" :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>
              <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust"
                      v-model="queryParam.startTime"/>
              <span class="query-group-split-cust"></span>
              <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间"
                      class="query-group-cust"
                      v-model="queryParam.endTime"></j-date>
              <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust"
                      v-model="queryParam.endTime"/>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -37,264 +30,169 @@
    </div>
    <!-- æŸ¥è¯¢åŒºåŸŸ-END -->
    <!-- table区域-begin -->
    <div>
      <a-table
        ref="table"
        size="middle"
        :scroll="{x:true}"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        @change="handleTableChange">
    <a-table ref="table" size="middle" :scroll="{x:true}" bordered rowKey="id" :columns="columns"
             :dataSource="dataSource" :pagination="ipagination" :loading="loading" class="j-table-force-nowrap"
             @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
            <a @click="handelDetial(record,text)">详情</a>
            <a @click="handleDetail(record)">详情</a>
        </span>
    </a-table>
      </a-table>
    </div>
    <third-maintenance-approval-modal ref="thirdMaintenanceApprovalModal" :selectShenpiData="selectedRowData"/>
  </a-card>
</template>
<script>
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import ThirdMaintenanceApprovalModal from './thirdMaintenance/ThirdMaintenanceApprovalModal'
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import JDictSelectTag from '@/components/dict/JDictSelectTag.vue'
export default {
  name: 'NcDeviceCharactersList',
  mixins: [JeecgListMixin, mixinDevice],
  components: {
    JDictSelectTag,
  },
  data() {
    return {
      description: '工作流-已办',
      // è¡¨å¤´
      columns: [
        {
          title: '序号',
          dataIndex: '',
          key: 'rowIndex',
          width: 200,
          align: 'center',
          customRender: function(t, r, index) {
            return parseInt(index) + 1
  export default {
    name: 'FlowCompleted',
    mixins: [JeecgListMixin],
    components: {
      ThirdMaintenanceApprovalModal
    },
    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: 'procDefName'
          },
          {
            title: '流程业务简要描述',
            align: 'center',
            dataIndex: 'description'
          },
          {
            title: '流程发起人名称',
            align: 'center',
            dataIndex: 'proposer_dictText'
          },
          {
            title: '任务名称',
            align: 'center',
            dataIndex: 'taskName'
          },
          {
            title: '操作时间',
            align: 'center',
            dataIndex: 'finishTime',
            width: 200
          },
          {
            title: '操作',
            dataIndex: 'action',
            scopedSlots: { customRender: 'action' },
            align: 'center',
            fixed: 'right',
            width: 200
          }
        ],
        url: {
          list: '/assign/flow/finishedList'
        },
        {
          title: '流程分类',
          align: 'center',
          dataIndex: 'category_dictText',
          width: 200
        },
        {
          title: '流程名称',
          align: 'center',
          dataIndex: 'procDefName',
          width: 200
        },
        {
          title: '流程业务简要描述',
          align: 'center',
          dataIndex: 'description',
          width: 300
        },
        {
          title: '流程发起人名称',
          align: 'center',
          dataIndex: 'proposer_dictText',
          width: 250
        },
        {
          title: '任务名称',
          align: 'center',
          dataIndex: 'taskName',
          width: 250
        },
        {
          title: '操作时间',
          align: 'center',
          dataIndex: 'finishTime',
          width: 300
        },
        {
          title: '操作',
          dataIndex: 'action',
          scopedSlots: { customRender: 'action' },
          align: 'center',
          width: 200,
          fixed: 'right'
        }
      ],
      url: {
        list: '/assign/flow/finishedList'
      },
      dictOptions: {},
      selectShenpiData: {},
      selectDispatchFileXqData: {},
      selectWeekMaintenanceData: {},
      selectInspectionOrderXqData: {},
      selectRepairOrderData: {},
      selectOutBoundOrderData: {},
      selectLossBoundOrderData: {},
      selectStocktakingBoundOrderData: {}
    }
  },
  created() {
  },
  computed: {
    importExcelUrl: function() {
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
    }
  },
  methods: {
    handelDetial(item, index) {
      console.log('点击了详情')
      console.log('item----->', item)
      console.log('index----->', index)
      let approcesstype = this.splitAprocessType(item.category)
      console.log('approcesstype--->', approcesstype)
      switch (approcesstype) {
        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 'toolOutStorageApproval':
          this.handleToolOutStorageApproval(item)
          break
        case 'toolsStocktakingBound':
          this.handleToolStocktakingApproval(item)
          break
        case 'toolsLossApproval':
          this.handleToolLossApproval(item)
          break
        default:
          alert('没找到该流程')
        selectedRowData: {}
      }
    },
    methods: {
      handleDetail(record) {
        console.log('点击了详情')
        console.log('record----->', record)
        let processType = this.splitProcessType(record.category)
        console.log('processType--->', processType)
        switch (processType) {
          case 'sbdjApproval':
            this.handInspectionOrder(record)
            break
          case 'eam_repair':
            this.handleRepairOrder(record)
            break
          case 'third_maintenance':
            this.handleThirdMaintenance(record)
            break
          default:
            alert('没找到该流程')
        }
      },
    splitAprocessType(title) {
      let parts = title.split(':') // æ³¨æ„å†’号是全角字符,使用对应的字进行分割
      let result = parts[0]
      return result
    },
    handDrDetial(item) {
      this.selectShenpiData = item
      this.selectShenpiData.assignee_dictText = item.todoUsers_dictText
      this.selectShenpiData.procInstId = item.procInsId
      this.selectShenpiData.title = item.description
      this.$refs.modalFormApproval.clearTableSource()
      this.$refs.modalFormApproval.getAllApproveData(item)
    },
    handDispatchFileDetial(item) {
      console.log('item----->', item)
      this.selectDispatchFileXqData = item
      this.selectDispatchFileXqData.assignee_dictText = item.todoUsers_dictText
      this.selectDispatchFileXqData.procInstId = item.procInsId
      this.selectDispatchFileXqData.processInstanceId = item.procInsId
      this.selectDispatchFileXqData.title = item.description
      this.$refs.modalFormDispatchFileXq.clearTableSource()
      this.$refs.modalFormDispatchFileXq.getAllApproveData(item)
    },
    handleWeekMaintenance(record) {
      this.selectWeekMaintenanceData = Object.assign({}, record)
      this.$refs.weekMaintenanceApprovalModal.handleDetail(record)
      this.$refs.weekMaintenanceApprovalModal.title = '详情'
      this.$refs.weekMaintenanceApprovalModal.disableSubmit = true
    },
      /**
       * ç‚¹å‡»ä¸‰ä¿æµç¨‹è¯¦æƒ…时触发
       * @param record
       */
      handleThirdMaintenance(record) {
        this.selectedRowData = Object.assign({}, record)
        this.$refs.thirdMaintenanceApprovalModal.visible = true
        this.$refs.thirdMaintenanceApprovalModal.title = record.name
        this.$refs.thirdMaintenanceApprovalModal.disableSubmit = true
        this.$refs.thirdMaintenanceApprovalModal.handleDetail(record)
      },
    handInspectionOrder(record) {
      console.log('record----->', record)
      this.selectInspectionOrderXqData = Object.assign({}, record)
      const { todoUsers_dictText, procInsId, description, taskName } = this.selectInspectionOrderXqData
      this.selectInspectionOrderXqData.assignee_dictText = todoUsers_dictText
      this.selectInspectionOrderXqData.procInstId = procInsId
      this.selectInspectionOrderXqData.processInstanceId = procInsId
      this.selectInspectionOrderXqData.title = description
      this.$refs.modalFormInspectionOrderXq.visible = true
      this.$refs.modalFormInspectionOrderXq.title = taskName
      this.$refs.modalFormInspectionOrderXq.disableSubmit = true
      this.$refs.modalFormInspectionOrderXq.getAllApproveData({
        ...record,
        procInstId: procInsId,
        processInstanceId: procInsId
      })
      this.$refs.modalFormInspectionOrderXq.getBasicInformation(record)
    },
      /**
       * ç‚¹å‡»ç‚¹æ£€æµç¨‹è¯¦æƒ…时触发
       * @param record
       */
      handInspectionOrder(record) {
        console.log('record----->', record)
        this.selectInspectionOrderXqData = Object.assign({}, record)
        const { todoUsers_dictText, procInsId, description, taskName } = this.selectInspectionOrderXqData
        this.selectInspectionOrderXqData.assignee_dictText = todoUsers_dictText
        this.selectInspectionOrderXqData.procInstId = procInsId
        this.selectInspectionOrderXqData.processInstanceId = procInsId
        this.selectInspectionOrderXqData.title = description
        this.$refs.modalFormInspectionOrderXq.visible = true
        this.$refs.modalFormInspectionOrderXq.title = taskName
        this.$refs.modalFormInspectionOrderXq.disableSubmit = true
        this.$refs.modalFormInspectionOrderXq.getAllApproveData({
          ...record,
          procInstId: procInsId,
          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)
    },
      /**
       * ç‚¹å‡»è®¾å¤‡ç»´ä¿®åˆ†ç±»æµç¨‹è¯¦æƒ…时触发
       * @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)
      },
    handleToolOutStorageApproval(item) {
      this.selectOutBoundOrderData = Object.assign({}, item)
      item.procInstId = item.procInsId
      item.processInstanceId = item.procInsId
      this.selectOutBoundOrderData.assignee_dictText = item.todoUsers_dictText
      this.$refs.outBoundOrderHandle.auditVisible = false
      this.$refs.outBoundOrderHandle.clearTableSource()
      this.$refs.outBoundOrderHandle.getAllApproveData(item)
    },
    handleToolStocktakingApproval(item) {
      this.selectStocktakingBoundOrderData = Object.assign({}, item)
      item.procInstId = item.procInsId
      item.processInstanceId = item.procInsId
      this.selectStocktakingBoundOrderData.assignee_dictText = item.todoUsers_dictText
      this.$refs.stocktakingBoundHandle.auditVisible = false
      this.$refs.stocktakingBoundHandle.disableSubmit = true
      this.$refs.stocktakingBoundHandle.clearTableSource()
      this.$refs.stocktakingBoundHandle.getAllApproveData(item)
    },
    handleToolLossApproval(item) {
      this.selectLossBoundOrderData = Object.assign({}, item)
      item.procInstId = item.procInsId
      item.processInstanceId = item.procInsId
      this.selectStocktakingBoundOrderData.assignee_dictText = item.todoUsers_dictText
      this.$refs.lossBoundHandle.auditVisible = false
      this.$refs.lossBoundHandle.disableSubmit = true
      this.$refs.lossBoundHandle.clearTableSource()
      this.$refs.lossBoundHandle.getAllApproveData(item)
      splitProcessType(title) {
        let parts = title.split(':') // æ³¨æ„å†’号是全角字符,使用对应的字进行分割
        let result = parts[0]
        return result
      }
    }
  }
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>
</script>
src/views/flowable/workflow/FlowLedger.vue
@@ -1,31 +1,26 @@
<!--
 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 :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="12" :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>
@@ -34,7 +29,7 @@
                      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>
@@ -74,10 +69,10 @@
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import JDictSelectTag from '@/components/dict/JDictSelectTag.vue'
  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import JDictSelectTag from '@/components/dict/JDictSelectTag.vue'
  export default {
    name: 'FlowLedger',
@@ -113,7 +108,7 @@
          {
            title: '流程业务简要描述',
            align: 'center',
            dataIndex: 'description',
            dataIndex: 'description'
          },
          {
            title: '申请人',
@@ -189,11 +184,11 @@
        console.log('approcesstype--->', approcesstype)
        switch (approcesstype) {
          case 'drApproval':
            item.description=item.description
            item.description = item.description
            this.handDrDetial(item)
            break
          case 'ggApproval':
            item.description=item.description
            item.description = item.description
            this.handDispatchFileDetial(item)
            break
          case 'sbdjApproval':
@@ -208,27 +203,6 @@
        let parts = title.split(':') // æ³¨æ„å†’号是全角字符,使用对应的字进行分割
        let result = parts[0]
        return result
      },
      handDrDetial(item) {
        this.selectShenpiData = item
        this.selectShenpiData.assignee_dictText=item.todoUsers_dictText
        this.selectShenpiData.createTime=item.startTime
        this.selectShenpiData.procInstId=item.processInstanceId
        this.$refs.modalFormApproval.clearTableSource()
        this.$refs.modalFormApproval.getAllApproveData(item)
      },
      handDispatchFileDetial(item){
        this.selectDispatchFileXqData = item
        this.selectDispatchFileXqData.assignee_dictText=item.todoUsers_dictText
        this.selectDispatchFileXqData.createTime=item.startTime
        this.selectDispatchFileXqData.procInstId=item.processInstanceId
        this.$refs.modalFormDispatchFileXq.clearTableSource()
        this.$refs.modalFormDispatchFileXq.getAllApproveData(item)
      },
      handInspectionOrderDetail(item) {
        this.selectInspectionOrderXqData = item
src/views/flowable/workflow/FlowTodo.vue
@@ -78,20 +78,30 @@
      </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"/>
  </a-card>
</template>
@@ -104,11 +114,14 @@
    from './TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal'
  import SecondMaintenanceApprovalModal from './secondMaintenance/SecondMaintenanceApprovalModal'
  import ThirdMaintenanceApprovalModal from './thirdMaintenance/ThirdMaintenanceApprovalModal'
  import TechnicalStatusEvaluationOrderChangeApprovalModal
    from './TechnicalStatusEvaluation/TechnicalStatusEvaluationOrderChangeApprovalModal'
  export default {
    name: 'FlowTodo',
    mixins: [JeecgListMixin],
    components: {
      TechnicalStatusEvaluationOrderChangeApprovalModal,
      ThirdMaintenanceApprovalModal,
      SecondMaintenanceApprovalModal,
      TechnicalStatusEvaluationApprovalModal,
@@ -192,33 +205,30 @@
      }
    },
    methods: {
      handelDetail(item, index) {
        let processType = this.splitProcessType(item.category)
      handelDetail(record) {
        let processType = this.splitProcessType(record.category)
        console.log('processType', processType)
        switch (processType) {
          case 'maintenance_standard':
            this.handleMaintenanceStandard(item)
            this.handleMaintenanceStandard(record)
            break
          case 'sbdjApproval':
            this.handInspectionOrder(item)
            this.handInspectionOrder(record)
            break
          case 'eam_repair':
            this.handleRepairOrder(item)
            this.handleRepairOrder(record)
            break
          case 'second_maintenance':
            this.handleSecondMaintenance(item)
            this.handleSecondMaintenance(record)
            break
          case 'third_maintenance':
            this.handleThirdMaintenance(item)
            this.handleThirdMaintenance(record)
            break
          case 'TECHNICAL_STATUS_EVALUATION':
            this.handleTechnicalStatusEvaluation(item)
            this.handleTechnicalStatusEvaluation(record)
            break
          case 'toolsStocktakingBound':
            this.handleToolStocktakingApproval(item)
            break
          case 'toolsLossApproval':
            this.handleToolLossApproval(item)
          case 'EVALUATION_ORDER_CHANGE_PROCESS':
            this.handleEvaluationOrderChange(record)
            break
          default:
            alert('没找到该流程')
@@ -248,6 +258,13 @@
        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
@@ -267,8 +284,7 @@
        this.selectedRowData = Object.assign({}, record)
        this.$refs.inspectionOrderHandle.visible = true
        this.$refs.inspectionOrderHandle.title = record.name
        this.$refs.inspectionOrderHandle.getAllApproveData(record)
        this.$refs.inspectionOrderHandle.getBasicInformation(record)
        this.$refs.inspectionOrderHandle.handleApprove(record)
      },
      /**
@@ -278,8 +294,8 @@
      handleThirdMaintenance(record) {
        this.selectedRowData = Object.assign({}, record)
        this.$refs.thirdMaintenanceApprovalModal.visible = true
        this.$refs.thirdMaintenanceApprovalModal.handleDetail(record)
        this.$refs.thirdMaintenanceApprovalModal.title = record.name
        this.$refs.thirdMaintenanceApprovalModal.handleDetail(record)
      },
      /**
src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue
@@ -3,21 +3,20 @@
           :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @ok="submitForm"
           @cancel="handleCancel" :mask-closable="false" :confirmLoading="confirmLoading" fullscreen>
    <a-spin :spinning="spinning">
      <a-form-model ref='form' :model='tableRowRecord' :labelCol="labelCol" :wrapperCol="wrapperCol"
                    :rules="validatorRules">
        <a-row :gutter="48">
          <a-col :span="8">
      <a-form-model ref='form' :model='model' :labelCol="labelCol" :wrapperCol="wrapperCol" :rules="validatorRules">
        <a-row :gutter="48" id="outer-row">
          <a-col :span="8" class="scroll-col">
            <a-tabs>
              <a-tab-pane tab="基础信息">
                <a-row>
                  <a-col :span='span'>
                    <a-form-model-item label="工单号">
                      <a-input readOnly v-model="tableRowRecord.orderNum"/>
                      <a-input readOnly v-model="model.orderNum"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span='span'>
                    <a-form-model-item label="设备编号">
                      <MaintenanceEquipmentSelect v-model="tableRowRecord.equipmentId"
                      <MaintenanceEquipmentSelect v-model="model.equipmentId"
                                                  :maintenanceCategory="'POINT_INSPECTION'"
                                                  disabled @autocompleteForm="autoCompleteForm"/>
                    </a-form-model-item>
@@ -28,12 +27,12 @@
                <a-row>
                  <a-col :span='span'>
                    <a-form-model-item label="规范名称">
                      <a-input readOnly v-model="tableRowRecord.standardName"/>
                      <a-input readOnly v-model="model.standardName"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span='span'>
                    <a-form-model-item label="规范编码">
                      <a-input readOnly v-model="tableRowRecord.standardCode"/>
                      <a-input readOnly v-model="model.standardCode"/>
                    </a-form-model-item>
                  </a-col>
@@ -42,12 +41,12 @@
                <a-row>
                  <a-col :span='span'>
                    <a-form-model-item label="点检日期">
                      <a-input v-model="tableRowRecord.inspectionDate" readOnly/>
                      <a-input v-model="model.inspectionDate" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span='span'>
                    <a-form-model-item label="点检过期时间">
                      <a-input v-model="tableRowRecord.expirationTime" readOnly/>
                    <a-form-model-item label="过期时间">
                      <a-input v-model="model.expirationTime" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
@@ -55,12 +54,12 @@
                <a-row>
                  <a-col :span='span'>
                    <a-form-model-item label="保养周期">
                      <a-input v-model="tableRowRecord.maintenancePeriod" readOnly/>
                      <a-input v-model="model.maintenancePeriod" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span='span'>
                    <a-form-model-item label="点检人">
                      <a-input v-model="tableRowRecord.operator_dictText" readOnly/>
                      <a-input v-model="model.operator_dictText" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
@@ -68,7 +67,7 @@
                <a-row>
                  <a-col :span="span*2">
                    <a-form-model-item label="备注" :labelCol="{span:4}" :wrapperCol="{span:20}">
                      <a-textarea v-model="tableRowRecord.remark" rows="3" readOnly/>
                      <a-textarea v-model="model.remark" rows="3" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
@@ -76,11 +75,11 @@
            </a-tabs>
          </a-col>
          <a-col :span="!isDisplayConfirm?16:10">
          <a-col :span="!isDisplayConfirm?16:10" class="scroll-col">
            <a-tabs :active-key="activeTabKey" @change="handleTabChange">
              <a-tab-pane key="1" tab="日点检">
                <j-vxe-table ref="editableDetailTable1" :rowNumber="false" rowSelection bordered
                             alwaysEdit :toolbar="false" keep-source :height="300" :loading="detail.loading"
                             alwaysEdit :toolbar="false" keep-source :height="500"
                             :dataSource="detail.dayInspectionList" :columns="detail.columns"
                             @selectRowChange="handleTableSelectRowChange($event,'Day')">
                  <template v-slot:inspectionResult="props">
@@ -91,7 +90,7 @@
                  </template>
                  <template v-slot:exceptionDescription="props">
                    <a-textarea style="height: 32px" v-model="props.row.exceptionDescription"
                    <a-textarea :rows="1" style="resize: none" v-model="props.row.exceptionDescription"
                                :placeholder="props.row.inspectionResult&&props.row.inspectionResult!='NORMAL'?'请输入异常描述':''"
                                :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult=='NORMAL'"/>
                  </template>
@@ -107,7 +106,7 @@
              <a-tab-pane key="2" tab="周点检" forceRender>
                <j-vxe-table ref="editableDetailTable2" :rowNumber="false" rowSelection bordered
                             alwaysEdit :toolbar="false" keep-source :height="300" :loading="detail.loading"
                             alwaysEdit :toolbar="false" keep-source :height="500"
                             :dataSource="detail.weekInspectionList" :columns="detail.columns"
                             @selectRowChange="handleTableSelectRowChange($event,'Week')">
                  <template v-slot:inspectionResult="props">
@@ -119,7 +118,7 @@
                  </template>
                  <template v-slot:exceptionDescription="props">
                    <a-textarea style="height: 32px" v-model="props.row.exceptionDescription"
                    <a-textarea :rows="1" style="resize: none" v-model="props.row.exceptionDescription"
                                :placeholder="props.row.inspectionResult&&props.row.inspectionResult!='NORMAL'?'请输入异常描述':''"
                                :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult=='NORMAL'"/>
                  </template>
@@ -148,23 +147,23 @@
            </a-tabs>
          </a-col>
          <a-col v-if="isDisplayConfirm" :span="6">
          <a-col v-if="isDisplayConfirm" :span="6" class="scroll-col">
            <a-tabs>
              <a-tab-pane tab="维修工确认">
                <a-row>
                  <a-col :span="24">
                    <a-form-model-item prop="confirmDealType" label="处理类型">
                      <j-dict-select-tag type='radio' v-model='tableRowRecord.confirmDealType'
                      <j-dict-select-tag type='radio' v-model='model.confirmDealType'
                                         dictCode='approved_rejected'
                                         :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"/>
                                         :disabled="disableSubmit||model.inspectionStatus!=='WAIT_CONFIRM'"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item prop="confirmComment" label="处理意见">
                      <a-textarea placeholder="请输入处理意见"
                                  :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"
                                  v-model="tableRowRecord.confirmComment"/>
                    <a-form-model-item label="处理意见">
                      <a-textarea placeholder="请输入意见"
                                  :disabled="disableSubmit||model.inspectionStatus!=='WAIT_CONFIRM'"
                                  v-model="model.confirmComment"/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
@@ -196,23 +195,20 @@
        span: 12,
        confirmLoading: false,
        spinning: false,
        tableRowRecord: {},
        model: {},
        validatorRules: {
          confirmDealType: [
            { required: true, message: '请选择处理类型' }
          ],
          confirmComment: [
            { required: true, message: '请输入处理意见' }
          ]
        },
        imageSrc: null,
        labelCol: {
          xs: { span: 24 },
          sm: { span: 9 }
          sm: { span: 8 }
        },
        wrapperCol: {
          xs: { span: 30 },
          sm: { span: 15 }
          sm: { span: 16 }
        },
        visible: false,
        // è¡¨å¤´
@@ -292,52 +288,75 @@
    },
    computed: {
      isDisplayConfirm() {
        return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.inspectionStatus)
        return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.model.inspectionStatus)
      },
      isDisableOperation() {
        return this.disableSubmit || this.tableRowRecord.inspectionStatus !== 'UNDER_INSPECTION'
        return this.disableSubmit || this.model.inspectionStatus !== 'UNDER_INSPECTION'
      }
    },
    methods: {
      /**
       * èŽ·å–æµç¨‹èŠ‚ç‚¹å’Œæµç¨‹å›¾
       * @param record å¾…办记录信息
       */
      getAllApproveData(record) {
        if (record.procInstId) {
          const { processDefinitionId, processInstanceId, processDefinitionKey, procInstId } = record
          const param = { procInstId }
          const imageParam = { processDefinitionId, processInstanceId, TaskDefinitionKey: processDefinitionKey }
          const that = this
      handleApprove(record) {
        this.spinning = true
        this.activeTabKey = '1'
        this.detail.dayInspectionList = this.detail.weekInspectionList = []
        this.getBasicInformationByApi(record)
        this.getFlowChartImageByApi(record)
      },
          downFile(this.url.diagramView, imageParam, 'get')
            .then((res => {
              const urlObject = window.URL.createObjectURL(new Blob([res]))
              that.imageSrc = urlObject
            }))
            .catch(err => {
              that.$notification.error({
                message: '消息',
                description: res.message
              })
            })
        }
      handleDetail(record) {
        this.spinning = true
        this.activeTabKey = '1'
        this.detail.dayInspectionList = this.detail.weekInspectionList = []
        this.model = Object.assign({}, record)
        this.getDayInspectionOrderListByApi(record.id)
        this.getWeekInspectionOrderListByApi(record.standardId)
      },
      /**
       * èŽ·å–å¾…åŠžè®°å½•çš„åŸºæœ¬ä¿¡æ¯
       * @param record å¾…办记录信息
       * èŽ·å–åŸºç¡€ä¿¡æ¯
       * @param record ä¸»é¡µé¢åˆ—表行记录
       */
      async getBasicInformation(record) {
        this.activeTabKey = '1'
        this.detail.dayInspectionList = this.detail.weekInspectionList = []
        this.spinning = true
        const param = { id: record.dataId }
        let res = await getAction(this.url.queryById, param)
        this.tableRowRecord = Object.assign({}, res.result)
        this.getDayInspectionOrderListByApi(record.dataId)
        console.log('record', record)
        this.getWeekInspectionOrderListByApi(this.tableRowRecord.standardId)
      getBasicInformationByApi(record) {
        const that = this
        getAction(this.url.queryById, { id: record.dataId })
          .then(res => {
            if (res.success) {
              that.model = Object.assign({}, res.result)
              that.model.dataId = record.dataId
              that.model.taskId = record.id
              that.model.userId = record.assignee
              that.model.instanceId = record.procInstId
              this.getDayInspectionOrderListByApi(record.dataId)
              this.getWeekInspectionOrderListByApi(this.model.standardId)
            }
            else {
              that.$notification.warning({
                message: '消息',
                description: res.message
              })
            }
          })
      },
      /**
       * èŽ·å–æµç¨‹å›¾
       * @param record ä¸»é¡µé¢åˆ—表行记录
       */
      getFlowChartImageByApi(record) {
        const { processDefinitionId, processInstanceId, processDefinitionKey } = record
        const imageParam = { processDefinitionId, processInstanceId, TaskDefinitionKey: processDefinitionKey }
        const that = this
        downFile(this.url.diagramView, imageParam, 'get')
          .then((res => {
            that.imageSrc = window.URL.createObjectURL(new Blob([res]))
          }))
          .catch(err => {
            that.$notification.error({
              message: '消息',
              description: err.message
            })
          })
      },
      /**
@@ -349,7 +368,7 @@
          getAction(this.url.detailList, { orderId })
            .then(res => {
              if (res.success) {
                this.detail.dayInspectionList = [...res.result]
                this.detail.dayInspectionList = res.result
              }
            })
            .finally(() => {
@@ -363,8 +382,7 @@
       * @param standardId è§„范id
       */
      getWeekInspectionOrderListByApi(standardId) {
        console.log('standardId-------------------------', standardId)
        getAction(this.url.weekInspectionOrderList, { standardId, inspectionDate: this.tableRowRecord.inspectionDate })
        getAction(this.url.weekInspectionOrderList, { standardId, inspectionDate: this.model.inspectionDate })
          .then(res => {
            if (res.success) {
              this.detail.weekInspectionList = res.result.list
@@ -376,6 +394,10 @@
          })
      },
      /**
       * tab栏切换时触发
       * @param tabKey åˆ‡æ¢åŽçš„tabKey
       */
      handleTabChange(tabKey) {
        if (this.activeTabKey == '1') this.$refs.editableDetailTable1.clearValidate()
        this.activeTabKey = tabKey
@@ -400,17 +422,10 @@
        this.$refs.form.validate(valid => {
          if (valid) {
            this.confirmLoading = this.spinning = true
            const flowTaskVo = {}
            flowTaskVo.dataId = this.selectShenpiData.dataId
            flowTaskVo.taskId = this.selectShenpiData.id
            flowTaskVo.userId = this.selectShenpiData.assignee
            flowTaskVo.instanceId = this.selectShenpiData.procInstId
            flowTaskVo.confirmDealType = this.tableRowRecord.confirmDealType
            flowTaskVo.confirmComment = this.tableRowRecord.confirmComment
            flowTaskVo.tableDetailList = this.$refs.editableDetailTable1.getTableData()
            if (!this.detail.weekInspectionFinishedFlag) flowTaskVo.tableWeekDetailList = this.$refs.editableDetailTable2.getTableData()
            this.model.tableDetailList = this.$refs.editableDetailTable1.getTableData()
            if (!this.detail.weekInspectionFinishedFlag) this.model.tableWeekDetailList = this.$refs.editableDetailTable2.getTableData()
            const that = this
            postAction(this.url.approve, flowTaskVo)
            postAction(this.url.approve, this.model)
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
@@ -437,9 +452,9 @@
      },
      autoCompleteForm({ standardName, maintenancePeriod, standardCode }) {
        this.$set(this.tableRowRecord, 'standardName', standardName)
        this.$set(this.tableRowRecord, 'maintenancePeriod', maintenancePeriod)
        this.$set(this.tableRowRecord, 'standardCode', standardCode)
        this.$set(this.model, 'standardName', standardName)
        this.$set(this.model, 'maintenancePeriod', maintenancePeriod)
        this.$set(this.model, 'standardCode', standardCode)
      },
      // æ‰¹é‡é€‰æ‹©æ‰€æœ‰ç‚¹æ£€ç»“æžœ
@@ -512,8 +527,29 @@
    }
  }
</script>
<style scoped>
<style scoped lang="less">
  /deep/ .ant-select-dropdown-menu {
    text-align: left;
  }
  /deep/ .ant-spin-nested-loading {
    height: 100%;
    .ant-spin-container {
      height: 100%;
      .ant-form {
        height: 100%;
        #outer-row {
          height: 100%;
          .scroll-col {
            height: 100%;
            overflow: auto;
          }
        }
      }
    }
  }
</style>
src/views/flowable/workflow/MaintenanceStandard/MaintenanceStandardApprovalModal.vue
@@ -5,9 +5,9 @@
    <a-spin :spinning="spinning">
      <a-form-model ref='form' :model='tableRowRecord' :labelCol="labelCol" :wrapperCol="wrapperCol"
                    :rules="validatorRules">
        <a-row :gutter="48">
          <a-col :span="10">
            <a-tabs default-active-key="1">
        <a-row :gutter="24" id="outer-row">
          <a-col :span="8" class="scroll-col">
            <a-tabs>
              <a-tab-pane tab="基础信息" key="1">
                <a-row>
                  <a-col :span="span">
@@ -70,8 +70,12 @@
                  </a-col>
                </a-row>
              </a-tab-pane>
            </a-tabs>
          </a-col>
              <a-tab-pane key="2" tab="保养项明细" forceRender>
          <a-col :span="10" class="scroll-col">
            <a-tabs default-active-key="1">
              <a-tab-pane key="1" tab="保养项明细">
                <j-vxe-table ref="editableDetailTable" :rowNumber="false" :bordered="true"
                             :alwaysEdit="true" :toolbar="false" keep-source :loading="detail.loading"
                             :dataSource="detail.dataSource" :columns="detail.columns">
@@ -80,20 +84,16 @@
                  </template>
                </j-vxe-table>
              </a-tab-pane>
            </a-tabs>
          </a-col>
          <a-col :span="8">
            <a-tabs>
              <template v-if="selectShenpiData.procInstId">
                <a-tab-pane tab='流程图'>
                <a-tab-pane tab='流程图' forceRender>
                  <img :src="imageSrc" width="100%" v-if="imageSrc"/>
                </a-tab-pane>
              </template>
            </a-tabs>
          </a-col>
          <a-col :span="6">
          <a-col :span="6" class="scroll-col">
            <a-tabs>
              <a-tab-pane tab="维修主任审批">
                <a-row :gutter="24">
@@ -106,8 +106,8 @@
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item prop="repairManagerApproveComment" label="处理意见">
                      <a-textarea placeholder="请输入处理意见"
                    <a-form-model-item label="处理意见">
                      <a-textarea placeholder="请输入意见"
                                  :disabled="disableSubmit||tableRowRecord.standardStatus!=='WAIT_REPAIR_DIRECTOR'"
                                  v-model="tableRowRecord.repairManagerApproveComment"/>
                    </a-form-model-item>
@@ -127,8 +127,8 @@
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item prop="technicalManagerApproveComment" label="处理意见">
                      <a-textarea placeholder="请输入处理意见" v-model="tableRowRecord.technicalManagerApproveComment"/>
                    <a-form-model-item label="处理意见">
                      <a-textarea placeholder="请输入意见" v-model="tableRowRecord.technicalManagerApproveComment"/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
@@ -165,14 +165,8 @@
          repairManagerApproveResult: [
            { required: true, message: '请选择处理类型' }
          ],
          repairManagerApproveComment: [
            { required: true, message: '请输入处理意见' }
          ],
          technicalManagerApproveResult: [
            { required: true, message: '请选择处理类型' }
          ],
          technicalManagerApproveComment: [
            { required: true, message: '请输入处理意见' }
          ]
        },
        imageSrc: null,
@@ -373,8 +367,29 @@
    }
  }
</script>
<style scoped>
<style scoped lang="less">
  /deep/ .ant-select-dropdown-menu {
    text-align: left;
  }
  /deep/ .ant-spin-nested-loading {
    height: 100%;
    .ant-spin-container {
      height: 100%;
      .ant-form {
        height: 100%;
        #outer-row {
          height: 100%;
          .scroll-col {
            height: 100%;
            overflow: auto;
          }
        }
      }
    }
  }
</style>
src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue
@@ -1,5 +1,5 @@
<template>
  <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading"
  <j-modal :title="title" :visible="visible" :confirmLoading="confirmLoading"
           :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" fullscreen @ok="handleOk"
           @cancel="handleCancel" centered cancelText="关闭">
    <a-spin :spinning="spinning">
@@ -317,7 +317,6 @@
  import { downFile, getAction, httpAction } from '@/api/manage'
  import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
  import { JVXETypes } from '@comp/jeecg/JVxeTable'
  import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect'
  import TechnicalStatusEquipmentSelect from '../../../eam/equipment/modules/TechnicalStatusEquipmentSelect'
  export default {
@@ -325,7 +324,6 @@
    mixins: [JVxeTableModelMixin],
    components: {
      TechnicalStatusEquipmentSelect,
      MaintenanceEquipmentSelect
    },
    props: {
      selectShenpiData: {
src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationOrderChangeApprovalModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,364 @@
<template>
  <j-modal :title="title" :width="1300" :fullscreen="fullScreen" :visible="visible" :confirmLoading="confirmLoading"
           :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @ok="handleOk"
           @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="spinning">
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
        <a-row id="outer-row" :gutter="24">
          <!--左侧基础信息列-->
          <a-col :span="!disableSubmit?8:14" class="scroll-col">
            <a-tabs>
              <a-tab-pane tab="基础信息">
                <a-row>
                  <a-col :span="12">
                    <a-form-model-item label="工单号">
                      <a-input v-model="model.orderId_dictText" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="12">
                    <a-form-model-item label="变更单号">
                      <a-input v-model="model.changeOrderNum" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
                <a-row>
                  <a-col :span="12">
                    <a-form-model-item label="统一编码">
                      <technical-status-equipment-select v-model="model.equipmentId"
                                                         @autocompleteForm="autocompleteForm" disabled/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="12">
                    <a-form-model-item label="申请人">
                      <a-input v-model="model.applicant_dictText" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
                <a-row>
                  <a-col :span="12">
                    <a-form-model-item label="申请部门">
                      <a-input v-model="model.factoryOrgCode_dictText" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="12">
                    <a-form-model-item label="变更原因">
                      <a-input v-model="model.applyReason_dictText" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
                <a-row>
                  <a-col :span="12">
                    <a-form-model-item label="变更鉴定日期">
                      <a-input v-model="model.deferredEvaluationDate" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
                <a-row>
                  <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="备注">
                    <a-textarea v-model="model.remark" readOnly/>
                  </a-form-model-item>
                </a-row>
              </a-tab-pane>
            </a-tabs>
          </a-col>
          <!-- ä¸­é—´æ˜Žç»†é¡¹åˆ—-->
          <a-col v-if="selectShenpiData.procInstId" :span="10" class="scroll-col">
            <a-tabs>
              <a-tab-pane key='1' tab='流程图'>
                <img :src="imageSrc" alt="Fetched Image" style="width: 100%" v-if="imageSrc"/>
              </a-tab-pane>
            </a-tabs>
          </a-col>
          <!--右侧审批列-->
          <a-col :span="!disableSubmit?6:10" class="scroll-col">
            <a-tabs v-if="displayEquipmentManagerFlag">
              <a-tab-pane tab="使用单位室级领导确认">
                <a-row>
                  <a-col :span="24">
                    <a-form-model-item prop="equipmentManagerSignatureResult" label="确认类型" :labelCol="rightColLabelCol"
                                       :wrapperCol="rightColWrapperCol">
                      <j-dict-select-tag type='radio' v-model='model.equipmentManagerSignatureResult'
                                         dictCode='approve_reject'
                                         :disabled="disableSubmit||(model.changeStatus&&model.changeStatus!='EQUIPMENT_MANAGER_SIGNING')"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item label="确认意见" :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol">
                      <a-textarea placeholder="请输入意见" v-model="model.equipmentManagerComment"
                                  :disabled="disableSubmit||(model.changeStatus&&model.changeStatus!='EQUIPMENT_MANAGER_SIGNING')"/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
              </a-tab-pane>
            </a-tabs>
            <a-tabs v-if="displayDepartManagerFlag">
              <a-tab-pane tab="部门领导确认">
                <a-row>
                  <a-col :span="24">
                    <a-form-model-item prop="departManagerSignatureResult" label="确认类型" :labelCol="rightColLabelCol"
                                       :wrapperCol="rightColWrapperCol">
                      <j-dict-select-tag type='radio' v-model='model.departManagerSignatureResult'
                                         dictCode='approve_reject'
                                         :disabled="disableSubmit||(model.changeStatus&&model.changeStatus!='DEPART_MANAGER_SIGNING')"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item label="确认意见" :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol">
                      <a-textarea placeholder="请输入意见" v-model="model.departManagerComment"
                                  :disabled="disableSubmit||(model.changeStatus&&model.changeStatus!='DEPART_MANAGER_SIGNING')"/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
              </a-tab-pane>
            </a-tabs>
            <a-tabs v-if="displayProductionSupportFlag">
              <a-tab-pane tab="生产保障部领导确认">
                <a-row>
                  <a-col :span="24">
                    <a-form-model-item prop="productionSupportSignatureResult" label="确认类型"
                                       :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol">
                      <j-dict-select-tag type='radio' v-model='model.productionSupportSignatureResult'
                                         dictCode='approve_reject'
                                         :disabled="disableSubmit||(model.changeStatus&&model.changeStatus!='PRODUCTION_SUPPORT_SIGNING')"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item label="确认意见" :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol">
                      <a-textarea placeholder="请输入意见" v-model="model.productionSupportComment"
                                  :disabled="disableSubmit||(model.changeStatus&&model.changeStatus!='PRODUCTION_SUPPORT_SIGNING')"/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
              </a-tab-pane>
            </a-tabs>
          </a-col>
        </a-row>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { downFile, getAction, postAction } from '@/api/manage'
  import TechnicalStatusEquipmentSelect from '../../../eam/equipment/modules/TechnicalStatusEquipmentSelect'
  export default {
    name: 'TechnicalStatusEvaluationOrderChangeApprovalModal',
    components: {
      TechnicalStatusEquipmentSelect
    },
    props: {
      selectShenpiData: {
        type: Object
      }
    },
    data() {
      return {
        title: '操作',
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 8 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 }
        },
        labelColLong: {
          xs: { span: 24 },
          sm: { span: 4 }
        },
        wrapperColLong: {
          xs: { span: 24 },
          sm: { span: 20 }
        },
        rightColLabelCol: {
          xs: { span: 24 },
          sm: { span: 6 }
        },
        rightColWrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 }
        },
        confirmLoading: false,
        spinning: false,
        imageSrc: null,
        fullScreen: true,
        validatorRules: {
          equipmentManagerSignatureResult: [{ required: true, message: '请选择确认类型' }],
          departManagerSignatureResult: [{ required: true, message: '请选择确认类型' }],
          productionSupportSignatureResult: [{ required: true, message: '请选择确认类型' }]
        },
        url: {
          queryById: '/eam/eamTechnicalStatusEvaluationOrderChange/queryById',
          approval: '/eam/eamTechnicalStatusEvaluationOrderChange/approval',
          diagramView: '/assign/flow/diagramView'
        },
        disableSubmit: false,
        selectedRowKeys: []
      }
    },
    computed: {
      displayEquipmentManagerFlag() {
        return this.model.changeStatus && ['EQUIPMENT_MANAGER_SIGNING', 'DEPART_MANAGER_SIGNING', 'PRODUCTION_SUPPORT_SIGNING', 'COMPLETED'].includes(this.model.changeStatus)
      },
      displayDepartManagerFlag() {
        return this.model.changeStatus && ['DEPART_MANAGER_SIGNING', 'PRODUCTION_SUPPORT_SIGNING', 'COMPLETED'].includes(this.model.changeStatus)
      },
      displayProductionSupportFlag() {
        return this.model.changeStatus && ['PRODUCTION_SUPPORT_SIGNING', 'COMPLETED'].includes(this.model.changeStatus)
      }
    },
    methods: {
      /**
       * ä¸»é¡µé¢ç‚¹å‡»æ‰§è¡Œå®¡æ‰¹æ—¶è§¦å‘
       * @param record ä¸»é¡µé¢åˆ—表行记录
       */
      handleApprove(record) {
        this.fullScreen = true
        this.model = {}
        this.getBasicInformationByApi(record)
        this.getFlowChartImageByApi(record)
      },
      /**
       * ä¸»é¡µé¢ç‚¹å‡»è¯¦æƒ…时触发
       * @param record ä¸»é¡µé¢åˆ—表行记录
       */
      handleDetail(record) {
        this.fullScreen = false
        this.model = Object.assign({}, record)
      },
      /**
       * èŽ·å–åŸºç¡€ä¿¡æ¯
       * @param record ä¸»é¡µé¢åˆ—表行记录
       */
      getBasicInformationByApi(record) {
        this.spinning = true
        const that = this
        getAction(this.url.queryById, { id: record.dataId })
          .then(res => {
            if (res.success) {
              that.model = Object.assign({}, res.result)
              that.model.dataId = record.dataId
              that.model.taskId = record.id
              that.model.userId = record.assignee
              that.model.instanceId = record.procInstId
            }
            else {
              that.$notification.warning({
                message: '消息',
                description: res.message
              })
            }
          })
      },
      /**
       * èŽ·å–æµç¨‹å›¾
       * @param record ä¸»é¡µé¢åˆ—表行记录
       */
      getFlowChartImageByApi(record) {
        const { processDefinitionId, processInstanceId, processDefinitionKey } = record
        this.imageSrc = null
        downFile(this.url.diagramView, {
          processDefinitionId,
          processInstanceId,
          TaskDefinitionKey: processDefinitionKey
        }, 'get')
          .then((res => {
            this.imageSrc = window.URL.createObjectURL(new Blob([res]))
          }))
          .catch(err => {
            this.$notification.error({
              message: '消息',
              description: err.message
            })
          })
      },
      async handleOk() {
        const that = this
        // è§¦å‘表单验证
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = that.spinning = true
            postAction(this.url.approval, this.model)
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.$emit('modalFormOk')
                  that.close()
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              })
              .finally(() => {
                that.confirmLoading = that.spinning = false
              })
          } else {
            return false
          }
        })
      },
      autocompleteForm(selectObj) {
        this.$set(this.model, 'equipmentId', selectObj.equipmentId)
        this.spinning = false
      },
      handleCancel() {
        this.close()
      },
      close() {
        this.$emit('close')
        this.visible = false
        this.$refs.form.clearValidate()
      }
    }
  }
</script>
<style scoped lang="less">
  /deep/ .ant-spin-nested-loading {
    height: 100%;
    .ant-spin-container {
      height: 100%;
      .ant-form {
        height: 100%;
        #outer-row {
          height: 100%;
          .scroll-col {
            height: 100%;
            overflow: auto;
          }
        }
      }
    }
  }
</style>
src/views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue
@@ -72,7 +72,7 @@
                          v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='operator_task'||
                          (model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')">
                <j-vxe-table ref="editableDetailTable1" :rowNumber="false" rowSelection bordered
                             alwaysEdit keep-source :height="300"
                             alwaysEdit keep-source
                             :dataSource="detail.operatorMaintenanceList" :columns="detail.columns"
                             @selectRowChange="handleTableSelectRowChange($event,'Operator')">
                  <template v-slot:maintenanceResult="props">
@@ -107,7 +107,7 @@
                          v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='maintenance_task'||
                          (model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')">
                <j-vxe-table ref="editableDetailTable2" :rowNumber="false" rowSelection bordered
                             alwaysEdit kee-source :height="300"
                             alwaysEdit kee-source
                             :dataSource="detail.repairerMaintenanceList" :columns="detail.columns"
                             @selectRowChange="handleTableSelectRowChange($event,'Repairer')">
                  <template v-slot:maintenanceResult="props">
src/views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue
@@ -62,7 +62,7 @@
          <a-col :span="model.maintenanceStatus&&model.maintenanceStatus!='WAIT_MAINTENANCE'?10:16" class="scroll-col">
            <a-tabs v-model="activeTabKey" @change="$refs.editableDetailTable.clearValidate()">
              <a-tab-pane key="1" tab="保养项明细">
                <j-vxe-table ref="editableDetailTable" rowSelection bordered alwaysEdit keep-source :height="300"
                <j-vxe-table ref="editableDetailTable" rowSelection bordered alwaysEdit keep-source
                             :dataSource="detail.dataSource" :columns="detail.columns"
                             @selectRowChange="handleTableSelectRowChange">
                  <!--保养结果-->