import{d as r,r as o,o as p,c,w as t,a as _,b as u,e,_ as i}from"./index-tznQ5shr.js";const m=r({__name:"404",setup(l){const s=()=>{sessionStorage.pageType=="company"?e.push("/manage/home"):sessionStorage.pageType=="personal"?e.push("/jobseeker/home"):e.push("/job/home")};return(d,h)=>{const a=o("a-button"),n=o("a-result");return p(),c(n,{status:"404",title:"404","sub-title":"Sorry, the page you visited does not exist."},{extra:t(()=>[u(a,{type:"primary",onClick:s},{default:t(()=>[_("返回首页")]),_:1})]),_:1})}}}),x=i(m,[["__scopeId","data-v-9cda8440"]]);export{x as default}; | |||||
import{d as r,r as o,o as p,c,w as t,a as _,b as u,e,_ as i}from"./index-MH8KtTP-.js";const m=r({__name:"404",setup(l){const s=()=>{sessionStorage.pageType=="company"?e.push("/manage/home"):sessionStorage.pageType=="personal"?e.push("/jobseeker/home"):e.push("/job/home")};return(d,h)=>{const a=o("a-button"),n=o("a-result");return p(),c(n,{status:"404",title:"404","sub-title":"Sorry, the page you visited does not exist."},{extra:t(()=>[u(a,{type:"primary",onClick:s},{default:t(()=>[_("返回首页")]),_:1})]),_:1})}}}),x=i(m,[["__scopeId","data-v-9cda8440"]]);export{x 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-tznQ5shr.js"></script> | |||||
<link rel="stylesheet" crossorigin href="/assets/index-bpzRrutr.css"> | |||||
<script type="module" crossorigin src="/assets/index-MH8KtTP-.js"></script> | |||||
<link rel="stylesheet" crossorigin href="/assets/index-J98pNTCI.css"> | |||||
</head> | </head> | ||||
<body> | <body> | ||||
<div id="app"></div> | <div id="app"></div> |
<a-list-item @click="toDetail(item)"> | <a-list-item @click="toDetail(item)"> | ||||
<a-list-item-meta :title="item.title" :description="'发布时间:'+item.created_at"> | <a-list-item-meta :title="item.title" :description="'发布时间:'+item.created_at"> | ||||
</a-list-item-meta> | </a-list-item-meta> | ||||
<template #extra> | |||||
<image-container | |||||
:imgObj="{src: imageprefix + item.cover_img,width: '153px',height:'100px'}"></image-container> | |||||
</template> | |||||
<template #extra> | |||||
<image-container | |||||
:imgObj="{src: imageprefix + item.cover_img,width: '153px',height:'100px'}"></image-container> | |||||
</template> | |||||
</a-list-item> | </a-list-item> | ||||
</template> | </template> | ||||
</a-list> | </a-list> | ||||
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { ref, computed, onMounted, defineProps, watch } from 'vue'; | import { ref, computed, onMounted, defineProps, watch } from 'vue'; | ||||
import he from 'he'; | |||||
import { GetArticleList } from '@/apis/models'; | import { GetArticleList } from '@/apis/models'; | ||||
import { ArrowLeftOutlined } from '@ant-design/icons-vue'; | import { ArrowLeftOutlined } from '@ant-design/icons-vue'; | ||||
import { useCommon } from '@/hooks/useCommon'; | import { useCommon } from '@/hooks/useCommon'; | ||||
const toDetail = (data) => { | const toDetail = (data) => { | ||||
detail.value = data | detail.value = data | ||||
detail.value.content = he.decode(detail.value.content) | |||||
} | } | ||||
const back = (data) => { | const back = (data) => { |
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { ref, computed, onMounted, defineProps, watch, onBeforeUnmount } from 'vue'; | import { ref, computed, onMounted, defineProps, watch, onBeforeUnmount } from 'vue'; | ||||
import he from 'he'; | |||||
import { GetArticleList } from '@/apis/models'; | import { GetArticleList } from '@/apis/models'; | ||||
import { ArrowLeftOutlined } from '@ant-design/icons-vue'; | import { ArrowLeftOutlined } from '@ant-design/icons-vue'; | ||||
import { useCommon } from '@/hooks/useCommon'; | import { useCommon } from '@/hooks/useCommon'; | ||||
const toDetail = (data) => { | const toDetail = (data) => { | ||||
detail.value = data | detail.value = data | ||||
detail.value.content = he.decode(detail.value.content) | |||||
} | } | ||||
const back = (data) => { | const back = (data) => { |
<a-flex vertical style="width: 100%;border-radius: 10px;padding: 20px 20px 0;"> | <a-flex vertical style="width: 100%;border-radius: 10px;padding: 20px 20px 0;"> | ||||
<a-space direction="vertical" :size="20"> | <a-space direction="vertical" :size="20"> | ||||
<a-flex justify="space-between" style="width: 100%;"> | <a-flex justify="space-between" style="width: 100%;"> | ||||
<div style="font-size: 18px; font-weight: 600;width: 70%;">{{item.name}}</div> | |||||
<div style="font-size: 18px; font-weight: 600;width: 70%; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; text-overflow: ellipsis;">{{item.name}}</div> | |||||
<div style="color: #4FBE70;">{{item.pay_range_text}}</div> | <div style="color: #4FBE70;">{{item.pay_range_text}}</div> | ||||
</a-flex> | </a-flex> | ||||
<a-flex style="width: 100%;"> | <a-flex style="width: 100%;"> |
<span v-else>未公开</span> | <span v-else>未公开</span> | ||||
</a-descriptions-item> | </a-descriptions-item> | ||||
<a-descriptions-item :span="2" label="职业描述"> | <a-descriptions-item :span="2" label="职业描述"> | ||||
<div style="white-space: pre-wrap;"> | |||||
<div class="ql-editor" v-html="detail.base.describe_text"></div> | |||||
<div style="white-space: pre-wrap;ql-editor"> | |||||
<div v-html="detail.base.describe_text"></div> | |||||
</div> | </div> | ||||
</a-descriptions-item> | </a-descriptions-item> | ||||
</a-descriptions> | </a-descriptions> |
<template> | <template> | ||||
<a-row :gutter="[10,10]"> | <a-row :gutter="[10,10]"> | ||||
<a-col span="8" v-for="(item, index) in jobList"> | <a-col span="8" v-for="(item, index) in jobList"> | ||||
<a-card hoverable style="width: 100%;background-color: #fff;border-radius: 10px;padding: 20px;" | |||||
> | |||||
<a-card hoverable style="width: 100%;background-color: #fff;border-radius: 10px;padding: 20px;"> | |||||
<a-flex vertical style="width: 100%;background-color: #fff;border-radius: 10px;padding: 20px;"> | <a-flex vertical style="width: 100%;background-color: #fff;border-radius: 10px;padding: 20px;"> | ||||
<a-space direction="vertical" :size="20"> | <a-space direction="vertical" :size="20"> | ||||
<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> | |||||
<a-flex justify="space-between" align="center" style="width: 100%;"> | |||||
<div style="font-size: 18px; font-weight: 600;width: 70%; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; text-overflow: ellipsis;" @click="toDetail(item.id, item.company_id)">{{item.name}}</div> | |||||
<div style="color: #4FBE70;font-size: 18px;">{{item.pay_range_text}}</div> | <div style="color: #4FBE70;font-size: 18px;">{{item.pay_range_text}}</div> | ||||
</a-flex> | </a-flex> | ||||
<a-flex style="width: 100%;"> | <a-flex style="width: 100%;"> | ||||
<a-divider /> | <a-divider /> | ||||
<a-space direction="vertical"> | <a-space direction="vertical"> | ||||
<a-flex justify="space-between" style="width: 100%;"> | <a-flex justify="space-between" style="width: 100%;"> | ||||
<div style="font-weight: 600;" @click="toCompany(item.id, item.company_id)">{{item.full_name}}</div> | |||||
<a-button type="primary" size="small" @click="toDetail(item.id, item.company_id)">查看详情</a-button> | |||||
<div style="font-weight: 600;height: 48px;" @click="toCompany(item.id, 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> | ||||
<a-flex style="width: 100%;color: #BEBEBE;"> | <a-flex style="width: 100%;color: #BEBEBE;"> | ||||
{{item.locations ? item.locations[0].name : '未知地址'}} | {{item.locations ? item.locations[0].name : '未知地址'}} | ||||
sessionStorage.setItem('mode', 'detail') | sessionStorage.setItem('mode', 'detail') | ||||
window.open('/company/detail', "_blank"); | window.open('/company/detail', "_blank"); | ||||
} | } | ||||
const toDetail = (job_id : Number, company_id : Number) => { | const toDetail = (job_id : Number, company_id : Number) => { | ||||
sessionStorage.setItem('job_id', job_id) | sessionStorage.setItem('job_id', job_id) | ||||
sessionStorage.setItem('tab_key', 2) | sessionStorage.setItem('tab_key', 2) |
<div style="color: #4FBE70"> | <div style="color: #4FBE70"> | ||||
<h3 class="resume-word-item-title-content">个人简介</h3> | <h3 class="resume-word-item-title-content">个人简介</h3> | ||||
</div> | </div> | ||||
<div class="resume-word-item-content"> | |||||
<p class="ql-editor" v-html="detail.introduction"></p> | |||||
<div class="resume-word-item-content ql-editor"> | |||||
<p v-html="detail.introduction"></p> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { ref, onMounted, computed, watch, onBeforeUnmount } from 'vue'; | import { ref, onMounted, computed, watch, onBeforeUnmount } from 'vue'; | ||||
import he from 'he'; | |||||
import JobDetail from '@/components/job/detail/index.vue' | import JobDetail from '@/components/job/detail/index.vue' | ||||
import JobCard from '@/components/job/card/index.vue' | import JobCard from '@/components/job/card/index.vue' | ||||
import JobList from '@/components/job/list/index.vue' | import JobList from '@/components/job/list/index.vue' | ||||
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.introduction = he.decode(companyDetail.value.introduction) | |||||
}) | }) | ||||
getJobCompanyjobs(current.value) | getJobCompanyjobs(current.value) | ||||
} | } |
邀请面试 | 邀请面试 | ||||
</a-button> | </a-button> | ||||
</template> | </template> | ||||
<a-list-item-meta> | |||||
<a-list-item-meta @click="detail(item)"> | |||||
<template #title> | <template #title> | ||||
<div @click="detail(item)"> <span style="font-weight: bold;font-size: 16px;cursor: pointer;">{{item.seekername}} </span></div> | <div @click="detail(item)"> <span style="font-weight: bold;font-size: 16px;cursor: pointer;">{{item.seekername}} </span></div> | ||||
</template> | </template> | ||||
-webkit-line-clamp: 1; | -webkit-line-clamp: 1; | ||||
-webkit-box-orient: vertical; | -webkit-box-orient: vertical; | ||||
text-overflow: ellipsis;"> | text-overflow: ellipsis;"> | ||||
<div class="ql-editor" v-html="item.introduction"></div> | |||||
<div v-html="item.introduction"></div> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<template #avatar> | <template #avatar> |