zhaowei
2 天以前 5bd1494d82c575e623f106016a558a431e9ba997
真空热处理炉三保功能及流程
已添加3个文件
已修改3个文件
已删除1个文件
1262 ■■■■ 文件已修改
src/views/eam/maintenance/EamThirdMaintenanceFurnaceList.vue 396 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamThirdMaintenanceFurnaceModal.vue 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue 345 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/FlowCompleted.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/FlowTodo.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationOrderChangeApprovalModal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/thirdMaintenance/ThirdMaintenanceFurnaceApprovalModal.vue 354 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/EamThirdMaintenanceFurnaceList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,396 @@
<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="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="4" :lg="6" :md="8" :sm="12">
            <a-form-item label="工单号">
              <a-input placeholder="请输入工单号" v-model="queryParam.orderNum"/>
            </a-form-item>
          </a-col>
          <a-col :xl="5" :lg="6" :md="8" :sm="12">
            <a-form-item label="计划保养日期">
              <a-range-picker v-model="queryParam.maintenanceDate" value-format="YYYY-MM-DD"
                              @change="handleDateRangeChange"/>
            </a-form-item>
          </a-col>
          <a-col :xl="5" :lg="6" :md="8" :sm="12">
            <a-form-item label="保养状态">
              <j-dict-select-tag placeholder="请选择保养状态" v-model="queryParam.maintenanceStatus"
                                 dict-code="third_maintenance_furnace_status"/>
            </a-form-item>
          </a-col>
          <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>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="handleBatchCollect">
            <a-icon type="form"/>
            é¢†å–
          </a-menu-item>
          <a-menu-item key="1" @click="handleBatchAbolish">
            <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" :scroll="{x:'max-content'}"
               :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange">
        <!--能否满足加工需求-->
        <template slot="processingRequirementsFlag" slot-scope="text">
          <a-switch v-if="text" checked-children="是" un-checked-children="否" :checked="Boolean(+text)" disabled/>
        </template>
        <span slot="action" slot-scope="text, record">
          <template v-if="record.maintenanceStatus==='WAIT_MAINTENANCE'">
             <a @click="handleEdit(record)">编辑</a>
             <a-divider type="vertical"/>
              <a-popconfirm title="确定领取吗?" @confirm="() => handleCollect(record.id)">
               <a>领取</a>
              </a-popconfirm>
             <a-divider type="vertical"/>
            <a-popconfirm title="确定作废吗?" @confirm="() => handleAbolish(record.id)">
              <a>作废</a>
            </a-popconfirm>
          </template>
          <a v-else @click="handleDetail(record)">详情</a>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamThirdMaintenanceFurnace-modal ref="modalForm" @ok="modalFormOk"/>
    <!--审批窗口-->
    <third-maintenance-furnace-approval-modal ref="thirdMaintenanceFurnaceApprovalModal"
                                              :selectShenpiData="selectedRowData"/>
  </a-card>
</template>
<script>
  import EamThirdMaintenanceFurnaceModal from './modules/EamThirdMaintenanceFurnaceModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect'
  import { getAction, deleteAction } from '@/api/manage'
  import ThirdMaintenanceFurnaceApprovalModal
    from '../../flowable/workflow/thirdMaintenance/ThirdMaintenanceFurnaceApprovalModal'
  export default {
    name: 'EamThirdMaintenanceFurnaceList',
    mixins: [JeecgListMixin],
    components: {
      ThirdMaintenanceFurnaceApprovalModal,
      LxSearchEquipmentSelect,
      EamThirdMaintenanceFurnaceModal
    },
    data() {
      return {
        description: '真空热处理炉三保管理页面',
        selectedRowData: {},
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            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: 'maintenanceStatus_dictText',
            fixed: 'left'
          },
          {
            title: '工单号',
            align: 'center',
            dataIndex: 'orderNum'
          },
          {
            title: '计划保养日期',
            align: 'center',
            dataIndex: 'maintenanceDate'
          },
          {
            title: '保养人',
            align: 'center',
            dataIndex: 'operator_dictText'
          },
          {
            title: '保养时间',
            align: 'center',
            dataIndex: 'operateTime'
          },
          {
            title: '压缩空气压力(MPa)',
            align: 'center',
            dataIndex: 'compressedAirPressureValue'
          },
          {
            title: '极限真空(Pa)',
            align: 'center',
            dataIndex: 'ultimateVacuumValue'
          },
          {
            title: '泄漏率(Pa/h)',
            align: 'center',
            dataIndex: 'leakRate'
          },
          {
            title: '净化处理',
            align: 'center',
            dataIndex: 'purificationTreatment'
          },
          {
            title: '炉温均匀性检测',
            align: 'center',
            dataIndex: 'furnaceTemperatureUniformityTesting'
          },
          {
            title: '加热功率测试',
            align: 'center',
            dataIndex: 'heatingPowerTest'
          },
          {
            title: '能否满足加工需求',
            align: 'center',
            dataIndex: 'processingRequirementsFlag',
            scopedSlots: { customRender: 'processingRequirementsFlag' }
          },
          {
            title: '确认人',
            align: 'center',
            dataIndex: 'confirmUser_dictText'
          },
          {
            title: '确认日期',
            align: 'center',
            dataIndex: 'confirmTime'
          },
          {
            title: 'HF编码',
            align: 'center',
            dataIndex: 'hfCode'
          },
          {
            title: '操作',
            dataIndex: 'action',
            align: 'center',
            scopedSlots: { customRender: 'action' },
            fixed: 'right',
            width: 200
          }
        ],
        url: {
          list: '/eam/eamThirdMaintenanceFurnace/list',
          collect: '/eam/eamThirdMaintenanceFurnace/collect',
          collectBatch: '/eam/eamThirdMaintenanceFurnace/collectBatch',
          abolish: '/eam/eamThirdMaintenanceFurnace/abolish',
          abolishBatch: '/eam/eamThirdMaintenanceFurnace/abolishBatch'
        }
      }
    },
    methods: {
      /**
       * ä¿å…»æ—¥æœŸå‘生改变时触发
       * @param dateStringArray
       */
      handleDateRangeChange(dateStringArray) {
        this.queryParam.maintenanceDateBegin = dateStringArray[0]
        this.queryParam.maintenanceDateEnd = dateStringArray[1]
      },
      /**
       * ç‚¹å‡»é¢†å–时触发
       * @param id è¡Œè®°å½•id
       */
      handleCollect(id) {
        let that = this
        this.loading = true
        getAction(that.url.collect, { id })
          .then((res) => {
            if (res.success) {
              that.$notification.success({
                message: '消息',
                description: res.message
              })
              that.loadData()
            } else {
              that.$notification.warning({
                message: '消息',
                description: res.message
              })
              this.loading = false
            }
          })
      },
      // æ‰¹é‡é¢†å–
      handleBatchCollect() {
        var ids = ''
        for (var a = 0; a < this.selectedRowKeys.length; a++) {
          ids += this.selectedRowKeys[a] + ','
        }
        var that = this
        this.$confirm({
          title: '确认领取',
          content: '是否领取选中数据,只有待保养状态的数据才可领取成功?',
          onOk: function() {
            that.loading = true
            deleteAction(that.url.collectBatch, { ids })
              .then((res) => {
                if (res.success) {
                  //重新计算分页问题
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.loadData()
                  that.onClearSelected()
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                  that.loading = false
                }
              })
          }
        })
      },
      /**
       * ç‚¹å‡»ä½œåºŸæ—¶è§¦å‘
       * @param id è¡Œè®°å½•id
       */
      handleAbolish(id) {
        var that = this
        this.loading = true
        getAction(that.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
              })
              this.loading = false
            }
          })
      },
      // æ‰¹é‡ä½œåºŸ
      handleBatchAbolish() {
        var ids = ''
        for (var a = 0; a < this.selectedRowKeys.length; a++) {
          ids += this.selectedRowKeys[a] + ','
        }
        var that = this
        this.$confirm({
          title: '确认作废',
          content: '是否作废选中数据,只有待保养状态的数据才可作废成功?',
          onOk: function() {
            that.loading = true
            deleteAction(that.url.abolishBatch, { ids })
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.loadData()
                  that.onClearSelected()
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                  that.loading = false
                }
              })
          }
        })
      },
      /**
       * ç‚¹å‡»è¯¦æƒ…时触发时触发
       * @param record
       */
      handleDetail(record) {
        this.selectedRowData = Object.assign({}, record)
        this.$refs.thirdMaintenanceFurnaceApprovalModal.title = '详情'
        this.$refs.thirdMaintenanceFurnaceApprovalModal.disableSubmit = true
        this.$refs.thirdMaintenanceFurnaceApprovalModal.visible = true
        this.$refs.thirdMaintenanceFurnaceApprovalModal.handleDetail(record)
      }
    }
  }
</script>
src/views/eam/maintenance/modules/EamThirdMaintenanceFurnaceModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,121 @@
<template>
  <j-modal :title="title" :width="800" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
           @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
        <a-form-model-item label="工单号">
          <a-input placeholder="工单号自动生成" v-model="model.orderNum" disabled/>
        </a-form-model-item>
        <a-form-model-item prop="equipmentId" label="统一编码">
          <lx-search-equipment-select placeholder="请输入统一编码或名称搜索" v-model="model.equipmentId" :allowClear="false"
                                      :disabled="!editable"/>
        </a-form-model-item>
        <a-form-model-item prop="maintenanceDate" label="计划保养日期">
          <a-date-picker v-model="model.maintenanceDate" value-format="YYYY-MM-DD" :allowClear="false"
                         style="width: 100%"/>
        </a-form-model-item>
        <a-form-model-item label="备注">
          <a-textarea placeholder="请输入备注" v-model="model.remark"/>
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { httpAction } from '@/api/manage'
  import LxSearchEquipmentSelect from '../../equipment/modules/LxSearchEquipmentSelect'
  export default {
    name: 'EamThirdMaintenanceFurnaceModal',
    components: { LxSearchEquipmentSelect },
    data() {
      return {
        title: '操作',
        visible: false,
        editable: true,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 }
        },
        confirmLoading: false,
        validatorRules: {
          equipmentId: [{ required: true, message: '请输入统一编码或名称搜索', trigger: 'change' }],
          maintenanceDate: [{ required: true, message: '请选择保养日期', trigger: 'change' }]
        },
        url: {
          add: '/eam/eamThirdMaintenanceFurnace/add',
          edit: '/eam/eamThirdMaintenanceFurnace/edit'
        }
      }
    },
    methods: {
      add() {
        this.model = {}
        this.visible = true
        this.editable = true
      },
      edit(record) {
        this.model = Object.assign({}, record)
        this.visible = true
        this.editable = false
      },
      handleOk() {
        const that = this
        // è§¦å‘表单验证
        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'
            }
            httpAction(httpurl, that.model, method)
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.$emit('ok')
                  that.close()
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              })
              .finally(() => {
                that.confirmLoading = that.spinning = false
              })
          } else {
            return false
          }
        })
      },
      handleCancel() {
        this.close()
      },
      close() {
        this.$emit('close')
        this.visible = false
        if (this.$refs.form) this.$refs.form.clearValidate()
      }
    }
  }
</script>
src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue
ÎļþÒÑɾ³ý
src/views/flowable/workflow/FlowCompleted.vue
@@ -76,6 +76,10 @@
    <!--三保变更-->
    <third-maintenance-order-change-approval-modal ref="thirdMaintenanceOrderChangeApprovalModal"
                                                   :selectShenpiData="selectedRowData"/>
    <!--真空热处理炉三保-->
    <third-maintenance-furnace-approval-modal ref="thirdMaintenanceFurnaceApprovalModal"
                                              :selectShenpiData="selectedRowData"/>
  </a-card>
</template>
@@ -95,11 +99,13 @@
  import RepairOrderApprovalModal from './repairOrder/RepairOrderApprovalModal'
  import MaintenanceStandardApprovalModal from './MaintenanceStandard/MaintenanceStandardApprovalModal'
  import ThirdMaintenanceOrderChangeApprovalModal from './thirdMaintenance/ThirdMaintenanceOrderChangeApprovalModal'
  import ThirdMaintenanceFurnaceApprovalModal from './thirdMaintenance/ThirdMaintenanceFurnaceApprovalModal'
  export default {
    name: 'FlowCompleted',
    mixins: [JeecgListMixin],
    components: {
      ThirdMaintenanceFurnaceApprovalModal,
      ThirdMaintenanceOrderChangeApprovalModal,
      MaintenanceStandardApprovalModal,
      RepairOrderApprovalModal,
@@ -210,6 +216,9 @@
            break
          case 'third_maintenance_change':
            this.handleThirdMaintenanceOrderChange(record)
            break
          case 'third_maintenance_furnace_process':
            this.handleThirdMaintenanceFurnace(record)
            break
          default:
            alert('没找到该流程')
@@ -348,6 +357,18 @@
        this.$refs.thirdMaintenanceOrderChangeApprovalModal.handleApprove(record)
      },
      /**
       * ç‚¹å‡»çœŸç©ºçƒ­å¤„理炉三保工单流程执行审批时触发
       * @param record
       */
      handleThirdMaintenanceFurnace(record) {
        this.selectedRowData = Object.assign({}, record)
        this.$refs.thirdMaintenanceFurnaceApprovalModal.visible = true
        this.$refs.thirdMaintenanceFurnaceApprovalModal.title = record.name
        this.$refs.thirdMaintenanceFurnaceApprovalModal.disableSubmit = true
        this.$refs.thirdMaintenanceFurnaceApprovalModal.handleApprove(record)
      },
      splitProcessType(title) {
        let parts = title.split(':') // æ³¨æ„å†’号是全角字符,使用对应的字进行分割
        let result = parts[0]
src/views/flowable/workflow/FlowTodo.vue
@@ -125,6 +125,11 @@
    <third-maintenance-order-change-approval-modal ref="thirdMaintenanceOrderChangeApprovalModal"
                                                   :selectShenpiData="selectedRowData"
                                                   @modalFormOk="modalFormOk"/>
    <!--真空热处理炉三保-->
    <third-maintenance-furnace-approval-modal ref="thirdMaintenanceFurnaceApprovalModal"
                                              :selectShenpiData="selectedRowData"
                                              @modalFormOk="modalFormOk"/>
  </a-card>
</template>
@@ -145,11 +150,13 @@
    from './TechnicalStatusEvaluation/TechnicalStatusEvaluationApplicationApprovalModal'
  import TechnicalStatusDeactivateApprovalModal from './TechnicalStatus/TechnicalStatusDeactivateApprovalModal'
  import ThirdMaintenanceOrderChangeApprovalModal from './thirdMaintenance/ThirdMaintenanceOrderChangeApprovalModal'
  import ThirdMaintenanceFurnaceApprovalModal from './thirdMaintenance/ThirdMaintenanceFurnaceApprovalModal'
  export default {
    name: 'FlowTodo',
    mixins: [JeecgListMixin],
    components: {
      ThirdMaintenanceFurnaceApprovalModal,
      ThirdMaintenanceOrderChangeApprovalModal,
      TechnicalStatusDeactivateApprovalModal,
      TechnicalStatusEvaluationApplicationApprovalModal,
@@ -276,6 +283,9 @@
          case 'third_maintenance_change':
            this.handleThirdMaintenanceOrderChange(record)
            break
          case 'third_maintenance_furnace_process':
            this.handleThirdMaintenanceFurnace(record)
            break
          default:
            alert('没找到该流程')
        }
@@ -402,6 +412,17 @@
        this.$refs.thirdMaintenanceOrderChangeApprovalModal.handleApprove(record)
      },
      /**
       * ç‚¹å‡»çœŸç©ºçƒ­å¤„理炉三保工单流程执行审批时触发
       * @param record
       */
      handleThirdMaintenanceFurnace(record) {
        this.selectedRowData = Object.assign({}, record)
        this.$refs.thirdMaintenanceFurnaceApprovalModal.visible = true
        this.$refs.thirdMaintenanceFurnaceApprovalModal.title = record.name
        this.$refs.thirdMaintenanceFurnaceApprovalModal.handleApprove(record)
      },
      batchHandle() {
        const categorySet = new Set(this.selectionRows.map(item => item.category))
        const nameSet = new Set(this.selectionRows.map(item => item.name))
src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationOrderChangeApprovalModal.vue
@@ -6,7 +6,7 @@
      <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-col :span="selectShenpiData.procInstId?8:14" class="scroll-col">
            <a-tabs>
              <a-tab-pane tab="基础信息">
                <a-row>
@@ -78,7 +78,7 @@
          </a-col>
          <!--右侧审批列-->
          <a-col :span="!disableSubmit?6:10" class="scroll-col">
          <a-col :span="selectShenpiData.procInstId?6:10" class="scroll-col">
            <a-tabs v-if="displayEquipmentManagerFlag">
              <a-tab-pane tab="使用单位室级领导确认">
                <a-row>
src/views/flowable/workflow/thirdMaintenance/ThirdMaintenanceFurnaceApprovalModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,354 @@
<template>
  <j-modal :title="title" :width="1300" :fullscreen="fullScreen" :visible="visible" :confirmLoading="confirmLoading"
           :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @ok="handleOk" centered
           @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="selectShenpiData.procInstId?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.orderNum" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="12">
                    <a-form-model-item label="统一编码">
                      <lx-search-equipment-select v-model="model.equipmentId" disabled/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
                <a-row>
                  <a-col :span="12">
                    <a-form-model-item label="计划保养日期">
                      <a-input v-model="model.maintenanceDate" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="12">
                    <a-form-model-item label="保养人">
                      <a-input v-model="model.operator_dictText" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
                <a-row>
                  <a-col :span="24">
                    <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="备注">
                      <a-textarea v-model="model.remark" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </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="selectShenpiData.procInstId?6:10" class="scroll-col">
            <a-tabs v-if="displayRepairConfirmFlag">
              <a-tab-pane tab="维修工确认">
                <a-row>
                  <a-col :span="24">
                    <a-form-model-item prop="compressedAirPressureValue" label="压缩空气压力(MPa)"
                                       :labelCol="rightColLabelCol"
                                       :wrapperCol="rightColWrapperCol">
                      <a-input v-model='model.compressedAirPressureValue' placeholder="请输入压缩空气压力(MPa)"
                               :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item prop="ultimateVacuumValue" label="极限真空(Pa)"
                                       :labelCol="rightColLabelCol"
                                       :wrapperCol="rightColWrapperCol">
                      <a-input v-model='model.ultimateVacuumValue' placeholder="请输入极限真空(Pa)"
                               :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item prop="leakRate" label="泄漏率(Pa/h)"
                                       :labelCol="rightColLabelCol"
                                       :wrapperCol="rightColWrapperCol">
                      <a-input v-model='model.leakRate' placeholder="请输入泄漏率(Pa/h)"
                               :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item prop="purificationTreatment" label="净化处理"
                                       :labelCol="rightColLabelCol"
                                       :wrapperCol="rightColWrapperCol">
                      <a-input v-model='model.purificationTreatment' placeholder="请输入净化处理"
                               :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item prop="furnaceTemperatureUniformityTesting" label="炉温均匀性检测"
                                       :labelCol="rightColLabelCol"
                                       :wrapperCol="rightColWrapperCol">
                      <a-input v-model='model.furnaceTemperatureUniformityTesting' placeholder="请输入炉温均匀性检测"
                               :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item prop="heatingPowerTest" label="加热功率测试"
                                       :labelCol="rightColLabelCol"
                                       :wrapperCol="rightColWrapperCol">
                      <a-input v-model='model.heatingPowerTest' placeholder="请输入加热功率测试"
                               :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item prop="processingRequirementsFlag" label="能否满足加工需求"
                                       :labelCol="rightColLabelCol"
                                       :wrapperCol="rightColWrapperCol">
                      <j-dict-select-tag type="radio" dict-code="yn" v-model='model.processingRequirementsFlag'
                                         :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')"/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
              </a-tab-pane>
            </a-tabs>
            <a-tabs v-if="displayRepairLeaderConfirmFlag">
              <a-tab-pane tab="维修室主任确认">
                <a-row>
                  <a-col :span="24">
                    <a-form-model-item prop="confirmDealType" label="确认类型" :labelCol="rightColLabelCol"
                                       :wrapperCol="rightColWrapperCol">
                      <j-dict-select-tag type='radio' v-model='model.confirmDealType' dictCode='approved_rejected'
                                         disabled/>
                    </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, putAction } from '@/api/manage'
  import LxSearchEquipmentSelect from '../../../eam/equipment/modules/LxSearchEquipmentSelect'
  export default {
    name: 'ThirdMaintenanceFurnaceApprovalModal',
    components: {
      LxSearchEquipmentSelect
    },
    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: 10 }
        },
        rightColWrapperCol: {
          xs: { span: 24 },
          sm: { span: 12 }
        },
        confirmLoading: false,
        spinning: false,
        imageSrc: null,
        fullScreen: true,
        validatorRules: {
          compressedAirPressureValue: [{ required: true, message: '请输入压缩空气压力(MPa)', trigger: 'change' }],
          ultimateVacuumValue: [{ required: true, message: '请输入极限真空(Pa)', trigger: 'change' }],
          leakRate: [{ required: true, message: '请输入泄漏率(Pa/h)', trigger: 'change' }],
          purificationTreatment: [{ required: true, message: '请输入净化处理', trigger: 'change' }],
          furnaceTemperatureUniformityTesting: [{ required: true, message: '请输入炉温均匀性检测', trigger: 'change' }],
          heatingPowerTest: [{ required: true, message: '请输入加热功率测试', trigger: 'change' }],
          processingRequirementsFlag: [{ required: true, message: '请选择能否满足加工需求' }],
          confirmDealType: [{ required: true, message: '请选择确认类型' }]
        },
        url: {
          queryById: '/eam/eamThirdMaintenanceFurnace/queryById',
          approval: '/eam/eamThirdMaintenanceFurnace/approval',
          diagramView: '/assign/flow/diagramView'
        },
        disableSubmit: false,
        selectedRowKeys: []
      }
    },
    computed: {
      displayRepairConfirmFlag() {
        return this.model.maintenanceStatus && ['UNDER_MAINTENANCE', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.model.maintenanceStatus)
      },
      displayRepairLeaderConfirmFlag() {
        return this.model.maintenanceStatus && ['WAIT_CONFIRM', 'COMPLETE'].includes(this.model.maintenanceStatus)
      }
    },
    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({ confirmDealType: '1' }, 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
              })
            }
          })
          .finally(() => {
            that.spinning = false
          })
      },
      /**
       * èŽ·å–æµç¨‹å›¾
       * @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
            putAction(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
          }
        })
      },
      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>