|
@@ -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 },
|