src/views/flowable/workflow/MaintenanceStandard/MaintenanceStandardApprovalModal.vue
@@ -74,25 +74,67 @@
          </a-col>
          <a-col :span="10" class="scroll-col">
            <a-tabs default-active-key="1">
              <a-tab-pane key="1" tab="保养项明细">
                <j-vxe-table ref="editableDetailTable" bordered alwaysEdit keep-source :dataSource="detail.dataSource"
                             :columns="detail.columns">
                  <template v-slot:itemCategory="props">
                    <j-dict-select-tag v-model="props.row.itemCategory" :dict-code="encodedDictCode" disabled/>
                  </template>
                </j-vxe-table>
              </a-tab-pane>
            <a-tabs v-model="activeTabKey">
              <template v-if="model.maintenanceCategory==='POINT_INSPECTION'">
                <a-tab-pane key="1" tab="日点检">
                  <j-vxe-table bordered alwaysEdit keep-source :dataSource="detail.dataSource1"
                               :columns="detail.columns">
                    <template v-slot:itemCategory="props">
                      <j-dict-select-tag v-model="props.row.itemCategory" :dict-code="encodedDictCode" disabled/>
                    </template>
                  </j-vxe-table>
                </a-tab-pane>
                <a-tab-pane key="2" tab="周点检">
                  <j-vxe-table bordered alwaysEdit keep-source :dataSource="detail.dataSource2"
                               :columns="detail.columns">
                    <template v-slot:itemCategory="props">
                      <j-dict-select-tag v-model="props.row.itemCategory" :dict-code="encodedDictCode" disabled/>
                    </template>
                  </j-vxe-table>
                </a-tab-pane>
              </template>
              <template v-if="model.maintenanceCategory==='SECOND_MAINTENANCE'">
                <a-tab-pane key="1" tab="操作工">
                  <j-vxe-table bordered alwaysEdit keep-source :dataSource="detail.dataSource1"
                               :columns="detail.columns">
                    <template v-slot:itemCategory="props">
                      <j-dict-select-tag v-model="props.row.itemCategory" :dict-code="encodedDictCode" disabled/>
                    </template>
                  </j-vxe-table>
                </a-tab-pane>
                <a-tab-pane key="2" tab="维修工">
                  <j-vxe-table bordered alwaysEdit keep-source :dataSource="detail.dataSource2"
                               :columns="detail.columns">
                    <template v-slot:itemCategory="props">
                      <j-dict-select-tag v-model="props.row.itemCategory" :dict-code="encodedDictCode" disabled/>
                    </template>
                  </j-vxe-table>
                </a-tab-pane>
              </template>
              <template v-if="model.maintenanceCategory==='THIRD_MAINTENANCE'">
                <a-tab-pane key="1" tab="三保">
                  <j-vxe-table bordered alwaysEdit keep-source :dataSource="detail.dataSource1"
                               :columns="detail.columns">
                    <template v-slot:itemCategory="props">
                      <j-dict-select-tag v-model="props.row.itemCategory" :dict-code="encodedDictCode" disabled/>
                    </template>
                  </j-vxe-table>
                </a-tab-pane>
              </template>
              <template v-if="selectShenpiData.processDefinitionKey">
                <a-tab-pane key='2' tab='流程图'>
                <a-tab-pane key='3' tab='流程图'>
                  <img :src="imageSrc" alt="Fetched Image"/>
                </a-tab-pane>
              </template>
              <a-tab-pane key='3' tab='流转节点'>
              <a-tab-pane key='4' tab='流转节点'>
                <a-card>
                  <a-timeline style="padding:0 1% 0 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.assignee_dictText}}</p>
@@ -177,7 +219,7 @@
        confirmLoading: false,
        spinning: false,
        model: {},
        hitaskDataSource:[],
        hitaskDataSource: [],
        validatorRules: {
          repairManagerApproveResult: [{ required: true, message: '请选择确认类型' }],
          technicalManagerApproveResult: [{ required: true, message: '请选择确认类型' }]
@@ -192,6 +234,7 @@
          sm: { span: 16 }
        },
        visible: false,
        activeTabKey: '1',
        // 表头
        url: {
          diagramView: '/assign/flow/diagramView',
@@ -201,7 +244,8 @@
          detailList: '/eam/eamMaintenanceStandardDetail/queryList'
        },
        detail: {
          dataSource: [],
          dataSource1: [],
          dataSource2: [],
          columns: [],
          inspectionColumns: [
            {
@@ -218,16 +262,17 @@
              title: '项目序号',
              key: 'itemCode',
              type: JVXETypes.normal,
              align: 'center'
            },
            {
              title: '保养项分类',
              key: 'itemCategory',
              type: JVXETypes.slot,
              slotName: 'itemCategory',
              align: 'center',
              disabled: true
              width: 100
            },
            // {
            //   title: '保养项分类',
            //   key: 'itemCategory',
            //   type: JVXETypes.slot,
            //   slotName: 'itemCategory',
            //   align: 'center',
            //   disabled: true
            // },
            {
              title: '保养项目',
              key: 'itemName',
@@ -256,16 +301,17 @@
              title: '项目序号',
              key: 'itemCode',
              type: JVXETypes.normal,
              align: 'center'
            },
            {
              title: '保养项分类',
              key: 'itemCategory',
              type: JVXETypes.slot,
              slotName: 'itemCategory',
              align: 'center',
              disabled: true
              width: 100
            },
            // {
            //   title: '保养项分类',
            //   key: 'itemCategory',
            //   type: JVXETypes.slot,
            //   slotName: 'itemCategory',
            //   align: 'center',
            //   disabled: true
            // },
            {
              title: '保养项目',
              key: 'itemName',
@@ -332,11 +378,11 @@
    },
    computed: {
      displayRepairLeaderFlag() {
        return this.model.standardStatus && ['WAIT_REPAIR_DIRECTOR', 'WAIT_TECHNICAL_DIRECTOR','START', 'REJECTED'].includes(this.model.standardStatus)
        return this.model.standardStatus && ['WAIT_REPAIR_DIRECTOR', 'WAIT_TECHNICAL_DIRECTOR', 'START', 'REJECTED'].includes(this.model.standardStatus)
      },
      displayTechnicalDirectorFlag() {
        return this.model.standardStatus && ['WAIT_TECHNICAL_DIRECTOR','START', 'REJECTED'].includes(this.model.standardStatus) && this.model.repairManagerApproveResult === '1'
        return this.model.standardStatus && ['WAIT_TECHNICAL_DIRECTOR', 'START', 'REJECTED'].includes(this.model.standardStatus) && this.model.repairManagerApproveResult === '1'
      },
      encodedDictCode() {
@@ -350,6 +396,7 @@
       * @param record 主页面列表行记录
       */
      handleApprove(record) {
        this.activeTabKey = '1'
        this.getBasicInformationByApi(record)
        this.getFlowChartImageByApi(record)
        this.getFlowTaskListByApi(record)
@@ -360,15 +407,13 @@
       * @param record
       */
      getFlowTaskListByApi(record) {
        console.log("sss",record)
        let parmhis={
        let parmhis = {
          'procInstId': record.procInstId
        }
        getAction(this.url.queryHisTaskList,parmhis).then(res=>{
          this.hitaskDataSource=res.result
        getAction(this.url.queryHisTaskList, parmhis).then(res => {
          this.hitaskDataSource = res.result
        }).finally(
          this.visible = true,
          console.log('this.approveData---->', this.approveData)
          this.visible = true
        )
      },
@@ -377,7 +422,8 @@
       * @param record 主页面列表行记录
       */
      handleDetail(record) {
        this.detail.dataSource = []
        this.activeTabKey = '1'
        this.detail.dataSource1 = this.detail.dataSource2 = []
        this.model = Object.assign({}, record)
        this.getFlowTaskListByApi(record)
        this.loadDetail(record.id)
@@ -390,7 +436,7 @@
      getBasicInformationByApi(record) {
        this.spinning = true
        this.model = {}
        this.detail.dataSource = []
        this.detail.dataSource1 = this.detail.dataSource2 = []
        const that = this
        getAction(this.url.queryById, { id: record.dataId })
          .then(res => {
@@ -441,9 +487,26 @@
       * @param dataId 业务ID
       */
      loadDetail(dataId) {
        this.spinning = true
        getAction(this.url.detailList, { standardId: dataId })
          .then(res => {
            if (res.success) this.detail.dataSource = res.result
            if (res.success) {
              switch (this.model.maintenanceCategory) {
                case 'POINT_INSPECTION':
                  this.detail.dataSource1 = res.result.filter(item => item.itemCategory === 'DAY_INSPECTION')
                  this.detail.dataSource2 = res.result.filter(item => item.itemCategory === 'WEEK_INSPECTION')
                  break
                case 'SECOND_MAINTENANCE':
                  this.detail.dataSource1 = res.result.filter(item => item.itemCategory === 'OPERATOR_MAINTENANCE')
                  this.detail.dataSource2 = res.result.filter(item => item.itemCategory === 'REPAIRER_MAINTENANCE')
                  break
                case 'THIRD_MAINTENANCE':
                  this.detail.dataSource1 = res.result
                  break
                default:
                  break
              }
            }
          })
          .finally(() => {
            this.spinning = false
@@ -451,11 +514,6 @@
      },
      async submitForm() {
        let errMap = await this.$refs.editableDetailTable.validateTable()
        if (errMap) {
          return
        }
        this.$refs.form.validate(valid => {
          if (valid) {
            this.confirmLoading = this.spinning = true
@@ -517,6 +575,7 @@
      }
    }
  }
  /* 全局禁选样式 - 作用于整个页面 */
  html.submitting,
  html.submitting body {
@@ -562,6 +621,7 @@
    background-color: rgba(0, 0, 0, 0.1); /* 使用 RGBA 颜色,并设置较低的透明度 */
    margin: 20px 0; /* 分界线上下的外边距 */
  }
  .btn-custom {
    background-color: #4CAF50; /* 绿色背景 */
    color: white; /* 白色文字 */
@@ -580,13 +640,14 @@
    font-weight: bold;
    font-size: 20px; /* 或你需要的任何大小 */
  }
  .left_qiu{
  .left_qiu {
    position: absolute;
    left: -74px;
    top: 0;
    width:54px;
    width: 54px;
    border-radius: 50%;
    height:54px;
    height: 54px;
    font-size: 13px;
    margin: auto;
    display: flex;
@@ -596,20 +657,23 @@
    background: #0099ff;
    transform: translate(0, 0);
  }
  /deep/ .ant-timeline-item-tail{
  /deep/ .ant-timeline-item-tail {
    left: -29px !important;
  }
  .left_qiu span{
  .left_qiu span {
    width: 3em;
    display: block;
    color: #fff;
    text-align: center;
  }
  .img{
  .img {
    width: 75%;
  }
  .wrap{
  .wrap {
    clear: both;
    width: 100%;
    display: flex;
@@ -617,13 +681,14 @@
    border: 1px solid #ccc;
    /* background-color: aqua; */
  }
  .box{
    width:21%;
    height:50px;
  .box {
    width: 21%;
    height: 50px;
    border-right: 1px solid #ccc;
    line-height: 50px;
    /* background: red; */
    text-align:center;
    text-align: center;
    margin: auto;
  }
</style>