lyh
2025-04-01 15e22fc7a5b6ee006ff88e0eb0d1bd36f14d683f
src/views/flowable/workflow/dispatchFile/DispatchFileHandle.vue
copy from src/views/flowable/workflow/FlowNcZpi.vue copy to src/views/flowable/workflow/dispatchFile/DispatchFileHandle.vue
Îļþ´Ó src/views/flowable/workflow/FlowNcZpi.vue ¸´ÖÆ
@@ -1,3 +1,8 @@
<!--
 Description: å·¥ä½œæµ-NC审签处理页面 List
 Author: ä½œè€… liuyh
 Date:   2025-02-27
-->
<template>
  <a-modal
    :title="title"
@@ -12,10 +17,10 @@
        <br>
        <br>
        <a-tag color="blue">
          å¤„理人 {{ selectShenpiData.assignee }}
          å½“前处理人 {{ selectShenpiData.assignee_dictText }}
        </a-tag>
        <a-tag color="blue">
          åˆ›å»ºæ—¶é—´ {{ selectShenpiData.createTime }}
          ä»»åŠ¡åˆ›å»ºæ—¶é—´ {{ selectShenpiData.createTime }}
        </a-tag>
        <br>
        <br>
@@ -26,7 +31,7 @@
        <hr class="shallow-hr">
      </div>
      <div>
        <b>指派详情</b>
        <b>审签详情</b>
        <br>
        <a-form :form='form'>
          <a-spin :spinning="spinning">
@@ -35,61 +40,37 @@
                <a-form-model ref='form' :model='tableRowRecord' :rules='validatorRules'>
                  <a-row>
                    <a-col :span='span'>
                      <a-form-model-item label='产品名称' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='productName'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.productName'></a-input>
                      <a-form-model-item label='文档名称' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='docName'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.docName'></a-input>
                      </a-form-model-item>
                    </a-col>
                    <a-col :span='span'>
                      <a-form-model-item label='部件名称' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='componentId'>
                      <a-form-model-item label='文档版本' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='publishVersion'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.publishVersion'></a-input>
                      </a-form-model-item>
                    </a-col>
                  </a-row>
                  <a-row>
                    <a-col :span='span'>
                      <a-form-model-item label='文档后缀' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='docSuffix'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.docSuffix'></a-input>
                      </a-form-model-item>
                    </a-col>
                    <a-col :span='span'>
                      <a-form-model-item label='系统指定版本' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='componentId'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.componentName'></a-input>
                      </a-form-model-item>
                    </a-col>
                  </a-row>
                  <a-row>
                    <a-col :span='span'>
                      <a-form-model-item label='零件名称' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='partsName'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.partsName'></a-input>
                      <a-form-model-item label='出库状态' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullStatus_dictText'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.pullStatus_dictText'></a-input>
                      </a-form-model-item>
                    </a-col>
                    <a-col :span='span'>
                      <a-form-model-item label='工序名称' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='processName'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.processName'></a-input>
                      </a-form-model-item>
                    </a-col>
                  </a-row>
                  <a-row>
                    <a-col :span='span'>
                      <a-form-model-item label='工步名称' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='stepName'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.stepName'></a-input>
                      </a-form-model-item>
                    </a-col>
                    <a-col :span='span'>
                      <a-form-model-item label='设备名称' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceName'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceName'></a-input>
                      </a-form-model-item>
                    </a-col>
                  </a-row>
                  <a-row>
                    <a-col :span='span'>
                      <a-form-model-item label='设备类名称' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementCode'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementCode'></a-input>
                      </a-form-model-item>
                    </a-col>
                    <a-col :span='span'>
                      <a-form-model-item label='设备类名称' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementName'></a-input>
                      </a-form-model-item>
                    </a-col>
                  </a-row>
                  <a-row>
                    <a-col :span='span'>
                      <a-form-model-item label='文档名称' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='docName'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.docName'></a-input>
                      </a-form-model-item>
                    </a-col>
                    <a-col :span='span'>
                      <a-form-model-item label='文档版本' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='version'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.version'></a-input>
                      <a-form-model-item label='出库人' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullUser_dictText'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.pullUser_dictText'></a-input>
                      </a-form-model-item>
                    </a-col>
                  </a-row>
@@ -100,13 +81,12 @@
                  <a-timeline style="padding:0 1% 0 12%" >
                    <a-timeline-item color='white' v-for="(item,index1) in hitaskDataSource" :key="index1">
                      <div class="bottom">
                        <p>开始时间:{{item.startTime}}</p>
                        <p>结束时间:{{item.endTime}}</p>
                        <p>处理人:{{item.assignee}}</p>
                        <p>办理类型:{{item.bllx_dictText}}</p>
                        <p v-if="item.name == '提交申请'">指派原因:{{item.cause}}</p>
                        <p v-else >处理意见:{{item.cause}}</p>
                        <div  class="left_qiu"><span>{{item.name}}</span></div>
                        <p>处理人:{{item.assignee_dictText}}</p>
                        <p v-if="index1 !==0">处理时长:{{item.duration}}</p>
                        <p v-if="item.name !== '提交申请'">处理类型:{{item.sequenceFlowName}}</p>
                        <p v-if="index1 ===0">申请原因:{{item.description}}</p>
                        <p v-else >处理意见:{{item.description}}</p>
                        <div class="left_qiu"><span>{{item.taskName}}</span></div>
                      </div>
                    </a-timeline-item>
                  </a-timeline>
@@ -123,34 +103,19 @@
        <br>
        <a-form-model ref="form" :model="approveData" :rules="validatorRules" slot="detail">
          <a-row>
            <a-col ::span='span'>
              <a-form-model-item  label="申请人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='applyUser'>
                <a-input :disabled='coldisabled' v-model='tableRowRecord.applyUser'></a-input>
            <a-col ::span='span' v-if="selectShenpiData.taskDefKey ==='task_proofread'" class="btxx">
              <a-form-model-item  label="处理类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='status'>
                <j-dict-select-tag  type='list' v-model='assignFileStream.status' dictCode='nc_sq_handle_type_jd' placeholder="请选择处理类型"  />
              </a-form-model-item >
            </a-col>
            <a-col ::span='span'>
              <a-form-model-item  label="申请原因" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applyReason">
                <a-textarea :disabled='coldisabled'  v-model="tableRowRecord.applyReason" rows="4" />
            <a-col ::span='span' v-if="selectShenpiData.taskDefKey ==='task_approve' || selectShenpiData.taskDefKey ==='task_cut' || selectShenpiData.taskDefKey ==='task_finalize'" class="btxx">
              <a-form-model-item  label="处理类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='status'>
                <j-dict-select-tag  type='list' v-model='assignFileStream.status' dictCode='nc_sq_handle_type' placeholder="请选择处理类型"  />
              </a-form-model-item >
            </a-col>
            <a-col ::span='span'>
              <a-form-model-item  label="申请时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applyTime">
                <a-input :disabled='coldisabled' v-model='tableRowRecord.applyTime'></a-input>
              </a-form-model-item >
            </a-col>
            <a-col :span="24">
              <a-form-item label="密级为" :labelCol="labelCol" :wrapperCol="wrapperCol">
                <j-dict-select-tag  type='list' v-model='assignFileStream.secretLevel' dictCode='dnc_secret_level' placeholder="请选择密级"  />
              </a-form-item>
            </a-col>
            <a-col :span="24" class="btxx">
              <a-form-item label="审批状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
                <j-dict-select-tag  type='list' v-model='assignFileStream.status' dictCode='dnc_assign_stream_status' placeholder="请选择审批状态"  />
              </a-form-item>
            </a-col>
            <a-col :span="24" class="btxx">
              <a-form-model-item  label="审批意见" :labelCol="labelCol" :wrapperCol="wrapperCol">
                <a-textarea v-model="assignFileStream.approveContent" rows="4" placeholder="请输入审批意见"/>
              <a-form-model-item  label="处理意见" :labelCol="labelCol" :wrapperCol="wrapperCol">
                <a-textarea v-model="assignFileStream.approveContent" rows="4" placeholder="请输入处理意见"/>
              </a-form-model-item >
            </a-col>
          </a-row>
@@ -168,9 +133,9 @@
<script>
import '@/assets/less/TableExpand.less'
import '@assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { getAction, deleteAction, postAction, downFile, httpAction } from '@/api/manage'
import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage'
export default {
  name: 'FlowShenPi',
  mixins: [mixinDevice],
@@ -206,26 +171,6 @@
        sm: { span: 16 }
      },
      validatorRules: {
        version: {
          rules: [
            { required: true, message: '请输入文档版本!'},
          ]
        },
        applyUser: {
          rules: [
            { required: true, message: '请选择申请人!'},
          ]
        },
        approveContent: {
          rules: [
            { required: true, message: '请输入审批意见!'},
          ]
        },
        docName: {
          rules: [
            { required: true, message: '请输入文档名称!'},
          ]
        },
        status: {
          rules: [
            { required: true, message: '请选择审批状态!'},
@@ -234,15 +179,16 @@
      },
      approveData: {},
      flowData: {},
      title: '审批页面',
      title: '详情页面',
      width: 1000,
      visible: false,
      // è¡¨å¤´
      url: {
        queryBomDataById: '/nc/activit/selectVoById',
        diagramView: '/nc/assign/flow/diagramView',
        queryHisTaskList:'/nc/assign/flow/queryHisTaskList',
        approve:"/nc/activit/assign/file/approve",
        queryBomDataById: '/dncFlow/dispatchFile/selectVoById',
        diagramView: '/assign/flow/diagramView',
        queryHisTaskList:'/dncFlow/dispatchFile/queryHisTaskList',
        approve:"/dncFlow/dispatchFile/approval",
        saveDispatchFile:"/dncFlow/dispatchFile/saveDispatchFile"
      },
      dictOptions: {},
      superFieldList: [],
@@ -286,12 +232,43 @@
    },
    submitForm () {
      const that = this;
      if (!that.assignFileStream.status==null || that.assignFileStream.status===undefined){
        this.$message.warning('请选择审批状态!')
      if (that.selectShenpiData.taskDefKey ==='task_prepare'){
        // è§¦å‘表单验证-重新启动
        this.form.validateFields((err, values) => {
          if (!err) {
            that.confirmLoading = true;
            let url=this.url.saveDispatchFile;
            let method = 'post';
            let flowTaskVo = {}
            flowTaskVo.comment =that.assignFileStream.approveContent;
            flowTaskVo.dataId = this.selectShenpiData.dataId
            flowTaskVo.instanceId = this.selectShenpiData.procInstId
            flowTaskVo.taskId = this.selectShenpiData.id
            console.log("表单提交数据",flowTaskVo)
            httpAction(url,flowTaskVo,method).then((res)=>{
              if(res.success){
                that.$message.success(res.message);
                that.visible = false
                //刷新表格
                that.$emit('searchReset')
              }else{
                that.$message.warning(res.message);
              }
            }).finally(() => {
              that.confirmLoading = false;
            })
          }
        })
        //跳出方法
        return false;
      }else {
        if (!that.assignFileStream.status==null || that.assignFileStream.status===undefined){
          this.$message.warning('请选择处理类型!')
          return false;
        }
      }
      if (!that.assignFileStream.approveContent==null || that.assignFileStream.approveContent===undefined) {
        this.$message.warning('请输入审批意见!')
        this.$message.warning('请输入处理意见!')
        return false;
      }
      // è§¦å‘表单验证
@@ -300,24 +277,35 @@
          that.confirmLoading = true;
          let url=this.url.approve
          let method = 'post';
          let handle =that.assignFileStream.status === '1';
          let flowTaskVo = {}
          flowTaskVo.status=that.assignFileStream.status;
          flowTaskVo.approveContent =that.assignFileStream.approveContent;
          switch (that.selectShenpiData.taskDefKey){
            case "task_approve":
              flowTaskVo.ratify=handle;
              break;
            case "task_cut":
              flowTaskVo.cut=handle;
              break;
            case "task_finalize":
              flowTaskVo.stereotype=handle;
              break;
          }
          if (that.selectShenpiData.taskDefKey ==='task_proofread'){
            flowTaskVo.proofreadStatus =that.assignFileStream.status;
          }
          flowTaskVo.comment =that.assignFileStream.approveContent;
          flowTaskVo.secretLevel = that.assignFileStream.secretLevel;
          flowTaskVo.dataId = this.selectShenpiData.dataId
          flowTaskVo.taskId = this.selectShenpiData.id
          flowTaskVo.userId = this.selectShenpiData.assignee
          flowTaskVo.instanceId = this.selectShenpiData.procInstId
          flowTaskVo.targetKey = this.selectShenpiData.taskDefKey
          flowTaskVo.values = this.selectShenpiData.variables
          flowTaskVo.assignee = this.selectShenpiData.assignee
          flowTaskVo.secretLevel = that.assignFileStream.secretLevel;
          console.log("表单提交数据",flowTaskVo)
          httpAction(url,flowTaskVo,method).then((res)=>{
            if(res.success){
              that.$message.success(res.message);
              that.$emit('ok');
              that.visible = false
              //刷新表格
              that.$emit('searchReset')
            }else{
              that.$message.warning(res.message);
            }
@@ -325,7 +313,6 @@
            that.confirmLoading = false;
          })
        }
      })
    },
    getAllApproveData(item) {
@@ -335,14 +322,14 @@
        'id': item.dataId
      }
      let parmhis={
        'drapprovedataId': item.dataId
        'procInstId': item.procInstId
      }
      getAction(this.url.queryHisTaskList,parmhis).then(res=>{
        this.hitaskDataSource=res.result
        getAction(this.url.queryBomDataById, param).then((res => {
          if (res.success) {
            this.tableRowRecord = res.result
            console.log('this.tableRowRecord----->', this.tableRowRecord)
            this.tableRowRecord = res.result[0]
            console.log('this.tableRowRecord----->', this.tableRowRecord[0])
          }
        }))
      }).finally(