Browse Source

账户信息展示

Xiao_123 10 months ago
parent
commit
e520e46093
4 changed files with 49 additions and 3 deletions
  1. 14 0
      src/api/common/index.js
  2. 9 1
      src/layout/company/navBar.vue
  3. 7 1
      src/layout/personal/navBar.vue
  4. 19 1
      src/store/user.js

+ 14 - 0
src/api/common/index.js

@@ -191,4 +191,18 @@ export const userRefreshToken = async (refreshToken) => {
   return await request.post({
     url: `/app-api/menduner/system/auth/refresh-token?refreshToken=${refreshToken}`
   })
+}
+
+// 招聘端-企业账户信息(积分&余额)
+export const getEnterpriseUserAccount = async () => {
+  return await request.get({
+    url: '/app-admin-api/menduner/system/user/get/account'
+  })
+}
+
+// 求职端-用户账户信息(积分&余额)
+export const getUserAccount = async () => {
+  return await request.get({
+    url: '/app-api/menduner/system/mde-user/get/account'
+  })
 }

+ 9 - 1
src/layout/company/navBar.vue

@@ -13,12 +13,17 @@
         </div>
         
         <div class="d-flex user-nav">
-          <a target="_blank" href="/recruit/enterprise/purchasePackage" class="cursor-pointer mr-15" style="font-size: 15px;color: #FB8C00;line-height: 40px;">{{ $t('vipPackage.purchasePackage') }}</a>
+          <a target="_blank" href="/recruit/enterprise/purchasePackage" class="cursor-pointer mr-5" style="font-size: 15px;color: #FB8C00;line-height: 40px;">{{ $t('vipPackage.purchasePackage') }}</a>
           <div class="d-flex align-center cursor-pointer" @click="handleEnterpriseClick">
             <v-img @click="enterpriseClick(2)" rounded width="40" height="40" :src="baseInfo?.logoUrl || 'https://minio.citupro.com/dev/menduner/7.png'" ></v-img>
             <span @click="enterpriseClick(1)" class="ml-3">{{ baseInfo?.enterpriseName || $t('sys.tourist') }}</span>
           </div>
           <div class="line"></div>
+          <div class="d-flex align-center ml-6">
+            <div>账户余额:{{ enterpriseUserAccount?.balance }}元</div>
+            <div class="ml-5">剩余积分:{{ enterpriseUserAccount?.point }}点</div>
+          </div>
+          <div class="line"></div>
           
           <!-- 头像用户名 -->
           <div class="d-flex align-center" v-if="getToken()">
@@ -124,8 +129,11 @@ const items = ref([
 
 // 企业logo、用户基本信息
 let baseInfo = ref(JSON.parse(localStorage.getItem('baseInfo')) || {})
+let enterpriseUserAccount = ref(JSON.parse(localStorage.getItem('enterpriseUserAccount')) || {}) // 账户信息
+
 userStore.$subscribe((mutation, state) => {
   baseInfo.value = state.baseInfo
+  enterpriseUserAccount.value = state.enterpriseUserAccount
 })
 
 // 语言切换

+ 7 - 1
src/layout/personal/navBar.vue

@@ -39,7 +39,9 @@
           <div class="d-flex align-center" v-if="getToken()">
             <a target="_blank" href="/mall/purchasePackage" class="cursor-pointer mr-5" style="color: #FB8C00;">{{ $t('vipPackage.purchasePackage') }}</a>
             <span class="cursor-pointer" @click="router.push({ path: '/recruit/personal/TaskCenter' })">{{ $t('sys.signIn') }}</span>
-            <span class="cursor-pointer ml-5">{{ $t('sys.news') }}</span>
+            <span class="cursor-pointer mx-5">{{ $t('sys.news') }}</span>
+            <span>账户余额:{{ userAccount?.balance }}元</span>
+            <span class="ml-5">剩余积分:{{ userAccount?.point }}点</span>
             <v-menu open-on-hover>
               <template v-slot:activator="{ props }">
                 <div class="d-flex ml-5 pl-2 align-center cursor-pointer" v-bind="props" @click="handleToPersonalCenter">
@@ -89,6 +91,7 @@
         
       </div>
     </v-toolbar>
+
     <CtDialog :visible="show" title="请选择要切换的公司账号" :footer="true" widthType="2" @close="show = false" @submit="handleSubmit">
       <!-- <div class="mb-3 text-center" style="color: var(--color-999);">
         <div class="mb-5">您还未加入或注册企业, 请选择您要操作的类型!</div>
@@ -196,8 +199,11 @@ const items = ref([
 ])
 
 let baseInfo = ref(JSON.parse(localStorage.getItem('baseInfo')) || {}) // 人才信息
+let userAccount = ref(JSON.parse(localStorage.getItem('userAccount')) || {}) // 账户信息
+
 userStore.$subscribe((mutation, state) => {
   baseInfo.value = state.baseInfo
+  userAccount.value = state.userAccount
 })
 
 const handleLogin = () => {

+ 19 - 1
src/store/user.js

@@ -2,6 +2,7 @@ import { defineStore } from 'pinia'
 import { setToken, removeToken, setRefreshToken, getToken } from '@/utils/auth'
 import { smsLogin, passwordLogin, getBaseInfo, passwordLoginOfEnterprise, smsLoginOfEnterprise, switchLoginOfEnterprise, getEnterprisingUserInfo, logoutToken, logout } from '@/api/common'
 import { getUserInfo } from '@/api/personal/user'
+import { getEnterpriseUserAccount, getUserAccount } from '@/api/common'
 import Snackbar from '@/plugins/snackbar'
 import { timesTampChange } from '@/utils/date'
 import { updateEventList } from '@/utils/eventList'
@@ -15,7 +16,8 @@ export const useUserStore = defineStore('user',
       accountInfo: {}, // 登录返回的信息
       userInfo: {}, // 当前登录账号信息
       baseInfo: {}, // 人才信息
-      isEnterpriseAdmin: false // 企业管理员
+      userAccount: {}, // 用户账户信息
+      enterpriseUserAccount: {}, // 企业账户信息
     }),
     actions: {
       // 短信登录
@@ -62,6 +64,7 @@ export const useUserStore = defineStore('user',
           this.userInfo = data
           localStorage.setItem('userInfo', JSON.stringify(data))
           updateEventList() // 获取规则配置跟踪列表
+          this.getUserAccountInfo()
         } catch (error) {
           Snackbar.error(error.msg)
         }
@@ -116,6 +119,7 @@ export const useUserStore = defineStore('user',
         localStorage.setItem('expiresTime', data.expiresTime)
         localStorage.setItem('currentRole', 'enterprise')
         await this.getEnterpriseInfo()
+        await this.getEnterpriseUserAccountInfo()
         Snackbar.success('切换成功')
       },
       // 获取当前登录的企业用户信息
@@ -128,6 +132,20 @@ export const useUserStore = defineStore('user',
         localStorage.setItem('isAdmin', isAdmin)
 
         localStorage.setItem('baseInfo', JSON.stringify(result))
+      },
+      // 获取企业账户信息
+      async getEnterpriseUserAccountInfo () {
+        const data = await getEnterpriseUserAccount()
+        if (!data) return
+        this.enterpriseUserAccount = data
+        localStorage.setItem('enterpriseUserAccount', JSON.stringify(data))
+      },
+      // 获取用户账户信息
+      async getUserAccountInfo () {
+        const data = await getUserAccount()
+        if (!data) return
+        this.userAccount = data
+        localStorage.setItem('userAccount', JSON.stringify(data))
       }
     }
    },