From 06f6e49c7519ccf7f1e9788cffbca4180f79321f Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期一, 09 十月 2023 21:25:24 +0800
Subject: [PATCH] feat: 当前值班人员根据当前通道切换; 值班人员去重

---
 src/views/visualization.vue |   39 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index 163be06..de42bc4 100644
--- a/src/views/visualization.vue
+++ b/src/views/visualization.vue
@@ -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,6 +811,9 @@
     // }
   },
   methods: {
+    deduplicateWorkers(workers){
+      return _.uniqBy(workers,ele=>ele.workerName)
+    },
     updateGet(number,val){
       if(val){
         this.getTaskInfo(this.activeName,'new')
@@ -1073,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=[]
@@ -1102,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 = [];
@@ -1145,7 +1180,7 @@
           if(info=='new'){
             return true;
           }
-          
+
           this.getProgressInfo();
               if (!this.procInfoTimer&&!this.resprocInfoTimer) {
                 this.procInfoTimer = setInterval(() => {

--
Gitblit v1.8.0