浏览代码

人才详情

Xiao_123 11 月之前
父节点
当前提交
469c54475f

+ 2 - 3
src/api/enterprise.js

@@ -79,9 +79,8 @@ export const saveUserInfo = async (data) => {
 }
 
 // 招聘端-获取人才的在线简历详情
-export const getPersonCvDetail = async (params) => {
+export const getPersonCvDetail = async (userId) => {
   return await request.get({
-    url: '/app-admin-api/menduner/system/person-cv/detail',
-    params
+    url: `/app-admin-api/menduner/system/person-cv/detail?userId=${userId}`
   })
 }

+ 7 - 1
src/views/enterprise/personnelManagement/components/table.vue

@@ -15,7 +15,7 @@
     >
       <template #bottom></template>
       <template v-slot:item.name="{ item }">
-        <div class="d-flex align-center">
+        <div class="d-flex align-center cursor-pointer" @click="handleToPersonDetail(item)">
           <v-badge
             bordered
             offset-y="6"
@@ -74,6 +74,12 @@ const headers = [
 const handleInappropriate = () => {
   console.log(selected.value, 'handleInappropriate')
 }
+
+// 人才详情
+const handleToPersonDetail = ({ userId }) => {
+  if (!userId) return
+  window.open(`/enterprise/talentPool/details/${userId}`)
+}
 </script>
 
 <style scoped lang="scss">

+ 27 - 17
src/views/enterprise/talentPool/components/details.vue

@@ -1,50 +1,49 @@
 <!-- 人才库 - 人才详情 -->
 <template>
   <div class="d-flex justify-center mb-10">
-    <div style="width: 940px;overflow-y: auto;background: #fff;" class="px-8 py-3 my-n3 mr-3">
+    <div v-if="Object.keys(cvData).length" style="width: 940px;overflow-y: auto;background: #fff;" class="px-8 py-3 my-n3 mr-3">
       <!-- 基本信息 -->
-      <baseInfo class="mt-5"></baseInfo>
+      <baseInfo class="mt-5" :data="cvData.person"></baseInfo>
       <!-- 个人优势 -->
       <div class="d-flex mt-8">
         <span class="mr-6">{{ $t('resume.personalAdvantages') }}</span>
-        <div style="flex: 1; white-space: pre-line; font-size: 15px;" v-if="advantage" v-html="advantage"></div>
+        <div style="flex: 1; white-space: pre-line; font-size: 15px;" v-if="cvData?.person?.advantage" v-html="cvData.person.advantage"></div>
       </div>
       <!-- 职业技能 -->
       <div class="d-flex mt-8">
         <span class="mr-6">{{ $t('resume.vocationalSkills') }}</span>
-        <vocationalSkills style="flex: 1;"></vocationalSkills>
+        <vocationalSkills style="flex: 1;" :data="cvData.skillList"></vocationalSkills>
       </div>
       <!-- 求职意向 -->
       <div class="d-flex mt-8">
         <span class="mr-6">{{ $t('resume.jobIntention') }}</span>
-        <jobIntention style="flex: 1;" :list="[]"></jobIntention>
+        <jobIntention style="flex: 1;" :data="cvData.interestedList"></jobIntention>
       </div>
       <!-- 工作经历 -->
       <div class="d-flex mt-8">
         <span class="mr-6">{{ $t('resume.workExperience') }}</span>
-        <workExperience style="flex: 1;"></workExperience>
+        <workExperience style="flex: 1;" :data="cvData.workList"></workExperience>
       </div>
       <!-- 项目经历 -->
       <div class="d-flex mt-8">
         <span class="mr-6">{{ $t('resume.projectExperience') }}</span>
-        <projectExperience style="flex: 1;"></projectExperience>
+        <projectExperience style="flex: 1;" :data="cvData.projectList"></projectExperience>
       </div>
       <!-- 培训经历 -->
       <div class="d-flex mt-8">
         <span class="mr-6">{{ $t('resume.trainingExperience') }}</span>
-        <trainingExperience style="flex: 1;"></trainingExperience>
+        <trainingExperience style="flex: 1;" :data="cvData.trainList"></trainingExperience>
       </div>
       <!-- 教育经历 -->
       <div class="d-flex mt-8">
         <span class="mr-6">{{ $t('resume.educationExp') }}</span>
-        <educationExp style="flex: 1;"></educationExp>
+        <educationExp style="flex: 1;" :data="cvData.eduList"></educationExp>
       </div>
       <!-- 附件简历 -->
-      <div class="d-flex mt-8">
+      <!-- <div class="d-flex mt-8">
         <span class="mr-6">{{ $t('resume.attachmentResume') }}</span>
         <attachmentResume style="flex: 1;"></attachmentResume>
-      </div>
-      <!--  -->
+      </div> -->
     </div>
     <div class="operate pa-3">
       <v-list>
@@ -63,6 +62,7 @@
 </template>
 
 <script setup>
+defineOptions({name: 'enterprise-talentPool-details'})
 import baseInfo from './details/baseInfo.vue'
 import vocationalSkills from './details/vocationalSkills.vue'
 import jobIntention from './details/jobIntention.vue'
@@ -70,10 +70,12 @@ import workExperience from './details/workExperience.vue'
 import projectExperience from './details/projectExperience.vue'
 import trainingExperience from './details/trainingExperience.vue'
 import educationExp from './details/educationExp.vue'
-import attachmentResume from './details/attachmentResume.vue'
-defineOptions({name: 'enterprise-talentPool-details'})
+// import attachmentResume from './details/attachmentResume.vue'
+import { getPersonCvDetail } from '@/api/enterprise'
+import { ref } from 'vue'
+import { useRouter } from 'vue-router'
 
-const advantage = "1、熟悉 Java  技术平台,并稳定形成生产力,CCF 中国计算机学会会员,获得微软 MCP、MCSA 认证。 \n2、熟悉通用缓存/DB /搜索引擎/消息队列等中间件。对业内高可用高并发及分布式技术解决方案有充分理解。\n3、同时具备常用大数据解决方案实践经验,包括实时计算(Storm/Flink )及离线计算(Hive/ETL/Spark)。 \n4、对搜索推荐/订单交易等业务方向具备多年实践经验。\n5、上班。"
+const router = useRouter()
 const operateItems = [
   { text: '邀请面试', icon: 'mdi-account-check' },
   { text: '不合适', icon: 'mdi-close-circle-outline' },
@@ -81,6 +83,16 @@ const operateItems = [
   { text: '加入人才库', icon: 'mdi-tab-plus' },
   { text: '操作记录', icon: 'mdi-clock-edit-outline' },
 ]
+
+// 获取人才详情
+const cvData = ref({})
+const getCvDetail = async () => {
+  const { id } = router.currentRoute.value.params
+  const data = await getPersonCvDetail(id)
+  cvData.value = data
+}
+getCvDetail()
+
 </script>
 <style lang="scss" scoped>
 .operate {
@@ -88,7 +100,5 @@ const operateItems = [
   height: 500px; // 272px
   position: sticky;
   top: 60px;
-  // background-color: var(--default-bgc);
-  // background-color: #f7f8fa;
 }
 </style>

+ 20 - 47
src/views/enterprise/talentPool/components/details/baseInfo.vue

@@ -2,15 +2,14 @@
 <template>
   <div class="d-flex">
     <!-- 头像 -->
-    <div class="avatarsBox" @mouseover="showIcon = true" @mouseleave="showIcon = false">
+    <div class="avatarsBox">
       <v-badge 
         bordered 
         offset-x="-25" 
         offset-y="33" 
         :color="info?.sex ? (info?.sex === '1' ? '#1867c0' : 'error') : 'error'" 
         :icon="info?.sex ? (info?.sex === '1' ? 'mdi-gender-male' : 'mdi-gender-female') : 'mdi-gender-female'">
-        <v-avatar size=80 :image="info?.avatar || 'https://minio.citupro.com/dev/menduner/7.png'">
-        </v-avatar>
+        <v-avatar size=80 :image="info?.avatar || 'https://minio.citupro.com/dev/menduner/7.png'"></v-avatar>
       </v-badge>
     </div>
     <!-- 信息 -->
@@ -32,84 +31,58 @@
           </div>
           <div>
             <span class="mdi mdi-calendar-blank-outline"></span>
-            <span>{{ info?.expTypeText }}</span>
+            <span>{{ info?.expName }}</span>
           </div>
           <div>
             <span class="mdi mdi-school-outline"></span>
-            <span>{{ info?.eduTypeText }}</span>
+            <span>{{ info?.eduName }}</span>
           </div>
-          <!-- <div>
-            <span class="mdi mdi-briefcase-outline"></span>
-            <span>{{ info?.jobTypeText }}</span>
-          </div> -->
           <div>
             <span class="mdi mdi-tag-outline"></span>
-            <span>{{ info?.jobStatusText }}</span>
+            <span>{{ info?.jobStatusName }}</span>
           </div>
           <div>
             <span class="mdi mdi-cake-variant-outline"></span>
-            <span>{{ info?.birthdayText }}</span>
+            <span>{{ timesTampChange(info?.birthday).slice(0, 10) }}</span>
           </div>
           <div>
             <span class="mdi mdi-account-heart"></span>
-            <span>{{ info?.maritalText }}</span>
+            <span>{{ info?.maritalStatusName }}</span>
           </div>
           <div>
             <span>{{ $t('resume.firstWorkTime') }}:</span>
-            <span>{{ info?.firstWorkTimeText }}</span>
+            <span>{{ timesTampChange(info?.firstWorkTime).slice(0, 10) }}</span>
           </div>
         </div>
       </div>
       <div class="mt-4">
         <span style="font-size: 15px;">个人画像:</span>
-        <v-chip size="small" label v-for="(k, i) in welfareList.slice(0, 8)" :key="i" class="mr-2" color="primary">{{ k }}</v-chip>
+        <v-chip size="small" label v-for="(k, i) in ['响应', '改变', '诚信', '进取精神', '信任', '卓越']" :key="i" class="mr-2" color="primary">{{ k }}</v-chip>
       </div>
     </div>
   </div>
 </template>
 
 <script setup>
-import { ref } from 'vue'
 defineOptions({name: 'enterprise-talentPool-details-baseInfo'})
+import { ref, defineProps } from 'vue'
+import { timesTampChange } from '@/utils/date'
+import { dealDictObjData } from '@/views/recruit/position/components/dict'
 
-const welfareList = ref(['响应', '改变', '诚信', '进取精神', '信任', '卓越'])
-let info = ref(
-  {
-    id: "1793583467288223745", 
-    userId: "1", 
-    name: "安琪", 
-    sex: "1", 
-    avatar: "http://menduner.citupro.com:6868/admin-api/infra/file/24/get/241e594d4473872eabb312673f42241a2e9598298cb7d9d791cc9c8cb65fb058.jpg", 
-    phone: "13229740091", 
-    email: "citupro.com", 
-    wxCode: null, 
-    birthday: 946656000000, 
-    maritalStatus: "3", 
-    areaId: "110101", 
-    jobType: "3", 
-    jobStatus: "2", 
-    firstWorkTime: 1020182400000, 
-    expType: "7", 
-    eduType: "99", 
-    createTime: 1716487396000, 
-    birthdayText: "2000-01-01", 
-    firstWorkTimeText: "2002-05-01", 
-    areaName: "东城区", 
-    eduTypeText: "其他", 
-    expTypeText: "10年以上", 
-    sexTypeText: "男", 
-    jobTypeText: "实习", 
-    jobStatusText: "在职-考虑机会", 
-    maritalText: "保密",
-  }
-)
+const props = defineProps({
+  data: Object
+})
+const info = ref({})
+if (props.data && Object.keys(props.data).length) {
+  info.value = dealDictObjData({}, props.data)
+}
 </script>
+
 <style lang="scss" scoped>
 .avatarsBox {
   height: 80px;
   width: 80px;
   position: relative;
-  cursor: pointer;
   // margin: 32px;
   margin-right: 40px;
   .img {

+ 6 - 33
src/views/enterprise/talentPool/components/details/educationExp.vue

@@ -33,45 +33,18 @@
 </template>
 
 <script setup>
+defineOptions({name: 'enterprise-talentPool-details-educationExp'})
 import { reactive, ref  } from 'vue'
 import { timesTampChange } from '@/utils/date'
 import { getText } from '@/utils/getText'
 import { getDict } from '@/hooks/web/useDictionaries'
 
-defineOptions({name: 'enterprise-talentPool-details-educationExp'})
+const props = defineProps({
+  data: Array
+})
 
-const dataList = ref([
-  {
-    id: "1795302374122373121", 
-    userId: "1", 
-    schoolId: null, 
-    schoolName: "广州大学", 
-    educationType: "4", 
-    educationSystemType: "0", 
-    majorId: null, 
-    major: "计算机", 
-    startTime: 1715184000000, 
-    endTime: 1716566400000, 
-    content: "​程序设计基础、面向对象程序设计、软件工程导论、离散结构、数据结构与算法、工程经济学、团队激励与沟通、软件工程职业实践、计算机系统基础、操作系统、数据库概论、网络及其计算、人机交互的软件工程方法、软件工程综合实践、软件构造、软件设计与体系结构、软件质量保证与测试等。", 
-    createTime: 1716868416000, 
-    updateTime: 1718184443000
-  }, 
-  {
-    id: "1795407945051865089", 
-    userId: "1", 
-    schoolId: "1926", 
-    schoolName: "广州医科大学", 
-    educationType: "4", 
-    educationSystemType: "1", 
-    majorId: "378", 
-    major: "医学信息工程", 
-    startTime: 1715270400000, 
-    endTime: 1716480000000, 
-    content: "在校经历", 
-    createTime: 1716893586000, 
-    updateTime: 1718184443000
-  }, 
-])
+const dataList = ref([])
+if (props.data?.length) dataList.value = props.data
 
 // 获取字典内容
 const dictList = [

+ 7 - 111
src/views/enterprise/talentPool/components/details/jobIntention.vue

@@ -4,8 +4,6 @@
       :class="['position-item', 'mb-1']" 
       v-for="(k, i) in interestList" 
       :key="'jobIntention' + i"
-      @mouseenter="k.active = true" 
-      @mouseleave="k.active = false"
     >
       <div class="d-flex">
         <div>{{ k.position }}</div>
@@ -23,130 +21,28 @@
 </template>
 
 <script setup>
-import { ref } from 'vue';
+import { ref, defineProps } from 'vue'
 import { dealJobData } from './dict'
 defineOptions({name: 'enterprise-talentPool-details-jobIntention'})
+
 const props = defineProps({
-  list: {
+  data: {
     type: Array,
     default: () => []
   }
 })
+
 // 获取求职意向
-const interestList = ref([
-  {
-    id: "1793832094791270402", 
-    jobType: "2", 
-    positionId: "14", 
-    industryIdList: [
-      "2", 
-      "4"
-    ], 
-    payFrom: 14000, 
-    payTo: 17000, 
-    workAreaId: "140171", 
-    interestedAreaIdList: [
-      "440106", 
-      "440105"
-    ], 
-    createTime: 1716546674000, 
-    updateTime: 1716970523000, 
-    position: "区块链工程师", 
-    industry: [
-      {
-        id: "2", 
-        nameCn: "互联网", 
-        nameEn: null
-      }, 
-      {
-        id: "4", 
-        nameCn: "计算机软件", 
-        nameEn: null
-      }
-    ], 
-    workArea: "山西转型综合改革示范区", 
-    jobTypeName: "临时"
-  }, 
-  {
-    id: "1795405184893648897", 
-    jobType: "2", 
-    positionId: "4", 
-    industryIdList: [
-      "2", 
-      "4", 
-      "6"
-    ], 
-    payFrom: 8000, 
-    payTo: 12000, 
-    workAreaId: "110101", 
-    interestedAreaIdList: null, 
-    createTime: 1716892928000, 
-    updateTime: 1716900602000, 
-    position: "C/C++", 
-    industry: [
-      {
-        id: "2", 
-        nameCn: "互联网", 
-        nameEn: null
-      }, 
-      {
-        id: "4", 
-        nameCn: "计算机软件", 
-        nameEn: null
-      }, 
-      {
-        id: "6", 
-        nameCn: "企业服务", 
-        nameEn: null
-      }
-    ], 
-    workArea: "东城区", 
-    jobTypeName: "临时"
-  }, 
-  {
-    id: "1795643155882860545", 
-    jobType: "0", 
-    positionId: "346", 
-    industryIdList: [
-      "16", 
-      "17"
-    ], 
-    payFrom: 8000, 
-    payTo: 10000, 
-    workAreaId: "500101", 
-    interestedAreaIdList: null, 
-    createTime: 1716949664000, 
-    updateTime: 1716949664000, 
-    position: "税务外勤会计", 
-    industry: [
-      {
-        id: "16", 
-        nameCn: "物联网", 
-        nameEn: null
-      }, 
-      {
-        id: "17", 
-        nameCn: "新零售", 
-        nameEn: null
-      }
-    ], 
-    workArea: "万州区", 
-    jobTypeName: "全职"
-  }
-])
-if (props.list?.length) interestList.value = dealJobData(props.list)
+const interestList = ref([])
+if (props.data?.length) interestList.value = dealJobData(props.data)
+
 </script>
 <style lang="scss" scoped>
 .position-item {
   display: flex;
   justify-content: space-between;
-  // cursor: pointer;
   border-radius: 6px;
-  // line-height: 40px;
   font-size: 15px;
-  // &:hover {
-  //   background-color: #f8f8f8;
-  // }
   span {
     font-size: 15px;
   }

+ 9 - 22
src/views/enterprise/talentPool/components/details/projectExperience.vue

@@ -20,30 +20,17 @@
 </template>
 
 <script setup>
+defineOptions({name: 'enterprise-talentPool-details-projectExperience'})
 import { timesTampChange } from '@/utils/date'
-import { ref } from 'vue'
+import { ref, defineProps } from 'vue'
+
+const props = defineProps({
+  data: Array
+})
+
+const dataList = ref([])
+if (props.data?.length) dataList.value = props.data
 
-defineOptions({name: 'enterprise-talentPool-details-projectExperience'})
-const dataList = ref([
-  {
-    id: "1793912379075624961", 
-    name: "阅读器APP", 
-    startTime: 1629475200000, 
-    endTime: 1636646400000, 
-    content: "可以通过互联网搜索喝=和载海量书籍,或者通过上传进行本地书籍。提供了多种海外知名小说资源给用户下载书籍,支持Epub、Mobi、PDF、txt、UMD等全主流阅读模式。", 
-    createTime: 1716565815000, 
-    updateTime: 1716565815000
-  }, 
-  {
-    id: "1793913376493699073", 
-    name: "商城harbor多模版1", 
-    startTime: 1629475200000, 
-    endTime: 1636646400000, 
-    content: "商城harbor多模版项目是一个味用户提供购物体验的独立站平台,主要向海外销售产品。", 
-    createTime: 1716566053000, 
-    updateTime: 1716566080000
-  }
-])
 </script>
 <style lang="scss" scoped>
 .exp {

+ 9 - 27
src/views/enterprise/talentPool/components/details/trainingExperience.vue

@@ -23,40 +23,22 @@
 </template>
 
 <script setup>
+defineOptions({name: 'enterprise-talentPool-details-trainingExperience'})
 import { ref  } from 'vue'
 import { timesTampChange } from '@/utils/date'
-defineOptions({name: 'enterprise-talentPool-details-trainingExperience'})
-const dataList = ref([
-  {
-    id: "1793902618095550466", 
-    startTime: 1711900800000, 
-    endTime: 1714406400000, 
-    orgName: "海外产品培训中心", 
-    course: "产品设计与分析", 
-    content: "同时具备常用大数据解决方案实践经验,包括实时计算(Storm/Flink )及离线计算(Hive/ETL/Spark)。 对搜索推荐/订单交易/经营分析等业务方向具备多年实践经验。 ", 
-    createTime: 1716563488000, 
-    updateTime: 1716564558000
-  }, 
-  {
-    id: "1793907923500040194", 
-    startTime: 1704038400000, 
-    endTime: 1714406400000, 
-    orgName: "广东教育基地", 
-    course: "微生物", 
-    content: "同时具备常用大数据解决方案实践经验,包括实时计算(Storm/Flink )及离线计算(Hive/ETL/Spark)。 对搜索推荐/订单交易/经营分析等业务方向具备多年实践经验。 ", 
-    createTime: 1716564753000, 
-    updateTime: 1716963732000
-  }
-])
+
+const props = defineProps({
+  data: Array
+})
+
+const dataList = ref([])
+if (props.data?.length) dataList.value = props.data
+
 </script>
 <style lang="scss" scoped>
 .exp {
   font-size: 15px;
-  // cursor: pointer;
   border-radius: 6px;
   padding: 2px 10px 8px;
-  // &:hover {
-  //   background-color: #f8f8f8;
-  // }
 }
 </style>

+ 2 - 6
src/views/enterprise/talentPool/components/details/vocationalSkills.vue

@@ -15,8 +15,9 @@
 <script setup>
 import { getText } from '@/utils/getText'
 import { getDict } from '@/hooks/web/useDictionaries'
-import { ref } from 'vue';
+import { ref } from 'vue'
 defineOptions({name: 'enterprise-talentPool-details-vocationalSkills'})
+
 const skills = [{ label: '英语四级', value: '0' }, { label: '英语六级', value: '1' }, { label: 'office办公软件', value: '2' }]
 const dataList = ref([
   {
@@ -42,12 +43,7 @@ getDict('menduner_skill_level').then(({ data }) => { // 字典
 </script>
 <style lang="scss" scoped>
 .dataList-item {
-  // cursor: pointer;
   border-radius: 6px;
-  // line-height: 36px;
-  // &:hover {
-  //   background-color: #f8f8f8;
-  // }
   span {
     font-size: 15px;
   }

+ 11 - 50
src/views/enterprise/talentPool/components/details/workExperience.vue

@@ -5,7 +5,7 @@
       v-for="(item, index) in dataList" :key="'workExperience' + index"
       :class="[' mx-n2', {'mt-3': index }]"
     >
-      <div class="educExpItem" @mouseenter="item.active = true" @mouseleave="item.active = false">
+      <div class="educExpItem">
         <div class="level1 d-flex align-center justify-space-between mb-2">
           <div>
             <span>{{ item.enterpriseName }}</span>
@@ -17,9 +17,6 @@
             <span class="color6 font15 ml-5">{{ item.positionName }}</span>
           </div>
         </div>
-        <!-- <div class="level2 my-2">
-          <span class="color6 font15">{{ item.positionName }}</span>
-        </div> -->
         <div class="level3">
           <span class="color6 font15">工作内容:{{ item.content }}</span>
         </div>
@@ -29,62 +26,26 @@
 </template>
 
 <script setup>
-import { timesTampChange } from '@/utils/date'
-import { ref } from 'vue';
 defineOptions({name: 'enterprise-talentPool-details-workExperience'})
+import { timesTampChange } from '@/utils/date'
+import { ref, defineProps } from 'vue'
+
+const props = defineProps({
+  data: Array
+})
+
+const dataList = ref([])
+if (props.data?.length) dataList.value = props.data
 
-const dataList = ref([
-  {
-    id: "1800817427231723521", 
-    enterpriseId: null, 
-    enterpriseName: "门墩儿信息科技有限公司", 
-    industryId: null, 
-    deptName: null, 
-    positionId: null, 
-    positionName: "后端开发", 
-    startTime: 1706716800000, 
-    endTime: 1732982400000, 
-    content: "1,根据产品需求说明书,编写测试计划,编写测试用例,根据测试用例执行情况,修改完善测试\n用例\n2,测试云卡通平台功能是否正确\n3,使用 postman 测试支付接口,消费接口等接口测试工作\n4,使用 sqlserver 查找设备通讯,白名单下传标识等\n5,使用 adb、安卓开发工具查看日志\n5,使用 jmeter 模拟多人操作云卡通平台等压力测试工作\n6,对软件缺陷进行登录,跟踪,分析,并提交软件缺陷报告给开发人员\n7,完成项目归纳,编写以维护云卡通平台等的产品说明书等技术文档\n8,负责维护版本迭代,提高用户体验。\n1,根据产品需求说明书,编写测试计划,编写测试用例,根据测试用例执行情况,修改完善测试\n用例\n2,测试云卡通平台功能是否正确\n3,使用 postman 测试支付接口,消费接口等接口测试工作\n4,使用 sqlserver 查找设备通讯,白名单下传标识等\n5,使用 adb、安卓开发工具查看日志\n5,使用 jmeter 模拟多人操作云卡通平台等压力测试工作\n6,对软件缺陷进行登录,跟踪,分析,并提交软件缺陷报告给开发人员\n7,完成项目归纳,编写以维护云卡通平台等的产品说明书等技术文档\n8,负责维护版本迭代,提高用户体验。", 
-    achievement: null, 
-    pay: null, 
-    payUnit: null, 
-    currencyType: null, 
-    skillList: null, 
-    createTime: 1718183307000, 
-    updateTime: 1718184370000
-  }, 
-  {
-    id: "1800817561520754690", 
-    enterpriseId: null, 
-    enterpriseName: "门墩儿信息科技有限公司", 
-    industryId: null, 
-    deptName: null, 
-    positionId: null, 
-    positionName: "Java", 
-    startTime: 1675180800000, 
-    endTime: 1682870400000, 
-    content: "1、测试终端app,web端网页的基本功能\n2、编写测试用例,完善测试用例;\n3、根据 API 文档进行接口测试;\n4、使用Python编程语言构建/维护UI、接口自动化脚本;\n5、 使用fiddler抓包工具辅助日常测试工作;\n6、 使用Navicat工具操作数据库;\n7、根据文档对接口进行压力测试并输出文档;\n8、 使用Appscan工具进行安全测试并输出文档;\n9、负责跟踪与回归禅道上的 bug;\n10、 完成领导交代的其他事项。", 
-    achievement: null, 
-    pay: null, 
-    payUnit: null, 
-    currencyType: null, 
-    skillList: null, 
-    createTime: 1718183339000, 
-    updateTime: 1718184332000
-  }
-])
 </script>
+
 <style lang="scss" scoped>
 .font15 { font-size: 15px;; }
 .color9 { color: #999; }
 .color6 { color: #666; }
 .color3 { color: #333; }
 .educExpItem {
-  // cursor: pointer;
   border-radius: 6px;
   padding: 2px 10px 8px;
-  &:hover {
-    background-color: #f8f8f8;
-  }
 }
 </style>

+ 3 - 3
src/views/enterprise/talentPool/index.vue

@@ -110,7 +110,7 @@ const items = ref([
     age: '27岁',
     expName: '3年经验',
     areaName: '广州',
-    id: 1,
+    id: '1',
     sex: '2',
     select: false,
     eduName: '本科',
@@ -151,7 +151,7 @@ const items = ref([
     age: '27岁',
     expName: '3年经验',
     areaName: '广州',
-    id: 1,
+    id: '1',
     sex: '2',
     select: false,
     eduName: '本科',
@@ -230,7 +230,7 @@ const handleChangePage = () => {
   })
 }
 
-// 职位详情
+// 人才详情
 const talentPoolDetails = (val) => {
   window.open(`/enterprise/talentPool/details/${val.id}`)
 }

+ 5 - 0
src/views/recruit/position/components/dict.js

@@ -8,12 +8,16 @@ const dictObj = reactive({
   edu: [], // 学历
   exp: [], // 工作经验
   area: [], // 地区
+  jobStatus: [], // 求职状态
+  marital: [], // 婚姻状态
   financing: [] // 融资阶段
 })
 const dictList = ref([
   { type: 'menduner_pay_unit', value: 'payUnit', key: 'payUnit', label: 'payName' },
   { type: 'menduner_financing_status', value: 'financing', key: 'financingStatus', label: 'financingName' },
   { type: 'menduner_scale', value: 'scale', key: 'scale', label: 'scaleName' },
+  { type: 'menduner_job_status', value: 'jobStatus', key: 'jobStatus', label: 'jobStatusName' },
+  { type: 'menduner_marital_status', value: 'marital', key: 'maritalStatus', label: 'maritalStatusName' },
   { type: 'menduner_industry_type', value: 'industry', key: 'industryId', label: 'industryName', params: {}, apiType: 'industryList', nameKey: 'nameCn', valueKey: 'id' },
   { type: 'menduner_education_type', value: 'edu', key: 'eduType', label: 'eduName' },
   { type: 'menduner_exp_type', value: 'exp', key: 'expType', label: 'expName' },
@@ -59,6 +63,7 @@ export const dealDictObjData = (res, obj) => {
     const result = dictObj[data.value].find(val => val[idKey] === obj[e])
     if (!result) return
     res[data.label] = result[valueKey]
+    res = { ...obj, ...res }
   })
   return res
 }