|
@@ -49,7 +49,7 @@
|
|
</el-table>
|
|
</el-table>
|
|
|
|
|
|
<!-- 选择来源 -->
|
|
<!-- 选择来源 -->
|
|
- <Dialog title="解析方式" v-model="openSelect" width="500" @close="openSelect = false">
|
|
|
|
|
|
+ <Dialog title="新增" v-model="openSelect" width="500" @close="openSelect = false">
|
|
<el-radio-group v-model="radioValue" size="large" class="radioBox">
|
|
<el-radio-group v-model="radioValue" size="large" class="radioBox">
|
|
<el-radio
|
|
<el-radio
|
|
v-for="item in radioList"
|
|
v-for="item in radioList"
|
|
@@ -61,10 +61,15 @@
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
<template #footer>
|
|
<template #footer>
|
|
<el-button type="primary" @click="handleSelect">确 认</el-button>
|
|
<el-button type="primary" @click="handleSelect">确 认</el-button>
|
|
- <el-button @click="null">取 消</el-button>
|
|
|
|
|
|
+ <el-button @click="openSelect = false">取 消</el-button>
|
|
</template>
|
|
</template>
|
|
</Dialog>
|
|
</Dialog>
|
|
|
|
|
|
|
|
+ <!-- 人员搜索 -->
|
|
|
|
+ <Dialog :title="radioObject.menduner" v-model="openSearch" width="1200" @close="openSearch = false">
|
|
|
|
+ <Search @detail="handleDetail" :detailButTxt="detailButTxt" />
|
|
|
|
+ </Dialog>
|
|
|
|
+
|
|
<!-- 解析文件上传 -->
|
|
<!-- 解析文件上传 -->
|
|
<Dialog :title="radioObject[radioValue]" v-model="dialog_upload" :width="DialogWidth" @close="handleCancel">
|
|
<Dialog :title="radioObject[radioValue]" v-model="dialog_upload" :width="DialogWidth" @close="handleCancel">
|
|
<div>
|
|
<div>
|
|
@@ -120,12 +125,33 @@
|
|
</Dialog>
|
|
</Dialog>
|
|
|
|
|
|
<!-- 解析回显 -->
|
|
<!-- 解析回显 -->
|
|
- <Dialog :title="radioObject[radioValue]" v-model="dialog_analysisInfo" width="80%">
|
|
|
|
|
|
+ <Dialog :title="radioObject[radioValue]" v-model="dialog_analysisInfo" width="90%">
|
|
<div class="analysisInfoBox">
|
|
<div class="analysisInfoBox">
|
|
<div class="analysisFile">
|
|
<div class="analysisFile">
|
|
<!-- 门墩儿人才库 -->
|
|
<!-- 门墩儿人才库 -->
|
|
<template v-if="radioValue === 'menduner'">
|
|
<template v-if="radioValue === 'menduner'">
|
|
- <Search @detail="handleDetail" :detailButTxt="detailButTxt" :searchName="formData?.name_zh || formData?.name_en || ''" />
|
|
|
|
|
|
+
|
|
|
|
+ <el-tabs v-model="activeName" type="border-card">
|
|
|
|
+ <el-tab-pane label="基本信息" name="info">
|
|
|
|
+ <el-card shadow="never" class="m-b-20px">
|
|
|
|
+ <template #header>
|
|
|
|
+ <CardTitle title="人才详情" />
|
|
|
|
+ </template>
|
|
|
|
+ <Info :id="id" :user-id="userId" />
|
|
|
|
+ </el-card>
|
|
|
|
+
|
|
|
|
+ <el-card shadow="never" class="m-b-20px">
|
|
|
|
+ <template #header>
|
|
|
|
+ <CardTitle title="工作经历" />
|
|
|
|
+ </template>
|
|
|
|
+ <Exp :user-id="userId" />
|
|
|
|
+ </el-card>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+
|
|
|
|
+ <el-tab-pane label="附件简历" name="Attachment">
|
|
|
|
+ <Attachment showPreview :user-id="userId" />
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ </el-tabs>
|
|
</template>
|
|
</template>
|
|
<!-- 简历解析 -->
|
|
<!-- 简历解析 -->
|
|
<template v-if="radioValue === 'file'">
|
|
<template v-if="radioValue === 'file'">
|
|
@@ -223,6 +249,9 @@ import webAnalysis from './components/webAnalysis.vue'
|
|
import { useUpload } from '@/components/UploadFile/src/useUpload'
|
|
import { useUpload } from '@/components/UploadFile/src/useUpload'
|
|
import { commonApi } from '@/api/menduner/common'
|
|
import { commonApi } from '@/api/menduner/common'
|
|
import { Base64 } from 'js-base64'
|
|
import { Base64 } from 'js-base64'
|
|
|
|
+import Info from '@/views/menduner/system/person/details/components/info.vue'
|
|
|
|
+import Exp from '@/views/menduner/system/person/details/components/exp.vue'
|
|
|
|
+import Attachment from '@/views/menduner/system/person/details/components/attachment.vue'
|
|
|
|
|
|
const baseUrl = import.meta.env.VITE_PREVIEW_URL
|
|
const baseUrl = import.meta.env.VITE_PREVIEW_URL
|
|
const { uploadUrl, httpRequest } = useUpload()
|
|
const { uploadUrl, httpRequest } = useUpload()
|
|
@@ -325,6 +354,7 @@ const handleDisable = async (item) => {
|
|
}
|
|
}
|
|
|
|
|
|
// 更新
|
|
// 更新
|
|
|
|
+const activeName = ref('info')
|
|
const dialog_analysisInfo = ref(false)
|
|
const dialog_analysisInfo = ref(false)
|
|
const formLoading = ref(false)
|
|
const formLoading = ref(false)
|
|
const analysisType = ref('')
|
|
const analysisType = ref('')
|
|
@@ -375,6 +405,7 @@ const handleSave = async () => {
|
|
} finally {
|
|
} finally {
|
|
cardFileQuery.value = null
|
|
cardFileQuery.value = null
|
|
formLoading.value = false
|
|
formLoading.value = false
|
|
|
|
+ openSearch.value = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -468,18 +499,6 @@ const handleResetUpload = async () => {
|
|
resumeAnalysisToForm('reset') // 简历解析
|
|
resumeAnalysisToForm('reset') // 简历解析
|
|
}
|
|
}
|
|
|
|
|
|
-const detailButTxt = '应用'
|
|
|
|
-// 搜索-查看详情
|
|
|
|
-const handleDetail = async (userId) => {
|
|
|
|
- if (!userId) return message.warning('请先选择人才!')
|
|
|
|
- try {
|
|
|
|
- const data = await TalentMap.getTalentMapDetail(userId)
|
|
|
|
- // 去除id
|
|
|
|
- resumeAnalysisToForm(data) // 简历解析
|
|
|
|
- message.success(`${detailButTxt}成功`)
|
|
|
|
- } catch {}
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
// 简历解析数据解构赋值
|
|
// 简历解析数据解构赋值
|
|
const resumeAnalysisToForm = (data) => {
|
|
const resumeAnalysisToForm = (data) => {
|
|
if (data === 'reset') {
|
|
if (data === 'reset') {
|
|
@@ -516,6 +535,23 @@ const cardUploadChange = (raw) => {
|
|
cardUploadRow.value = raw
|
|
cardUploadRow.value = raw
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// 人员搜索
|
|
|
|
+const detailButTxt = '加入人才地图'
|
|
|
|
+const openSearch = ref(false)
|
|
|
|
+const id = ref(null)
|
|
|
|
+const userId = ref(null)
|
|
|
|
+const handleDetail = async ({id: use_id, userId: use_userId}) => {
|
|
|
|
+ if (!use_userId || !use_userId) return message.warning('请先选择人才!')
|
|
|
|
+ id.value = use_id; userId.value = use_userId
|
|
|
|
+ try {
|
|
|
|
+ const data = await TalentMap.getTalentMapDetail(use_userId)
|
|
|
|
+ // 去除id
|
|
|
|
+ resumeAnalysisToForm(data) // 简历解析
|
|
|
|
+ dialog_analysisInfo.value = true
|
|
|
|
+ // message.success(`操作成功`)
|
|
|
|
+ } catch {}
|
|
|
|
+}
|
|
|
|
+
|
|
const DialogWidth = ref('500')
|
|
const DialogWidth = ref('500')
|
|
const showWebAnalysis = ref(false)
|
|
const showWebAnalysis = ref(false)
|
|
// 选择解析方式
|
|
// 选择解析方式
|
|
@@ -528,7 +564,7 @@ const handleSelect = () => {
|
|
createAnalysisNum.value++
|
|
createAnalysisNum.value++
|
|
}
|
|
}
|
|
if (type === 'menduner') {
|
|
if (type === 'menduner') {
|
|
- dialog_analysisInfo.value = true
|
|
|
|
|
|
+ openSearch.value = true
|
|
return
|
|
return
|
|
}
|
|
}
|
|
if (type === 'web') {
|
|
if (type === 'web') {
|
|
@@ -546,7 +582,7 @@ const handleCancel = () => {
|
|
}
|
|
}
|
|
|
|
|
|
const openSelect = ref(false)
|
|
const openSelect = ref(false)
|
|
-const radioObject = { card: '名片解析', file: '简历解析', web: '网页解析', menduner: '门墩儿人才库(普通新增)' }
|
|
|
|
|
|
+const radioObject = { card: '名片解析', file: '简历解析', web: '网页解析', menduner: '门墩儿招聘' }
|
|
const radioList = ref(Object.keys(radioObject).map(key => ({ value: key, label: radioObject[key]}) ))
|
|
const radioList = ref(Object.keys(radioObject).map(key => ({ value: key, label: radioObject[key]}) ))
|
|
const defaultValue = radioList.value[0].value // 默认选中
|
|
const defaultValue = radioList.value[0].value // 默认选中
|
|
const radioValue = ref(defaultValue)
|
|
const radioValue = ref(defaultValue)
|