Browse Source

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

Xiao_123 11 months ago
parent
commit
8023f69e92

+ 8 - 8
src/api/common/index.js

@@ -1,5 +1,13 @@
 import request from '@/config/axios'
 
+// 获取人才信息
+export const getBaseInfo = async (params) => {
+  return await request.get({
+    url: '/app-api/menduner/system/person/get',
+    params
+  })
+}
+
 // 发送验证码
 export const sendSmsCode = async (data) => {
   return await request.post({
@@ -144,14 +152,6 @@ export const getHotArea = async () => {
   })
 }
 
-// 获取人才信息
-export const getBaseInfo = async (params) => {
-  return await request.get({
-    url: '/app-api/menduner/system/person/get',
-    params
-  })
-}
-
 // 上传文件
 export const uploadFile = async (data) => {
   return await request.upload({ url: '/app-api/infra/file/upload', data })

+ 11 - 3
src/api/personal/user.js

@@ -11,7 +11,7 @@ export const getUserInfo = async (params) => {
 // 获取当前用户绑定的企业列表
 export const getUserBindEnterpriseList = async (params) => {
   return await request.get({
-    url: '/app-admin-api/menduner/system/enterprise-user-bind/get/enterprise/list',
+    url: '/app-api/menduner/system/enterprise-user-bind/get/enterprise/list',
     params
   })
 }
@@ -19,7 +19,7 @@ export const getUserBindEnterpriseList = async (params) => {
 // 企业注册申请
 export const enterpriseRegisterApply = async (data) => {
   return await request.post({
-    url: '/app-admin-api/menduner/system/enterprise-register/apply',
+    url: '/app-api/menduner/system/enterprise-register/apply',
     data
   })
 }
@@ -27,7 +27,15 @@ export const enterpriseRegisterApply = async (data) => {
 // 获取当前用户提交的企业申请
 export const getUserRegisterEnterpriseApply = async (params) => {
   return await request.get({
-    url: '/app-admin-api/menduner/system/enterprise-register/by/user',
+    url: '/app-api/menduner/system/enterprise-register/by/user',
+    params
+  })
+}
+
+// 获取当前登录的企业用户信息
+export const getEnterprisingUserInfo = async (params) => {
+  return await request.get({
+    url: '/app-admin-api/menduner/system/enterprise-user-bind/get/user',
     params
   })
 }

+ 3 - 3
src/components/VerificationCode/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <v-form @submit.prevent ref="phoneForm">
-      <v-text-field v-model="loginData.phone" :placeholder="$t('login.mobileNumberPlaceholder')" color="primary" variant="outlined" density="compact" :rules="phoneRules" validate-on="input">
+      <v-text-field v-model="loginData.phone" :disabled="loginUserPhone" :placeholder="$t('login.mobileNumberPlaceholder')" color="primary" variant="outlined" density="compact" :rules="phoneRules" validate-on="input">
         <template v-slot:prepend-inner>
           <span class="d-flex">
             <v-icon icon="mdi-cellphone" size="20"></v-icon>
@@ -113,9 +113,9 @@ const autoTimer = () => {
   setTime()
 }
 autoTimer()
-
+const loginUserPhone = localStorage.getItem('loginUserPhone') || ''
 const loginData = reactive({
-  phone: '13229740091',
+  phone: loginUserPhone || '13229740091',
   code: '123456'
 })
 

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

@@ -114,7 +114,7 @@ const handleLogout = async () => {
 const items = ref([
   // { title: '联系人信息', icon: 'mdi-account-outline', change: () => router.push({ path: '/resume' }) },
   // { title: '账号管理', icon: 'mdi-cog-outline', change: () => router.push({ path: '/personalAccount/accountBinding' }) },
-  // { title: '切换为求职者', icon: 'mdi-swap-horizontal', change: changeRole },
+  { title: t('setting.switchToJobSeeker'), icon: 'mdi-swap-horizontal', change: handleLogout },
   { title: t('setting.logOut'), icon: 'mdi-logout', change: handleLogout }
 ])
 const baseInfo = JSON.parse(localStorage.getItem('baseInfo')) // 人才信息

+ 3 - 3
src/layout/personal/navBar.vue

@@ -143,9 +143,9 @@ const changeLoginType = async () => {
 // 查看用户是否有在申请中的数据
 const getApplyInfo = async () => {
   const data = await getUserRegisterEnterpriseApply()
-  const path = ref('')
-  if (data && Object.keys(data).length) path.value = '/enterprise/inReview' // 已经有数据说明已经申请过了
-  else path.value = '/enterprise/register'
+  const bool = data && Object.keys(data).length // 已经有数据说明已经申请过了
+  localStorage.setItem('userApplyInfo', JSON.stringify(data))
+  const path = bool ? '/enterprise/inReview' : '/enterprise/register'
   router.push({ path })
 }
 

+ 2 - 0
src/locales/en.js

@@ -11,6 +11,7 @@ export default {
     complete: 'Complete',
     saveMsg: 'Save successful',
     toHome: 'Go back to the homepage',
+    resubmit: 'Resubmit',
     submittedSuccessfully: 'Submitted successful',
     switchSuccessful: 'Switch successful',
     addMsg: 'New successfully added',
@@ -171,6 +172,7 @@ export default {
     editPassword: 'Change password',
     privacyPolicySettings: 'Privacy settings',
     logOut: 'Logout',
+    switchToJobSeeker: 'Switch to Job Seeker',
     switchToRecruit: 'Switch to Recruiter'
   }
 }

+ 2 - 0
src/locales/zh-CN.js

@@ -11,6 +11,7 @@ export default {
     complete: '完成',
     saveMsg: '保存成功',
     toHome: '回到首页',
+    resubmit: '重新提交',
     submittedSuccessfully: '提交成功',
     switchSuccessful: '切换成功',
     addMsg: '新增成功',
@@ -171,6 +172,7 @@ export default {
     editPassword: '修改密码',
     privacyPolicySettings: '隐私设置',
     logOut: '退出登录',
+    switchToJobSeeker: '切换为求职者',
     switchToRecruit: '切换为招聘者'
   }
 }

+ 15 - 13
src/store/user.js

@@ -2,7 +2,7 @@ import { defineStore } from 'pinia'
 import { setToken, removeToken, setRefreshToken } from '@/utils/auth'
 import { smsLogin, passwordLogin, getBaseInfo, passwordLoginOfEnterprise, smsLoginOfEnterprise } from '@/api/common/index'
 import { logout } from '@/api/common/index'
-import { getUserInfo } from '@/api/personal/user'
+import { getUserInfo, getEnterprisingUserInfo } from '@/api/personal/user'
 import Snackbar from '@/plugins/snackbar'
 import { timesTampChange } from '@/utils/date'
 import { getBaseInfoDictOfName } from '@/utils/getText'
@@ -11,6 +11,7 @@ import { getBaseInfoDictOfName } from '@/utils/getText'
 export const useUserStore = defineStore('user',
   {
     state: () => ({
+      loginType: null, // 登录类型 // 330为企业登录
       accountInfo: {}, // 登录返回的信息
       userInfo: {}, // 当前登录账号信息
       baseInfo: {}, // 人才信息
@@ -22,16 +23,14 @@ export const useUserStore = defineStore('user',
         return new Promise((resolve, reject) => {
           const loginApi = data.loginType === 330 ? smsLoginOfEnterprise : smsLogin
           loginApi(data).then(res => {
-            // res.loginType = data.loginType
+            this.loginType = data.loginType
             setToken(res.accessToken)
             setRefreshToken(res.refreshToken)
             this.accountInfo = res
             localStorage.setItem('accountInfo', JSON.stringify(res))
             localStorage.setItem('expiresTime', res.expiresTime) // token过期时间
-            if (!data.loginType) { // 个人登录
-              this.getUserInfos()
-              this.getUserBaseInfos()
-            }
+            this.getUserInfos()
+            if (!this.loginType) this.getUserBaseInfos()
             resolve()
           }).catch(err => { reject(err) })
         })
@@ -41,16 +40,14 @@ export const useUserStore = defineStore('user',
         return new Promise((resolve, reject) => {
           const loginApi = data.loginType === 330 ? passwordLoginOfEnterprise : passwordLogin
           loginApi(data).then(res => {
-            // res.loginType = data.loginType
+            this.loginType = data.loginType
             setToken(res.accessToken)
             setRefreshToken(res.refreshToken)
             this.accountInfo = res
             localStorage.setItem('accountInfo', JSON.stringify(res))
             localStorage.setItem('expiresTime', res.expiresTime) // token过期时间
-            if (!data.loginType) { // 个人登录
-              this.getUserInfos()
-              this.getUserBaseInfos()
-            }
+            this.getUserInfos()
+            if (!this.loginType) this.getUserBaseInfos()
             resolve()
           }).catch(err => { reject(err) })
         })
@@ -58,7 +55,8 @@ export const useUserStore = defineStore('user',
       // 获取当前登录账户信息
       async getUserInfos () {
         try {
-          const data = await getUserInfo({ id: this.accountInfo.userId })
+          const api = this.loginType ? getEnterprisingUserInfo : getUserInfo
+          const data = await api({ id: this.accountInfo.userId })
           this.userInfo = data
           localStorage.setItem('userInfo', JSON.stringify(data))
         } catch (error) {
@@ -68,7 +66,9 @@ export const useUserStore = defineStore('user',
       // 获取当前登录账户的基本信息(人才信息)
       async getUserBaseInfos (userId = null) {
         try {
-          const data = await getBaseInfo({ userId: userId || this.accountInfo.userId })
+          const api = this.loginType ? null : getBaseInfo
+          if (!api) return
+          const data = await api({ userId: userId || this.accountInfo.userId })
           this.baseInfo = await this.getFieldText(data)
           localStorage.setItem('baseInfo', JSON.stringify(this.baseInfo))
         } catch (error) {
@@ -90,6 +90,7 @@ export const useUserStore = defineStore('user',
       },
       // 退出登录
       async userLogout () {
+        const loginUserPhone = this.userInfo?.phone || ''
         await logout()
         removeToken()
         this.userInfo = {}
@@ -98,6 +99,7 @@ export const useUserStore = defineStore('user',
         const companyInfo = localStorage.getItem('companyInfo')
         localStorage.clear()
         localStorage.setItem('companyInfo', companyInfo)
+        localStorage.setItem('loginUserPhone', loginUserPhone)
       }
     }
   },

+ 1 - 1
src/views/PersonalCenter/dynamic/left.vue

@@ -7,7 +7,7 @@
         offset-y="50" 
         :color="baseInfo?.sex ? (baseInfo?.sex === '0' ? '#1867c0' : 'error') : 'error'" 
         :icon="baseInfo?.sex ? (baseInfo?.sex === '0' ? 'mdi-gender-male' : 'mdi-gender-female') : 'mdi-gender-female'">
-        <v-avatar size="x-large" :image="baseInfo.avatar || 'https://minio.citupro.com/dev/menduner/7.png'"></v-avatar>
+        <v-avatar size="x-large" :image="baseInfo?.avatar || 'https://minio.citupro.com/dev/menduner/7.png'"></v-avatar>
       </v-badge>
       <div class="ml-5 content">
         <div class="username">

+ 40 - 7
src/views/enterprise/components/inReview.vue

@@ -2,14 +2,41 @@
   <div class="pt-5">
     <v-card class="default-width pa-5">
       <div style="width: 600px;margin: 80px auto;">
-        <div>您的申请正在审核中,审核时间在1~3个工作日内,申请结果会以短信方式通知到您的手机上,请注意查收</div>
-        <div class="mt-5">
-          <span>提交时间:</span>
-          <span>{{ commitTime }}</span>
+
+        <!-- 提交企业注册以后跳转显示页面 -->
+        <div v-if="!info || !(Object.keys(info).length)">
+          <span>提交成功,审核时间在1~3个工作日内,申请结果会以短信方式通知到您的手机上,请注意查收</span>
+        </div>
+
+        <!-- 等待审核 -->
+        <div v-else-if="status === '0'">
+          <span>您的申请正在审核中,审核时间在1~3个工作日内,申请结果会以短信方式通知到您的手机上,请注意查收</span>
+          <div class="mt-5">
+            <span>提交时间:{{ commitTime }}</span>
+          </div>
+        </div>
+
+        <!-- 审核不通过 -->
+        <div v-else-if="status === '2'">
+          <div class="mb-3" style="color: red;">审核不通过</div>
+          <div class="mb-3">原因:{{ reason }}</div>
+          <div v-if="remark">备注:{{ remark }}</div>
+          <div class="mt-5">
+            <span>更新时间:{{ updateTime }}</span>
+          </div>
+          <div class="mt-5">
+            <span>提交时间:{{ commitTime }}</span>
+          </div>
         </div>
+
+        <!-- 审核通过(审核通过不会进入此页面) -->
+        <div v-else-if="status === '1'">
+          <span>审核通过</span>
+        </div>
+        
         <div class="text-center">
-          <!-- <v-btn class="mt-10" color="warning" @click="router.push({ path: '/' })">{{ $t('common.toHome') }}</v-btn> -->
           <v-btn class="mt-16" color="warning" to="/">{{ $t('common.toHome') }}</v-btn>
+          <v-btn class="mt-16 ml-12" color="primary" to="/enterprise/register">{{ $t('common.resubmit') }}</v-btn>
         </div>
       </div>
     </v-card>
@@ -18,10 +45,16 @@
 
 <script setup>
 import { ref } from 'vue';
-
+import { timesTampChange } from '@/utils/date'
 defineOptions({name: 'enterprise-enterpriseRegister-inReview'})
 
-const commitTime = ref(new Date())
+
+const info = JSON.parse(localStorage.getItem('userApplyInfo'))
+const commitTime = ref(info?.createTime ? timesTampChange(info.createTime) : null) // 创建时间
+const updateTime = ref(info?.createTime ? timesTampChange(info.updateTime) : null) // 更新时间
+const status = ref(info?.status) // 帐号状态(0正常 1停用 2 等待审核 3不通过) // 审核状态
+const reason = ref(info?.reason) // 审核原因
+const remark = ref(info?.remark) // 备注
 </script>
 <style lang="scss" scoped>
 </style>

+ 7 - 4
src/views/enterprise/components/register.vue

@@ -143,10 +143,13 @@ const handleCommit = async () => {
   await enterpriseRegisterApply({ ...baseInfo, businessLicenseUrl })
   Snackbar.success(t('common.submittedSuccessfully'))
   router.push({ path: '/enterprise/inReview' })
-  // 暂时自动跳转
-  setTimeout(() => {
-    router.push({ path: '/enterprise' })
-  }, 8000);
+}
+
+// 不通过的企业注册申请 重新发起
+const info = JSON.parse(localStorage.getItem('userApplyInfo'))
+if (info && Object.keys(info).length) {
+  licenseUrl.value = info?.businessLicenseUrl
+  formItems.value.options.forEach(e => { e.value = info[e.key] })
 }
 
 </script>

+ 3 - 2
src/views/login/components/passwordPage.vue

@@ -1,6 +1,6 @@
 <template>
   <v-form ref="passwordForm" @submit.prevent>
-    <v-text-field v-model="loginData.phone" :placeholder="$t('login.mobileNumberPlaceholder')" color="primary" variant="outlined" density="compact" :rules="phoneRules" validate-on="input">
+    <v-text-field v-model="loginData.phone" :disabled="loginUserPhone" :placeholder="$t('login.mobileNumberPlaceholder')" color="primary" variant="outlined" density="compact" :rules="phoneRules" validate-on="input">
       <template v-slot:prepend-inner>
         <span class="d-flex">
           <v-icon icon="mdi-cellphone" size="20"></v-icon>
@@ -63,8 +63,9 @@ const handleChangeCurrentArea = (e) => {
   currentArea.value = e.value
 }
 
+const loginUserPhone = localStorage.getItem('loginUserPhone') || ''
 const loginData = reactive({
-  phone: '13229740091',
+  phone: loginUserPhone || '13229740091',
   password: '1111'
 })
 

+ 1 - 1
src/views/login/index.vue

@@ -120,7 +120,7 @@ const handleLogin = async () => {
     if (tab.value === 1) { params = { ...phoneRef.value.loginData }; api = 'handleSmsLogin'}
     else { params = { ...passRef.value.loginData }; api = 'handlePasswordLogin'}
     // 企业登录
-    if (type === 330)  params.enterpriseId = enterpriseId.value
+    if (type === 330)  params.loginType = type; params.enterpriseId = enterpriseId.value
     // await userStore.handlePasswordLogin({ ...passRef.value.loginData, type }) //tab.value === 1
     // await userStore.handleSmsLogin({ ...phoneRef.value.loginData, type })
     await userStore[api](params)