Przeglądaj źródła

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

Xiao_123 1 rok temu
rodzic
commit
955dc6b6d0

+ 0 - 1
components.d.ts

@@ -40,7 +40,6 @@ declare module 'vue' {
     SimilarPositions: typeof import('./src/components/Position/similarPositions.vue')['default']
     TextArea: typeof import('./src/components/FormUI/textArea/index.vue')['default']
     TextInput: typeof import('./src/components/FormUI/TextInput/index.vue')['default']
-    Upload: typeof import('./src/components/Upload/index.vue')['default']
     VerificationCode: typeof import('./src/components/VerificationCode/index.vue')['default']
   }
 }

+ 0 - 40
src/api/personal/other.js

@@ -1,40 +0,0 @@
-import request from '@/config/axios'
-
-// 获取热门企业
-export const getHotEnterprise = async (params) => {
-  return await request.get({
-    url: '/app-api/menduner/system/job/advertised/get/hot/enterprise',
-    params
-  })
-}
-
-// 企业详情
-export const getEnterpriseDetails = async (params) => {
-  return await request.get({
-    url: '/app-api/menduner/system/enterprise/detail',
-    params
-  })
-}
-
-// 效验求职者是否关注该企业
-export const getEnterpriseSubscribeCheck = async (params) => {
-  return await request.get({
-    url: '/app-api/menduner/system/person/enterprise/subscribe/check',
-    params
-  })
-}
-
-// 求职者关注企业
-export const getEnterpriseSubscribe = async (data) => {
-  return await request.post({
-    url: '/app-api/menduner/system/person/enterprise/subscribe',
-    data
-  })
-}
-
-// 求职者取消关注企业
-export const getEnterpriseUnsubscribe = async (enterpriseId) => {
-  return await request.delete({
-    url: `/app-api/menduner/system/person/enterprise/unsubscribe?enterpriseId=` + enterpriseId
-  })
-}

+ 0 - 17
src/api/personal/search.js

@@ -1,17 +0,0 @@
-import request from '@/config/axios'
-
-// 根据条件搜索招聘职位
-export const getJobAdvertisedSearch = async (params) => {
-  return await request.get({
-    url: '/app-api/menduner/system/job/advertised/search',
-    params
-  })
-}
-
-// 企业检索
-export const getEnterpriseSearch = async (params) => {
-  return await request.get({
-    url: '/app-api/menduner/system/enterprise/search',
-    params
-  })
-}

+ 2 - 2
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/user',
+    url: '/app-admin-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-api/menduner/system/enterprise-register/apply',
+    url: '/app-admin-api/menduner/system/enterprise-register/apply',
     data
   })
 }

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

@@ -131,7 +131,10 @@ const changeLoginType = async () => {
   // router.push({ name: 'login', query: { loginType: 330 } })
 
   const data = await getUserBindEnterpriseList() // 申请通过才会数据,否则空数组
-  if (data?.length) changeRole()
+  if (data?.length) {
+    localStorage.setItem('companyInfo', JSON.stringify(data))
+    changeRole()
+  }
   else getApplyInfo()
 }
 

+ 2 - 0
src/locales/en.js

@@ -12,6 +12,7 @@ export default {
     saveMsg: 'Save successful',
     toHome: 'Go back to the homepage',
     submittedSuccessfully: 'Submitted successful',
+    switchSuccessful: 'Switch successful',
     addMsg: 'New successfully added',
     delMsg: 'Delete successful',
     uploadPictures: 'upload pictures',
@@ -70,6 +71,7 @@ export default {
     enterpriseLogin: 'Enterprise login',
     userAgreement: 'User Agreement',
     privacyPolicy: 'Privacy Policy',
+    switchToPersonalLogin: 'Switch to personal login',
     agreeLogin: 'By logging in/registering, you agree to',
     smsOrPassword: 'SMS, password login or registration',
     scanWeChatCode: 'Scan WeChat QR code for quick login',

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

@@ -12,6 +12,7 @@ export default {
     saveMsg: '保存成功',
     toHome: '回到首页',
     submittedSuccessfully: '提交成功',
+    switchSuccessful: '切换成功',
     addMsg: '新增成功',
     delMsg: '删除成功',
     uploadPictures: '上传图片',
@@ -70,6 +71,7 @@ export default {
     enterpriseLogin: '企业登录',
     userAgreement: '用户协议',
     privacyPolicy: '隐私政策',
+    switchToPersonalLogin: '切换到个人登录',
     agreeLogin: '登录/注册即代表您同意',
     smsOrPassword: '短信、密码登录或注册',
     scanWeChatCode: '微信扫码快速登录',

+ 6 - 2
src/store/user.js

@@ -20,8 +20,9 @@ export const useUserStore = defineStore('user',
       // 短信登录
       async handleSmsLogin (data) {
         return new Promise((resolve, reject) => {
-          const loginApi = data.type === 330 ? smsLoginOfEnterprise : smsLogin
+          const loginApi = data.loginType === 330 ? smsLoginOfEnterprise : smsLogin
           loginApi(data).then(res => {
+            // res.loginType = data.loginType
             setToken(res.accessToken)
             setRefreshToken(res.refreshToken)
             this.accountInfo = res
@@ -36,8 +37,9 @@ export const useUserStore = defineStore('user',
       // // 密码登录
       async handlePasswordLogin(data) {
         return new Promise((resolve, reject) => {
-          const loginApi = data.type === 330 ? passwordLoginOfEnterprise : passwordLogin
+          const loginApi = data.loginType === 330 ? passwordLoginOfEnterprise : passwordLogin
           loginApi(data).then(res => {
+            // res.loginType = data.loginType
             setToken(res.accessToken)
             setRefreshToken(res.refreshToken)
             this.accountInfo = res
@@ -89,7 +91,9 @@ export const useUserStore = defineStore('user',
         this.userInfo = {}
         this.baseInfo = {}
         this.accountInfo = {}
+        const companyInfo = localStorage.getItem('companyInfo')
         localStorage.clear()
+        localStorage.setItem('companyInfo', companyInfo)
       }
     }
   },

+ 41 - 7
src/views/login/index.vue

@@ -8,7 +8,25 @@
               {{ isPhone ? $t('login.smsOrPassword') : $t('login.scanWeChatCode') }}
             </div>
           </div>
-          <div v-if="loginType" class="loginType">{{ $t('login.enterpriseLogin') }}</div>
+          <div v-if="loginType" class="loginType">
+            <span>{{ $t('login.enterpriseLogin') }}</span>
+            <v-tooltip :text="$t('login.switchToPersonalLogin')" location="start">
+              <template v-slot:activator="{ props }">
+                <v-btn
+                  class="ml-0"
+                  color="#fffff"
+                  size="x-small"
+                  icon="mdi-swap-vertical"
+                  variant="plain"
+                  v-bind="props"
+                  to="/login"
+                  @click="switchToPersonalLogin"
+                >
+                </v-btn>
+              </template>
+            </v-tooltip>
+            <!-- <span class="mdi mdi-swap-vertical ml-4"></span> -->
+          </div>
         </div>
         <div class="right mr-2 mt-3" v-if="showClose">
           <v-icon color="grey" size="30">mdi-close</v-icon>
@@ -85,13 +103,24 @@ const handleLogin = async () => {
   loginLoading.value = true
   try {
     const type = loginType.value
-    if (tab.value === 1) {
-      await userStore.handleSmsLogin({ ...phoneRef.value.loginData, type })
-    } else {
-      await userStore.handlePasswordLogin({ ...passRef.value.loginData, type })
+    let params, api = {}
+    if (tab.value === 1) { params = { ...phoneRef.value.loginData }; api = 'handleSmsLogin'}
+    else { params = { ...passRef.value.loginData }; api = 'handlePasswordLogin'}
+    // 企业登录
+    if (type === 330) {
+      const companyList = JSON.parse(localStorage.getItem('companyInfo'))
+      if (companyList?.length) {
+        params.loginType = type // 前端判断是否是企业登录标识 330 为企业否者为个人
+        const companyInfo = companyList[0]
+        params.enterpriseId = companyInfo.enterpriseId
+      }
     }
+    // await userStore.handlePasswordLogin({ ...passRef.value.loginData, type }) //tab.value === 1
+    // await userStore.handleSmsLogin({ ...phoneRef.value.loginData, type })
+    await userStore[api](params)
     Snackbar.success(t('login.loginSuccess'))
-    router.push({ path: '/home' })
+    const path = type === 330 ? '/enterprise' : '/home'
+    router.push({ path })
   }
   finally {
     loginLoading.value = false
@@ -105,6 +134,11 @@ const handleToUserAgreement = () => {
 const handlePrivacyPolicy = () => {
   router.push({ path: '/privacyPolicy' })
 }
+
+const switchToPersonalLogin = () => {
+  loginType.value = 0
+  Snackbar.success(t('common.switchSuccessful'))
+}
 </script>
 
 <style lang="scss" scoped>
@@ -114,7 +148,7 @@ const handlePrivacyPolicy = () => {
   right: 0;
   // width: 100%;
   color: #fff;
-  padding: 10px 30px;
+  padding: 4px 15px 4px 30px;
   border-radius: 8px 0 0 8px;
   background-color: #ffba5d;
   font-size: 16px;