瀏覽代碼

优先展示在招职位

lifanagju_citu 3 月之前
父節點
當前提交
9d56b5d7c6

+ 1 - 1
components.d.ts

@@ -31,8 +31,8 @@ declare module 'vue' {
     CtTextField: typeof import('./src/components/CtVuetify/CtTextField/index.vue')['default']
     DatePicker: typeof import('./src/components/DatePicker/index.vue')['default']
     Echarts: typeof import('./src/components/Echarts/index.vue')['default']
-    ElCascader: typeof import('element-plus/es')['ElCascader']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
+    ElTree: typeof import('element-plus/es')['ElTree']
     Empty: typeof import('./src/components/Empty/index.vue')['default']
     File: typeof import('./src/components/Upload/file.vue')['default']
     HeadSearch: typeof import('./src/components/headSearch/index.vue')['default']

+ 11 - 12
src/utils/index.js

@@ -144,20 +144,19 @@ export const removeEmptyProperties = (obj) => {
 }
 
 // 招聘会面包屑数据
-export const getJobFairBreadcrumbs = () => {
-  return localStorage.getItem('jobFairBreadcrumbs') && JSON.parse(localStorage.getItem('jobFairBreadcrumbs')) || []
+export const getJobFairBreadcrumbs = (query) => {
+  return query?.breadcrumbs ? JSON.parse(query.breadcrumbs) : []
 }
 
 // 招聘会面包屑点击
-export const breadcrumbsClickDeal = ({ e, index }) => {
-  const { disabled, path } = e
-  if (disabled) {
-    // event.preventDefault()
-    return
-  }
-  const breadcrumbs = getJobFairBreadcrumbs()
-	if (index === breadcrumbs?.length-1) return // 当前页面不可点击
-  if (breadcrumbs) breadcrumbs.splice(index+1) // 删除后面数据
+export const breadcrumbsClickDeal = ({ e, breadcrumbs, index }) => {
+  const { disabled, path } = e // 点击的面包屑
+  if (disabled || !breadcrumbs?.length) return
+  // 当前页面不可点击
+	if (index === breadcrumbs?.length-1) return
+  // 截取面包屑
+  const list = index ? JSON.stringify((breadcrumbs.slice(0, index+1))) : "[]"
   // 跳转
-  if (path) router.push(path)
+  const query = index ? { breadcrumbs: list } : null
+  router.push({ path, query })
 }

+ 20 - 18
src/views/recruit/personal/jobFair/details.vue

@@ -6,7 +6,7 @@
 			<div class="white-bgc py-5">
 				<v-breadcrumbs v-if="breadcrumbs?.length" :items="breadcrumbs" elevation="3">
           <template v-slot:item="{ item, index }">
-            <span class="breadcrumbsText" :class="{ active: !item.disabled && index !== breadcrumbs.length-1 }" @click="breadcrumbsClickDeal({ e: item, index })">{{ item.text }}</span>
+            <span class="breadcrumbsText" :class="{ active: !item.disabled && index !== breadcrumbs.length-1 }" @click="breadcrumbsClickDeal({ e: item, breadcrumbs, index })">{{ item.text }}</span>
           </template>
 				</v-breadcrumbs>
 				<headSearch v-model="content" placeholder="搜索公司关键字" @handleSearch="handleSearch"></headSearch>
@@ -44,18 +44,20 @@ import { formatName } from '@/utils/getText'
 import buttons from '@/views/recruit/personal/components/buttons.vue'
 import { getJobFair } from '@/api/recruit/enterprise/jobFair'
 import { useRouter } from 'vue-router'; const router = useRouter()
+import { useRoute } from 'vue-router'; const route = useRoute()
 import { breadcrumbsClickDeal, getJobFairBreadcrumbs } from '@/utils/index'
 
+const breadcrumbs = ref(getJobFairBreadcrumbs(route?.query) || [])
+
 const content = ref('')
-const breadcrumbs = ref(getJobFairBreadcrumbs())
 
 const list = ref([
 	{
-		name: '厦门嘉逸希尔顿格芮精选酒店厦门嘉逸希尔顿格芮精选酒店',
-		id: '83602245358325760',
+		name: '烟台金海岸希尔顿酒店',
+		id: '590327104604868608',
 		industryName: '全服务中档酒店/4星级',
-		jobNum: 5,
-		logoUrl: 'https://minio.menduner.com/dev/enterprise/1872204532362121217/img/3e1ae92796fd6bc6bbbb38333dbab5ac886887b01d5bec19a90e6134e6c34b21.jpeg',
+		jobNum: 16,
+		logoUrl: 'https://www.mendunerhr.com/images/1675850394485_590327104604868608_mini.jpg',
 		job: [
 			{ name: 'Executive Chef 行政总厨' },
 			{ name: 'Sales Manager 销售经理' },
@@ -63,11 +65,11 @@ const list = ref([
 		]
 	},
 	{
-		name: '厦门嘉逸希尔顿格芮精选酒店',
-		id: 2,
+		name: '济南鲁能希尔顿酒店及公寓',
+		id: '24610866855022592',
 		industryName: '酒店集团',
-		jobNum: 5,
-		logoUrl: 'https://www.mendunerhr.com/images/1570688031889_149244186519015424_mini.jpg',
+		jobNum: 1,
+		logoUrl: 'https://www.mendunerhr.com/images/1540973133000_24610866855022592_mini.jpg',
 		job: [
 			{ name: '行政总厨' },
 			{ name: '销售经理' },
@@ -75,11 +77,11 @@ const list = ref([
 		]
 	},
 	{
-		name: '厦门嘉逸希尔顿格芮精选酒店',
-		id: 2,
+		name: '天津生态城世茂希尔顿酒店',
+		id: '69553335253995520',
 		industryName: '酒店集团',
-		jobNum: 5,
-		logoUrl: 'https://www.mendunerhr.com/images/1721650339000_782425998783287296_mini.jpg',
+		jobNum: 3,
+		logoUrl: 'https://www.mendunerhr.com/images/1551688252363_69553335253995520_mini.jpg',
 		job: [
 			{ name: '行政总厨' },
 			{ name: '销售经理' },
@@ -103,12 +105,12 @@ const handleClickEnterprise = (val) => {
 	if (!val?.id) return
 	const path = '/recruit/personal/jobFair/enterprise/' + val.id
 	// 面包屑储存
-	localStorage.setItem('jobFairBreadcrumbs', JSON.stringify([
-		...JSON.parse(localStorage.getItem('jobFairBreadcrumbs')),
+	const list = JSON.stringify([
+		...breadcrumbs.value,
 		{ text: val.name || '', path }
-	]))
+	])
 	// 跳转
-  router.push(path)
+  router.push({ path, query: { breadcrumbs: list } })
 }
 </script>
 

+ 6 - 5
src/views/recruit/personal/jobFair/enterprise/index.vue

@@ -4,7 +4,7 @@
     <div class="py-5">
       <v-breadcrumbs v-if="breadcrumbs?.length" :items="breadcrumbs" elevation="3">
         <template v-slot:item="{ item, index }">
-          <span class="breadcrumbsText" :class="{ active: !item.disabled && index !== breadcrumbs.length-1 }" @click="breadcrumbsClickDeal({ e: item, index })">{{ item.text }}</span>
+          <span class="breadcrumbsText" :class="{ active: !item.disabled && index !== breadcrumbs.length-1 }" @click="breadcrumbsClickDeal({ e: item, breadcrumbs, index })">{{ item.text }}</span>
         </template>
       </v-breadcrumbs>
     </div>
@@ -36,8 +36,8 @@
       <v-divider></v-divider> -->
       <div class="mt-3">
         <v-tabs v-model="tab" align-tabs="start" color="primary" bg-color="#f3f3f3" @update:model-value="handleTabClick">
-          <v-tab :value="1">公司简介</v-tab>
           <v-tab :value="2">在招职位</v-tab>
+          <v-tab :value="1">公司简介</v-tab>
         </v-tabs>
         <div class="d-flex" v-if="Object.keys(info).length">
           <div class="content-left">
@@ -91,15 +91,16 @@ import { breadcrumbsClickDeal, getJobFairBreadcrumbs } from '@/utils/index'
 const route = useRoute()
 const router = useRouter()
 const { id } = router.currentRoute.value.params
-const tab = ref(1)
+const breadcrumbs = ref(getJobFairBreadcrumbs(route?.query) || [])
+
+const tab = ref(2)
 const savedTab = new URLSearchParams(window.location.search).get('key')
-tab.value = savedTab ? (savedTab === 'briefIntroduction' ? 1 : 2) : 1
+tab.value = savedTab ? (savedTab === 'briefIntroduction' ? 1 : 2) : 2
 
 const handleTabClick = () => {
   router.push(`${route.path}?key=${tab.value === 1 ? 'briefIntroduction' : 'recruitmentPositions'}`)
 }
 
-const breadcrumbs = ref(getJobFairBreadcrumbs())
 
 // 返回上一页
 const handleReturn = () => {

+ 3 - 3
src/views/recruit/personal/jobFair/index.vue

@@ -73,12 +73,12 @@ const handleJoin = (val) => {
 	// 面包屑储存
 	let text = val.title ? val.title.replace(/<[^>]+>/g, ' ') : '' // 去掉所有 HTML 标签
 	text = text ? text.replace(/\s+/g, ' ').trim() : '' // 去掉多余的空格
-	localStorage.setItem('jobFairBreadcrumbs', JSON.stringify([
+	const list = JSON.stringify([
 		{ text: '招聘会' , path: '/recruit/personal/jobFair' },
 		{ text, path }
-	]))
+	])
 	// 跳转
-  router.push(path)
+  router.push({ path, query: { breadcrumbs: list } })
 }
 </script>