|
@@ -16,6 +16,12 @@
|
|
|
:showFixedLastItem="true"
|
|
|
itemKey="id"
|
|
|
>
|
|
|
+ <template #title_zh="{ item }">
|
|
|
+ <div v-ellipse-tooltip style="max-width: 250px;">{{ item.title_zh }}</div>
|
|
|
+ </template>
|
|
|
+ <template #hotel_zh="{ item }">
|
|
|
+ <div v-ellipse-tooltip style="max-width: 250px;">{{ item.hotel_zh }}</div>
|
|
|
+ </template>
|
|
|
<template #status="{ item }">
|
|
|
<v-chip size="small" variant="elevated" :color="item.status === 'active' ? 'primary' : 'error'">{{ item.status === 'active' ? '已启用' : '已禁用' }}</v-chip>
|
|
|
</template>
|
|
@@ -28,10 +34,10 @@
|
|
|
</v-card>
|
|
|
|
|
|
<!-- 标注 -->
|
|
|
- <CtDialog :visible="showDialog" title="人才标注" :footer="false" widthType="1" @close="showDialog = false">
|
|
|
+ <CtDialog :visible="showDialog" title="人才标注" :footer="false" widthType="1" @close="showDialog = false" style="height: 95vh;">
|
|
|
<v-row>
|
|
|
<v-col cols="4">
|
|
|
- <v-card elevation="3" class="pa-3" style="height: 100%">
|
|
|
+ <v-card elevation="3" class="pa-3 overflow-y-auto" :height="`calc(95vh - 154px)`">
|
|
|
<p :class="{'active': previewUrl}" @click="showPreview = true">
|
|
|
名片
|
|
|
<v-icon v-if="previewUrl">mdi-magnify-expand</v-icon>
|
|
@@ -42,7 +48,7 @@
|
|
|
</v-card>
|
|
|
</v-col>
|
|
|
<v-col cols="8">
|
|
|
- <v-card elevation="3" class="pa-3" height="100%">
|
|
|
+ <v-card elevation="3" class="pa-3 overflow-y-auto" :height="`calc(95vh - 154px)`">
|
|
|
<div class="base-info pa-3">
|
|
|
<div class="mb-6">
|
|
|
{{ talentItem.name_zh }}
|
|
@@ -62,21 +68,22 @@
|
|
|
</div>
|
|
|
<div class="my-5">
|
|
|
<p>人才标签</p>
|
|
|
- <v-chip
|
|
|
- v-for="(item, index) in talentSelectedTags" :key="index"
|
|
|
- class="chip mx-2 mt-4 cursor-pointer"
|
|
|
- label color="primary"
|
|
|
- >
|
|
|
- {{ item.name }}
|
|
|
- <v-icon size="18" color="primary" style="margin-left: 6px;" @click="closeClick(item)">mdi-close-circle</v-icon>
|
|
|
- </v-chip>
|
|
|
-
|
|
|
+ <div v-if="talentSelectedTags?.length" class="mt-4 px-3 pb-3" style="border: 1px dashed #00B760; border-radius: 4px;">
|
|
|
+ <v-chip
|
|
|
+ v-for="(item, index) in talentSelectedTags" :key="index"
|
|
|
+ class="chip mr-3 mt-3 cursor-pointer"
|
|
|
+ label color="primary"
|
|
|
+ >
|
|
|
+ {{ item.name }}
|
|
|
+ <v-icon size="18" color="primary" style="margin-left: 6px;" @click="closeClick(item)">mdi-close-circle</v-icon>
|
|
|
+ </v-chip>
|
|
|
+ </div>
|
|
|
<div :class="{'mt-5': talentSelectedTags?.length > 0}">
|
|
|
<v-chip
|
|
|
v-for="(item, index) in tagList" :key="index"
|
|
|
- class="chip mx-2 mt-4 cursor-pointer"
|
|
|
+ class="chip mr-3 mt-4 cursor-pointer"
|
|
|
label color="#248dbb"
|
|
|
- :disabled="talentSelectedTags.includes(item)"
|
|
|
+ :disabled="talentSelectedTags.find(k => k.name === item.name)"
|
|
|
@click="handleAdd(item)"
|
|
|
>
|
|
|
<v-icon icon="mdi-plus" start></v-icon>
|
|
@@ -114,6 +121,7 @@ const loading = ref(false)
|
|
|
const showDialog = ref(false)
|
|
|
const items = ref([])
|
|
|
const headers = [
|
|
|
+ // { title: 'ID', key: 'id', sortable: false },
|
|
|
{ title: '姓名', key: 'name_zh', sortable: false },
|
|
|
// { title: '英文名', key: 'name_en', sortable: false },
|
|
|
{ title: '职位', key: 'title_zh', sortable: false },
|
|
@@ -208,7 +216,6 @@ const showPreview = ref(false)
|
|
|
const annotationLoading = ref(false)
|
|
|
const handleAnnotation = async (item) => {
|
|
|
if (!item || !item.id) return
|
|
|
- talentSelectedTags.value = []
|
|
|
|
|
|
talentItem.value = item
|
|
|
// 获取所有标签列表
|
|
@@ -222,7 +229,9 @@ const handleAnnotation = async (item) => {
|
|
|
|
|
|
// 获取人才标签
|
|
|
const tagData = await getTalentTagById(item.id)
|
|
|
- console.log(tagData, '人才标签')
|
|
|
+ talentSelectedTags.value = tagData ? tagData.map((i) => {
|
|
|
+ return { id: i.talent, name: i.tag }
|
|
|
+ }) : []
|
|
|
|
|
|
showDialog.value = true
|
|
|
}
|