|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
<div class="d-flex justify-center mt-4 mb-6">
|
|
|
- <TextInput v-model="queryParams.content" :item="textItem" @enter="handleConfirm" @appendInnerClick="handleConfirm"></TextInput>
|
|
|
+ <TextInput v-model="queryParams.content" :item="textItem" @enter="handleConfirm" @appendInnerClick="handleConfirm(false)"></TextInput>
|
|
|
</div>
|
|
|
<div>
|
|
|
<div class="font-size-15 d-flex align-center color-666">
|
|
@@ -59,37 +59,35 @@
|
|
|
<template #subtitle>
|
|
|
<div class="d-flex">
|
|
|
<div class="mr-10">{{ item.subTitle }}</div>
|
|
|
- <div class="mr-10">首次工作时间: {{ timesTampChange(item.firstWorkTime, 'Y-M-D') }}</div>
|
|
|
- <div v-if="item.interestedList?.length" class="mr-10 d-flex flex-wrap">
|
|
|
- <div>求职意向:</div>
|
|
|
- <div
|
|
|
- v-for="(interested, index) in item.interestedList"
|
|
|
- :key="interested.id"
|
|
|
- >
|
|
|
- <span :class="{'mx-3': index}">{{ (index ? '|' : '') }}</span>
|
|
|
- <span>{{ positionData.find(e => e.id === interested.positionId)?.nameCn ?? '暂无' }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="mr-10">首次工作时间: {{ item.firstWorkTime ? timesTampChange(item.firstWorkTime, 'Y-M-D') : '未填写' }}</div>
|
|
|
+ </div>
|
|
|
+ <div v-if="item.interestedList?.length" v-ellipse-tooltip>
|
|
|
+ <span>求职意向:</span>
|
|
|
+ <span
|
|
|
+ v-for="(interested, index) in item.interestedList"
|
|
|
+ :key="interested.id"
|
|
|
+ >
|
|
|
+ <span :class="{'mx-3': index}">{{ (index ? '|' : '') }}</span>
|
|
|
+ <span>{{ positionData.find(e => e.id === interested.positionId)?.nameCn ?? '暂无' }}</span>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
- <div class="px-5 pb-8">
|
|
|
- <div v-if="item?.workList?.length">
|
|
|
- <div class="second-title">工作经验</div>
|
|
|
- <v-timeline density="compact" align="start" side="end" truncate-line="both">
|
|
|
- <v-timeline-item v-for="(j, i) in item.workList" :key="i" dot-color="primary" size="small">
|
|
|
- <div v-if="j.show" class="timeline-item mt-1">
|
|
|
- <div v-ellipse-tooltip style="width: 20%;">
|
|
|
- <span>{{ j.startTimeStr }}</span>
|
|
|
- <span v-if="j.endTimeStr"> - {{ j.endTimeStr }}</span>
|
|
|
- <span v-if="j.year"> ({{ j.year }})</span>
|
|
|
- </div>
|
|
|
- <div v-ellipse-tooltip class="timeline-item-name mx-3">{{ formatName(j.enterpriseName) || '' }}</div>
|
|
|
- <div v-ellipse-tooltip class="timeline-item-name">{{ formatName(j.positionName) || '' }}</div>
|
|
|
+ <div class="px-5 pb-5" v-if="item?.workList?.length">
|
|
|
+ <div class="second-title">工作经验</div>
|
|
|
+ <v-timeline density="compact" align="start" side="end" truncate-line="both">
|
|
|
+ <v-timeline-item v-for="(j, i) in item.workList" :key="i" dot-color="primary" size="small">
|
|
|
+ <div v-if="j.show" class="timeline-item mt-1">
|
|
|
+ <div v-ellipse-tooltip style="width: 20%;">
|
|
|
+ <span>{{ j.startTimeStr }}</span>
|
|
|
+ <span v-if="j.endTimeStr"> - {{ j.endTimeStr }}</span>
|
|
|
+ <span v-if="j.year"> ({{ j.year }})</span>
|
|
|
</div>
|
|
|
- </v-timeline-item>
|
|
|
- </v-timeline>
|
|
|
- </div>
|
|
|
+ <div v-ellipse-tooltip class="timeline-item-name mx-3">{{ formatName(j.enterpriseName) || '' }}</div>
|
|
|
+ <div v-ellipse-tooltip class="timeline-item-name">{{ formatName(j.positionName) || '' }}</div>
|
|
|
+ </div>
|
|
|
+ </v-timeline-item>
|
|
|
+ </v-timeline>
|
|
|
</div>
|
|
|
</v-card>
|
|
|
</div>
|
|
@@ -122,7 +120,6 @@ import InvitePage from '@/views/recruit/enterprise/interviewManagement/component
|
|
|
import { getDict } from '@/hooks/web/useDictionaries'
|
|
|
import { getTimeDifferenceInChinese } from '@/utils/date'
|
|
|
import { formatName } from '@/utils/getText'
|
|
|
-import { spaces } from '@/utils/index.js'
|
|
|
|
|
|
const textItem = ref({
|
|
|
type: 'text',
|
|
@@ -156,6 +153,19 @@ const selectItems = ref({
|
|
|
placeholder: '地区',
|
|
|
items: [],
|
|
|
})
|
|
|
+const positionItems = ref({
|
|
|
+ value: null,
|
|
|
+ itemText: 'nameCn',
|
|
|
+ itemValue: 'id',
|
|
|
+ hideDetails: true,
|
|
|
+ clearable: true,
|
|
|
+ multiple: true,
|
|
|
+ checkStrictly: false,
|
|
|
+ collapseTags: true,
|
|
|
+ labelActiveColor: true,
|
|
|
+ placeholder: '请选择',
|
|
|
+ items: [],
|
|
|
+})
|
|
|
|
|
|
const positionData = ref([])
|
|
|
|
|
@@ -169,6 +179,10 @@ getDict('positionData', {}, 'positionData').then(({ data }) => {
|
|
|
positionData.value = data
|
|
|
})
|
|
|
|
|
|
+getDict('positionTreeData', {}, 'positionTreeData').then(({ data }) => {
|
|
|
+ positionItems.value.items = data
|
|
|
+})
|
|
|
+
|
|
|
const total = ref(0)
|
|
|
const items = ref([])
|
|
|
const loading = ref(false)
|
|
@@ -221,10 +235,10 @@ const checkValue = (obj) => {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-const handleConfirm = () => {
|
|
|
+const handleConfirm = (showTips = true) => {
|
|
|
query.value.pageNo = 1
|
|
|
if (!checkValue(queryParams.value)) {
|
|
|
- Snackbar.warning('至少选择一个条件进行搜索')
|
|
|
+ if (showTips) Snackbar.warning('至少选择一个条件进行搜索')
|
|
|
items.value = []
|
|
|
total.value = 0
|
|
|
return
|