Browse Source

解决路由监听错误问题(存在oldVal值和newVal值一样,但实际不应该一样)

lifanagju_citu 7 months ago
parent
commit
d8cbce7dd2

+ 4 - 3
src/views/recruit/personal/position/components/conditionFilter.vue

@@ -157,7 +157,7 @@ const assembleList = async ({ key, idsStr, isRefresh = false }) => {
     })
   }
   // 添加
-  const ids = idsStr.split('_') || []
+  const ids = typeof idsStr === 'string' ? idsStr.split('_') : []
   const obj = getItemObj({ key, ids, dictArr: list.value })
   if (!obj) return
   const index = showSelectList.value.findIndex(i => i.key === key)
@@ -181,6 +181,7 @@ watch(
       ...arr.filter(key => !key.includes('cityId_')),
     ] : ''
     // 回显已选筛选-标签
+    
     if (!newKeyList) { // 路由没有参数
       showSelectList.value = []
       list.value = list.value.filter(e => !(e.cityLevel && e.cityLevel > 1))
@@ -190,9 +191,9 @@ watch(
         assembleList({ key, idsStr: newVal[key], isRefresh: true })
       })
     }
-    else if (newKeyList && Object.keys(oldVal).length) { //路由参数更新
+    else { // 路由参数更新
       newKeyList.forEach(key => {
-        if (newVal[key] === oldVal[key]) return
+        // if (newVal[key] === oldVal[key]) return
         assembleList({ key, idsStr: newVal[key] })
       })
       // showSelectList去掉newVal里面没有的key

+ 4 - 2
src/views/recruit/personal/position/index.vue

@@ -64,8 +64,10 @@ const pageInfo = { pageNo: 1, pageSize: 20}
 const items = ref([])
 const total = ref(0)
 let routeQuery = (route?.query && route.query && Object.keys(route?.query).length) ? reactive(route.query) : reactive({})
+// routeQuery.date = new Date().getTime()
+console.log('1', routeQuery)
+// router.push({ path: route.path, routeQuery })
 // if (routeQuery?.length) router.replace({ path: route.path, routeQuery })
-// console.log('1', routeQuery)
 
 const headSearchText = ref(routeQuery?.content || '')
 
@@ -77,7 +79,7 @@ const getData = async () => {
     const passingStrings = ['content', 'payScope'] // 单选且传递字符串
     const passingOneId = ['positionId'] // 单选且传递整型
     Object.keys(routeQuery).forEach(key => {
-      if (routeQuery[key] === '') return
+      if (routeQuery[key] === '' || key === 'date') return
       if (key.includes('cityId_')) { // 工作地区id集合,示例值([])
         const cityArr = routeQuery[key].split('_')
         if (cityArr?.length) pageReqVO.areaIds = [...pageReqVO.areaIds, ...cityArr]