Quellcode durchsuchen

收藏职位、关注企业

Xiao_123 vor 1 Jahr
Ursprung
Commit
6a092f779f

+ 11 - 4
src/api/enterprise.js

@@ -24,11 +24,18 @@ export const getEnterpriseSubscribeCheck = async (params) => {
   })
 }
 
-// 求职者关注、取消关注企业
-export const getEnterpriseSubscribe = async (params) => {
-  return await request.get({
+// 求职者关注企业
+export const getEnterpriseSubscribe = async (data) => {
+  return await request.post({
     url: '/app-api/menduner/system/person/enterprise/subscribe',
-    params
+    data
+  })
+}
+
+// 求职者取消关注企业
+export const getEnterpriseUnsubscribe = async (enterpriseId) => {
+  return await request.delete({
+    url: `/app-api/menduner/system/person/job/unfavorite?enterpriseId=` + enterpriseId
   })
 }
 

+ 11 - 4
src/api/position.js

@@ -59,11 +59,18 @@ export const getJobFavoriteCheck = async (params) => {
   })
 }
 
-// 求职者是否收藏/取消收藏职位
-export const getJobFavorite = async (params) => {
-  return await request.get({
+// 求职者收藏职位
+export const getPersonJobFavorite = async (data) => {
+  return await request.post({
     url: '/app-api/menduner/system/person/job/favorite',
-    params
+    data
+  })
+}
+
+// 求职者取消收藏职位
+export const getPersonJobUnfavorite = async (jobId) => {
+  return await request.delete({
+    url: `/app-api/menduner/system/person/job/unfavorite?jobId=` + jobId
   })
 }
 

+ 9 - 2
src/components/Enterprise/details.vue

@@ -19,7 +19,7 @@
         <!-- 是否关注该企业 -->
         <v-tooltip location="bottom">
           <template v-slot:activator="{ props }">
-            <v-icon v-bind="props" class="ml-5 mr-2" size="25" :color="isCollection ? 'primary' : ''">{{ isCollection ? 'mdi-heart' : 'mdi-heart-outline' }}</v-icon>
+            <v-icon v-bind="props" class="ml-5 mr-2" size="25" :color="isCollection ? 'primary' : ''" @click="handleFollow">{{ isCollection ? 'mdi-heart' : 'mdi-heart-outline' }}</v-icon>
           </template>
           <span>关注该企业</span>
         </v-tooltip>
@@ -83,7 +83,7 @@ defineOptions({ name: 'enterprise-details'})
 import { ref } from 'vue'
 import EnterpriseIntroduction from './components/introduction.vue'
 import recruitmentPositions from './components/positions.vue'
-import { getEnterpriseDetails, getEnterpriseSubscribeCheck } from '@/api/enterprise'
+import { getEnterpriseDetails, getEnterpriseSubscribeCheck, getEnterpriseSubscribe, getEnterpriseUnsubscribe } from '@/api/enterprise'
 import { timesTampChange } from '@/utils/date'
 import { dealDictData } from '@/views/recruit/position/components/dict.js'
 
@@ -117,6 +117,13 @@ const getCollectionStatus = async (id) => {
   isCollection.value = data
 }
 
+// 关注&取消关注企业
+const handleFollow = async () => {
+  const api = isCollection.value ? getEnterpriseUnsubscribe : getEnterpriseSubscribe
+  await api(isCollection.value ? props.id : { enterpriseId: props.id })
+  getCollectionStatus(props.id)
+}
+
 // 工商信息
 const businessList = [
   { label: '企业类型:', value: 'type' },

+ 4 - 3
src/views/recruit/position/components/details.vue

@@ -79,7 +79,7 @@ defineOptions({ name: 'position-details' })
 import { ref } from 'vue'
 import { useRouter } from 'vue-router'
 import { timesTampChange } from '@/utils/date'
-import { getPositionDetails, getSimilarPosition, getJobFavoriteCheck, getJobFavorite } from '@/api/position'
+import { getPositionDetails, getSimilarPosition, getJobFavoriteCheck, getPersonJobFavorite, getPersonJobUnfavorite } from '@/api/position'
 import { dealDictData } from '@/views/recruit/position/components/dict'
 import similarPositions from '@/components/Position/similarPositions.vue'
 import EnterpriseInfo from '@/components/Enterprise/info.vue'
@@ -122,9 +122,10 @@ const getCollectionStatus = async () => {
 }
 getCollectionStatus()
 
-// 收藏/取消收藏职位
+// 收藏&取消收藏职位
 const handleCollection = async () => {
-  await getJobFavorite({ jobId: id })
+  const api = isCollection.value ? getPersonJobUnfavorite : getPersonJobFavorite
+  await api(isCollection.value ? id : { jobId: id })
   getCollectionStatus()
 }
 </script>