Jelajahi Sumber

招聘会调整

Xiao_123 3 bulan lalu
induk
melakukan
f0dee2a963

+ 0 - 3
components.d.ts

@@ -75,7 +75,4 @@ declare module 'vue' {
     VerifySlide: typeof import('./src/components/Verifition/Verify/VerifySlide.vue')['default']
     WangEditor: typeof import('./src/components/FormUI/wangEditor/index.vue')['default']
   }
-  export interface ComponentCustomProperties {
-    vLoading: typeof import('element-plus/es')['ElLoadingDirective']
-  }
 }

+ 5 - 0
src/router/modules/recruit.js

@@ -191,6 +191,11 @@ const recruit = [
     component: () => import('@/views/recruit/personal/jobFair/details/position.vue'),
     name: 'jobFairPosition'
   },
+  {
+    path: '/recruit/personal/jobFair/entPosition/:id',
+    component: () => import('@/views/recruit/personal/jobFair/details/entJobCard.vue'),
+    name: 'jobFairEntPosition'
+  },
   {
     path: '/recruit/personal/company/details/:id',
     component: Layout,

+ 9 - 7
src/views/recruit/personal/jobFair/details/components/entCard1.vue

@@ -1,7 +1,7 @@
 <template>
 	<div class="content">
 		<v-hover v-slot="{ isHovering, props }" v-for="val in list" :key="val.id">
-			<v-card v-bind="props" :elevation="isHovering ? 10 : 5" class="cursor-pointer mb-3" @click="jumpToEnterpriseDetail(val.id, true)">
+			<v-card v-bind="props" :elevation="isHovering ? 10 : 5" class="cursor-pointer" @click="handleClickEnterprise(val.id)">
 				<div class="d-flex pa-4 pb-2">
 					<img :src="val.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" style="width: 100px; height: 100px; border-radius: 4px;border: 1px solid #ccc;" />
 					<div style="max-width: 370px;">
@@ -12,7 +12,7 @@
 							<span>{{ val.scaleName }}</span>
 						</p>
 						<div class="flex-nowrap overflow-hidden pl-3" style="height: 35px;">
-							<v-chip v-for="(welfare, index) in val.welfareList" :key="index" class="mr-2 mb-4 display-inline-block" variant="flat" color="primary" size="small">
+							<v-chip v-for="(welfare, index) in val.welfareList" :key="index" class="mr-2 mb-4 display-inline-block" color="primary" size="small">
 								{{ welfare }}
 							</v-chip>
 						</div>
@@ -30,21 +30,23 @@
 <script setup>
 defineOptions({ name: 'EntCard' })
 import { formatName } from '@/utils/getText'
-import { jumpToEnterpriseDetail } from '@/utils/position'
+// import { jumpToEnterpriseDetail } from '@/utils/position'
 
-defineProps({
+const props = defineProps({
 	list: Array,
 	jobFairId: String
 })
 
-const handleClickEnterprise = (id) => {}
+const handleClickEnterprise = (id) => {
+	window.open(`/recruit/personal/jobFair/entPosition/${props.jobFairId}?enterpriseId=${id}`)
+}
 </script>
 
 <style scoped lang="scss">
 .content {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
-  gap: 12px;
+  gap: 24px;
   min-height: auto;
 }
 .card-bottom {
@@ -52,7 +54,7 @@ const handleClickEnterprise = (id) => {}
 	line-height: 40px;
 	text-align: end;
 	font-size: 15px;
-	color: #00897B;
+	color: var(--v-primary-base);
 	background-color: #f5f5f5;
 }
 

+ 2 - 2
src/views/recruit/personal/jobFair/details/components/jobCard1.vue

@@ -1,7 +1,7 @@
 <template>
 	<div class="content">
 		<v-hover v-slot="{ isHovering, props }" v-for="val in list" :key="val.id">
-			<v-card  class="cursor-pointer mb-3 pa-4" v-bind="props" :elevation="isHovering ? 10 : 5" >
+			<v-card  class="cursor-pointer pa-4" v-bind="props" :elevation="isHovering ? 10 : 5" >
 				<div @click="handleClick(val.id)">
 					<div class="d-flex justify-space-between">
 						<div class="d-flex align-center">
@@ -70,7 +70,7 @@ const handleClick = (id) => {
 .content {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
-  gap: 12px;
+  gap: 24px;
   min-height: auto;
 }
 .salary {

+ 30 - 14
src/views/recruit/personal/jobFair/details/entJobCard.vue

@@ -2,17 +2,19 @@
 <template>
   <div>
     <!-- 轮播 -->
-    <v-carousel v-if="jobFair?.pcHeadImg && jobFair?.pcHeadImg.length > 0" :show-arrows="jobFair?.pcHeadImg.length > 1 ? 'hover' : false" cycle :hide-delimiters="true" style="height: 500px;">
+    <!-- <v-carousel v-if="jobFair?.pcHeadImg && jobFair?.pcHeadImg.length > 0" :show-arrows="jobFair?.pcHeadImg.length > 1 ? 'hover' : false" cycle :hide-delimiters="true" style="height: 500px;">
 			<v-carousel-item v-for="(k, i) in jobFair?.pcHeadImg" :key="i">
 				<img :src="k" :lazy-src="k" style="width: 100%; height:100%;">
 			</v-carousel-item>
-		</v-carousel>
+		</v-carousel> -->
 
-    <div :style="`background-color: ${jobFair.backgroundColour}; min-height: calc(100vh - 500px);`">
+    <!-- <div :style="{'background-color': jobFair.backgroundColour || '#fff', 'min-height': jobFair?.pcHeadImg && jobFair?.pcHeadImg.length > 0 ? 'calc(100vh - 500px)' : '100vh'}"> -->
+    <div :style="{'background-color': jobFair.backgroundColour || '#fff', 'min-height': '100vh'}">
       <div class="default-width">
+        <h2 class="color-white pt-5 enterpriseName">{{ enterpriseName }}</h2>
         <div v-if="!items.length" class="emptyText">{{ loadingType === 1 ? loadingText[loadingType] : '暂无数据,去看看其他吧~' }}</div>
         <template v-else>
-          <JobCard :jobFairId="jobFair?.id" :list="items" class="mt-5" />
+          <JobCard :jobFairId="jobFair?.id" :list="items" class="pt-5" />
           <div :class="['loading', {'loadMoreText': !loadingType}]" class="pb-5" @click="handleChangePage">{{ loadingText[loadingType] }}</div>
         </template>
       </div>
@@ -27,13 +29,14 @@ import { getJobFair, getJobFairEntJobPage } from '@/api/recruit/personal/jobFair
 import JobCard from './components/jobCard1.vue'
 import { useRoute } from 'vue-router'; const route = useRoute();
 import { dealDictObjData } from '@/utils/position'
+import { getEnterpriseDetails } from '@/api/enterprise'
+import { formatName } from '@/utils/getText'
 
-const tab = ref(0)
 const query = reactive({
   pageNo: 1,
   pageSize: 20,
 	jobFairId: route.params.id,
-  enterpriseId: route.query.enterpriseId,
+  enterpriseId: route.query.enterpriseId
 })
 
 const items = ref([])
@@ -44,13 +47,6 @@ const loadingType = ref(0)
 const getList = async () => {
 	loadingType.value = 1
 
-  // 有类别的添加筛选条件
-  if (jobFair.value?.tag && jobFair.value?.tag.length) {
-    const key = jobFair.value.tag[tab.value].key
-    const value = jobFair.value.tag[tab.value].value
-    query[key] = value
-  }
-
 	try {
 		const result = await getJobFairEntJobPage(query)
 		const list = result?.list || []
@@ -70,11 +66,16 @@ const getList = async () => {
 
 // 招聘会详情
 const jobFair = ref([])
+const enterpriseName = ref('')
 const getJobFairDetail = async () => {
   const data = await getJobFair(route?.params?.id)
   if (!data) return
   jobFair.value = data
-  // document.title = data.title.replace(/<\/?p[^>]*>/gi, '')
+
+  const { enterprise } = await getEnterpriseDetails({ id: route.query.enterpriseId })
+  enterpriseName.value = formatName(enterprise.anotherName || enterprise.name)
+  document.title = enterpriseName.value + ' - 招聘会职位'
+
   getList()
 }
 getJobFairDetail()
@@ -89,6 +90,21 @@ const handleChangePage = () => {
 </script>
 
 <style scoped lang="scss">
+.enterpriseName {
+  position: relative;
+  padding-left: 20px;
+  &::before {
+    display: block;
+    content: '';
+    width: 6px;
+    height: 30px;
+    background-color: #fff;
+    position: absolute;
+    top: 25px;
+    left: 0;
+    border-radius: 2px;
+  }
+}
 .emptyText {
   color: #fff;
   height: calc(100vh - 574px);

+ 1 - 1
src/views/recruit/personal/jobFair/details/enterprises.vue

@@ -8,7 +8,7 @@
 			</v-carousel-item>
 		</v-carousel>
 
-    <div :style="`background-color: ${jobFair.backgroundColour}; min-height: calc(100vh - 500px);`">
+    <div :style="{'background-color': jobFair.backgroundColour || '#fff', 'min-height': jobFair?.pcHeadImg && jobFair?.pcHeadImg.length > 0 ? 'calc(100vh - 500px)' : '100vh'}">
       <div class="default-width">
         <!-- 类别展示 -->
         <div class="d-flex align-center" v-if="jobFair?.tag && jobFair.tag.length">