Browse Source

人才搜索-详情展示人才标签

Xiao_123 3 days ago
parent
commit
5fce13d62e
1 changed files with 48 additions and 23 deletions
  1. 48 23
      src/views/menduner/system/talentMap/search/index.vue

+ 48 - 23
src/views/menduner/system/talentMap/search/index.vue

@@ -14,6 +14,7 @@
 						<el-button :icon="Search" @click="handleSearch" />
 					</template>
 				</el-input>
+				<el-text v-if="!isSearch" class="text-xs !color-gray-400">例如:有酒店筹开经验,担任总经理的人</el-text>
       </div>
     </div>
   </ContentWrap>
@@ -53,26 +54,16 @@
 				</div>
 
 				<el-descriptions title="基本信息" :column="1" border>
-					<el-descriptions-item label="中文名">{{ detail.name_zh }}</el-descriptions-item>
-					<el-descriptions-item label="英文名">{{ detail.name_en }}</el-descriptions-item>
-					<el-descriptions-item label="职位/头衔(中)">{{ detail.title_zh }}</el-descriptions-item>
-					<el-descriptions-item label="职位/头衔(英)">{{ detail.title_en }}</el-descriptions-item>
-					<el-descriptions-item label="手机号码">{{ detail.mobile }}</el-descriptions-item>
-					<el-descriptions-item label="电子邮箱">{{ detail.email }}</el-descriptions-item>
-					<el-descriptions-item label="酒店/公司名称(中)">{{ detail.hotel_zh }}</el-descriptions-item>
-					<el-descriptions-item label="酒店/公司名称(英)">{{ detail.hotel_eh }}</el-descriptions-item>
-					<el-descriptions-item label="地址(中)">{{ detail.address_zh }}</el-descriptions-item>
-					<el-descriptions-item label="地址(英)">{{ detail.address_en }}</el-descriptions-item>
-					<el-descriptions-item label="邮政编码(中)">{{ detail.postal_code_zh }}</el-descriptions-item>
-					<el-descriptions-item label="邮政编码(英)">{{ detail.postal_code_en }}</el-descriptions-item>
-					<el-descriptions-item label="品牌名称(中)">{{ detail.brand_zh }}</el-descriptions-item>
-					<el-descriptions-item label="品牌名称(英)">{{ detail.brand_en }}</el-descriptions-item>
-					<el-descriptions-item label="隶属关系(中)">{{ detail.affiliation_zh }}</el-descriptions-item>
-					<el-descriptions-item label="隶属关系(英)">{{ detail.affiliation_en }}</el-descriptions-item>
-					<el-descriptions-item label="品牌组合">{{ detail.brand_group }}</el-descriptions-item>
-					<el-descriptions-item label="固定电话">{{ detail.phone }}</el-descriptions-item>
-					<el-descriptions-item label="创建时间">{{ detail.created_at }}</el-descriptions-item>
-					<el-descriptions-item label="更新时间">{{ detail.updated_at }}</el-descriptions-item>
+					<el-descriptions-item label="人才标签">
+						<el-tag v-for="k in talentTags" :key="k.talent" type="success" class="mr-10px my-10px">{{ k.tag }}</el-tag>
+					</el-descriptions-item>
+					<el-descriptions-item 
+						v-for="val in keyArr" 
+						:key="val.value" 
+						:label="val.label"
+					>
+						{{ detail[val.value] ?? '' }}
+					</el-descriptions-item>
 					<el-descriptions-item label="状态">
 						<el-tag :type="detail.status === 'active' ? 'primary' : 'danger'">
 							{{ detail.status === 'active' ? '已启用' : '已禁用' }}
@@ -83,9 +74,15 @@
 				<div class="mt-30px career">
 					<div class="el-descriptions__header el-descriptions__title">职业轨迹</div>
 					<el-table :data="detail.career_path" border>
-						<el-table-column prop="company_name" label="酒店名称" />
-						<el-table-column prop="position" label="职位名称" />
-						<el-table-column prop="current_date" label="日期" />
+						<el-table-column prop="company_name" label="酒店名称">
+							<template #default="{ row }">{{ row.company_name ?? '-'}}</template>
+						</el-table-column>
+						<el-table-column prop="position" label="职位名称">
+							<template #default="{ row }">{{ row.position ?? '-'}}</template>
+						</el-table-column>
+						<el-table-column prop="current_date" label="日期">
+							<template #default="{ row }">{{ row.current_date ?? '-'}}</template>
+						</el-table-column>
 					</el-table>
 				</div>
 			</div>
@@ -111,7 +108,31 @@ const abortController = ref(null)
 const drawer = ref(false)
 const detailsLoading = ref(false)
 const detail = ref({})
+const talentTags = ref([])
 const previewUrl = ref(null)
+const keyArr = [
+  { label: '中文名', value: 'name_zh' },
+  { label: '英文名', value: 'name_en' },
+  { label: '职位/头衔(中)', value: 'title_zh' },
+  { label: '职位/头衔(英)', value: 'title_en' },
+  { label: '手机号码', value: 'mobile' },
+  { label: '电子邮箱', value: 'email' },
+  { label: '酒店/公司名称(中)', value: 'hotel_zh' },
+  { label: '酒店/公司名称(英)', value: 'hotel_eh' },
+  { label: '地址(中)', value: 'address_zh' },
+  { label: '地址(英)', value: 'address_en' },
+  { label: '邮政编码(中)', value: 'postal_code_zh' },
+  { label: '邮政编码(英)', value: 'postal_code_en' },
+  { label: '品牌名称(中)', value: 'brand_zh' },
+  { label: '品牌名称(英)', value: 'brand_en' },
+  { label: '隶属关系(中)', value: 'affiliation_zh' },
+  { label: '隶属关系(英)', value: 'affiliation_en' },
+  { label: '品牌组合', value: 'brand_group' },
+  { label: '固定电话', value: 'phone' },
+  { label: '创建时间', value: 'created_at' },
+  { label: '更新时间', value: 'updated_at' }
+]
+
 const handleDetails = async (id) => {
 	if (!id) return
 
@@ -126,6 +147,10 @@ const handleDetails = async (id) => {
       const data = await talentLabelingApi.getTalentCardByImagePath(result.image_path)
       previewUrl.value = URL.createObjectURL(data)
     }
+
+		// 获取人才标签
+		const tagData = await talentLabelingApi.getTalentTagById(id)
+		talentTags.value = tagData ?? []
   } finally {
 		detailsLoading.value = false
 	}