Pārlūkot izejas kodu

职位类型加不限选项

lifanagju_citu 11 mēneši atpakaļ
vecāks
revīzija
43317d9110

+ 16 - 1
src/components/jobTypeCard/index.vue

@@ -7,10 +7,11 @@
           :class="{'leftIndexAct': index === leftIndex,'leftSelectedAct': leftEchoIdArr?.length ? leftEchoIdArr.includes(item.id) : false}"
           v-for="(item, index) in items" :key="item.id"
           @mouseover="handleMouseOver(item, index)"
+          @click="leftHandleClick(item, index)"
         >
           <div class="rowItem d-flex">
             <span class="categoryName">{{ item.nameCn }}</span>
-            <span class="mdi mdi-menu-right"></span>
+            <span v-if="item.id !== '-1'" class="mdi mdi-menu-right"></span>
           </div>
         </div>
       </div>
@@ -49,6 +50,10 @@ defineOptions({ name:'common-components-jobTypeCard'})
 const emits = defineEmits(['handleJobClick', 'jobClick'])// 定义一个或多个自定义事件
 
 const props = defineProps({
+  clearable: { // 不限
+    type: Boolean,
+    default: false
+  },
   echo: { // 是否回显
     type: Boolean,
     default: false
@@ -104,6 +109,8 @@ let items = ref([])
 getDict('positionTreeData', null, 'positionTreeData').then(({ data }) => {
   data = data?.length && data || []
   items.value = data
+  if (props.clearable) items.value = [{ id: '-1', nameCn: '不限', nameEn: 'Unrestricted' }, ...data]
+  else items.value = data
   echoLeft()
 })
 
@@ -121,12 +128,20 @@ const handleClick = async (val) => {
   echoLeft()
   emits('handleJobClick', selectItems.value, selectItems.value.length ? val.nameCn : '')
 }
+// 职位点击
+const leftHandleClick = async (val) => {
+  if ((val.id + '') === '-1') {
+    leftEchoIdArr.value = []; selectItems.value = []
+    emits('handleJobClick', selectItems.value, selectItems.value.length ? val.nameCn : '')
+  }
+}
 
 // 右侧职位信息
 const leftIndex = ref(null)
 const rightObj = reactive({ show: false, data: {} })
 
 const handleMouseOver = (val, index) => { // 鼠标移入
+  if ((val.id + '') === '-1') return
   leftIndex.value = index
   rightObj.data = val
   rightObj.show = true

+ 1 - 1
src/views/recruit/position/components/conditionFilter/positionType.vue

@@ -1,6 +1,6 @@
 <template>
   <commonStyle :btnTitle="title">
-    <jobTypeCard :select="selectedItems" isSingle echo @handleJobClick="handle"></jobTypeCard>
+    <jobTypeCard :select="selectedItems" isSingle echo clearable @handleJobClick="handle"></jobTypeCard>
   </commonStyle>
 </template>