Browse Source

冲突合并

Xiao_123 11 tháng trước cách đây
mục cha
commit
ea0d431d34

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

@@ -24,6 +24,14 @@ export const smsLogin = async (data) => {
   })
 }
 
+// 切换登录
+export const switchLoginOfEnterprise = async (data) => {
+  return await request.post({
+    url: '/app-admin-api/menduner/system/enterprise/auth/switch-login',
+    data
+  })
+}
+
 // 企业-验证码登录
 export const smsLoginOfEnterprise = async (data) => {
   return await request.post({
@@ -32,7 +40,6 @@ export const smsLoginOfEnterprise = async (data) => {
   })
 }
 
-
 // 企业-密码登录
 export const passwordLoginOfEnterprise = async (data) => {
   return await request.post({

+ 14 - 9
src/components/headSearch/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="search d-flex align-center">
-    <v-menu :close-delay="1" :open-delay="0" v-bind="$attrs">
+    <v-menu v-if="defineProps.text" :close-delay="1" :open-delay="0" v-bind="$attrs">
       <template v-slot:activator="{ isActive, props }">
         <v-btn
           style="height: 100%; font-size: 16px;"
@@ -24,7 +24,7 @@
     </div> -->
     <v-text-field
       v-model="value"
-      placeholder="搜索职位/公司"
+      :placeholder="defineProps.placeholder"
       color="primary"
       variant="plain"
       density="compact"
@@ -47,9 +47,13 @@ const route = useRoute(); const router = useRouter()
 const emits = defineEmits(['update:modelValue', 'handleSearch', 'handleJobClick'])// 定义一个或多个自定义事件
 const defineProps = defineProps({
   modelValue: [String, Number],
+  placeholder: {
+    type: String,
+    default: '搜索职位/公司'
+  },
   text: {
     type: String,
-    default: '职位类型'
+    default: ''
   },
 })
 
@@ -67,16 +71,17 @@ watch(() => sharedState.layoutClickCount, () => {
 });
 
 const handleSearch = () => {
-  // 职位搜索页传参,其它的跳转到职位搜索页
-  if (route.path !== '/recruit/position') {
-    if (value.value) router.push(`/recruit/position?content=${value.value}`)
-    else router.push('/recruit/position')
-  } else emits('handleSearch', value.value)
+  // // 职位搜索页传参,其它的跳转到职位搜索页
+  // if (route.path !== '/recruit/position') {
+  //   if (value.value) router.push(`/recruit/position?content=${value.value}`)
+  //   else router.push('/recruit/position')
+  // } else emits('handleSearch', value.value)
+  emits('handleSearch', value.value)
 }
 
 const handleClickJob = (val) => {
   // 职位搜索页点击传参, 其它的跳转到职位搜索页
-  if (route.path !== '/recruit/position') router.push(`/recruit/position?positionId=${val.id}`)
+  if (route.path !== '/recruit/position') router.push(`/recruit/position?positionId=${val[0]}`)
   else emits('handleJobClick', val)
 }
 

+ 19 - 9
src/layout/personal/navBar.vue

@@ -131,14 +131,30 @@ const handleLogoClick = () => { router.push({ path: '/home'}) }
 const changeLoginType = async () => {
   // router.push({ path: '/login' })
   // router.push({ name: 'login', query: { loginType: 330 } })
-
   const data = await getUserBindEnterpriseList() // 申请通过才会数据,否则空数组
   if (data?.length) {
-    localStorage.setItem('companyInfo', JSON.stringify(data))
-    changeRole()
+    // localStorage.setItem('companyInfo', JSON.stringify(data))
+    // changeRole()
+    if (data.length > 1) {
+      // 未开发
+      toEnterprise(data[0].id)
+    } else {
+      //只有一个企业直接切换
+      toEnterprise(data[0].id)
+    }
   }
   else getApplyInfo()
 }
+// 切换为招聘者
+const toEnterprise = async (enterpriseId) => {
+  await getUserBindEnterpriseList({ enterpriseId })
+  router.push({ path: '/enterprise' })
+}
+// // 切换为招聘者
+// const changeRole = async () => {
+//   await userStore.userLogout()
+//   router.push({ name: 'login', query: { loginType: 330 } })
+// }
 
 // 查看用户是否有在申请中的数据
 const getApplyInfo = async () => {
@@ -158,12 +174,6 @@ const handleLogout = async () => {
   router.push({ path: '/login' })
 }
 
-// 切换为招聘者
-const changeRole = async () => {
-  await userStore.userLogout()
-  router.push({ name: 'login', query: { loginType: 330 } })
-}
-
 const items = ref([
   { title: t('resume.onlineResume'), icon: 'mdi-list-box-outline', change: () => router.push({ path: '/resume' }) },
   { title: t('setting.accountSettings'), icon: 'mdi-cog-outline', change: () => router.push({ path: '/personalAccount/accountBinding' }) },

+ 4 - 4
src/store/user.js

@@ -90,16 +90,16 @@ export const useUserStore = defineStore('user',
       },
       // 退出登录
       async userLogout () {
-        const loginUserPhone = this.userInfo?.phone || ''
+        // const loginUserPhone = this.userInfo?.phone || ''
         await logout()
         removeToken()
         this.userInfo = {}
         this.baseInfo = {}
         this.accountInfo = {}
-        const companyInfo = localStorage.getItem('companyInfo')
+        // const companyInfo = localStorage.getItem('companyInfo')
         localStorage.clear()
-        localStorage.setItem('companyInfo', companyInfo)
-        localStorage.setItem('loginUserPhone', loginUserPhone)
+        // localStorage.setItem('companyInfo', companyInfo)
+        // localStorage.setItem('loginUserPhone', loginUserPhone)
       }
     }
   },

+ 7 - 1
src/views/Home/personal/index.vue

@@ -2,7 +2,7 @@
   <div>
     <headCarousel></headCarousel>
     <div class="stickyBox py-5">
-      <headSearch></headSearch>
+      <headSearch text="职位类型" @handleSearch="handleSearch"></headSearch>
     </div>
     <hotJobs></hotJobs>
     <div class="default-width">
@@ -22,7 +22,13 @@ import hotJobs from './components/hotJobs.vue'
 import homeJobTypeCard from './components/homeJobTypeCard'
 import hotPromotedPositions from './components/hotPromotedPositions.vue'
 import PopularEnterprises from './components/popularEnterprises.vue'
+import { useRouter } from 'vue-router'
+const router = useRouter()
 defineOptions({ name:'personal-index'})
+
+const handleSearch = (val) => {
+  if (val) router.push(`/recruit/position?content=${val}`)
+}
 </script>
 
 <style lang="scss" scoped>

+ 1 - 0
src/views/enterprise/personnelManagement/index.vue

@@ -1,3 +1,4 @@
+<!-- 牛人管理 -->
 <template>
   <v-card class="pa-5 card-box">
     <div class="d-flex justify-space-between">

+ 2 - 1
src/views/login/components/companySelect.vue

@@ -16,7 +16,8 @@ const emit = defineEmits(['update:modelValue'])
 const value = ref(props.modelValue)
 
 // 企业登录
-const companyList = JSON.parse(localStorage.getItem('companyInfo'))
+// const companyList = JSON.parse(localStorage.getItem('companyInfo'))
+const companyList = []
 if (companyList?.length) {
   const id = companyList[0].enterpriseId
   value.value = id

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

@@ -39,6 +39,7 @@
             <v-tab :value="2">{{ $t('login.passwordLogin') }}</v-tab>
           </v-tabs>
           <div v-if="loginType" class="mt-9">
+            <!-- 企业选择 -->
             <companySelect ref="companySelectRef" v-model="enterpriseId"></companySelect>
           </div>
           <v-window v-model="tab" :class="{'mt-9': !loginType}">
@@ -116,7 +117,7 @@ const companySelectRef = ref()
 const beforeHandleLogin = async (params) => {
   const data = await getUserBindEnterpriseListByPhone({ phone: params.phone}) // 申请通过才会数据,否则空数组
   if (companySelectRef.value.item?.items) companySelectRef.value.item.items = data
-  localStorage.setItem('companyInfo', JSON.stringify(data))
+  // localStorage.setItem('companyInfo', JSON.stringify(data))
   const bool = Boolean(data?.length)
   if (!bool) Snackbar.warning(t('login.loginFailed'))
   return bool

+ 1 - 1
src/views/recruit/company/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="default-width">
     <div class="white-bgc py-3">
-      <headSearch></headSearch>
+      <headSearch placeholder="搜索公司" @handleSearch="val => handleSearch(val, 'name')"></headSearch>
       <div class="px-5 mt-3 clear-parent">
         <areaType class="mb-3" :isClear="clear" @handleClick="handleSearch"></areaType>
         <industryType :isClear="clear" @handleClick="handleSearch"></industryType>

+ 2 - 0
src/views/recruit/position/index.vue

@@ -69,6 +69,7 @@ const getData = async () => {
     const passingStrings = ['content'] // 传递字符串
     const passingOneId = ['positionId'] // 单选且传递整型
     Object.keys(routeQuery).forEach(key => {
+      if (routeQuery[key] === '') return
       if (key === 'city') { // 工作地区id集合,示例值([])
         const city = routeQuery[key]
         const areaIds = []
@@ -106,6 +107,7 @@ const updateRouter = () => {
     return res
   }, '') : ''
   router.push(`${route.path}?${str}`)
+  pageInfo.pageNo = 1
   getData()
 }