lifanagju_citu пре 9 месеци
родитељ
комит
e483ded27e

+ 18 - 16
src/views/recruit/personal/position/components/conditionFilter/commonPath.vue

@@ -1,17 +1,19 @@
 <template>
   <commonStyle :btnTitle="btnTitle" v-bind="$attrs" :close-on-content-click="props.isSingle" v-if="show">
+    <!-- 工作城市 -->
+    <workCity v-if="idName === 'city'" :select="selectIdArr" @handleClickIndustry="handle"></workCity>
     <!-- 行业类型 -->
-    <industryTypeCard v-if="idName === 'industryIds'" :select="selectedItems" @handleClickIndustry="handle"></industryTypeCard>
+    <industryTypeCard v-if="idName === 'industryIds'" :select="selectIdArr" @handleClickIndustry="handle"></industryTypeCard>
     <!-- 职位类型 -->
-    <jobTypeCard v-else-if="idName === 'positionId'" :select="selectedItems" isSingle echo clearable @handleJobClick="handle"></jobTypeCard>
+    <jobTypeCard v-else-if="idName === 'positionId'" :select="selectIdArr" isSingle echo clearable @handleJobClick="handle"></jobTypeCard>
     <v-list v-else>
       <v-list-item
         v-for="item in items" :key="item.id" :value="item[itemKey]"
-        :active="selectedItems.includes(item[itemKey])"
+        :active="selectIdArr.includes(item[itemKey])"
         color="primary"
         @click="handle(item, item[itemKey])"
       >
-        <template v-if="selectedItems.includes(item[itemKey])" v-slot:append>
+        <template v-if="selectIdArr.includes(item[itemKey])" v-slot:append>
           <v-icon icon="mdi-check"></v-icon>
         </template>
         <v-list-item-title>{{ item[itemText] }}</v-list-item-title>
@@ -69,31 +71,31 @@ const props = defineProps({
 })
 
 const btnTitle = computed(() => {
-  return selectedItems.value?.length ? `${props.title}(${selectedItems.value.length})` : props.title
+  return selectIdArr.value?.length ? `${props.title}(${selectIdArr.value.length})` : props.title
 })
 
 let show = ref(false)
 let items = ref()
-const selectedItems = ref([])
+const selectIdArr = ref([])
 
 const handle = (item) => {
   const value = item[props.itemKey]
   if (props.isSlot) {
-    selectedItems.value = value
+    selectIdArr.value = value
   } else {
-    if (selectedItems.value.includes(value)) {
-      selectedItems.value = selectedItems.value.filter(i => i !== value)
+    if (selectIdArr.value.includes(value)) {
+      selectIdArr.value = selectIdArr.value.filter(i => i !== value)
     } else {
-      if (props.idName === 'expType') selectedItems.value = value === '2' ? [value] : (selectedItems.value.push(value) && selectedItems.value.filter(i => i !== '2')) // 选中经验不限时清空其它选中项,选中其他的咬去掉经验不限
-      else if (props.isSingle) selectedItems.value = [value] // 单选
-      else selectedItems.value.push(value)
+      if (props.idName === 'expType') selectIdArr.value = value === '2' ? [value] : (selectIdArr.value.push(value) && selectIdArr.value.filter(i => i !== '2')) // 选中经验不限时清空其它选中项,选中其他的咬去掉经验不限
+      else if (props.isSingle) selectIdArr.value = [value] // 单选
+      else selectIdArr.value.push(value)
     }
   }
   emits('inputChange', {
     idName: props.idName,
     clickItem: item,
     // title: props.title,
-    values: selectedItems.value,
+    values: selectIdArr.value,
     isEmit: props.positionIndexPage
   })
 }
@@ -117,12 +119,12 @@ else if (props.displayDictName) {
 watch(
   () => route.query, 
   (newVal, oldVal) => {
-    if (!newVal) selectedItems.value = []
+    if (!newVal) selectIdArr.value = []
     const str = newVal[props.idName]?.split(',')[0]
     const arr = str ? str.split('_') : []
-    selectedItems.value = arr?.length? arr : []
+    selectIdArr.value = arr?.length? arr : []
     if (!oldVal) { // 仅刷新时触发
-      if (props.isRefreshEmit) emits('inputChange', { values: selectedItems.value, isEmit: true })
+      if (props.isRefreshEmit) emits('inputChange', { values: selectIdArr.value, isEmit: true })
     }
   },
   { immediate: true },

+ 18 - 7
src/views/recruit/personal/position/components/dict.js

@@ -5,18 +5,29 @@ import commonPath from './conditionFilter/commonPath.vue'
 // toFilterDictName: 查数据回显(一维数组字典),dictShow: 用户操作的字典(用户看到的数据)
 // 当type是tree类型的数据的时候需要提供dictType
 const dictList = [
+  // {
+  //   toFilterDictName: 'menduner_area_type',
+  //   toFilterApiType: 'areaList',
+  //   displayDictName: 'areaTreeData',
+  //   displayApiType: 'areaTreeData',
+  //   displayParams: {},
+  //   key: 'cityId_1',
+  //   cityLevel: 1,
+  //   itemKey: 'id',
+  //   itemText: 'name',
+  //   title: '工作城市',
+  //   isSingle: true,
+  //   path: commonPath,
+  //   toFilterDictDataList: []
+  // },
   {
     toFilterDictName: 'menduner_area_type',
     toFilterApiType: 'areaList',
-    displayDictName: 'areaTreeData',
-    displayApiType: 'areaTreeData',
-    displayParams: {},
-    key: 'cityId_1',
-    cityLevel: 1,
+    key: 'city',
+    isSlot: true,
     itemKey: 'id',
-    itemText: 'name',
+    itemText: 'nameCn',
     title: '工作城市',
-    isSingle: true,
     path: commonPath,
     toFilterDictDataList: []
   },