|
@@ -23,22 +23,131 @@
|
|
|
height="calc(100vh - 400px)"
|
|
|
:showFixedLastItem="true"
|
|
|
itemKey="id"
|
|
|
- ></CtTable>
|
|
|
+ >
|
|
|
+ <template #actions="{ item }">
|
|
|
+ <v-btn variant="text" color="primary" @click.stop="handleDetail(item)">详 情</v-btn>
|
|
|
+ </template>
|
|
|
+ </CtTable>
|
|
|
</v-card>
|
|
|
+ <v-navigation-drawer v-model="showDetail" absolute location="right" rounded temporary width="700" class="pa-5">
|
|
|
+ <!-- 照片 -->
|
|
|
+ <div v-if="detail.picUrl" style="width: 300px; height: 300px; margin: 0 auto;">
|
|
|
+ <v-img :src="detail.picUrl" width="300" height="300" />
|
|
|
+ </div>
|
|
|
+ <!-- 基本信息 -->
|
|
|
+ <baseInfo :data="detail"></baseInfo>
|
|
|
+ <!-- 职业轨迹 -->
|
|
|
+ <careerPath :data="detail"></careerPath>
|
|
|
+ </v-navigation-drawer>
|
|
|
</div>
|
|
|
|
|
|
<Loading :visible="annotationLoading"></Loading>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-defineOptions({ name: 'NewTalentMapAnnotation' })
|
|
|
+defineOptions({ name: 'NewTalentMapSearch' })
|
|
|
import { ref } from 'vue'
|
|
|
import { getTalentList } from '@/api/recruit/enterprise/talentMap/search'
|
|
|
import Snackbar from '@/plugins/snackbar'
|
|
|
+import baseInfo from './components/baseInfo.vue'
|
|
|
+import careerPath from './components/careerPath.vue'
|
|
|
|
|
|
const loading = ref(false)
|
|
|
+const annotationLoading = ref(false)
|
|
|
const content = ref('')
|
|
|
-const items = ref([])
|
|
|
+// const items = ref([])
|
|
|
+const items = ref([
|
|
|
+ {
|
|
|
+ brand_group_english_name: null,
|
|
|
+ brand_group_name: null,
|
|
|
+ chinese_name: "陈静",
|
|
|
+ email: "angela.chen@dossen.com",
|
|
|
+ english_name: "Angela Chen",
|
|
|
+ hotel_chinese_name: "东呈集团",
|
|
|
+ hotel_english_name: "DOSSEN",
|
|
|
+ hotel_tags: [
|
|
|
+ {
|
|
|
+ tag_category: null,
|
|
|
+ tag_en_name: null,
|
|
|
+ tag_name: null
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ hotel_updated: "2025-05-13 20:12:47",
|
|
|
+ mobile: "+86 138 2502 1012, +852 92651012",
|
|
|
+ position_chinese: "国际事业部资深副总裁",
|
|
|
+ position_english: "Senior Vice President of International Business Department",
|
|
|
+ talent_id: 31,
|
|
|
+ talent_tags: [
|
|
|
+ {
|
|
|
+ tag_category: null,
|
|
|
+ tag_en_name: null,
|
|
|
+ tag_name: null
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ talent_updated: "2025-05-13 20:12:47",
|
|
|
+ work_relation_updated: "2025-05-13 20:12:47"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ brand_group_english_name: null,
|
|
|
+ brand_group_name: null,
|
|
|
+ chinese_name: "陈玮",
|
|
|
+ email: "cw928383712@163.com",
|
|
|
+ english_name: null,
|
|
|
+ hotel_chinese_name: "苏州木渎古镇 ROSSO酒店",
|
|
|
+ hotel_english_name: "ROSSO Hotel Suzhou Mudu Ancient Town",
|
|
|
+ hotel_tags: [
|
|
|
+ {
|
|
|
+ tag_category: null,
|
|
|
+ tag_en_name: null,
|
|
|
+ tag_name: null
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ hotel_updated: "2025-05-13 20:05:03",
|
|
|
+ mobile: "13073381364",
|
|
|
+ position_chinese: "销售总监",
|
|
|
+ position_english: "Sales Director",
|
|
|
+ talent_id: 30,
|
|
|
+ talent_tags: [
|
|
|
+ {
|
|
|
+ tag_category: null,
|
|
|
+ tag_en_name: null,
|
|
|
+ tag_name: null
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ talent_updated: "2025-05-13 20:05:03",
|
|
|
+ work_relation_updated: "2025-05-13 20:05:03"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ brand_group_english_name: null,
|
|
|
+ brand_group_name: null,
|
|
|
+ chinese_name: "陈静",
|
|
|
+ email: "angela.chen@dossen.com",
|
|
|
+ english_name: "Angela Chen",
|
|
|
+ hotel_chinese_name: "东呈集团",
|
|
|
+ hotel_english_name: "DOSSEN",
|
|
|
+ hotel_tags: [
|
|
|
+ {
|
|
|
+ tag_category: null,
|
|
|
+ tag_en_name: null,
|
|
|
+ tag_name: null
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ hotel_updated: "2025-05-13 18:11:38",
|
|
|
+ mobile: "+86 138 2502 1012, +852 92651012",
|
|
|
+ position_chinese: "国际事业部资深副总裁",
|
|
|
+ position_english: "Senior Vice President of International Business Department",
|
|
|
+ talent_id: 29,
|
|
|
+ talent_tags: [
|
|
|
+ {
|
|
|
+ tag_category: null,
|
|
|
+ tag_en_name: null,
|
|
|
+ tag_name: null
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ talent_updated: "2025-05-13 18:11:38",
|
|
|
+ work_relation_updated: "2025-05-13 18:11:38"
|
|
|
+ }
|
|
|
+])
|
|
|
const headers = [
|
|
|
{ title: '姓名', key: 'chinese_name', sortable: false },
|
|
|
{ title: '酒店名称', key: 'hotel_chinese_name', sortable: false },
|
|
@@ -46,6 +155,7 @@ const headers = [
|
|
|
{ title: '邮箱', key: 'email', sortable: false },
|
|
|
{ title: '联系电话', key: 'mobile', sortable: false },
|
|
|
{ title: '更新时间', key: 'talent_updated', sortable: false },
|
|
|
+ { title: '操作', key: 'actions', sortable: false, align: 'center' }
|
|
|
]
|
|
|
const textItem = ref({
|
|
|
type: 'text',
|
|
@@ -67,13 +177,29 @@ const getList = async () => {
|
|
|
loading.value = false
|
|
|
}
|
|
|
}
|
|
|
-getList()
|
|
|
+// getList()
|
|
|
+
|
|
|
+
|
|
|
+// 查看详情
|
|
|
+const showDetail = ref(false)
|
|
|
+const detail = ref({})
|
|
|
+const handleDetail = async (item) => {
|
|
|
+ // if (!item?.id) {
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // const result = await getNewAppointmentsDetail(item.id)
|
|
|
+ // if (!result || !Object.keys(result).length) return Snackbar.warning('暂无详细信息,去查看其他人的信息吧~')
|
|
|
+ // detail.value = result
|
|
|
+ showDetail.value = true
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
// 搜索
|
|
|
const handleSearch = async () => {
|
|
|
if (!content.value) return Snackbar.warning('请输入您的描述信息定位人才')
|
|
|
getList()
|
|
|
}
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|