✨ feat(mes): 替换用户选择组件,简化用户搜索逻辑
parent
1b3a41da14
commit
1cf4f0128c
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue