|
@@ -1,5 +1,13 @@
|
|
<template>
|
|
<template>
|
|
<div class="default-width banner px-6">
|
|
<div class="default-width banner px-6">
|
|
|
|
+ <!-- 面包屑 -->
|
|
|
|
+ <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({ item, index })">{{ item.text }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </v-breadcrumbs>
|
|
|
|
+ </div>
|
|
<div v-if="Object.keys(info).length">
|
|
<div v-if="Object.keys(info).length">
|
|
<div class="banner-title pt-3" v-if="Object.keys(info).length">
|
|
<div class="banner-title pt-3" v-if="Object.keys(info).length">
|
|
<div class="float-left d-flex align-center">
|
|
<div class="float-left d-flex align-center">
|
|
@@ -13,11 +21,11 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="float-right d-flex">
|
|
|
|
|
|
+ <!-- <div class="float-right d-flex">
|
|
<v-btn color="primary" variant="text" size="large" @click.stop="handleReturn" prepend-icon="mdi-chevron-triple-left">返回上一页</v-btn>
|
|
<v-btn color="primary" variant="text" size="large" @click.stop="handleReturn" prepend-icon="mdi-chevron-triple-left">返回上一页</v-btn>
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
</div>
|
|
</div>
|
|
- <div class="text-end mb-3">
|
|
|
|
|
|
+ <!-- <div class="text-end mb-3">
|
|
<v-tooltip location="bottom">
|
|
<v-tooltip location="bottom">
|
|
<template v-slot:activator="{ props }">
|
|
<template v-slot:activator="{ props }">
|
|
<v-icon v-bind="props" class="ml-5 mr-2" size="25" :color="isCollection ? 'error' : ''" @click.stop="handleFollow">{{ isCollection ? 'mdi-heart' : 'mdi-heart-outline' }}</v-icon>
|
|
<v-icon v-bind="props" class="ml-5 mr-2" size="25" :color="isCollection ? 'error' : ''" @click.stop="handleFollow">{{ isCollection ? 'mdi-heart' : 'mdi-heart-outline' }}</v-icon>
|
|
@@ -25,11 +33,16 @@
|
|
<span>关注该企业</span>
|
|
<span>关注该企业</span>
|
|
</v-tooltip>
|
|
</v-tooltip>
|
|
</div>
|
|
</div>
|
|
- <v-divider></v-divider>
|
|
|
|
|
|
+ <v-divider></v-divider> -->
|
|
<div class="mt-3">
|
|
<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-tabs>
|
|
<div class="d-flex" v-if="Object.keys(info).length">
|
|
<div class="d-flex" v-if="Object.keys(info).length">
|
|
<div class="content-left">
|
|
<div class="content-left">
|
|
- <recruitmentPositions :info="info"/>
|
|
|
|
|
|
+ <EnterpriseIntroduction v-if="tab === 1" :info="info" />
|
|
|
|
+ <recruitmentPositions v-else :info="info"/>
|
|
</div>
|
|
</div>
|
|
<div class="content-right">
|
|
<div class="content-right">
|
|
<div class="welfare mb-3">
|
|
<div class="welfare mb-3">
|
|
@@ -54,7 +67,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
|
|
+
|
|
<!-- 快速登录 -->
|
|
<!-- 快速登录 -->
|
|
<loginPage v-if="showLogin" @loginSuccess="loginSuccess" @close="loginClose"></loginPage>
|
|
<loginPage v-if="showLogin" @loginSuccess="loginSuccess" @close="loginClose"></loginPage>
|
|
</div>
|
|
</div>
|
|
@@ -63,30 +76,42 @@
|
|
<script setup>
|
|
<script setup>
|
|
defineOptions({name: 'jobFair-enterprise'})
|
|
defineOptions({name: 'jobFair-enterprise'})
|
|
import { ref } from 'vue'
|
|
import { ref } from 'vue'
|
|
-import {
|
|
|
|
- getEnterpriseDetails,
|
|
|
|
- getEnterpriseSubscribeCheck,
|
|
|
|
- getEnterpriseSubscribe,
|
|
|
|
- getEnterpriseUnsubscribe
|
|
|
|
-} from '@/api/enterprise'
|
|
|
|
-import { dealDictObjData } from '@/utils/position'
|
|
|
|
|
|
+import EnterpriseIntroduction from './introduction.vue'
|
|
|
|
+import recruitmentPositions from './positions.vue'
|
|
|
|
+import { getEnterpriseDetails, getEnterpriseSubscribeCheck, getEnterpriseSubscribe, getEnterpriseUnsubscribe, enterpriseClick } from '@/api/enterprise'
|
|
import { timesTampChange } from '@/utils/date'
|
|
import { timesTampChange } from '@/utils/date'
|
|
-import { useRouter } from 'vue-router'; const router = useRouter()
|
|
|
|
-import { formatName } from '@/utils/getText'
|
|
|
|
|
|
+import { dealDictObjData } from '@/utils/position'
|
|
|
|
+import { useRoute, useRouter } from 'vue-router'
|
|
import { getToken } from '@/utils/auth'
|
|
import { getToken } from '@/utils/auth'
|
|
-import loginPage from '@/views/common/loginDialog.vue'
|
|
|
|
import Snackbar from '@/plugins/snackbar'
|
|
import Snackbar from '@/plugins/snackbar'
|
|
-import recruitmentPositions from './positions.vue'
|
|
|
|
|
|
+import loginPage from '@/views/common/loginDialog.vue'
|
|
|
|
+import { formatName } from '@/utils/getText'
|
|
|
|
+import { breadcrumbsClickDeal } from '@/utils/index'
|
|
|
|
|
|
|
|
+const route = useRoute()
|
|
|
|
+const router = useRouter()
|
|
const { id } = router.currentRoute.value.params
|
|
const { id } = router.currentRoute.value.params
|
|
|
|
+const tab = ref(1)
|
|
|
|
+const savedTab = new URLSearchParams(window.location.search).get('key')
|
|
|
|
+tab.value = savedTab ? (savedTab === 'briefIntroduction' ? 1 : 2) : 1
|
|
|
|
|
|
-// 工商信息
|
|
|
|
-const businessList = [
|
|
|
|
- { label: '企业类型:', value: 'type' },
|
|
|
|
- { label: '统一社会信用代码:', value: 'code' },
|
|
|
|
- { label: '成立日期:', value: 'establishmentTime' },
|
|
|
|
- { label: '注册资本:', value: 'registeredCapital' }
|
|
|
|
-]
|
|
|
|
|
|
+const handleTabClick = () => {
|
|
|
|
+ router.push(`${route.path}?key=${tab.value === 1 ? 'briefIntroduction' : 'recruitmentPositions'}`)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 返回上一页
|
|
|
|
+const handleReturn = () => {
|
|
|
|
+ if (window.history.state.back) {
|
|
|
|
+ router.back()
|
|
|
|
+ } else router.push('/recruitHome')
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 企业埋点
|
|
|
|
+const handleEnterpriseClick = async () => {
|
|
|
|
+ if (id) return
|
|
|
|
+ await enterpriseClick({ id })
|
|
|
|
+}
|
|
|
|
+handleEnterpriseClick()
|
|
|
|
|
|
// 企业详情
|
|
// 企业详情
|
|
const info = ref({})
|
|
const info = ref({})
|
|
@@ -103,13 +128,6 @@ const getDetails = async () => {
|
|
}
|
|
}
|
|
getDetails()
|
|
getDetails()
|
|
|
|
|
|
-// 返回上一页
|
|
|
|
-const handleReturn = () => {
|
|
|
|
- if (window.history.state.back) {
|
|
|
|
- router.back()
|
|
|
|
- } else router.push('/recruit/personal/jobFair')
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
// 效验求职者是否关注该企业
|
|
// 效验求职者是否关注该企业
|
|
const isCollection = ref(false)
|
|
const isCollection = ref(false)
|
|
const getCollectionStatus = async (id) => {
|
|
const getCollectionStatus = async (id) => {
|
|
@@ -132,6 +150,14 @@ const handleFollow = async () => {
|
|
getCollectionStatus(id)
|
|
getCollectionStatus(id)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// 工商信息
|
|
|
|
+const businessList = [
|
|
|
|
+ { label: '企业类型:', value: 'type' },
|
|
|
|
+ { label: '统一社会信用代码:', value: 'code' },
|
|
|
|
+ { label: '成立日期:', value: 'establishmentTime' },
|
|
|
|
+ { label: '注册资本:', value: 'registeredCapital' }
|
|
|
|
+]
|
|
|
|
+
|
|
const showLogin = ref(false)
|
|
const showLogin = ref(false)
|
|
const nextFunc = ref(null)
|
|
const nextFunc = ref(null)
|
|
let loginCloseWarningWord = ''
|
|
let loginCloseWarningWord = ''
|
|
@@ -147,8 +173,11 @@ const loginClose = () => {
|
|
Snackbar.warning(loginCloseWarningWord)
|
|
Snackbar.warning(loginCloseWarningWord)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+const breadcrumbs = ref(localStorage.getItem('jobFairBreadcrumbs') && JSON.parse(localStorage.getItem('jobFairBreadcrumbs')) || [])
|
|
|
|
+
|
|
</script>
|
|
</script>
|
|
-<style lang="scss" scoped>
|
|
|
|
|
|
+
|
|
|
|
+<style scoped lang="scss">
|
|
.banner {
|
|
.banner {
|
|
background-color: #fff;
|
|
background-color: #fff;
|
|
padding: 0 0 20px;
|
|
padding: 0 0 20px;
|