feat(mes): 替换用户选择组件,简化用户搜索逻辑

pull/871/MERGE
YunaiV 2026-04-02 21:28:29 +08:00
parent 1b3a41da14
commit 1cf4f0128c
1 changed files with 3 additions and 32 deletions

View File

@ -4,23 +4,12 @@
<!-- 顶部人员选择 -->
<el-form :inline="true" label-width="80px" class="mb-10px">
<el-form-item label="人员">
<el-select
<UserSelect
v-model="userId"
filterable
remote
:remote-method="remoteSearchUser"
:loading="userSearchLoading"
placeholder="请输入人员姓名搜索"
class="!w-200px"
@change="onUserQuery"
>
<el-option
v-for="user in userList"
:key="user.id"
:label="user.nickname"
:value="user.id"
/>
</el-select>
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onUserQuery">
@ -44,7 +33,7 @@
</template>
<script setup lang="ts">
import { getSimpleUserList, UserVO } from '@/api/system/user'
import UserSelect from '@/views/system/user/components/UserSelect.vue'
import CalendarDateCell from './CalendarDateCell.vue'
import CalendarLegend from './CalendarLegend.vue'
import { useCalendar } from './useCalendar'
@ -53,23 +42,6 @@ const { loading, currentDate, calendarDayMap, holidaySet, loadHolidays, fetchCal
useCalendar()
const userId = ref<number>() //
const userList = ref<UserVO[]>([]) //
const userSearchLoading = ref(false) //
let allUserList: UserVO[] = [] //
/** 远程搜索用户 */
const remoteSearchUser = (query: string) => {
if (query) {
userSearchLoading.value = true
//
userList.value = allUserList.filter((user) =>
user.nickname?.toLowerCase().includes(query.toLowerCase())
)
userSearchLoading.value = false
} else {
userList.value = []
}
}
/** 查询当前月份的排班日历,按选中人员过滤 */
const doFetch = () => {
@ -91,7 +63,6 @@ watchMonth(() => {
/** 初始化 */
onMounted(async () => {
allUserList = await getSimpleUserList()
await loadHolidays()
})
</script>