haoxuan
2023-10-11 a1a6630f2eabfc78a379b5808b1bf7231a084d0b
src/views/visualization.vue
@@ -343,11 +343,11 @@
                      <div class="process-params-title">
                        <el-popover
                          width="200"
                          :content="taskData.number"
                          :content="list.number"
                          placement="top-start"
                          trigger="click"
                        >
                          <span slot="reference">工艺编号:{{ taskData.number }}</span>
                          <span slot="reference">工艺编号:{{ list.number }}</span>
                        </el-popover>
                      </div>
@@ -524,7 +524,7 @@
          <div class="right-person-box" v-if="workers && workers.length > 0">
            <dl
              class="right-small-person"
              v-for="(item, index) in workers"
              v-for="(item, index) in deduplicateWorkers(displayWorkers())"
              :key="index"
            >
              <dt>
@@ -639,6 +639,7 @@
import ProcessModel from  "../components/ProcessModel.vue";
import TaskControlModal from "@/components/TaskControlModal.vue";
import {channelNameConfig} from "@/common/constants";
import _ from 'lodash'
export default {
  components: {
    TaskControlModal,
@@ -660,6 +661,8 @@
      // 右侧完成
      finishShow:{},
      workers:[],
      // 保存当前不同通道的值班人
      channelWorkersMap:{0:[],1:[]},
      TasksCopy:[],
      Tasks: [
        {
@@ -808,13 +811,17 @@
    // }
  },
  methods: {
    deduplicateWorkers(workers){
      return _.uniqBy(workers,ele=>ele.workerName)
    },
    updateGet(number,val){
      if(val){
        this.getTaskInfo(this.activeName,'new')
        return true;
      }
      this.listData.number=number
      if(this.index){
        this.TasksCopy[this.index].number=number
      }
      if(val){
        this.getTaskInfo(this.activeName,'new')
      }
    },
    getModelList(){
@@ -1072,6 +1079,25 @@
      });
    },
    /**
     * 根据当前展示的是0通道还是1通道还是两个通道展示对应的值班人
     * @return {*[]}
     */
    displayWorkers(){
      let showWorkers = []
      if (this.activeName===1){
        showWorkers =[...this.channelWorkersMap[0]]
      }else if (this.activeName===2){
        showWorkers =[...this.channelWorkersMap[0],...this.channelWorkersMap[1]]
      }else if (this.activeName===3){
        showWorkers =[...this.channelWorkersMap[1]]
      }else {
        return []
      }
      return showWorkers
    },
    getTaskInfo(val,info) {
      this.Tasks = [];
      this.TasksCopy=[]
@@ -1101,6 +1127,16 @@
            }
          }
          this.workers=res.data.workers?res.data.workers:[]
          // 将值班人根据通道号分组
          const groupByChannel= _.groupBy(res.data.Tasks,ele=>ele.Channel)
          const taskList0= _.first(groupByChannel[0])
          const taskList1= _.first(groupByChannel[1])
          const worker0List = taskList0?.Procedure?.procedure?.workers ?? []
          const worker1List = taskList1?.Procedure?.procedure?.workers ?? []
          this.channelWorkersMap['0'] =worker0List
          this.channelWorkersMap['1'] =worker1List
          for (let i in this.TasksCopy) {
            this.TasksCopy[i].procedureList = [];
            this.TasksCopy[i].inputMaterials = [];
@@ -1131,6 +1167,7 @@
                  });
                  this.TasksCopy[i].Arr=res.data.Params ? res.data.Params : []
                  // this.isFinsh=Number(i)+1
                  this.$forceUpdate()
                }
              });
            }
@@ -1138,11 +1175,12 @@
            this.setInterCard("outputMaterials", "cardBox3&" + i, i);
          }
          this.getProcessModelList();
          this.getStartArr()
          this.cutClick(val?val:1)
          if(info){
          if(info=='new'){
            return true;
          }
          this.getStartArr()
          this.getProgressInfo();
              if (!this.procInfoTimer&&!this.resprocInfoTimer) {
                this.procInfoTimer = setInterval(() => {
@@ -1748,7 +1786,7 @@
          width: 100%;
          height: 30px;
          // text-align: left;
          font-size: 24px;
          font-size: 28px!important;
          margin: 0;
          text-align: center;
          line-height: 36px;