From 656d6f8029f8bf9b2daa9dcc89101a879a70b860 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期三, 03 十二月 2025 23:10:05 +0800
Subject: [PATCH] feat:优先添加执行人

---
 app/pagesTask/components/StaffSelector.vue |   41 +++++++++++++----------------------------
 1 files changed, 13 insertions(+), 28 deletions(-)

diff --git a/app/pagesTask/components/StaffSelector.vue b/app/pagesTask/components/StaffSelector.vue
index 6cc7446..55c5391 100644
--- a/app/pagesTask/components/StaffSelector.vue
+++ b/app/pagesTask/components/StaffSelector.vue
@@ -6,11 +6,6 @@
         <view class="staff-item" v-for="(staff, index) in selectedStaff" :key="staff.userId">
           <view class="staff-info">
             <text class="staff-name">{{ staff.nickName }}</text>
-            <view class="staff-roles">
-              <text class="staff-role" v-for="(roleType, idx) in staff.types" :key="idx">
-                {{ getUserTypeName(roleType) }}
-              </text>
-            </view>
           </view>
           <uni-icons 
             v-if="canRemove(index)"
@@ -56,11 +51,6 @@
         <view class="staff-filter">
           <view 
             class="filter-item" 
-            :class="{ active: staffFilterType === 'all' }"
-            @click="filterStaff('all')"
-          >鍏ㄩ儴</view>
-          <view 
-            class="filter-item" 
             :class="{ active: staffFilterType === 'driver' }"
             @click="filterStaff('driver')"
           >鍙告満</view>
@@ -90,16 +80,6 @@
               </view>
               <view class="staff-detail-row">
                 <text class="staff-dept">{{ staff.deptName }}</text>
-                <view class="staff-types">
-                  <text 
-                    class="type-tag" 
-                    :class="'type-' + type"
-                    v-for="(type, idx) in staff.types" 
-                    :key="idx"
-                  >
-                    {{ getUserTypeName(type) }}
-                  </text>
-                </view>
               </view>
             </view>
             <uni-icons 
@@ -169,7 +149,7 @@
       allStaffList: [],
       filteredStaffList: [],
       staffSearchKeyword: '',
-      staffFilterType: 'all'
+      staffFilterType: 'driver' // 榛樿閫変腑鍙告満
     }
   },
   computed: {
@@ -304,7 +284,7 @@
     closeStaffSelector() {
       this.$refs.staffPopup.close()
       this.staffSearchKeyword = ''
-      this.staffFilterType = 'all'
+      this.staffFilterType = 'driver' // 閲嶇疆涓洪粯璁ゅ徃鏈�
     },
     
     // 浜哄憳鎼滅储
@@ -323,11 +303,6 @@
     filterStaffList() {
       let list = [...this.allStaffList]
       
-      // 鎸夌被鍨嬭繃婊わ紙鏀寔澶氱被鍨嬶級
-      if (this.staffFilterType !== 'all') {
-        list = list.filter(staff => staff.types.includes(this.staffFilterType))
-      }
-      
       // 鎸夊叧閿瘝鎼滅储
       if (this.staffSearchKeyword && this.staffSearchKeyword.trim() !== '') {
         const keyword = this.staffSearchKeyword.trim().toLowerCase()
@@ -336,6 +311,16 @@
                  (staff.phonenumber && staff.phonenumber.includes(keyword))
         })
       }
+      
+      // 鏍规嵁閫変腑鐨勭被鍨嬶紝灏嗘湁璇ヨ韩浠界殑浜烘帓鍦ㄥ墠闈�
+      list.sort((a, b) => {
+        const aHasType = a.types.includes(this.staffFilterType)
+        const bHasType = b.types.includes(this.staffFilterType)
+        
+        if (aHasType && !bHasType) return -1  // a鏈夎韬唤锛屾帓鍓嶉潰
+        if (!aHasType && bHasType) return 1   // b鏈夎韬唤锛屾帓鍓嶉潰
+        return 0  // 閮芥湁鎴栭兘娌℃湁锛屼繚鎸佸師椤哄簭
+      })
       
       this.filteredStaffList = list
     },
@@ -354,7 +339,7 @@
         this.selectedStaff.splice(index, 1)
       } else {
         // 鏈�変腑锛屾坊鍔�
-        this.selectedStaff.push(staff)
+        this.selectedStaff.push({ ...staff })
       }
     },
     

--
Gitblit v1.9.1