|
@@ -1,18 +1,32 @@
|
|
<template>
|
|
<template>
|
|
- <div style="max-height: 80vh; overflow-y: auto;">
|
|
|
|
|
|
+ <div style="max-height: 80vh;">
|
|
<div class="d-flex align-center mt-5">
|
|
<div class="d-flex align-center mt-5">
|
|
<TextInput v-model="textItem.value" :item="textItem" @appendInnerClick="handleSearch"></TextInput>
|
|
<TextInput v-model="textItem.value" :item="textItem" @appendInnerClick="handleSearch"></TextInput>
|
|
<span class="pl-6 color-666" style="width: 60px; min-width: 60px;" @click="emit('close')">取消</span>
|
|
<span class="pl-6 color-666" style="width: 60px; min-width: 60px;" @click="emit('close')">取消</span>
|
|
</div>
|
|
</div>
|
|
<v-divider class="my-3"></v-divider>
|
|
<v-divider class="my-3"></v-divider>
|
|
|
|
+ <!-- 地区 -->
|
|
|
|
+ <!-- <div>
|
|
|
|
+ <div class="mb-2 font-size-20">地区</div>
|
|
|
|
+ <div class="color-666">
|
|
|
|
+ <v-menu :close-delay="1" :open-delay="0" v-bind="$attrs" :close-on-content-click="false">
|
|
|
|
+ <template v-slot:activator="{ props }">
|
|
|
|
+ <div>
|
|
|
|
+ <v-chip v-for="k in areaSelect" :key="k.id" class="mr-3 mb-1" closable label size="small" @click:close="handleAreaClear(k)">{{ k.name }}</v-chip>
|
|
|
|
+ <v-btn icon="mdi-plus" v-bind="props" variant="outlined" size="x-small"></v-btn>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <AreaSelect :isMobile="true" :select="areaSelectData" :currentData="areaSelect" :limit="false" showSelect @handleClick="handleArea"></AreaSelect>
|
|
|
|
+ </v-menu>
|
|
|
|
+ </div>
|
|
|
|
+ </div> -->
|
|
<!-- 职位 -->
|
|
<!-- 职位 -->
|
|
- <div class="mb-3">
|
|
|
|
|
|
+ <div class="my-3">
|
|
<div class="mb-2 font-size-20">职位</div>
|
|
<div class="mb-2 font-size-20">职位</div>
|
|
<div class="d-flex font-size-14 flex-wrap">
|
|
<div class="d-flex font-size-14 flex-wrap">
|
|
<div v-for="val in items" :key="val.id" class="mr-2 tag mb-2" :class="{'active': val.active}" @click="handleFirst(val)">{{ val.nameCn }}</div>
|
|
<div v-for="val in items" :key="val.id" class="mr-2 tag mb-2" :class="{'active': val.active}" @click="handleFirst(val)">{{ val.nameCn }}</div>
|
|
</div>
|
|
</div>
|
|
- <div v-if="children.length" class="mx-3" style="border-top: 1px dashed #ccc;"></div>
|
|
|
|
- <div v-if="children.length" class="mt-5 font-size-14 d-flex flex-wrap triangle-container pa-3">
|
|
|
|
|
|
+ <div v-if="children.length" class="mt-1 font-size-14 d-flex flex-wrap triangle-container pa-3">
|
|
<div
|
|
<div
|
|
v-for="k in children"
|
|
v-for="k in children"
|
|
:key="k.id"
|
|
:key="k.id"
|
|
@@ -25,7 +39,7 @@
|
|
<!-- 最高学历、工作经验 -->
|
|
<!-- 最高学历、工作经验 -->
|
|
<div v-for="val in list" :key="val.key" class="mb-3">
|
|
<div v-for="val in list" :key="val.key" class="mb-3">
|
|
<div class="mb-2 font-size-20">{{ val.title }}</div>
|
|
<div class="mb-2 font-size-20">{{ val.title }}</div>
|
|
- <v-chip-group v-model="val.value" selected-class="text-primary" mandatory @update:modelValue="e => val.value = e" class="flex-wrap">
|
|
|
|
|
|
+ <v-chip-group v-model="val.value" selected-class="text-primary" mandatory @update:modelValue="e => val.value = e" class="flex-wrap color-666">
|
|
<v-chip v-for="val in val.items" :key="val.id" :text="val.label" :value="val.value" label filter></v-chip>
|
|
<v-chip v-for="val in val.items" :key="val.id" :text="val.label" :value="val.value" label filter></v-chip>
|
|
</v-chip-group>
|
|
</v-chip-group>
|
|
</div>
|
|
</div>
|
|
@@ -91,7 +105,6 @@ getDict('positionTreeData', {}, 'positionTreeData').then(({ data }) => {
|
|
return e
|
|
return e
|
|
})
|
|
})
|
|
})
|
|
})
|
|
-
|
|
|
|
const children = ref([])
|
|
const children = ref([])
|
|
const handleFirst = (val) => {
|
|
const handleFirst = (val) => {
|
|
if (val.active) {
|
|
if (val.active) {
|
|
@@ -104,12 +117,10 @@ const handleFirst = (val) => {
|
|
val.active = !val.active
|
|
val.active = !val.active
|
|
children.value = val.children || []
|
|
children.value = val.children || []
|
|
}
|
|
}
|
|
-
|
|
|
|
const handleSearch = () => {
|
|
const handleSearch = () => {
|
|
query.value.content = textItem.value.value
|
|
query.value.content = textItem.value.value
|
|
emit('search', query.value)
|
|
emit('search', query.value)
|
|
}
|
|
}
|
|
-
|
|
|
|
const select = ref([])
|
|
const select = ref([])
|
|
const handleSecond = (val) => {
|
|
const handleSecond = (val) => {
|
|
const index = select.value.findIndex(e => e.id === val.id)
|
|
const index = select.value.findIndex(e => e.id === val.id)
|
|
@@ -120,6 +131,19 @@ const handleSecond = (val) => {
|
|
// emit('select', select.value)
|
|
// emit('select', select.value)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// 地区
|
|
|
|
+// const areaSelect = ref([])
|
|
|
|
+// const areaSelectData = ref([])
|
|
|
|
+// const handleArea = (list, arr) => {
|
|
|
|
+// areaSelectData.value = list
|
|
|
|
+// areaSelect.value = arr
|
|
|
|
+// }
|
|
|
|
+// const handleAreaClear = (k) => {
|
|
|
|
+// areaSelectData.value = areaSelectData.value.filter(item => item !== k.id)
|
|
|
|
+// const index = areaSelect.value.findIndex(item => item.id === k.id)
|
|
|
|
+// if (index !== -1) areaSelect.value.splice(index, 1)
|
|
|
|
+// }
|
|
|
|
+
|
|
// 重置
|
|
// 重置
|
|
const handleReset = () => {
|
|
const handleReset = () => {
|
|
query.value = {
|
|
query.value = {
|
|
@@ -129,6 +153,8 @@ const handleReset = () => {
|
|
expType: '',
|
|
expType: '',
|
|
eduType: ''
|
|
eduType: ''
|
|
}
|
|
}
|
|
|
|
+ // areaSelectData.value = []
|
|
|
|
+ // areaSelect.value = []
|
|
select.value = []
|
|
select.value = []
|
|
list.value.forEach(e => e.value = -1)
|
|
list.value.forEach(e => e.value = -1)
|
|
items.value.forEach(e => e.active = false)
|
|
items.value.forEach(e => e.active = false)
|
|
@@ -136,6 +162,7 @@ const handleReset = () => {
|
|
}
|
|
}
|
|
const handleConfirm = () => {
|
|
const handleConfirm = () => {
|
|
query.value.content = textItem.value.value
|
|
query.value.content = textItem.value.value
|
|
|
|
+ // query.value.areaIds = areaSelectData.value
|
|
query.value.positionIds = select.value.map(e => e.id)
|
|
query.value.positionIds = select.value.map(e => e.id)
|
|
list.value.forEach(e => query.value[e.key] = e.value === -1 ? '' : e.value)
|
|
list.value.forEach(e => query.value[e.key] = e.value === -1 ? '' : e.value)
|
|
emit('search', query.value)
|
|
emit('search', query.value)
|