diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue index 836d66b..0c8fb28 100644 --- a/frontend/src/views/Settings.vue +++ b/frontend/src/views/Settings.vue @@ -396,9 +396,28 @@ style="margin-bottom: 16px;" /> + +
+ + + + + 找到 {{ filteredDepartments.length }} 个部门 + +
+ ([]) const platforms = ref([]) const categories = ref([]) const departments = ref([]) +const departmentSearchText = ref('') const currentScorePool = ref(null) const currentDept = ref(null) const scoreAdjustForm = reactive({ @@ -1554,6 +1574,30 @@ const departmentUsers = computed(() => { }) }) +// 过滤后的部门列表(用于搜索) +const filteredDepartments = computed(() => { + if (!departmentSearchText.value || !departmentSearchText.value.trim()) { + return departments.value + } + + const searchText = departmentSearchText.value.trim().toLowerCase() + return departments.value.filter(dept => { + // 搜索部门名称 + if (dept.deptName && dept.deptName.toLowerCase().includes(searchText)) { + return true + } + // 搜索部门编码 + if (dept.deptCode && dept.deptCode.toLowerCase().includes(searchText)) { + return true + } + // 搜索负责人名称 + if (dept.leaderName && dept.leaderName.toLowerCase().includes(searchText)) { + return true + } + return false + }) +}) + const hasUserData = computed(() => { return unassignedUsers.value.length > 0 || departmentUserCards.value.some((dept) => dept.users.length > 0) }) @@ -1832,6 +1876,12 @@ const filterUserOption = (input: string, option: any) => { return realName.includes(searchText) || username.includes(searchText) } +// 部门搜索处理 +const onDepartmentSearch = () => { + // 搜索逻辑通过 computed 属性 filteredDepartments 自动处理 + // 此方法仅用于响应搜索事件,实际过滤在 computed 中完成 +} + // 显示积分池管理弹窗 const showScorePoolModal = async (dept: DepartmentOverview) => { if (!dept.id) return