|
@@ -64,11 +64,41 @@
|
|
|
<div class="d-flex">
|
|
|
<div class="mr-10">{{ item.subTitle }}</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>
|
|
|
</template>
|
|
|
|
|
|
- <div style="padding-left: 84px;" class="pb-5 d-flex align-center">
|
|
|
+
|
|
|
+ <div class="px-5 pb-8">
|
|
|
+ <div class="experience" 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>
|
|
|
+ <span>{{ j.startTimeStr }}</span>
|
|
|
+ <span v-if="j.endTimeStr"> - {{ j.endTimeStr }}</span>
|
|
|
+ <span v-if="j.year"> ({{ j.year }})</span>
|
|
|
+ </div>
|
|
|
+ <div class="timeline-item-name ellipsis">{{ j.enterpriseName }}</div>
|
|
|
+ <div class="timeline-item-name ellipsis">{{ j.positionName }}</div>
|
|
|
+ </div>
|
|
|
+ </v-timeline-item>
|
|
|
+ </v-timeline>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- <div style="padding-left: 84px;" class="pb-5 d-flex align-center">
|
|
|
<div class="d-flex align-center mr-10">
|
|
|
<div class="mr-3">最新职位:</div>
|
|
|
<div>
|
|
@@ -78,6 +108,7 @@
|
|
|
>{{ item.workList[0]?.positionName ?? '暂无' }}</v-chip>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
<div class="d-flex align-center">
|
|
|
<div class="mr-3">求职意向:</div>
|
|
|
<v-chip
|
|
@@ -87,7 +118,7 @@
|
|
|
color="primary"
|
|
|
>{{ positionData.find(e => e.id === interested.positionId)?.nameCn ?? '暂无' }}</v-chip>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
<!-- <v-divider></v-divider> -->
|
|
|
<!-- <v-card-text class="d-flex mb-10"> -->
|
|
|
<!-- <div style="width: 50%;" class="d-flex align-center">
|
|
@@ -200,6 +231,7 @@ import { saveInterviewInvite } from '@/api/recruit/enterprise/interview'
|
|
|
import { useRouter } from 'vue-router'; const router = useRouter()
|
|
|
import InvitePage from '@/views/recruit/enterprise/interviewManagement/components/invite'
|
|
|
import { getDict } from '@/hooks/web/useDictionaries'
|
|
|
+import { getTimeDifferenceInChinese } from '@/utils/date'
|
|
|
|
|
|
const textItem = ref({
|
|
|
type: 'text',
|
|
@@ -274,6 +306,15 @@ const getData = async () => {
|
|
|
e.regName = e.reg?.str ?? ''
|
|
|
e.areaName = e.area?.str ?? '暂无'
|
|
|
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
|
|
|
})
|
|
|
console.log(items.value)
|
|
@@ -416,4 +457,41 @@ const badgeIcon = computed(() => (item) => {
|
|
|
.clear:hover {
|
|
|
color: var(--v-primary-base);
|
|
|
}
|
|
|
+
|
|
|
+.experience {
|
|
|
+ width: 54%;
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
+
|
|
|
+.second-title {
|
|
|
+ color: var(--color-666);
|
|
|
+ font-size: 15px;
|
|
|
+}
|
|
|
+
|
|
|
+.timeline-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 100%;
|
|
|
+ color: var(--color-666);
|
|
|
+ font-size: 13px;
|
|
|
+ .timeline-item-name {
|
|
|
+ width: 26%;
|
|
|
+ }
|
|
|
+}
|
|
|
+:deep(.v-timeline-item__body) {
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+:deep(.v-timeline--vertical.v-timeline) {
|
|
|
+ row-gap: 0;
|
|
|
+}
|
|
|
+:deep(.v-timeline-divider__dot--size-small) {
|
|
|
+ width: 10px !important;
|
|
|
+ height: 10px !important;
|
|
|
+ margin-top: 10px !important;
|
|
|
+}
|
|
|
+:deep(.v-timeline-divider__inner-dot) {
|
|
|
+ width: 10px !important;
|
|
|
+ height: 10px !important;
|
|
|
+}
|
|
|
</style>
|