import{_ as r,r as s,o as d,c as p,a as e,b as a,w as c,d as l,p as i,e as u}from"./index-uLMh9GMZ.js";const h={},t=o=>(i("data-v-80d1ee2a"),o=o(),u(),o),m={class:"nopage"},f=t(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),v=t(()=>e("span",{style:{color:"#67C23A"}},"0",-1)),x=t(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),y=t(()=>e("p",null,"你页面走丢了~",-1));function b(o,k){const n=s("a-button"),_=s("router-link");return d(),p("div",m,[f,v,x,e("div",null,[y,e("p",null,[a(_,{to:"/job/home"},{default:c(()=>[a(n,{type:"primary"},{default:c(()=>[l("返回首页")]),_:1})]),_:1})])])])}const w=r(h,[["render",b],["__scopeId","data-v-80d1ee2a"]]);export{w as default}; | |||||
import{_ as r,r as s,o as d,c as p,a as e,b as a,w as c,d as l,p as i,e as u}from"./index-99QysjhH.js";const h={},t=o=>(i("data-v-80d1ee2a"),o=o(),u(),o),m={class:"nopage"},f=t(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),v=t(()=>e("span",{style:{color:"#67C23A"}},"0",-1)),x=t(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),y=t(()=>e("p",null,"你页面走丢了~",-1));function b(o,k){const n=s("a-button"),_=s("router-link");return d(),p("div",m,[f,v,x,e("div",null,[y,e("p",null,[a(_,{to:"/job/home"},{default:c(()=>[a(n,{type:"primary"},{default:c(()=>[l("返回首页")]),_:1})]),_:1})])])])}const w=r(h,[["render",b],["__scopeId","data-v-80d1ee2a"]]);export{w as default}; |
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
<script src="https://map.qq.com/api/gljs?v=1.exp&key=MPBBZ-HUICZ-EGRXB-7AHZI-R4GQZ-QWBSO"></script> | <script src="https://map.qq.com/api/gljs?v=1.exp&key=MPBBZ-HUICZ-EGRXB-7AHZI-R4GQZ-QWBSO"></script> | ||||
<title>菊城人才网</title> | <title>菊城人才网</title> | ||||
<script type="module" crossorigin src="/assets/index-uLMh9GMZ.js"></script> | |||||
<link rel="stylesheet" crossorigin href="/assets/index-T1Q0jmCH.css"> | |||||
<script type="module" crossorigin src="/assets/index-99QysjhH.js"></script> | |||||
<link rel="stylesheet" crossorigin href="/assets/index-zqqQnvu9.css"> | |||||
</head> | </head> | ||||
<body> | <body> | ||||
<div id="app"></div> | <div id="app"></div> |
<img :src="imgObj.src" alt="" | <img :src="imgObj.src" alt="" | ||||
:style="{width: imgObj.width,height: imgObj.height,'object-fit': imgObj.mode, 'border-radius': 0} " | :style="{width: imgObj.width,height: imgObj.height,'object-fit': imgObj.mode, 'border-radius': 0} " | ||||
@click="preImage(imgObj.src)"> | @click="preImage(imgObj.src)"> | ||||
<a-modal v-model:open="imageBigOpen" centered :footer="null" @cancel="close"> | |||||
<img :src="imgObj.src" style="width: 100%; height: 100%;"> | |||||
<a-modal v-model:open="imageBigOpen" width="50%" centered :footer="null" @cancel="close"> | |||||
<div style="padding: 30px;"> | |||||
<img :src="imgObj.src" style="width: 100%; height: 100%;"> | |||||
</div> | |||||
</a-modal> | </a-modal> | ||||
</div> | </div> | ||||
<div v-else> | <div v-else> |
let showMap = ref<Boolean>(false); | let showMap = ref<Boolean>(false); | ||||
// 经纬度 | // 经纬度 | ||||
const getLoc = (mapData : Object) => { | const getLoc = (mapData : Object) => { | ||||
createForm.value.latitude = mapData.latlng.lng; | |||||
createForm.value.longitude = mapData.latlng.lat; | |||||
createForm.value.latitude = mapData.latlng.lat; | |||||
createForm.value.longitude = mapData.latlng.lng; | |||||
showMap.value = false; | showMap.value = false; | ||||
} | } | ||||
</template> | </template> | ||||
<template v-else> | <template v-else> | ||||
<div v-if="createForm.photo"> | <div v-if="createForm.photo"> | ||||
<image-container :imgObj="{src:createForm.photo? imageprefix + createForm.photo : '/images/gongzhonghao.png',width: '200px',height:'280px', mode: 'fill'}"></image-container> | |||||
<image-container :need="true" :imgObj="{src:createForm.photo? imageprefix + createForm.photo : '/images/gongzhonghao.png',width: '200px',height:'280px', mode: 'fill'}"></image-container> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</div> | </div> |
</template> | </template> | ||||
<template v-else> | <template v-else> | ||||
<div v-if="createForm.license_path"> | <div v-if="createForm.license_path"> | ||||
<image-container :imgObj="{src:createForm.license_path? imageprefix + createForm.license_path : '/images/gongzhonghao.png',width: '200px',height:'280px', mode: 'fill'}"></image-container> | |||||
<image-container :need="true" :imgObj="{src:createForm.license_path? imageprefix + createForm.license_path : '/images/gongzhonghao.png',width: '200px',height:'280px', mode: 'fill'}"></image-container> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</div> | </div> |
let showMap = ref<Boolean>(false); | let showMap = ref<Boolean>(false); | ||||
// 经纬度 | // 经纬度 | ||||
const getLoc = (mapData : Object) => { | const getLoc = (mapData : Object) => { | ||||
createForm.value.latitude = mapData.latlng.lng; | |||||
createForm.value.longitude = mapData.latlng.lat; | |||||
createForm.value.latitude = mapData.latlng.lat; | |||||
createForm.value.longitude = mapData.latlng.lng; | |||||
showMap.value = false; | showMap.value = false; | ||||
} | } | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<template #avatar> | <template #avatar> | ||||
<image-container | |||||
<image-container :need="true" | |||||
:imgObj="{src: '/images/onlylogo.jpg',width: '48px',height:'48px'}"></image-container> | :imgObj="{src: '/images/onlylogo.jpg',width: '48px',height:'48px'}"></image-container> | ||||
</template> | </template> |
<div> | <div> | ||||
小程序 | 小程序 | ||||
</div> | </div> | ||||
<image-container | |||||
<image-container :need="true" | |||||
:imgObj="{src: '/images/xiaochengxu.jpg',width: '120px',height:'120px'}"></image-container> | :imgObj="{src: '/images/xiaochengxu.jpg',width: '120px',height:'120px'}"></image-container> | ||||
</a-space> | </a-space> | ||||
<a-space direction="vertical" align="center" justify="space-between" :size="10"> | <a-space direction="vertical" align="center" justify="space-between" :size="10"> | ||||
<div> | <div> | ||||
公众号 | 公众号 | ||||
</div> | </div> | ||||
<image-container | |||||
<image-container :need="true" | |||||
:imgObj="{src: '/images/gongzhonghao.png',width: '120px',height:'120px'}"></image-container> | :imgObj="{src: '/images/gongzhonghao.png',width: '120px',height:'120px'}"></image-container> | ||||
</a-space> | </a-space> | ||||
</a-flex> | </a-flex> |
</a-flex> | </a-flex> | ||||
</a-col> | </a-col> | ||||
</a-row> | </a-row> | ||||
<div style="margin-top: 30px;" v-if="detail"> | |||||
<a-descriptions :column="2" title="职位描述"> | |||||
<a-descriptions-item label="职位性质">{{detail.company.nature_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="招聘人数">{{detail.base.invite_count}}人</a-descriptions-item> | |||||
<a-descriptions-item | |||||
label="工作地区">{{detail.locations ? detail.locations[0].name : '未知地址'}}</a-descriptions-item> | |||||
<a-descriptions-item label="月新范围">{{detail.base.pay_range_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="食宿条件">{{detail.base.shisu_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="节假日">{{detail.base.holidays_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="有效期">{{detail.base.disabled_date}}</a-descriptions-item> | |||||
<a-descriptions-item label="有效期至"></a-descriptions-item> | |||||
<a-descriptions-item label="联系人">{{detail.contact.contact}}</a-descriptions-item> | |||||
<a-descriptions-item | |||||
label="职业类别">{{detail.base.types ? detail.base.types[0].name : '未知'}}</a-descriptions-item> | |||||
<a-descriptions-item label="联系电话"> | |||||
<span v-if="detail.contact.mobile_public == 1">{{detail.contact.mobile}}</span> | |||||
<span v-else>未公开</span> | |||||
</a-descriptions-item> | |||||
<a-descriptions-item label="联系固话"> | |||||
<span v-if="detail.contact.phone_public == 1">{{detail.contact.phone}}</span> | |||||
<span v-else>未公开</span> | |||||
</a-descriptions-item> | |||||
<a-descriptions-item :span="2" label="职业描述"> | |||||
<div v-html="detail.base.describe_text"></div> | |||||
</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<div style="margin-top: 30px;" v-if="detail"> | |||||
<a-descriptions :column="1" title="地图"> | |||||
<a-descriptions-item :span="24"> | |||||
<!-- <map-marker></map-marker> --> | |||||
</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<a-spin :spinning="spinning"> | |||||
<div style="margin-top: 30px;" v-if="detail"> | |||||
<a-descriptions :column="2" title="职位描述"> | |||||
<a-descriptions-item label="职位性质">{{detail.company.nature_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="招聘人数">{{detail.base.invite_count}}人</a-descriptions-item> | |||||
<a-descriptions-item | |||||
label="工作地区">{{detail.locations ? detail.locations[0].name : '未知地址'}}</a-descriptions-item> | |||||
<a-descriptions-item label="月新范围">{{detail.base.pay_range_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="食宿条件">{{detail.base.shisu_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="节假日">{{detail.base.holidays_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="有效期">{{detail.base.disabled_date}}</a-descriptions-item> | |||||
<a-descriptions-item label="有效期至"></a-descriptions-item> | |||||
<a-descriptions-item label="联系人">{{detail.contact.contact}}</a-descriptions-item> | |||||
<a-descriptions-item | |||||
label="职业类别">{{detail.base.types ? detail.base.types[0].name : '未知'}}</a-descriptions-item> | |||||
<a-descriptions-item label="联系电话"> | |||||
<span v-if="detail.contact.mobile_public == 1">{{detail.contact.mobile}}</span> | |||||
<span v-else>未公开</span> | |||||
</a-descriptions-item> | |||||
<a-descriptions-item label="联系固话"> | |||||
<span v-if="detail.contact.phone_public == 1">{{detail.contact.phone}}</span> | |||||
<span v-else>未公开</span> | |||||
</a-descriptions-item> | |||||
<a-descriptions-item :span="2" label="职业描述"> | |||||
<div v-html="detail.base.describe_text"></div> | |||||
</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<div style="margin-top: 30px;" v-if="detail"> | |||||
<a-descriptions :column="1" title="地图"> | |||||
<a-descriptions-item :span="24"> | |||||
<map-marker v-if="detail.contact.latitude && detail.contact.longitude" | |||||
:lat="detail.contact.latitude" :lng="detail.contact.longitude"></map-marker> | |||||
</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
</a-spin> | |||||
<a-login></a-login> | <a-login></a-login> | ||||
</template> | </template> | ||||
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { ref, computed, onMounted, defineProps, watch, createVNode, nextTick } from 'vue'; | |||||
import { ref, computed, onMounted, defineProps, watch, createVNode, nextTick } from 'vue'; | |||||
import { GetJobDetail, GetJobAuthDetail, PostJobseekAddfavorite, PostJobseekDelfavorite, PostJobseekAddapplication } from '@/apis/models'; | import { GetJobDetail, GetJobAuthDetail, PostJobseekAddfavorite, PostJobseekDelfavorite, PostJobseekAddapplication } from '@/apis/models'; | ||||
import MapMarker from '@/components/map/marker.vue' | import MapMarker from '@/components/map/marker.vue' | ||||
import { useCommon } from '@/hooks/useCommon'; | import { useCommon } from '@/hooks/useCommon'; | ||||
import { warnToast, successToast } from '@/utils/toastHelper'; | import { warnToast, successToast } from '@/utils/toastHelper'; | ||||
let { store, commomParams, dayjs, richOption, ExclamationCircleOutlined, Modal, showOtherModal1 } = useCommon(); | let { store, commomParams, dayjs, richOption, ExclamationCircleOutlined, Modal, showOtherModal1 } = useCommon(); | ||||
let props = defineProps(['id']); | let props = defineProps(['id']); | ||||
let job_id = ref<Number>(0) | |||||
let detail = ref<Object>(null) | |||||
let job_id = ref<Number>(props.id) | |||||
let detail = ref<Object>(null); | |||||
let spinning = ref<Boolean>(false) | |||||
let token = ref(sessionStorage.getItem('token') ? sessionStorage.getItem('token') : '') | let token = ref(sessionStorage.getItem('token') ? sessionStorage.getItem('token') : '') | ||||
let role = ref(sessionStorage.getItem('role') ? sessionStorage.getItem('role') : '') | let role = ref(sessionStorage.getItem('role') ? sessionStorage.getItem('role') : '') | ||||
onMounted(() => { | onMounted(() => { | ||||
getDetail() | |||||
}) | }) | ||||
const getDetail = () => { | const getDetail = () => { | ||||
spinning.value = true | |||||
if (sessionStorage.getItem('token')) { | if (sessionStorage.getItem('token')) { | ||||
GetJobAuthDetail({ id: job_id.value }).then(res => { | |||||
GetJobAuthDetail({ id: job_id.value }).then(res => { | |||||
detail.value = res.data; | detail.value = res.data; | ||||
spinning.value = false | |||||
}).catch(err => { | |||||
spinning.value = false | |||||
}) | }) | ||||
} else { | } else { | ||||
GetJobDetail({ id: job_id.value }).then(res => { | GetJobDetail({ id: job_id.value }).then(res => { | ||||
detail.value = res.data; | detail.value = res.data; | ||||
spinning.value = false | |||||
}).catch(err => { | |||||
spinning.value = false | |||||
}) | }) | ||||
} | } | ||||
} | } | ||||
const toLogin = () => { | const toLogin = () => { | ||||
showOtherModal1() | showOtherModal1() | ||||
onOk() { | onOk() { | ||||
PostJobseekAddfavorite({ job_id: job_id }).then(res => { | PostJobseekAddfavorite({ job_id: job_id }).then(res => { | ||||
successToast('已收藏') | successToast('已收藏') | ||||
mapJob.value = null | |||||
getDetail(); | getDetail(); | ||||
}) | }) | ||||
}, | }, | ||||
onOk() { | onOk() { | ||||
PostJobseekDelfavorite({ id: id }).then(res => { | PostJobseekDelfavorite({ id: id }).then(res => { | ||||
successToast('已取消收藏') | successToast('已取消收藏') | ||||
mapJob.value = null | |||||
getDetail(); | getDetail(); | ||||
}) | }) | ||||
}, | }, | ||||
onOk() { | onOk() { | ||||
PostJobseekAddapplication({ job_id: job_id }).then(res => { | PostJobseekAddapplication({ job_id: job_id }).then(res => { | ||||
successToast('已投递') | successToast('已投递') | ||||
mapJob.value = null | |||||
getDetail(); | getDetail(); | ||||
}) | }) | ||||
}, | }, | ||||
watch(() => props.id, (newVal) => { | watch(() => props.id, (newVal) => { | ||||
job_id.value = newVal | job_id.value = newVal | ||||
if (job_id.value) { | if (job_id.value) { | ||||
spinning.value = true | |||||
detail.value = null | |||||
getDetail() | getDetail() | ||||
} | } | ||||
}, { immediate: true }) | |||||
}) | |||||
</script> | </script> | ||||
<style scoped lang="less"> | <style scoped lang="less"> |
<template #cover> | <template #cover> | ||||
<div style="width: 100%;padding-top: 20px;"> | <div style="width: 100%;padding-top: 20px;"> | ||||
<a-flex justify="center" align="center"> | <a-flex justify="center" align="center"> | ||||
<image-container | |||||
<image-container :need="true" | |||||
:imgObj="{src: imageprefix + item.image_url, width: adposition.width+'px',height: adposition.height+'px', mode: ''}"></image-container> | :imgObj="{src: imageprefix + item.image_url, width: adposition.width+'px',height: adposition.height+'px', mode: ''}"></image-container> | ||||
</a-flex> | </a-flex> | ||||
</div> | </div> | ||||
<template #cover> | <template #cover> | ||||
<div style="width: 100%;padding-top: 20px;"> | <div style="width: 100%;padding-top: 20px;"> | ||||
<a-flex justify="center" align="center"> | <a-flex justify="center" align="center"> | ||||
<image-container | |||||
<image-container :need="true" | |||||
:imgObj="{src: imageprefix + item.image_url, width: adposition.width+'px',height: adposition.height+'px',mode: 'fill'}"></image-container> | :imgObj="{src: imageprefix + item.image_url, width: adposition.width+'px',height: adposition.height+'px',mode: 'fill'}"></image-container> | ||||
</a-flex> | </a-flex> | ||||
</div> | </div> |
</a-empty> | </a-empty> | ||||
</template> | </template> | ||||
<template v-else> | <template v-else> | ||||
<a-row :gutter="[10,20]" > | |||||
<a-row :gutter="[10,20]"> | |||||
<a-col span="8" v-for="(item, index) in jobList"> | <a-col span="8" v-for="(item, index) in jobList"> | ||||
<a-card hoverable > | |||||
<a-flex vertical style="width: 100%;background-color: #fff;border-radius: 10px;padding: 20px;border-radius: 8px;" > | |||||
<a-space direction="vertical" :size="10"> | |||||
<a-flex justify="space-between" style="width: 100%;"> | |||||
<div style="font-size: 18px; font-weight: 600;" @click="toDetail(item.id, item.company_id)">{{item.name}}</div> | |||||
<div style="color: #4FBE70;">{{item.pay_range_text}}</div> | |||||
</a-flex> | |||||
<a-flex style="width: 100%;"> | |||||
<a-tag>{{item.experience_text ? item.experience_text : '不限'}}</a-tag> | |||||
<a-tag>{{item.certification_text ? item.certification_text : '不限'}}</a-tag> | |||||
<a-tag>{{item.school_degree_text ? item.school_degree_text : '不限'}}</a-tag> | |||||
<a-tag>{{item.profelevel_text ? item.profelevel_text : '不限'}}</a-tag> | |||||
</a-flex> | |||||
</a-space> | |||||
<a-divider /> | |||||
<a-space direction="vertical"> | |||||
<a-flex justify="space-between" style="width: 100%;"> | |||||
<div style="font-weight: 600;" @click="toCompanyDetail(item.company_id)">{{item.full_name}}</div> | |||||
<a-button type="primary" size="small" @click="toDetail(item.id, item.company_id)">查看详情</a-button> | |||||
</a-flex> | |||||
<a-flex style="width: 100%;color: #bebebe;"> | |||||
{{item.locations ? item.locations[0].name : '未知地址'}} | |||||
</a-flex> | |||||
</a-space> | |||||
</a-flex> | |||||
<a-card hoverable> | |||||
<a-flex vertical | |||||
style="width: 100%;background-color: #fff;border-radius: 10px;padding: 20px;border-radius: 8px;"> | |||||
<a-space direction="vertical" :size="10"> | |||||
<a-flex justify="space-between" style="width: 100%;"> | |||||
<div style="font-size: 18px; font-weight: 600;" | |||||
@click="toDetail(item.id, item.company_id)">{{item.name}}</div> | |||||
<div style="color: #4FBE70;">{{item.pay_range_text}}</div> | |||||
</a-flex> | |||||
<a-flex style="width: 100%;"> | |||||
<a-tag>{{item.experience_text ? item.experience_text : '不限'}}</a-tag> | |||||
<a-tag>{{item.certification_text ? item.certification_text : '不限'}}</a-tag> | |||||
<a-tag>{{item.school_degree_text ? item.school_degree_text : '不限'}}</a-tag> | |||||
<a-tag>{{item.profelevel_text ? item.profelevel_text : '不限'}}</a-tag> | |||||
</a-flex> | |||||
</a-space> | |||||
<a-divider /> | |||||
<a-space direction="vertical"> | |||||
<a-flex justify="space-between" style="width: 100%;"> | |||||
<div style="font-weight: 600;" @click="toCompanyDetail(item.company_id)"> | |||||
{{item.full_name}}</div> | |||||
<a-button type="primary" size="small" | |||||
@click="toDetail(item.id, item.company_id)">查看详情</a-button> | |||||
</a-flex> | |||||
<a-flex style="width: 100%;color: #bebebe;"> | |||||
{{item.locations ? item.locations[0].name : '未知地址'}} | |||||
</a-flex> | |||||
</a-space> | |||||
</a-flex> | |||||
</a-card> | </a-card> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
</template> | </template> | ||||
<template v-else> | <template v-else> | ||||
<a-row :gutter="[10,10]"> | <a-row :gutter="[10,10]"> | ||||
<a-col span="8" v-for="(item, index) in companyList" > | |||||
<a-col span="8" v-for="(item, index) in companyList"> | |||||
<a-card hoverable style="width: 100%;" @click="toCompanyDetail(item.id)"> | <a-card hoverable style="width: 100%;" @click="toCompanyDetail(item.id)"> | ||||
<template #title> | |||||
<div style="margin: 16px 0;"> | |||||
<a-space> | |||||
<image-container | |||||
:imgObj="{src: '/images/onlylogo.jpg',width: '48px',height:'48px'}"></image-container> | |||||
<span style="font-size: 16px;"> | |||||
{{item.full_name ? item.full_name : '企业'}} | |||||
</span> | |||||
<template #title> | |||||
<div style="margin: 16px 0;"> | |||||
<a-space direction="vertical" :size="10"> | |||||
<a-space> | |||||
<image-container :need="true" | |||||
:imgObj="{src: '/images/onlylogo.jpg',width: '48px',height:'48px'}"></image-container> | |||||
<span style="font-size: 16px;"> | |||||
{{item.full_name ? item.full_name : '企业'}} | |||||
</span> | |||||
</a-space> | |||||
</a-space> | |||||
</div> | |||||
</template> | |||||
<template #extra> | |||||
{{item.scale_text}} | |||||
</template> | |||||
<div style="margin: 16px;"> | |||||
<a-space direction="vertical" :size="2" style="width: 100%;"> | |||||
<div>企业性质:{{item.nature_text}}</div> | |||||
<div>招聘类型:{{item.industry_text}} {{item.industry2_text}}</div> | |||||
</a-space> | </a-space> | ||||
</div> | </div> | ||||
</template> | |||||
<template #extra> | |||||
{{item.scale_text}} | |||||
</template> | |||||
<a-space direction="vertical" :size="2" style="width: 100%;"> | |||||
<div>企业性质:{{item.nature_text}}</div> | |||||
<div>招聘类型:{{item.industry_text}} {{item.industry2_text}}</div> | |||||
</a-space> | |||||
</a-card> | </a-card> | ||||
</a-col> | </a-col> | ||||
<a-col span="24"> | <a-col span="24"> | ||||
sessionStorage.setItem('mode', 'detail') | sessionStorage.setItem('mode', 'detail') | ||||
emit('detail') | emit('detail') | ||||
} | } | ||||
const toCompanyDetail = (company_id : Number) => { | const toCompanyDetail = (company_id : Number) => { | ||||
sessionStorage.setItem('tab_key', 1) | sessionStorage.setItem('tab_key', 1) | ||||
sessionStorage.setItem('pubilc_id', company_id) | sessionStorage.setItem('pubilc_id', company_id) | ||||
sessionStorage.setItem('mode', 'detail') | sessionStorage.setItem('mode', 'detail') | ||||
emit('detail') | emit('detail') | ||||
} | } | ||||
onMounted(() => { | onMounted(() => { | ||||
commomParams.value.search.pagesize = 12 | commomParams.value.search.pagesize = 12 |
</a-typography-paragraph> | </a-typography-paragraph> | ||||
<a-typography-title :level="3">★菊城人才市场沙口总部地图</a-typography-title> | <a-typography-title :level="3">★菊城人才市场沙口总部地图</a-typography-title> | ||||
<a-typography-paragraph> | <a-typography-paragraph> | ||||
<image-container | |||||
<image-container :need="true" | |||||
:imgObj="{src: '/images/map.jpg',width: '70%',height:'100%'}"></image-container> | :imgObj="{src: '/images/map.jpg',width: '70%',height:'100%'}"></image-container> | ||||
</a-typography-paragraph> | </a-typography-paragraph> | ||||
</a-space> | </a-space> |
</a-row> | </a-row> | ||||
</a-col> | </a-col> | ||||
<a-col span="6"> | <a-col span="6"> | ||||
<image-container v-if="detail.photo" | |||||
<image-container v-if="detail.photo" :need="true" | |||||
:imgObj="{src: imageprefix + detail.photo ,width: '150px',height:'210px'}"></image-container> | :imgObj="{src: imageprefix + detail.photo ,width: '150px',height:'210px'}"></image-container> | ||||
</a-col> | </a-col> | ||||
</a-row> | </a-row> |
</a-row> | </a-row> | ||||
</a-col> | </a-col> | ||||
<a-col span="6"> | <a-col span="6"> | ||||
<image-container | |||||
<image-container :need="true" | |||||
:imgObj="{src: detail.photo? imageprefix+detail.photo : '/images/gongzhonghao.png' ,width: '150px',height:'210px'}"></image-container> | :imgObj="{src: detail.photo? imageprefix+detail.photo : '/images/gongzhonghao.png' ,width: '150px',height:'210px'}"></image-container> | ||||
</a-col> | </a-col> | ||||
</a-row> | </a-row> |
<div>0760-22236225、22236226</div> | <div>0760-22236225、22236226</div> | ||||
</div> | </div> | ||||
<div style="display: flex;flex-direction: column;align-items: center;"> | <div style="display: flex;flex-direction: column;align-items: center;"> | ||||
<image-container | |||||
<image-container :need="true" | |||||
:imgObj="{src: '/images/gongzhonghao.png',width: '100px',height:'100px'}"></image-container> | :imgObj="{src: '/images/gongzhonghao.png',width: '100px',height:'100px'}"></image-container> | ||||
<div>官方公众号</div> | <div>官方公众号</div> | ||||
</div> | </div> |
<script lang="ts" setup> | <script lang="ts" setup> | ||||
import { ref, onMounted, computed, watch, onBeforeUnmount, defineProps } from 'vue'; | import { ref, onMounted, computed, watch, onBeforeUnmount, defineProps } from 'vue'; | ||||
import vMap from '@/components/map/map-iframe.vue' | |||||
let props = defineProps({ | let props = defineProps({ | ||||
lat: { | lat: { | ||||
type: String, | type: String, |
<a-tabs v-model:activeKey="activeKey" type="card" @change="activeChange"> | <a-tabs v-model:activeKey="activeKey" type="card" @change="activeChange"> | ||||
<a-tab-pane :key="1" tab="企业信息"> | <a-tab-pane :key="1" tab="企业信息"> | ||||
<div style="margin: 20px 0; padding: 20px;background-color: #ffffff;border-radius: 8px;"> | |||||
<a-descriptions title="公司介绍" layout="vertical"> | |||||
<a-descriptions-item> | |||||
<div v-html="companyDetail.introduction"></div> | |||||
</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<div style="margin: 20px 0; padding: 20px;background-color: #ffffff;"> | |||||
<a-descriptions :column="7" title="公司概况" layout="vertical"> | |||||
<a-descriptions-item label="所属行业" span="2" | |||||
v-if="companyDetail.situation">{{companyDetail.situation.industry_text}}/{{companyDetail.situation.industry2_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="公司性质" | |||||
v-if="companyDetail.situation">{{companyDetail.situation.nature_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="公司规模" | |||||
v-if="companyDetail.situation">{{companyDetail.situation.scale_text }}</a-descriptions-item> | |||||
<a-descriptions-item label="成立时间" | |||||
v-if="companyDetail.situation">{{companyDetail.situation.establishment_date }}</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<div style="margin: 20px 0; padding: 20px;background-color: #ffffff;border-radius: 8px;"> | |||||
<a-descriptions :column="7" title="联系方式" layout="vertical"> | |||||
<a-descriptions-item label="联系地址" | |||||
span="2">{{companyDetail.detail_address}}</a-descriptions-item> | |||||
<a-descriptions-item label="联系人">{{companyDetail.contact}}</a-descriptions-item> | |||||
<a-descriptions-item label="联系手机">{{companyDetail.mobile}}</a-descriptions-item> | |||||
<a-descriptions-item label="联系电话">{{companyDetail.phone}}</a-descriptions-item> | |||||
<a-descriptions-item label="Email">{{companyDetail.email}}</a-descriptions-item> | |||||
<a-descriptions-item label="传真">{{companyDetail.fax}}</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<div style="margin: 20px 0; padding: 20px;background-color: #ffffff;border-radius: 8px;"> | |||||
<a-descriptions :column="7" title="企业相册" layout="vertical"> | |||||
<a-descriptions-item><image-container | |||||
:imgObj="{src: imageprefix + companyDetail.photo,width: '200px',height:'200px', mode: 'fill'}"></image-container></a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<div style="margin: 20px 0; padding: 20px;background-color: #ffffff;border-radius: 8px;"> | |||||
<a-descriptions :column="1" title="地图位置" layout="vertical"> | |||||
<a-descriptions-item span="24"> | |||||
<map-marker v-if="companyDetail.latitude && companyDetail.longitude" :lat="companyDetail.latitude" :lng="companyDetail.longitude"></map-marker> | |||||
</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<template v-if="activeKey == 1"> | |||||
<div style="margin: 20px 0; padding: 20px;background-color: #ffffff;border-radius: 8px;"> | |||||
<a-descriptions title="公司介绍" layout="vertical"> | |||||
<a-descriptions-item> | |||||
<div v-html="companyDetail.introduction"></div> | |||||
</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<div style="margin: 20px 0; padding: 20px;background-color: #ffffff;"> | |||||
<a-descriptions :column="7" title="公司概况" layout="vertical"> | |||||
<a-descriptions-item label="所属行业" span="2" | |||||
v-if="companyDetail.situation">{{companyDetail.situation.industry_text}}/{{companyDetail.situation.industry2_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="公司性质" | |||||
v-if="companyDetail.situation">{{companyDetail.situation.nature_text}}</a-descriptions-item> | |||||
<a-descriptions-item label="公司规模" | |||||
v-if="companyDetail.situation">{{companyDetail.situation.scale_text }}</a-descriptions-item> | |||||
<a-descriptions-item label="成立时间" | |||||
v-if="companyDetail.situation">{{companyDetail.situation.establishment_date }}</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<div style="margin: 20px 0; padding: 20px;background-color: #ffffff;border-radius: 8px;"> | |||||
<a-descriptions :column="7" title="联系方式" layout="vertical"> | |||||
<a-descriptions-item label="联系地址" | |||||
span="2">{{companyDetail.detail_address}}</a-descriptions-item> | |||||
<a-descriptions-item label="联系人">{{companyDetail.contact}}</a-descriptions-item> | |||||
<a-descriptions-item label="联系手机">{{companyDetail.mobile}}</a-descriptions-item> | |||||
<a-descriptions-item label="联系电话">{{companyDetail.phone}}</a-descriptions-item> | |||||
<a-descriptions-item label="Email">{{companyDetail.email}}</a-descriptions-item> | |||||
<a-descriptions-item label="传真">{{companyDetail.fax}}</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<div style="margin: 20px 0; padding: 20px;background-color: #ffffff;border-radius: 8px;"> | |||||
<a-descriptions :column="7" title="企业相册" layout="vertical"> | |||||
<a-descriptions-item><image-container :need="true" | |||||
:imgObj="{src: imageprefix + companyDetail.photo,width: '200px',height:'200px', mode: 'fill'}"></image-container></a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
<div style="margin: 20px 0; padding: 20px;background-color: #ffffff;border-radius: 8px;"> | |||||
<a-descriptions :column="1" title="地图位置" layout="vertical"> | |||||
<a-descriptions-item span="24"> | |||||
<map-marker v-if="companyDetail.latitude && companyDetail.longitude" :lat="companyDetail.latitude" :lng="companyDetail.longitude"></map-marker> | |||||
</a-descriptions-item> | |||||
</a-descriptions> | |||||
</div> | |||||
</template> | |||||
</a-tab-pane> | </a-tab-pane> | ||||
<a-tab-pane :key="2" tab="招聘职位" force-render> | <a-tab-pane :key="2" tab="招聘职位" force-render> | ||||
<template v-if="!jobList || jobList.length == 0"> | |||||
<a-empty style="height: 100vh;"> | |||||
<template #description> | |||||
本企业未有招聘信息 | |||||
</template> | |||||
</a-empty> | |||||
</template> | |||||
<template v-else> | |||||
<a-row :gutter="10"> | |||||
<a-col span="6"> | |||||
<div style="background-color: #ffffff;padding-bottom: 20px; border-radius: 8px;"> | |||||
<job-card :list="jobList" @detail="toDetail"></job-card> | |||||
<a-flex justify="center"> | |||||
<a-space> | |||||
<a-pagination simple v-model:current="current" :total="total" | |||||
@change="pageChange" /> | |||||
</a-space> | |||||
</a-flex> | |||||
<!-- <a-card hoverable :bordered="false" style="width: 100%"> | |||||
<template #cover> | |||||
<job-card :list="jobList" @detail="toDetail"></job-card> | |||||
</template> | |||||
<template #actions> | |||||
<a-col span="24"> | |||||
</a-col> | |||||
</template> | |||||
</a-card> --> | |||||
</div> | |||||
</a-col> | |||||
<a-col span="18"> | |||||
<div v-if="job_id" style="padding: 20px;background-color: #ffffff;border-radius: 8px;"> | |||||
<job-detail :id="job_id"></job-detail> | |||||
</div> | |||||
</a-col> | |||||
</a-row> | |||||
<template v-if="activeKey == 2"> | |||||
<template v-if="!jobList || jobList.length == 0"> | |||||
<a-empty style="height: 100vh;"> | |||||
<template #description> | |||||
本企业未有招聘信息 | |||||
</template> | |||||
</a-empty> | |||||
</template> | |||||
<template v-else> | |||||
<a-row :gutter="10"> | |||||
<a-col span="6"> | |||||
<div style="background-color: #ffffff;padding-bottom: 20px; border-radius: 8px;"> | |||||
<job-card :list="jobList" @detail="toDetail"></job-card> | |||||
<a-flex justify="center"> | |||||
<a-space> | |||||
<a-pagination simple v-model:current="current" :total="total" | |||||
@change="pageChange" /> | |||||
</a-space> | |||||
</a-flex> | |||||
</div> | |||||
</a-col> | |||||
<a-col span="18"> | |||||
<div style="padding: 20px;background-color: #ffffff;border-radius: 8px;"> | |||||
<job-detail v-if="job_id" :id="job_id"></job-detail> | |||||
</div> | |||||
</a-col> | |||||
</a-row> | |||||
</template> | |||||
</template> | </template> | ||||
</a-tab-pane> | </a-tab-pane> | ||||
</a-tabs> | </a-tabs> | ||||
} else { | } else { | ||||
jobList.value = res.data.jobs | jobList.value = res.data.jobs | ||||
} | } | ||||
job_id.value = jobList.value[0].id | |||||
}) | }) | ||||
} | } | ||||
if (sessionStorage.getItem('pubilc_id') != 0 || sessionStorage.getItem('id') != 0) { | if (sessionStorage.getItem('pubilc_id') != 0 || sessionStorage.getItem('id') != 0) { | ||||
PostCompanyInfo({ id: pubilc_id.value ? pubilc_id.value : sessionStorage.getItem('id') }).then(res => { | PostCompanyInfo({ id: pubilc_id.value ? pubilc_id.value : sessionStorage.getItem('id') }).then(res => { | ||||
companyDetail.value = res.data; | companyDetail.value = res.data; | ||||
companyDetail.value.latitude= 22.680964 | |||||
companyDetail.value.longitude=113.247185 | |||||
}) | }) | ||||
getJobCompanyjobs(current.value) | getJobCompanyjobs(current.value) | ||||
} | } |
企业编号:{{basic.id}} | 企业编号:{{basic.id}} | ||||
</template> | </template> | ||||
<template #avatar> | <template #avatar> | ||||
<image-container | |||||
<image-container :need="true" | |||||
:imgObj="{src: '/images/onlylogo.jpg',width: '48px',height:'48px'}"></image-container> | :imgObj="{src: '/images/onlylogo.jpg',width: '48px',height:'48px'}"></image-container> | ||||
</template> | </template> | ||||
</a-list-item-meta> | </a-list-item-meta> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<template #avatar> | <template #avatar> | ||||
<image-container | |||||
<image-container :need="true" | |||||
:imgObj="{src: item.photo ? imageprefix+ item.photo : '/images/onlylogo.jpg',width: '48px',height:'48px'}"></image-container> | :imgObj="{src: item.photo ? imageprefix+ item.photo : '/images/onlylogo.jpg',width: '48px',height:'48px'}"></image-container> | ||||
</template> | </template> | ||||
</a-list-item-meta> | </a-list-item-meta> |