zhaowei
2 天以前 80a8050560fdd4cc18aee57c3ed176a9019dec2a
src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue
@@ -1,268 +1,97 @@
<template>
  <j-modal
    :width="1200"
    :visible="visible"
    :title="title"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handCancel"
    @ok="submitForm"
    :mask-closable="false"
    :confirmLoading="confirmLoading"
    centered
  >
  <j-modal :width="1200" :visible="visible" :title="title" :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
           @cancel="handCancel" @ok="submitForm" :mask-closable="false" :confirmLoading="confirmLoading" fullscreen>
    <a-spin :spinning="spinning">
      <a-form-model ref="form" :model='tableRowRecord' :rules='validatorRules' :labelCol='labelCol'
                    :wrapperCol='wrapperCol'>
        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">报修基础信息</a-divider>
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelColLong"
                    :wrapperCol="wrapperColLong">
        <a-row :gutter="24" id="outer-row">
          <a-col :span="8" class="scroll-col">
            <a-tabs>
              <a-tab-pane tab="基础信息">
                <a-row>
                  <a-col :span="12">
                    <a-form-model-item label="维修开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
                      <a-input v-model="model.actualStartTime" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="12">
                    <a-form-model-item label="维修结束时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
                      <a-input v-model="model.actualEndTime" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item label="故障原因">
                      <a-textarea v-model="model.faultReason" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item label="故障分析">
                      <a-textarea v-model="model.faultAnalysis" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item label="排故过程">
                      <a-textarea v-model="model.faultProcess" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item label="预防措施">
                      <a-textarea v-model="model.faultPrevent" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
              </a-tab-pane>
            </a-tabs>
          </a-col>
        <a-row>
          <a-col :span='threeColSpan'>
            <a-form-model-item label='工单编号'>
              <a-input :readOnly='inputReadOnly' v-model='tableRowRecord.repairCode'/>
            </a-form-model-item>
          <!--维修人明细-->
          <a-col class="scroll-col" :span="10">
            <a-tabs v-model="activeTabKey">
              <a-tab-pane key="1" tab="维修人明细">
                <j-vxe-table ref="editableDetailTable" rowNumber bordered keep-source :dataSource="detail.dataSource"
                             :columns="detail.columns"/>
              </a-tab-pane>
              <template v-if="selectShenpiData.procInstId">
                <a-tab-pane key='2' tab='流程图'>
                  <img :src="imageSrc" alt="Fetched Image"/>
                </a-tab-pane>
              </template>
            </a-tabs>
          </a-col>
          <a-col :span='threeColSpan'>
            <a-form-model-item label='设备编号'>
              <lx-search-equipment-select disabled v-model='tableRowRecord.equipmentId'/>
            </a-form-model-item>
          </a-col>
          <a-col :span='threeColSpan'>
            <a-form-model-item label='维修负责人'>
              <a-input :readOnly='inputReadOnly' v-model='tableRowRecord.repairer'/>
            </a-form-model-item>
          <!--右侧审批列-->
          <a-col :span="6" class="scroll-col">
            <a-tabs>
              <a-tab-pane tab="操作工确认">
                <a-row>
                  <a-col :span="24">
                    <a-form-model-item prop="confirmResult" label="确认类型">
                      <j-dict-select-tag type='radio' v-model='model.confirmResult' dictCode='approve_reject'
                                         placeholder="请选择确认类型"
                                         :disabled="disableSubmit || model.repairStatus!='PENDING_CONFIRMATION'"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span="24">
                    <a-form-model-item label="确认意见">
                      <a-textarea placeholder="请输入意见" v-model="model.confirmComment"
                                  :disabled="disableSubmit || model.repairStatus!='PENDING_CONFIRMATION'"/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
              </a-tab-pane>
            </a-tabs>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="threeColSpan">
            <a-form-model-item label="故障开始时间">
              <a-input :readOnly='inputReadOnly' v-model="tableRowRecord.faultStartTime"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="threeColSpan">
            <a-form-model-item label="是否停机">
              <j-dict-select-tag type='radio' v-model='tableRowRecord.breakdownFlag' dictCode='breakdown_flag'
                                 disabled/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span='threeColSpan*3'>
            <a-form-model-item label='报修图片' :labelCol='labelColLong' :wrapperCol='wrapperColLong'>
              <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" disabled :number="3"
                         v-model="tableRowRecord.reportImageFiles"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-tabs v-model="activeTabKey">
          <a-tab-pane key="1" tab="维修处理">
            <div v-if="repairConfirm">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">维修确认</a-divider>
              <a-row :gutter="24">
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirm" label="是否内部可维修">
                    <j-dict-select-tag type='radio' v-model='tableRowRecord.repairConfirm' dictCode='yn'
                                       placeholder="请选择" :disabled="disableSubmit || tableRowRecord.repairStatus !== 'WAIT_INTERNAL_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirmComment" label="维修确认意见">
                    <a-textarea placeholder="请输入意见" v-model="tableRowRecord.repairConfirmComment"
                                :readOnly="disableSubmit || tableRowRecord.repairStatus !== 'WAIT_INTERNAL_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <div v-if="underInternalRepair && tableRowRecord.repairConfirm === '1'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <div v-if="leaderConfirm && tableRowRecord.repairConfirm === '0'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">领导确认</a-divider>
              <a-row :gutter="24">
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leaderConfirm" label="是否同意外部维修">
                    <j-dict-select-tag type='radio' v-model='tableRowRecord.leaderConfirm' dictCode='approved_rejected'
                                       placeholder="请选择" :disabled="disableSubmit || tableRowRecord.repairStatus!=='WAIT_LEADER_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leaderConfirmComment" label="确认意见">
                    <a-textarea placeholder="请输入意见" v-model="tableRowRecord.leaderConfirmComment"
                                :readOnly="disableSubmit || tableRowRecord.repairStatus!=='WAIT_LEADER_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <div v-if="underInternalRepair && tableRowRecord.leaderConfirm === '2'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <div v-if="externalConfirm && tableRowRecord.leaderConfirm === '1'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">机动办确认</a-divider>
              <a-row :gutter="24">
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="externalConfirm" label="机动办是否可维修">
                    <j-dict-select-tag type='radio' v-model='tableRowRecord.externalConfirm' dictCode='yn'
                                       placeholder="请选择" :disabled="disableSubmit||tableRowRecord.repairStatus!=='WAIT_EXTERNAL_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="externalConfirmComment" label="确认意见">
                    <a-textarea placeholder="请输入意见" v-model="tableRowRecord.externalConfirmComment"
                                :readOnly="disableSubmit || tableRowRecord.repairStatus!=='WAIT_EXTERNAL_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <div v-if="underExternalRepair && tableRowRecord.externalConfirm === '1'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">机动办维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <div v-if="underOutsideRepair && tableRowRecord.externalConfirm === '0'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">委外维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <div v-if="operatorConfirm">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">操作工确认</a-divider>
              <a-row :gutter="24">
                <a-col :span="24">
                  <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="confirmComment" label="确认意见">
                    <a-textarea placeholder="请输入意见" v-model="tableRowRecord.confirmComment"
                                :readOnly="disableSubmit || tableRowRecord.repairStatus!=='WAIT_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
          </a-tab-pane>
          <template v-if="selectShenpiData.procInstId">
            <a-tab-pane key='2' tab='流程节点'>
              <a-card :bordered="false">
                <a-timeline>
                  <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index">
                    <div>
                      <h3 style="font-weight: bold;">{{item.taskName}}</h3>
                      <div>处理人:{{item.assignee_dictText}}</div>
                      <div v-if="index !==0">处理时长:{{item.duration}}</div>
                      <div v-if="item.name !== '提交申请'">处理类型:{{item.sequenceFlowName}}</div>
                      <div v-if="item.description">处理意见:{{item.description}}</div>
                    </div>
                  </a-timeline-item>
                </a-timeline>
              </a-card>
            </a-tab-pane>
            <a-tab-pane key='3' tab='流程图'>
              <img :src="imageSrc" alt="Fetched Image"/>
            </a-tab-pane>
          </template>
        </a-tabs>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import '@assets/less/TableExpand.less'
  import { getAction, downFile, httpAction } from '@api/manage'
  import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect'
  import { JVXETypes } from '@comp/jeecg/JVxeTable'
  export default {
    name: 'RepairOrderApprovalModal',
@@ -276,151 +105,170 @@
    data() {
      return {
        title: '',
        threeColSpan: 8,
        twoColSpan: 12,
        inputReadOnly: true,
        disableSubmit: false,
        confirmLoading: false,
        spinning: false,
        tableRowRecord: {},
        hitaskDataSource: [],
        model: {},
        imageSrc: null,
        activeTabKey: '1',
        labelCol: {
          xs: { span: 24 },
          sm: { span: 6 }
          sm: { span: 10 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 }
          sm: { span: 14 }
        },
        labelColLong: {
          xs: { span: 24 },
          sm: { span: 2 }
          sm: { span: 5 }
        },
        wrapperColLong: {
          xs: { span: 24 },
          sm: { span: 20 }
          sm: { span: 19 }
        },
        validatorRules: {
          repairConfirm: [
            { required: true, message: '请选择是否内部可维修!' }
        validatorRules: { confirmResult: [{ required: true, message: '请选择确认类型' }] },
        detail: {
          dataSource: [],
          columns: [
            {
              title: 'ID',
              key: 'id',
              type: JVXETypes.hidden
            },
            {
              title: '维修人',
              key: 'repairUser',
              align: 'center',
              type: JVXETypes.normal
            },
            {
              title: '是否是主维修人',
              key: 'repairPrimary_dictText',
              align: 'center',
              type: JVXETypes.normal
            },
            {
              title: '维修时长',
              key: 'repairDuration',
              align: 'center',
              type: JVXETypes.normal
            },
            {
              title: '备注',
              key: 'remark',
              align: 'center',
              type: JVXETypes.normal
            }
          ],
          repairConfirmComment: [
            { required: true, message: '请输入维修确认意见' }
          ],
          leaderConfirm: [
            { required: true, message: '请选择是否同意外部维修!' }
          ],
          leaderConfirmComment: [
            { required: true, message: '请输入领导确认意见' }
          ],
          externalConfirm: [
            { required: true, message: '请选择机动办是否可维修!' }
          ],
          externalConfirmComment: [
            { required: true, message: '请输入机动办确认意见' }
          ],
          confirmComment: [
            { required: true, message: '请输入操作工确认意见' }
          ],
          faultReason: [
            { required: true, message: '请输入故障原因' }
          ],
          repairDescription: [
            { required: true, message: '请输入维修结果描述' }
          ]
          toolbarConfig: {
            // prefix 前缀;suffix 后缀
            slot: ['prefix', 'suffix'],
            // add 新增按钮;remove 删除按钮;clearSelection 清空选择按钮
            btn: ['add', 'remove', 'clearSelection']
          }
        },
        approveData: {},
        visible: false,
        // 表头
        url: {
          queryBomDataById: '/eam/eamRepairOrder/queryById',
          queryById: '/eam/eamRepairOrder/queryByReportId',
          diagramView: '/assign/flow/diagramView',
          queryHisTaskList: '/assign/flow/queryHisTaskList',
          approve: '/eam/eamRepairOrder/perform'
          approve: '/eam/eamRepairOrder/perform',
          detail: '/eam/eamRepairPerson/list'
        }
      }
    },
    computed: {
      repairConfirm() {
        return ['WAIT_INTERNAL_CONFIRM', 'UNDER_INTERNAL_REPAIR', 'WAIT_LEADER_CONFIRM', 'WAIT_EXTERNAL_CONFIRM', 'UNDER_EXTERNAL_REPAIR', 'UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      underInternalRepair() {
        return ['UNDER_INTERNAL_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      leaderConfirm() {
        return ['UNDER_INTERNAL_REPAIR', 'WAIT_LEADER_CONFIRM', 'WAIT_EXTERNAL_CONFIRM', 'UNDER_EXTERNAL_REPAIR', 'UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      externalConfirm() {
        return ['WAIT_EXTERNAL_CONFIRM', 'UNDER_EXTERNAL_REPAIR', 'UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      underExternalRepair() {
        return ['UNDER_EXTERNAL_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      underOutsideRepair() {
        return ['UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      operatorConfirm() {
        return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
        return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.model.repairStatus)
      }
    },
    methods: {
      /**
       * 获取流程节点和流程图
       * @param record 待办记录信息
       * 主页面点击执行审批时触发
       * @param record 主页面列表行记录
       */
      getAllApproveData(record) {
        if (!record.procInstId) return
        console.log('record----->', record)
        const { procInstId, processDefinitionId, processInstanceId, processDefinitionKey } = record
        const param = { procInstId }
        const imageParam = { processDefinitionId, processInstanceId, TaskDefinitionKey: processDefinitionKey }
      async handleDetail(record) {
        this.spinning = true
        this.activeTabKey = '1'
        this.model = {}
        this.getBasicInformationByApi(record)
        this.getFlowChartImageByApi(record)
        this.loadDetail(record.dataId)
      },
      /**
       * 主页面点击详情时触发
       * @param record 主页面列表行记录
       */
      recordDetail(record) {
        this.spinning = true
        this.activeTabKey = 1
        this.model = Object.assign({}, record)
        this.loadDetail(record.id)
      },
      /**
       * 获取基础信息
       * @param record 主页面列表行记录
       */
      getBasicInformationByApi(record) {
        const that = this
        getAction(this.url.queryHisTaskList, param)
        getAction(this.url.queryById, { id: record.dataId })
          .then(res => {
            that.hitaskDataSource = res.result
            if (res.success) {
              that.model = Object.assign({}, res.result[0])
              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
              })
            }
          })
      },
        downFile(this.url.diagramView, imageParam, 'get')
      /**
       * 获取流程图
       * @param record 主页面列表行记录
       */
      getFlowChartImageByApi(record) {
        const { processDefinitionId, processInstanceId, processDefinitionKey } = record
        downFile(this.url.diagramView, {
          processDefinitionId,
          processInstanceId,
          TaskDefinitionKey: processDefinitionKey
        }, 'get')
          .then((res => {
            const urlObject = window.URL.createObjectURL(new Blob([res]))
            that.imageSrc = urlObject
            this.imageSrc = window.URL.createObjectURL(new Blob([res]))
          }))
          .catch(err => {
            that.$notification.error({
            this.$notification.error({
              message: '消息',
              description: res.message
              description: err.message
            })
          })
      },
      /**
       * 获取待办记录的基本信息
       * @param record 待办记录信息
       * 获取维修人明细
       * @param repairId
       */
      getBasicInformation(record) {
        this.spinning = true
        const that = this
        const param = { id: record.dataId }
        this.tableRowRecord = {}
        this.activeTabKey = '1'
        getAction(this.url.queryBomDataById, param)
          .then((res => {
            if (res.success) {
              that.tableRowRecord = Object.assign({}, res.result, {
                isUseSpare: res.result.isUseSpare === null ? 0 : res.result.isUseSpare,
                imageFiles: JSON.parse(res.result.imageFiles),
                reportImageFiles: JSON.parse(res.result.reportImageFiles)
              })
              console.log('this.tableRowRecord----->', that.tableRowRecord)
            }
          }))
      loadDetail(repairId) {
        getAction(this.url.detail, { repairId })
          .then(res => {
            if (res.success) this.detail.dataSource = res.result
          })
          .finally(() => {
            that.spinning = false
            this.spinning = false
          })
      },
      submitForm() {
        const that = this
@@ -428,41 +276,25 @@
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = that.spinning = true
            const { confirmComment, externalConfirm, externalConfirmComment, repairConfirm, repairConfirmComment, leaderConfirm, leaderConfirmComment, faultReason, repairDescription, imageFiles, equipmentId } = that.tableRowRecord
            const { dataId, id, procInstId, taskDefKey, variables } = that.selectShenpiData
            const flowTaskVo = {}
            flowTaskVo.repairConfirm = repairConfirm
            flowTaskVo.repairConfirmComment = repairConfirmComment
            flowTaskVo.leaderConfirm = leaderConfirm
            flowTaskVo.leaderConfirmComment = leaderConfirmComment
            flowTaskVo.externalConfirm = externalConfirm
            flowTaskVo.externalConfirmComment = externalConfirmComment
            flowTaskVo.confirmComment = confirmComment
            flowTaskVo.faultReason = faultReason
            flowTaskVo.repairDescription = repairDescription
            flowTaskVo.imageFilesResult = imageFiles
            flowTaskVo.equipmentId = equipmentId
            flowTaskVo.id = dataId
            flowTaskVo.dataId = dataId
            flowTaskVo.taskId = id
            flowTaskVo.instanceId = procInstId
            flowTaskVo.targetKey = taskDefKey
            flowTaskVo.values = variables
            console.log('表单提交数据', flowTaskVo)
            httpAction(this.url.approve, flowTaskVo, 'post')
            httpAction(this.url.approve, that.model, 'post')
              .then((res) => {
                if (res.success) {
                  that.$message.success(res.message)
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.handCancel()
                  that.$emit('searchReset')
                  that.$emit('modalFormOk')
                } else {
                  that.$message.warning(res.message)
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              }).finally(() => {
              that.confirmLoading = that.spinning = false
            })
              })
              .finally(() => {
                that.confirmLoading = that.spinning = false
              })
          } else {
            return false
          }
@@ -475,4 +307,27 @@
      }
    }
  }
</script>
</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>