Jelajahi Sumber

会员权益效验-简历模板、屏蔽企业

Xiao_123 6 bulan lalu
induk
melakukan
51e99e225f

+ 1 - 12
src/views/recruit/personal/PersonalCenter/index.vue

@@ -48,16 +48,12 @@
 
 <script setup>
 defineOptions({ name: 'person-center'})
-import { computed, ref } from 'vue'
+import { computed } from 'vue'
 import { getCurrentLocaleLang } from '@/utils/lang.js'
 import { useUserStore } from '@/store/user'
 import personCenterRoute from '@/router/modules/components/recruit/personCenter'
 
 const userStore = useUserStore()
-let userInfo = ref(JSON.parse(localStorage.getItem('userInfo')) || {})
-userStore.$subscribe((mutation, state) => {
-  if (state.userInfo && Object.keys(state.userInfo).length) userInfo.value = state?.userInfo
-})
 
 // 左侧菜单列表
 const list = computed(() => {
@@ -84,13 +80,6 @@ const getList = (arr, obj = []) => {
   return obj
 } 
 
-// 效验当前会员权益是否包含简历模板
-if (!userInfo?.value.entitlement?.resumeTemplate) {
-  list.value.forEach(e => {
-    if (e.path === '/recruit/personal/personalCenter/resume') e.children.splice(2, 1)
-  })
-}
-
 // 更新账户信息
 const updateAccountInfo = async () => {
   await userStore.getUserAccountInfo()

+ 24 - 2
src/views/recruit/personal/PersonalCenter/resume/blockEnt/index.vue

@@ -3,7 +3,7 @@
     <div class="resume-header">
       <div class="resume-title">屏蔽企业设置</div>
     </div>
-    <div class="mt-5">
+    <div class="mt-5" v-if="userInfo?.vipFlag && userInfo?.vipExpireDate">
       <!-- 选择 -->
       <div class="d-flex align-center pb-5" style="border-bottom: 1px solid #dddddd;">
         <div style="color: #777;">选择企业: </div>
@@ -18,6 +18,11 @@
         </template>
       </v-chip>
     </div>
+    <div v-else class="mt-8 tips">
+      <span class="color-error">
+        屏蔽企业为会员福利内容,<span class="text-decoration-underline cursor-pointer" @click="goBuy">去开通</span>
+      </span>
+    </div>
   </div>
 </template>
 
@@ -32,6 +37,15 @@ import Snackbar from '@/plugins/snackbar'
 import Confirm from '@/plugins/confirm'
 import { ref } from 'vue'
 defineOptions({name: 'resume-blockEnt'})
+import { useUserStore } from '@/store/user'
+import { useRouter } from 'vue-router'
+
+const router = useRouter()
+const userStore = useUserStore()
+let userInfo = ref(JSON.parse(localStorage.getItem('userInfo')) || {})
+userStore.$subscribe((mutation, state) => {
+  if (state.userInfo && Object.keys(state.userInfo).length) userInfo.value = state?.userInfo
+})
 
 
 // 获取数据
@@ -58,6 +72,9 @@ const handleJoin = async () => {
   Snackbar.success('加入屏蔽企业成功!')
 }
 
+const goBuy = () => {
+  router.push('/recruit/personal/personalCenter/memberBenefits/membershipPackage')
+}
 
 // 企业名称下拉列表
 const getEnterpriseData = async (name) => {
@@ -84,5 +101,10 @@ const item = ref({
 </script>
 
 <style lang="scss" scoped>
-
+.tips {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+}
 </style>

+ 28 - 20
src/views/recruit/personal/PersonalCenter/resume/template/index.vue

@@ -4,24 +4,27 @@
       <div class="resume-title">简历模板下载</div>
     </div>
     <div style="height: calc(100% - 58px);  width: 100%;" class="mt-3">
-    <div v-if="vip" class="mt-5">
-      <CtTable
-        :items="list"
-        :headers="headers"
-        :loading="false"
-        :elevation="0"
-        :isTools="false"
-        :showPage="false"
-      >
-        <template #actions="{ item }">
-          <v-btn variant="text" color="primary" prepend-icon="mdi-eye-outline" @click="previewFile(item.url)">预览</v-btn>
-          <v-btn variant="text" color="primary" prepend-icon="mdi-square-edit-outline" @click="handleDownload(item)">下载</v-btn>
-        </template>
-      </CtTable>
-    </div>
-      <div v-else class="mt-8">
-        <span class="color-error">
-          简历模板为会员福利内容,<span class="text-decoration-underline cursor-pointer" @click="goBuy">去购买</span>
+      <div v-if="vip" class="mt-5">
+        <CtTable
+          :items="list"
+          :headers="headers"
+          :loading="false"
+          :elevation="0"
+          :isTools="false"
+          :showPage="false"
+        >
+          <template #actions="{ item }">
+            <v-btn variant="text" color="primary" prepend-icon="mdi-eye-outline" @click="previewFile(item.url)">预览</v-btn>
+            <v-btn variant="text" color="primary" prepend-icon="mdi-square-edit-outline" @click="handleDownload(item)">下载</v-btn>
+          </template>
+        </CtTable>
+      </div>
+      <div v-else class="mt-8 tips">
+        <span class="color-error" v-if="userStore.userInfo?.vipExpireDate && !userStore.userInfo?.entitlement?.resumeTemplate">
+          当前会员套餐的福利不包含简历模板,<span class="text-decoration-underline cursor-pointer" @click="goBuy">去升级</span>
+        </span>
+        <span class="color-error" v-if="!userStore.userInfo?.vipExpireDate">
+          简历模板为会员福利内容,<span class="text-decoration-underline cursor-pointer" @click="goBuy">去开通</span>
         </span>
       </div>
     </div>
@@ -57,7 +60,7 @@ const headers = [
 ]
 
 const vip = computed(() => {
-  return new Date().getTime() < userStore.userInfo?.vipExpireDate
+  return userStore.userInfo?.entitlement?.resumeTemplate
 })
 
 
@@ -74,5 +77,10 @@ const goBuy = () => {
 </script>
 
 <style lang="scss" scoped>
-
+.tips {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+}
 </style>