Selaa lähdekoodia

招聘会面包屑

Xiao_123 3 kuukautta sitten
vanhempi
commit
03ffde4e25

+ 8 - 0
src/api/recruit/personal/jobFair.js

@@ -8,6 +8,14 @@ export const getJobFairEnterprisePage = async (params) => {
 	})
 }
 
+// 获得招聘会
+export const getJobFair = async (id) => {
+	return await request.get({
+		url: '/app-api/menduner/system/job-fair/get',
+		params: { id }
+	})
+}
+
 // 招聘会列表
 export const getJobFairList = async () => {
 	return await request.get({

+ 9 - 7
src/views/recruit/personal/jobFair/index.vue

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

+ 2 - 2
src/views/recruit/personal/jobFair/position/components/jobCard.vue

@@ -1,6 +1,6 @@
 <template>
 	<div class="resume-header mb-4 mt-1">
-    <div class="resume-title">{{ enterpriseName }}</div>
+    <div class="resume-title" v-ellipse-tooltip style="max-width: 400px;">{{ enterpriseName }}</div>
 		<TextInput :item="textItem" @enter="handleSearch" @appendInnerClick="handleSearch" />
   </div>
 	<div v-if="items.length > 0" v-loading="loading">
@@ -67,7 +67,7 @@ const desc = [
 ]
 const textItem = ref({
   type: 'text',
-  width: 300,
+  width: 220,
   value: '',
   label: '职位关键字',
 	placeholder: '请输入职位关键字',

+ 20 - 7
src/views/recruit/personal/jobFair/position/index.vue

@@ -3,11 +3,11 @@
     <div style="background-color: #fff; position: sticky;" class="pb-4">
       <buttons :current="3"></buttons>
 			<v-breadcrumbs v-if="breadcrumbs?.length" :items="breadcrumbs">
-				<template v-slot:item="{ item, index }">
-					<span class="breadcrumbsText" :class="{ active: !item.disabled && index !== breadcrumbs.length-1 }" @click="breadcrumbsClickDeal({ e: item, breadcrumbs, index })">{{ item.text }}</span>
+				<template v-slot:item="{ item }">
+					<span class="breadcrumbsText" :class="{ active: !item.disabled }" @click="handleClick(item)">{{ item.text }}</span>
 				</template>
 			</v-breadcrumbs>
-			<headSearch v-model="query.keyword" placeholder="搜索公司关键字" @handleSearch="handleSearch"></headSearch>
+			<headSearch v-model="query.keyword" :class="{'mt-3': !breadcrumbs?.length}" placeholder="搜索公司关键字" @handleSearch="handleSearch"></headSearch>
     </div>
     <Empty v-if="!items.length" :message="loadingType === 1 ? loadingText[loadingType] : '该招聘会暂无企业参与,前往其他招聘会看看吧~'" class="mt-3 py-15"></Empty>
     <template v-else>
@@ -31,15 +31,28 @@
 defineOptions({ name: 'jobFairPosition' })
 import buttons from '@/views/recruit/personal/components/buttons.vue'
 import { ref, reactive } from 'vue'
-import { getJobFairEnterprisePage } from '@/api/recruit/personal/jobFair'
+import { getJobFairEnterprisePage, getJobFair } from '@/api/recruit/personal/jobFair'
 import EntCard from './components/entCard.vue'
 import JobCard from './components/jobCard.vue'
-import { useRoute } from 'vue-router'; const route = useRoute()
-import { breadcrumbsClickDeal, getJobFairBreadcrumbs } from '@/utils/index'
+import { useRoute, useRouter } from 'vue-router'; const route = useRoute(); const router = useRouter()
 import { formatName } from '@/utils/getText'
 import { dealDictArrayData } from '@/utils/position'
 
-const breadcrumbs = ref(getJobFairBreadcrumbs(route?.query) || [])
+const breadcrumbs = ref([
+  { text: '招聘会', path: '/recruit/personal/jobFair' },
+  { text: '', path: '', disabled: true }
+])
+const handleClick = (item) => {
+  if (!item.path || item.disabled) return
+  router.push(item.path)
+}
+// 招聘会详情-面包屑标题设置
+const getJobFairDetail = async () => {
+  const data = await getJobFair(route?.params?.id)
+  if (!data) return
+  breadcrumbs.value[breadcrumbs.value.length - 1].text = data.title.replace(/<\/?p[^>]*>/gi, '')
+}
+getJobFairDetail()
 
 // 切换企业选中
 const enterpriseId = ref('')