|
@@ -64,7 +64,17 @@
|
|
<div class="d-flex">
|
|
<div class="d-flex">
|
|
<div class="mr-10">{{ item.subTitle }}</div>
|
|
<div class="mr-10">{{ item.subTitle }}</div>
|
|
<div class="mr-10">首次工作时间: {{ timesTampChange(item.firstWorkTime, 'Y-M-D') }}</div>
|
|
<div class="mr-10">首次工作时间: {{ timesTampChange(item.firstWorkTime, 'Y-M-D') }}</div>
|
|
- <div>所在城市: {{ item.areaName }}</div>
|
|
|
|
|
|
+ <!-- <div class="mr-10">所在城市: {{ item.areaName }}</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>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -74,13 +84,13 @@
|
|
<v-timeline density="compact" align="start" side="end" truncate-line="both">
|
|
<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">
|
|
<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-if="j.show" class="timeline-item mt-1">
|
|
- <div>
|
|
|
|
|
|
+ <div v-ellipse-tooltip style="width: 20%;">
|
|
<span>{{ j.startTimeStr }}</span>
|
|
<span>{{ j.startTimeStr }}</span>
|
|
<span v-if="j.endTimeStr"> - {{ j.endTimeStr }}</span>
|
|
<span v-if="j.endTimeStr"> - {{ j.endTimeStr }}</span>
|
|
<span v-if="j.year"> ({{ j.year }})</span>
|
|
<span v-if="j.year"> ({{ j.year }})</span>
|
|
</div>
|
|
</div>
|
|
- <div v-ellipse-tooltip.top class="timeline-item-name mx-3">{{ j.enterpriseName }}</div>
|
|
|
|
- <div v-ellipse-tooltip.top class="timeline-item-name">{{ j.positionName }}</div>
|
|
|
|
|
|
+ <div v-ellipse-tooltip class="timeline-item-name mx-3">{{ j.enterpriseName }}</div>
|
|
|
|
+ <div v-ellipse-tooltip class="timeline-item-name">{{ j.positionName }}</div>
|
|
</div>
|
|
</div>
|
|
</v-timeline-item>
|
|
</v-timeline-item>
|
|
</v-timeline>
|
|
</v-timeline>
|
|
@@ -97,6 +107,7 @@
|
|
>{{ item.workList[0]?.positionName ?? '暂无' }}</v-chip>
|
|
>{{ item.workList[0]?.positionName ?? '暂无' }}</v-chip>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
<div class="d-flex align-center">
|
|
<div class="d-flex align-center">
|
|
<div class="mr-3">求职意向:</div>
|
|
<div class="mr-3">求职意向:</div>
|
|
<v-chip
|
|
<v-chip
|
|
@@ -106,7 +117,7 @@
|
|
color="primary"
|
|
color="primary"
|
|
>{{ positionData.find(e => e.id === interested.positionId)?.nameCn ?? '暂无' }}</v-chip>
|
|
>{{ positionData.find(e => e.id === interested.positionId)?.nameCn ?? '暂无' }}</v-chip>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
<!-- <v-divider></v-divider> -->
|
|
<!-- <v-divider></v-divider> -->
|
|
<!-- <v-card-text class="d-flex mb-10"> -->
|
|
<!-- <v-card-text class="d-flex mb-10"> -->
|
|
<!-- <div style="width: 50%;" class="d-flex align-center">
|
|
<!-- <div style="width: 50%;" class="d-flex align-center">
|
|
@@ -219,6 +230,7 @@ import { saveInterviewInvite } from '@/api/recruit/enterprise/interview'
|
|
import { useRouter } from 'vue-router'; const router = useRouter()
|
|
import { useRouter } from 'vue-router'; const router = useRouter()
|
|
import InvitePage from '@/views/recruit/enterprise/interviewManagement/components/invite'
|
|
import InvitePage from '@/views/recruit/enterprise/interviewManagement/components/invite'
|
|
import { getDict } from '@/hooks/web/useDictionaries'
|
|
import { getDict } from '@/hooks/web/useDictionaries'
|
|
|
|
+import { getTimeDifferenceInChinese } from '@/utils/date'
|
|
|
|
|
|
const textItem = ref({
|
|
const textItem = ref({
|
|
type: 'text',
|
|
type: 'text',
|
|
@@ -293,9 +305,17 @@ const getData = async () => {
|
|
e.regName = e.reg?.str ?? ''
|
|
e.regName = e.reg?.str ?? ''
|
|
e.areaName = e.area?.str ?? '暂无'
|
|
e.areaName = e.area?.str ?? '暂无'
|
|
e.subTitle = [e.jobStatusName, e.expName ? e.expName + '工作经验' : null, e.eduName, e.maritalStatusName].filter(k => k).join(' | ')
|
|
e.subTitle = [e.jobStatusName, e.expName ? e.expName + '工作经验' : null, e.eduName, e.maritalStatusName].filter(k => k).join(' | ')
|
|
|
|
+ if (e.workList?.length) {
|
|
|
|
+ e.workList.forEach(exp => {
|
|
|
|
+ exp.startTimeStr = exp.startTime ? timesTampChange(exp.startTime, 'Y-M') : '未填写工作时间'
|
|
|
|
+ exp.endTimeStr = exp.startTime ? exp.endTime ? timesTampChange(exp.endTime, 'Y-M') : '至今' : ''
|
|
|
|
+ exp.year = exp.endTimeStr ? getTimeDifferenceInChinese(exp.startTime, exp.endTime) : ''
|
|
|
|
+ // 未填写工作经验内容,不展示
|
|
|
|
+ exp.show = Boolean(exp.year) || Boolean(exp.enterpriseName) || Boolean(exp.positionName)
|
|
|
|
+ })
|
|
|
|
+ }
|
|
return e
|
|
return e
|
|
})
|
|
})
|
|
- console.log(items.value)
|
|
|
|
total.value = res.total
|
|
total.value = res.total
|
|
} finally {
|
|
} finally {
|
|
loading.value = false
|
|
loading.value = false
|
|
@@ -383,7 +403,7 @@ const handleCommunicate = async (item) => {
|
|
const userId = item.userId
|
|
const userId = item.userId
|
|
if (!userId) return
|
|
if (!userId) return
|
|
await talkToUser({userId, text: defaultTextEnt})
|
|
await talkToUser({userId, text: defaultTextEnt})
|
|
- let url = `/recruit/enterprise/chatTools?id=${userId}`
|
|
|
|
|
|
+ let url = `/recruit/enterprise/invite/chatTools?id=${userId}`
|
|
router.push(url)
|
|
router.push(url)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -414,7 +434,7 @@ const handleSubmit = async () => {
|
|
}
|
|
}
|
|
|
|
|
|
const handleToInterviewManagement = () => {
|
|
const handleToInterviewManagement = () => {
|
|
- router.push('/recruit/enterprise/interviewManagement')
|
|
|
|
|
|
+ router.push('/recruit/enterprise/invite/interviewManagement')
|
|
}
|
|
}
|
|
|
|
|
|
// 人才详情
|
|
// 人才详情
|
|
@@ -436,11 +456,6 @@ const badgeIcon = computed(() => (item) => {
|
|
color: var(--v-primary-base);
|
|
color: var(--v-primary-base);
|
|
}
|
|
}
|
|
|
|
|
|
-.experience {
|
|
|
|
- width: 54%;
|
|
|
|
- height: 100%;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
.second-title {
|
|
.second-title {
|
|
color: var(--color-666);
|
|
color: var(--color-666);
|
|
font-size: 15px;
|
|
font-size: 15px;
|
|
@@ -454,7 +469,7 @@ const badgeIcon = computed(() => (item) => {
|
|
color: var(--color-666);
|
|
color: var(--color-666);
|
|
font-size: 13px;
|
|
font-size: 13px;
|
|
.timeline-item-name {
|
|
.timeline-item-name {
|
|
- width: 26%;
|
|
|
|
|
|
+ width: 40%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
:deep(.v-timeline-item__body) {
|
|
:deep(.v-timeline-item__body) {
|