|
@@ -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 {
|