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