Преглед на файлове

地区回显-减少调用职位搜索列表接口

lifanagju_citu преди 11 месеца
родител
ревизия
26dce11b40
променени са 1 файла, в които са добавени 24 реда и са изтрити 9 реда
  1. 24 9
      src/views/recruit/position/components/areaCascader/index.vue

+ 24 - 9
src/views/recruit/position/components/areaCascader/index.vue

@@ -9,7 +9,7 @@
             class="mx-3"
             :class="{'act': calcAct(item.id, levelIndex)}"
             style="line-height: 32px;"
-            @click="handleNext(item, levelIndex)"
+            @click="handleNext({ item, index: levelIndex })"
           >{{ item.name }}</span>
         </span>
         <!-- 其他 -->
@@ -21,7 +21,7 @@
           class="mx-3"
           :class="{'act': calcAct(item.id, levelIndex)}"
           style="line-height: 32px;"
-          @click="handleNext(item, levelIndex)"
+          @click="handleNext({ item, index: levelIndex })"
         >{{ item.name }}</span>
       </div>
     </div>
@@ -72,7 +72,13 @@ getDict('areaTreeData', {}, 'areaTreeData').then(({ data }) => {
             if (arr?.length) {
               arr.forEach(idItem => {
                 const dataItem = treeList.value[levelIndex].find(findItem => (findItem.id - 0) === (idItem - 0))
-                if (dataItem) handleNext(dataItem, levelIndex, false, true)
+                const params = {
+                  item: dataItem,
+                  index: levelIndex,
+                  expand: true,
+                  updateSearch: false
+                }
+                if (dataItem) handleNext(params)
               })
             }
           }
@@ -81,12 +87,17 @@ getDict('areaTreeData', {}, 'areaTreeData').then(({ data }) => {
       }
     })
   } else {
-    // 默认展开
+    // 默认展开城市到defaultOpen级
     if (props.defaultOpen > 0) {
       for (let index = 0; index < props.defaultOpen; index++) {
         if (treeList.value?.length && treeList.value[index]?.length && treeList.value[index][0]) {
-          const stopExpand = (index + 1) === props.defaultOpen
-          handleNext(treeList.value[index][0], index, stopExpand, true)
+          const params = {
+            item: treeList.value[index][0],
+            index,
+            expand: (index + 1) < props.defaultOpen,
+            updateSearch: (index + 1) === props.defaultOpen // 最后一次才请求
+          }
+          handleNext(params)
         }
       }
     }
@@ -112,10 +123,14 @@ const getIdChecked = (item, levelIndex) => {
 }
 
 // 展开下一级
-const handleNext = (item, index, stopExpand, isEmit = true) => { // stopExpand:不展开下级
+// item: 当前操作数据(被点击的数据本身)
+// index: 当前操作数据的层级
+// expand: 展开下级
+// updateSearch: 是否触发搜索职位列表更新(updateCheckedInput)
+const handleNext = ({ item, index, expand = true, updateSearch = true }) => {
   getIdChecked(item, index)
-  if (isEmit) emits('checkedInput', idChecked)
-  if (!stopExpand &&item.children && item.children.length) {
+  if (updateSearch) emits('checkedInput', idChecked)
+  if (expand && item.children && item.children.length) {
     treeList.value[index + 1] = item.children
     treeList.value.splice(index + 2, treeList.value.length)
   } else {