|
@@ -9,14 +9,14 @@
|
|
<v-menu :close-delay="1" :open-delay="0" v-bind="$attrs">
|
|
<v-menu :close-delay="1" :open-delay="0" v-bind="$attrs">
|
|
<template v-slot:activator="{ props }">
|
|
<template v-slot:activator="{ props }">
|
|
<textUI
|
|
<textUI
|
|
- :modelValue="item.value"
|
|
|
|
|
|
+ v-model="item.value"
|
|
:item="item"
|
|
:item="item"
|
|
v-bind="props"
|
|
v-bind="props"
|
|
style="position: relative;"
|
|
style="position: relative;"
|
|
- @handleClear="handleJobClickItem"
|
|
|
|
|
|
+ @handleClear="handleJobClickItem()"
|
|
></textUI>
|
|
></textUI>
|
|
</template>
|
|
</template>
|
|
- <jobTypeCard class="jobTypeCardBox" :select="[positionId].filter(Boolean)" :isSingle="true" @handleJobClick="handleJobClickItem"></jobTypeCard>
|
|
|
|
|
|
+ <jobTypeCard class="jobTypeCardBox" :select="[item[item.valueKey]].filter(Boolean)" :isSingle="true" @handleJobClick="handleJobClickItem"></jobTypeCard>
|
|
</v-menu>
|
|
</v-menu>
|
|
</template>
|
|
</template>
|
|
</CtForm>
|
|
</CtForm>
|
|
@@ -38,6 +38,7 @@ defineOptions({ name: 'talent-map-filter'})
|
|
import jobTypeCard from '@/components/jobTypeCard'
|
|
import jobTypeCard from '@/components/jobTypeCard'
|
|
import textUI from '@/components/FormUI/TextInput'
|
|
import textUI from '@/components/FormUI/TextInput'
|
|
import { getDict } from '@/hooks/web/useDictionaries'
|
|
import { getDict } from '@/hooks/web/useDictionaries'
|
|
|
|
+import Snackbar from '@/plugins/snackbar'
|
|
import { ref } from 'vue'
|
|
import { ref } from 'vue'
|
|
const emit = defineEmits(['cancel', 'confirm'])
|
|
const emit = defineEmits(['cancel', 'confirm'])
|
|
|
|
|
|
@@ -184,7 +185,6 @@ const formItems = ref({
|
|
]
|
|
]
|
|
})
|
|
})
|
|
|
|
|
|
-
|
|
|
|
// 获取字典内容
|
|
// 获取字典内容
|
|
const getDictData = async (item) => {
|
|
const getDictData = async (item) => {
|
|
if (item) {
|
|
if (item) {
|
|
@@ -206,14 +206,14 @@ formItems.value.options.forEach((e, index) => {
|
|
// }
|
|
// }
|
|
|
|
|
|
// 期望职位
|
|
// 期望职位
|
|
-let positionId = ''
|
|
|
|
-let positionName = ''
|
|
|
|
|
|
+const positionId = ref('')
|
|
|
|
+const positionName = ref('')
|
|
const handleJobClickItem = (list, name) => {
|
|
const handleJobClickItem = (list, name) => {
|
|
const positionItem = formItems.value.options.find(f => f.key === 'positionName')
|
|
const positionItem = formItems.value.options.find(f => f.key === 'positionName')
|
|
if (positionItem) {
|
|
if (positionItem) {
|
|
if (list?.length) {
|
|
if (list?.length) {
|
|
- positionItem.value = positionName = name || ''
|
|
|
|
- positionItem[positionItem.valueKey] = positionId = list?.length ? list[0] : ''
|
|
|
|
|
|
+ positionItem.value = positionName.value = name || ''
|
|
|
|
+ positionItem[positionItem.valueKey] = positionId.value = list?.length ? list[0] : ''
|
|
} else {
|
|
} else {
|
|
positionItem.value = name || ''
|
|
positionItem.value = name || ''
|
|
positionItem[positionItem.valueKey] = list?.length ? list[0] : ''
|
|
positionItem[positionItem.valueKey] = list?.length ? list[0] : ''
|
|
@@ -226,13 +226,17 @@ const confirm = () => {
|
|
formItems.value.options.forEach(e => {
|
|
formItems.value.options.forEach(e => {
|
|
if (e.key === 'positionName') {
|
|
if (e.key === 'positionName') {
|
|
if (e.value) {
|
|
if (e.value) {
|
|
- obj[e.valueKey] = positionId ? positionId : ''
|
|
|
|
- obj[e.key] = positionName ? positionName : ''
|
|
|
|
|
|
+ obj[e.valueKey] = positionId.value || ''
|
|
|
|
+ obj[e.key] = positionName.value || ''
|
|
}
|
|
}
|
|
} else if (e.value !== null && e.value !== '' && e.value !== undefined) obj[e.key] = e.value
|
|
} else if (e.value !== null && e.value !== '' && e.value !== undefined) obj[e.key] = e.value
|
|
})
|
|
})
|
|
- if (obj.age1 || obj.age2) obj.age = [obj.age1 || null, obj.age2 || null]
|
|
|
|
- if (obj.pay1 || obj.pay2) obj.pay = [obj.pay1 || null, obj.pay2 || null]
|
|
|
|
|
|
+ if (obj.age1 > obj.age2) return Snackbar.warning('年龄区间异常,前者不能大于后者!')
|
|
|
|
+ if (obj.pay2 > obj.pay1) return Snackbar.warning('期望薪资异常,前者不能大于后者!')
|
|
|
|
+ //
|
|
|
|
+ if (obj.age1 || obj.age2) obj.age = [obj.age1 || null, obj.age2 || null].filter(Boolean)
|
|
|
|
+ if (obj.pay1 || obj.pay2) obj.pay = [obj.pay1 || null, obj.pay2 || null].filter(Boolean)
|
|
|
|
+ //
|
|
if (!obj.labels?.length) delete obj.labels
|
|
if (!obj.labels?.length) delete obj.labels
|
|
emit('confirm', obj)
|
|
emit('confirm', obj)
|
|
}
|
|
}
|
|
@@ -241,7 +245,7 @@ const resetValue = () => {
|
|
formItems.value.options.forEach(e => {
|
|
formItems.value.options.forEach(e => {
|
|
if (e.key === 'positionName') {
|
|
if (e.key === 'positionName') {
|
|
e[e.valueKey] = ''
|
|
e[e.valueKey] = ''
|
|
- e.value = e[e.valueKey] = positionId = positionName = ''
|
|
|
|
|
|
+ e.value = e[e.valueKey] = positionId.value = positionName.value = ''
|
|
} else {
|
|
} else {
|
|
e.value = null
|
|
e.value = null
|
|
}
|
|
}
|
|
@@ -250,8 +254,8 @@ const resetValue = () => {
|
|
const setValue = (query) => {
|
|
const setValue = (query) => {
|
|
formItems.value.options.forEach(e => {
|
|
formItems.value.options.forEach(e => {
|
|
if (e.key === 'positionName') {
|
|
if (e.key === 'positionName') {
|
|
- e.value = query[e.key]
|
|
|
|
- e[e.valueKey] = query[e.valueKey]
|
|
|
|
|
|
+ e.value = positionName.value = query[e.key]
|
|
|
|
+ e[e.valueKey] = positionId.value = query[e.valueKey]
|
|
} else {
|
|
} else {
|
|
if (query[e.key] !== undefined) e.value = query[e.key]
|
|
if (query[e.key] !== undefined) e.value = query[e.key]
|
|
}
|
|
}
|