Pārlūkot izejas kodu

教师列表查询条件添加姓名搜索

吴朋磊 1 mēnesi atpakaļ
vecāks
revīzija
a15568cc78
1 mainītis faili ar 18 papildinājumiem un 7 dzēšanām
  1. 18 7
      src/views/school/teacherList.vue

+ 18 - 7
src/views/school/teacherList.vue

@@ -21,7 +21,7 @@
         <div class="search_area">
           <el-input 
             v-model="searchKeyword" 
-            placeholder="请输入账号/手机号"
+            placeholder="请输入账号/手机号/姓名"
             @input="HandleSearch"
           >
             <template #append>
@@ -388,10 +388,24 @@ const MatchCodeFilter = (
   return codes.some(code => String(code) === String(selectedCode))
 }
 
-// 前端 Tab + 年级/科目 筛选 + 分页
+const MatchKeywordFilter = (item: Teacher, keyword: string) => {
+  const lowerKeyword = keyword.toLowerCase()
+  return (
+    (item.userAccount || '').toLowerCase().includes(lowerKeyword) ||
+    (item.phone || '').toLowerCase().includes(lowerKeyword) ||
+    (item.userName || '').toLowerCase().includes(lowerKeyword)
+  )
+}
+
+// 前端 Tab + 年级/科目 + 搜索筛选 + 分页
 const FilterAndPaginate = () => {
   let filteredData = [...allData.value]
 
+  if (searchKeyword.value.trim()) {
+    const keyword = searchKeyword.value.trim()
+    filteredData = filteredData.filter(item => MatchKeywordFilter(item, keyword))
+  }
+
   if (selectedGradeCode.value !== 'all') {
     filteredData = filteredData.filter(item =>
       MatchCodeFilter(item.gradeCodes, selectedGradeCode.value)
@@ -425,9 +439,6 @@ const GetTeacherList = async () => {
       pageNum: 1,
       pageSize: API_PAGE_SIZE,
     }
-    if (searchKeyword.value) {
-      params.word = searchKeyword.value
-    }
     const res = await getAllTeacher(params)
     if (res.code === 200 && res.data) {
       gradeList.value = NormalizeFilterList(res.data.gradeList || [])
@@ -472,10 +483,10 @@ const ChangeTab = (tab: string) => {
   FilterAndPaginate()
 }
 
-// 搜索(接口模糊查询)
+// 搜索(前端筛选)
 const HandleSearch = () => {
   pageNum.value = 1
-  GetTeacherList()
+  FilterAndPaginate()
 }
 
 // 分页操作(前端分页)