lifanagju_citu 7 ヶ月 前
コミット
7a889c2f21

+ 19 - 9
src/views/recruit/personal/position/components/dict.js

@@ -5,7 +5,7 @@ import commonPath from './conditionFilter/commonPath.vue'
 // toFilterDictName: 查数据回显(一维数组字典),dictShow: 用户操作的字典(用户看到的数据)
 // 当type是tree类型的数据的时候需要提供dictType
 const dictList = [
-  { 
+  {
     displayDictName: 'menduner_area_type',
     apiType: 'areaList',
     key: 'areaIds',
@@ -15,7 +15,17 @@ const dictList = [
     path: commonPath,
     data: []
   },
-  { 
+  {
+    displayDictName: 'menduner_area_type',
+    apiType: 'areaList',
+    key: 'areaIds',
+    itemKey: 'id',
+    itemText: 'name',
+    title: '工作地点',
+    path: commonPath,
+    data: []
+  },
+  {
     toFilterDictName: 'menduner_industry_type',
     apiType: 'industryList',
     key: 'industryIds',
@@ -26,7 +36,7 @@ const dictList = [
     path: commonPath,
     data: []
   },
-  { 
+  {
     toFilterDictName: 'positionData',
     apiType: 'positionData',
     key: 'positionId',
@@ -38,7 +48,7 @@ const dictList = [
     path: commonPath,
     data: []
   },
-  { 
+  {
     displayDictName: 'menduner_job_type',
     key: 'jobType',
     itemKey: 'value',
@@ -47,7 +57,7 @@ const dictList = [
     path: commonPath,
     data: []
   },
-  { 
+  {
     displayDictName: 'menduner_exp_type',
     key: 'expType',
     itemKey: 'value',
@@ -56,7 +66,7 @@ const dictList = [
     path: commonPath,
     data: []
   },
-  { 
+  {
     displayDictName: 'menduner_pay_scope',
     key: 'payScope',
     itemKey: 'value',
@@ -67,7 +77,7 @@ const dictList = [
     path: commonPath,
     data: []
   },
-  { 
+  {
     displayDictName: 'menduner_education_type',
     key: 'eduType',
     itemKey: 'value',
@@ -76,7 +86,7 @@ const dictList = [
     path: commonPath,
     data: []
   },
-  { 
+  {
     displayDictName: 'menduner_scale',
     key: 'scale',
     itemKey: 'value',
@@ -85,7 +95,7 @@ const dictList = [
     path: commonPath,
     data: []
   },
-  { 
+  {
     displayDictName: 'menduner_financing_status',
     key: 'financingStatus',
     itemKey: 'value',

+ 13 - 13
src/views/recruit/personal/recommend/components/item.vue

@@ -11,36 +11,36 @@
         <div class="job-info">
           <div class="sub-li-top">
             <div class="sub-li-info">
-              <p :class="['name', {'default-active': item.active }]">{{ item.job.name }}</p>
-              <svg-icon v-if="item.job.hire" name="pin" size="30"></svg-icon>
+              <p :class="['name', {'default-active': item.active }]">{{ item.name }}</p>
+              <svg-icon v-if="item.hire" name="pin" size="30"></svg-icon>
             </div>
-            <p v-if="!item.job.payFrom && !item.job.payTo" class="salary">面议</p>
-            <p v-else class="salary">{{ item.job.payFrom ? item.job.payFrom + '-' : '' }}{{ item.job.payTo }}{{ item.job.payName ? '/' + item.job.payName : '' }}</p>
+            <p v-if="!item.payFrom && !item.payTo" class="salary">面议</p>
+            <p v-else class="salary">{{ item.payFrom ? item.payFrom + '-' : '' }}{{ item.payTo }}{{ item.payName ? '/' + item.payName : '' }}</p>
           </div>
           <div class="d-flex justify-space-between align-center">
             <div>
               <span v-for="(j, i) in desc" :key="i" class="font-size-13" style="color: #808080;">
-                <span v-if="item.job[j.value]" class="mr-1 d-inline-block">{{ item.job[j.value] }}</span>
-                <span v-if="i !== desc.length - 1 && item.job[j.value] && item.job[desc[i + 1].value]" class="septal-line ml-1"></span>
+                <span v-if="item[j.value]" class="mr-1 d-inline-block">{{ item[j.value] }}</span>
+                <span v-if="i !== desc.length - 1 && item[j.value] && item[desc[i + 1].value]" class="septal-line ml-1"></span>
               </span>
             </div>
           </div>
           <div class="ellipsis" style="height: 24px;overflow: hidden;">
-            <span v-for="(j, i) in item.job.tagList" :key="i" class="mr-3 tags" style="color: #345768;">{{ j }}</span>
+            <span v-for="(j, i) in item.tagList" :key="i" class="mr-3 tags" style="color: #345768;">{{ j }}</span>
           </div>
         </div>
         <div class="sub-li-bottom">
           <div class="user-info">
             <div class="d-flex align-center">
               <v-avatar size="35">
-                <v-img :src="item.enterprise.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" />
+                <v-img :src="item.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" />
               </v-avatar>
               <span class="names ml-2 font-size-14 ellipsis" style="max-width: 88%;">
-                {{ item.enterprise.anotherName }}
+                {{ item.anotherName }}
                 <span class="color-999 font-size-13 ml-3">
-                  <span>{{ item.enterprise.industryName }}</span>
-                  <span class="septal-line" v-if="item.enterprise.industryName && item.enterprise.scaleName"></span>
-                  <span>{{ item.enterprise.scaleName }}</span>
+                  <span>{{ item.industryName }}</span>
+                  <span class="septal-line" v-if="item.industryName && item.scaleName"></span>
+                  <span>{{ item.scaleName }}</span>
                 </span>
               </span>
             </div>
@@ -84,7 +84,7 @@ const handleClick = (item, index) => {
   emit('selectChange', item)
 }
 // const handleEnterprise = (item) => {
-//   window.open(`/recruit/personal/company/details/${item.enterprise.id}?key=briefIntroduction`)
+//   window.open(`/recruit/personal/company/details/${item.id}?key=briefIntroduction`)
 // }
 </script>
 

+ 36 - 15
src/views/recruit/personal/recommend/index.vue

@@ -28,8 +28,9 @@
 defineOptions({ name: 'personalPositionRecommend'})
 import buttons from '@/views/recruit/personal/components/buttons.vue'
 import { ref, reactive, nextTick } from 'vue'
-import { getJobAdvertisedSearch } from '@/api/position'
-import { dealDictObjData } from '@/utils/position'
+// import { getJobAdvertisedSearch } from '@/api/position'
+import { getPromotedPosition } from '@/api/position'
+import { dealDictArrayData } from '@/utils/position'
 import PositionList from './components/item'
 import recommendDetails from '@/views/recruit/personal/position/components/details.vue'
 
@@ -46,22 +47,42 @@ const query = reactive({
   pageSize: 10
 })
 const items = ref([])
-const getData = async () => {
-  const { list } = await getJobAdvertisedSearch(query)
-  if (!list.length) return
-  items.value = list.map((e, index) => {
-    const id = e?.job?.id || ''
+
+const getList = async () => {
+  const { list } = await getPromotedPosition(query)
+  if (!list.length) return items.value = []
+  items.value = list.map(e=> {
+    const id = e?.id || ''
     if (!id) return ''
     jobId.value = id
-    showRecommendDetails.value = true
-    e.job = { ...e.job, ...dealDictObjData({}, e.job) }
-    e.enterprise = { ...e.enterprise, ...dealDictObjData({}, e.enterprise) }
-    e.active = index ? false : true
-    return e
-  }).filter(Boolean)
-  console.log('personalPositionRecommend-data', items.value)
+  })
+  // 处理数据
+  items.value = dealDictArrayData([], list)
+  if (items.value?.length) showRecommendDetails.value = true
+  else {
+    // if (query.pageNum> 3) return
+    // query.pageNum++
+    // getList()
+  }
 }
-getData()
+getList()
+
+// const getData = async () => {
+//   const { list } = await getJobAdvertisedSearch(query)
+//   if (!list.length) return
+//   items.value = list.map((e, index) => {
+//     const id = e?.job?.id || ''
+//     if (!id) return ''
+//     jobId.value = id
+//     showRecommendDetails.value = true
+//     e.job = { ...e.job, ...dealDictObjData({}, e.job) }
+//     e.enterprise = { ...e.enterprise, ...dealDictObjData({}, e.enterprise) }
+//     e.active = index ? false : true
+//     return e
+//   }).filter(Boolean)
+//   console.log('personalPositionRecommend-data', items.value)
+// }
+// getData()
 
 </script>