import{d as r,r as o,o as p,c,w as t,a as _,b as u,e,_ as i}from"./index-cCn3CK44.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-d9zHASBb.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-cCn3CK44.js"></script> | |||||
<link rel="stylesheet" crossorigin href="/assets/index-ia0wri7Z.css"> | |||||
<script type="module" crossorigin src="/assets/index-d9zHASBb.js"></script> | |||||
<link rel="stylesheet" crossorigin href="/assets/index-lEQJ0AIX.css"> | |||||
</head> | </head> | ||||
<body> | <body> | ||||
<div id="app"></div> | <div id="app"></div> |
import { router } from '@/router'; | import { router } from '@/router'; | ||||
import { createVNode } from 'vue'; | import { createVNode } from 'vue'; | ||||
import { useCommon } from '@/hooks/useCommon'; | import { useCommon } from '@/hooks/useCommon'; | ||||
let { commomParams, ExclamationCircleOutlined, Modal } = useCommon(); | |||||
let { store, commomParams, ExclamationCircleOutlined, Modal } = useCommon(); | |||||
import { useMenu } from '@/hooks/useMenu'; | |||||
let { routerCur } = useMenu(); | |||||
const msgModel = (val) => { | |||||
const msgModel = (val, code) => { | |||||
Modal.confirm({ | Modal.confirm({ | ||||
title: val, | title: val, | ||||
centered: true, | centered: true, | ||||
icon: createVNode(ExclamationCircleOutlined), | icon: createVNode(ExclamationCircleOutlined), | ||||
okText: '确认', | okText: '确认', | ||||
onOk() { | onOk() { | ||||
}, | }, | ||||
onCancel() { | onCancel() { | ||||
instance.interceptors.response.use(function (response) { | instance.interceptors.response.use(function (response) { | ||||
switch (response.data.code) { | switch (response.data.code) { | ||||
case -1: | case -1: | ||||
msgModel(response.data.msg) | |||||
msgModel(response.data.msg, response.data.code) | |||||
break; | break; | ||||
case 0: | case 0: | ||||
break; | break; | ||||
return response; | return response; | ||||
break; | break; | ||||
case 401: | case 401: | ||||
msgModel(response.data.msg) | |||||
msgModel(response.data.msg, response.data.code) | |||||
setTimeout(() => { | |||||
if (routerCur() == '/job/home') { | |||||
sessionStorage.clear() | |||||
location.reload() | |||||
} else { | |||||
store.commit('getPageType', { | |||||
pageType: '' | |||||
}) | |||||
store.commit('setShowLoginBox', { | |||||
showLoginBox: false | |||||
}) | |||||
sessionStorage.clear() | |||||
sessionStorage.setItem('pageType', '') | |||||
store.commit('permissions/SET_PERMISSION', null) | |||||
store.commit('permissions/SET_MENU', []) | |||||
router.push('/job/home') | |||||
} | |||||
}, 2000) | |||||
break; | |||||
case 403: | case 403: | ||||
msgModel(response.data.msg) | |||||
msgModel(response.data.msg, response.data.code) | |||||
break; | break; | ||||
case 404: | case 404: | ||||
break; | break; | ||||
case 600: | case 600: | ||||
if (response.data.errors && Object.keys(response.data.errors).length > 0) { | if (response.data.errors && Object.keys(response.data.errors).length > 0) { | ||||
msgModel(response.data.errors) | |||||
msgModel(response.data.errors, response.data.code) | |||||
} else { | } else { | ||||
msgModel(response.data.msg) | |||||
msgModel(response.data.msg, response.data.code) | |||||
} | } | ||||
break; | break; | ||||
default: | default: | ||||
msgModel(response.data.msg) | |||||
msgModel(response.data.msg, response.data.code) | |||||
// warnToast(response.data.msg); | // warnToast(response.data.msg); | ||||
} | } | ||||
// 2xx 范围内的状态码都会触发该函数。 | // 2xx 范围内的状态码都会触发该函数。 |
export const PostCompanyLoginByMobile = postModel(url.CompanyLoginByMobile); | export const PostCompanyLoginByMobile = postModel(url.CompanyLoginByMobile); | ||||
export const PostJobseekerResetPwd = postModel(url.JobseekerResetPwd); | export const PostJobseekerResetPwd = postModel(url.JobseekerResetPwd); | ||||
export const PostCustomerTokenExpiration = postModel(url.CustomerTokenExpiration); | |||||
// 招聘会 | // 招聘会 | ||||
export const PostRecruitmentBookcompany = getModel(url.RecruitmentBookcompany);// 获取招聘会参与的企业 | export const PostRecruitmentBookcompany = getModel(url.RecruitmentBookcompany);// 获取招聘会参与的企业 | ||||
export const PostRecruitmentList = getModel(url.RecruitmentList);// 招聘会列表 | export const PostRecruitmentList = getModel(url.RecruitmentList);// 招聘会列表 | ||||
export const PostCompanycustomercodeUpdate = postModel(url.CompanycustomercodeUpdate); // 编辑 | export const PostCompanycustomercodeUpdate = postModel(url.CompanycustomercodeUpdate); // 编辑 | ||||
export const GetCompanycustomercodeList = getModel(url.CompanycustomercodeList); // 列表 | export const GetCompanycustomercodeList = getModel(url.CompanycustomercodeList); // 列表 | ||||
export const GetCompanycustomercodeDetail = getModel(url.CompanycustomercodeDetail); // 添加 | export const GetCompanycustomercodeDetail = getModel(url.CompanycustomercodeDetail); // 添加 | ||||
export const GetCompanyRecruiters = getModel(url.CompanyRecruiters); // 列表 | |||||
export const PostCustomerUpdate = postModel(url.CustomerUpdate); // 编辑 | |||||
// 展示广告位 | // 展示广告位 | ||||
export const GetAdvertscheduleList = getModel(url.AdvertscheduleList); // 添加 | export const GetAdvertscheduleList = getModel(url.AdvertscheduleList); // 添加 | ||||
Jobseekerlogin: String, | Jobseekerlogin: String, | ||||
JobseekerResetPwd: String, | JobseekerResetPwd: String, | ||||
SysconfigDetail: String, | SysconfigDetail: String, | ||||
CustomerTokenExpiration: String, | |||||
// 招聘会 | // 招聘会 | ||||
RecruitmentBookcompany : String, | RecruitmentBookcompany : String, | ||||
CompanycustomercodeUpdate : String, | CompanycustomercodeUpdate : String, | ||||
CompanycustomercodeList : String, | CompanycustomercodeList : String, | ||||
CompanycustomercodeDetail : String, | CompanycustomercodeDetail : String, | ||||
CompanyRecruiters : String, | |||||
CustomerUpdate : String, | |||||
// 展示广告位 | // 展示广告位 | ||||
AdvertscheduleList | AdvertscheduleList |
JobseekerResetPwd: web + '/jobseeker/resetpwd', // 修改密码 | JobseekerResetPwd: web + '/jobseeker/resetpwd', // 修改密码 | ||||
'SysconfigDetail': common + '/sysconfig/detail', // 详情 | 'SysconfigDetail': common + '/sysconfig/detail', // 详情 | ||||
'CustomerTokenExpiration': common + '/customer/token_expiration', // 详情 | |||||
CompanycustomercodeUpdate: web + '/companycustomercode/update', // 编辑 | CompanycustomercodeUpdate: web + '/companycustomercode/update', // 编辑 | ||||
CompanycustomercodeList: web + '/companycustomercode/list', // 列表 | CompanycustomercodeList: web + '/companycustomercode/list', // 列表 | ||||
CompanycustomercodeDetail: web + '/companycustomercode/detail', // 详情 | CompanycustomercodeDetail: web + '/companycustomercode/detail', // 详情 | ||||
CompanyRecruiters: web + '/company/recruiters', // 详情 | |||||
CustomerUpdate: common + '/customer/turn_jobseeker', // 详情 | |||||
// 展示广告位 | // 展示广告位 | ||||
AdvertscheduleList: web + '/advertschedule/list', // 详情 | AdvertscheduleList: web + '/advertschedule/list', // 详情 | ||||
<template #meet_status="{ record }"> | <template #meet_status="{ record }"> | ||||
<slot name="meet_status" :record='record'></slot> | <slot name="meet_status" :record='record'></slot> | ||||
</template> | </template> | ||||
<template #status="{ record }"> | |||||
<slot name="status" :record='record'></slot> | |||||
</template> | |||||
</a-table> | </a-table> | ||||
</template> | </template> | ||||
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>(props.id) | |||||
let job_id = ref<Number>(sessionStorage.getItem('job_id') ? sessionStorage.getItem('job_id') : '') | |||||
let detail = ref<Object>(null); | let detail = ref<Object>(null); | ||||
let spinning = ref<Boolean>(false) | let spinning = ref<Boolean>(false) | ||||
let token = ref(sessionStorage.getItem('token') ? sessionStorage.getItem('token') : '') | let token = ref(sessionStorage.getItem('token') ? sessionStorage.getItem('token') : '') | ||||
detail.value = null | detail.value = null | ||||
getDetail() | getDetail() | ||||
} | } | ||||
}) | |||||
},{immediate: true}) | |||||
</script> | </script> | ||||
<style scoped lang="less"> | <style scoped lang="less"> |
> | > | ||||
<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%;"> | |||||
<a-flex justify="space-between" style="width: 100%;">{{item.id}} | |||||
<div style="font-size: 18px; font-weight: 600;" @click="toDetail(item.id, item.company_id)">{{item.name}}</div> | <div style="font-size: 18px; font-weight: 600;" @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> | ||||
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') | ||||
router.push({ | |||||
path: '/personal' | |||||
}) | |||||
window.open('/company/detail', "_blank"); | |||||
} | } | ||||
const toDetail = (job_id : Number, company_id : Number) => { | const toDetail = (job_id : Number, company_id : Number) => { | ||||
sessionStorage.setItem('tab_key', 2) | sessionStorage.setItem('tab_key', 2) | ||||
sessionStorage.setItem('pubilc_id', company_id) | sessionStorage.setItem('pubilc_id', company_id) | ||||
sessionStorage.setItem('mode', 'detail') | sessionStorage.setItem('mode', 'detail') | ||||
router.push({ | |||||
path: '/personal' | |||||
}) | |||||
window.open('/company/detail', "_blank"); | |||||
} | } | ||||
watch(() => props.list, (newVal) => { | watch(() => props.list, (newVal) => { | ||||
jobList.value = newVal | jobList.value = newVal |
<a-col span="18"> | <a-col span="18"> | ||||
<a-row :gutter="[10,10]"> | <a-row :gutter="[10,10]"> | ||||
<a-col span="8" v-for="(item, index) in data1"> | <a-col span="8" v-for="(item, index) in data1"> | ||||
<a-card hoverable style="width: 100%;height: 222px;" @click="toCompanyDetail(item.id)"> | |||||
<a-card hoverable style="width: 100%;height: 222px;" @click="toCompanyDetail(item.company_id)"> | |||||
<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"> | ||||
<template v-if="showData"> | <template v-if="showData"> | ||||
<a-row :gutter="[10,10]" style="margin-top: 10px;"> | <a-row :gutter="[10,10]" style="margin-top: 10px;"> | ||||
<a-col span="6" v-for="(item, index) in data2"> | <a-col span="6" v-for="(item, index) in data2"> | ||||
<a-card hoverable style="width: 100%;height: 222px;" @click="toCompanyDetail(item.id)"> | |||||
<a-card hoverable style="width: 100%;height: 222px;" @click="toCompanyDetail(item.company_id)"> | |||||
<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"> | ||||
const toCompanyDetail = (val : Number) => { | const toCompanyDetail = (val : Number) => { | ||||
sessionStorage.setItem('pubilc_id', val) | sessionStorage.setItem('pubilc_id', val) | ||||
sessionStorage.setItem('mode', 'detail') | sessionStorage.setItem('mode', 'detail') | ||||
router.push({ | |||||
path: '/personal' | |||||
}) | |||||
window.open('/company/detail', "_blank"); | |||||
} | } | ||||
const toArticle = (item) => { | const toArticle = (item) => { |
<script lang="ts" setup> | <script lang="ts" setup> | ||||
import { ref, onMounted, computed, defineProps, defineEmits } from 'vue'; | import { ref, onMounted, computed, defineProps, defineEmits } from 'vue'; | ||||
import ATopMenu from '@/components/layout/menu/aMenu.vue'; | import ATopMenu from '@/components/layout/menu/aMenu.vue'; | ||||
import { PostCustomerVerify, GetPersonInterviewList, GetCompanyResumeList, PostCompanyJobList } from '@/apis/models'; | |||||
import { PostCustomerVerify, GetPersonInterviewList, GetCompanyResumeList, PostCustomerTokenExpiration, PostCompanyJobList } from '@/apis/models'; | |||||
import { warnToast, successToast } from '@/utils/toastHelper'; | import { warnToast, successToast } from '@/utils/toastHelper'; | ||||
import { store } from '@/store/index'; | import { store } from '@/store/index'; | ||||
import { router } from '@/router/index'; | import { router } from '@/router/index'; | ||||
} | } | ||||
const quit = () => { | const quit = () => { | ||||
if(routerCur() == '/job/home') { | |||||
sessionStorage.clear() | |||||
location.reload() | |||||
} else { | |||||
store.commit('getPageType', { | |||||
pageType: '' | |||||
}) | |||||
store.commit('setShowLoginBox', { | |||||
showLoginBox: false | |||||
}) | |||||
sessionStorage.clear() | |||||
sessionStorage.setItem('pageType', '') | |||||
store.commit('permissions/SET_PERMISSION', null) | |||||
store.commit('permissions/SET_MENU', []) | |||||
router.push('/job/home') | |||||
} | |||||
PostCustomerTokenExpiration().then(res => { | |||||
if(routerCur() == '/job/home') { | |||||
sessionStorage.clear() | |||||
location.reload() | |||||
} else { | |||||
store.commit('getPageType', { | |||||
pageType: '' | |||||
}) | |||||
store.commit('setShowLoginBox', { | |||||
showLoginBox: false | |||||
}) | |||||
sessionStorage.clear() | |||||
sessionStorage.setItem('pageType', '') | |||||
store.commit('permissions/SET_PERMISSION', null) | |||||
store.commit('permissions/SET_MENU', []) | |||||
router.push('/job/home') | |||||
} | |||||
}) | |||||
} | } | ||||
<a-menu mode="horizontal" v-model:openKeys="openSubMenu" @openChange="onOpenChange" | <a-menu mode="horizontal" v-model:openKeys="openSubMenu" @openChange="onOpenChange" | ||||
v-model:selectedKeys="selectedMenu" style="background: #0A130D; height: '90vh';color: #ffffff;"> | v-model:selectedKeys="selectedMenu" style="background: #0A130D; height: '90vh';color: #ffffff;"> | ||||
<template v-for="(item,index) in menuList"> | <template v-for="(item,index) in menuList"> | ||||
<template v-if="!item.children"> | |||||
<a-menu-item :key="item.path" @click="onMenu(item.path)"> | |||||
<span>{{item.meta.title}}</span> | |||||
</a-menu-item> | |||||
</template> | |||||
<template v-else> | |||||
<a-sub-menu :key="item.path"> | |||||
<template #title>{{item.meta.title}}</template> | |||||
<template v-for="(twoItem, twoIndex) in item.children"> | |||||
<a-sub-menu v-if="twoItem.children" :key="twoItem.path"> | |||||
<template #title> | |||||
{{twoItem.meta.title}} | |||||
</template> | |||||
<a-menu-item v-for="(threeItem, threeIndex) in twoItem.children" :key="threeItem.path" | |||||
@click="onMenu(threeItem.path)">{{ threeItem.meta.title }}</a-menu-item> | |||||
</a-sub-menu> | |||||
<a-menu-item v-else @click="onMenu(twoItem.path)" :key="twoItem.path"> | |||||
{{ twoItem.meta.title }} | |||||
</a-menu-item> | |||||
</template> | |||||
</a-sub-menu> | |||||
<template v-if="item.meta.title != '企业详情' && item.meta.title != '职位详情'"> | |||||
<template v-if="!item.children"> | |||||
<a-menu-item :key="item.path" @click="onMenu(item.path)"> | |||||
<span>{{item.meta.title}}</span> | |||||
</a-menu-item> | |||||
</template> | |||||
<template v-else> | |||||
<a-sub-menu :key="item.path"> | |||||
<template #title>{{item.meta.title}}</template> | |||||
<template v-for="(twoItem, twoIndex) in item.children"> | |||||
<a-sub-menu v-if="twoItem.children" :key="twoItem.path"> | |||||
<template #title> | |||||
{{twoItem.meta.title}} | |||||
</template> | |||||
<a-menu-item v-for="(threeItem, threeIndex) in twoItem.children" :key="threeItem.path" | |||||
@click="onMenu(threeItem.path)">{{ threeItem.meta.title }}</a-menu-item> | |||||
</a-sub-menu> | |||||
<a-menu-item v-else @click="onMenu(twoItem.path)" :key="twoItem.path"> | |||||
{{ twoItem.meta.title }} | |||||
</a-menu-item> | |||||
</template> | |||||
</a-sub-menu> | |||||
</template> | |||||
</template> | </template> | ||||
</template> | </template> | ||||
</a-menu> | </a-menu> |
}, { | }, { | ||||
title: '绑定的账号', | title: '绑定的账号', | ||||
dataIndex: 'customer.username' | dataIndex: 'customer.username' | ||||
}, { | |||||
title: '联系方式', | |||||
dataIndex: 'customer.mobile' | |||||
}, { | }, { | ||||
title: '使用状态', | title: '使用状态', | ||||
dataIndex: 'customer_id' | |||||
dataIndex: 'customer_id', | |||||
slots: { customRender: 'status' }, | |||||
}, { | }, { | ||||
title: '生成时间', | title: '生成时间', | ||||
dataIndex: 'created_at', | dataIndex: 'created_at', |
</template> | </template> | ||||
<a-biaoge :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" | <a-biaoge :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" | ||||
@page="getPage" :loading="loading"> | @page="getPage" :loading="loading"> | ||||
<template #status="{ record }"> | |||||
<a-tag color="green" v-if="record.customer_id ==0">未使用</a-tag> | |||||
<a-tag color="red" v-else>已使用</a-tag> | |||||
</template> | |||||
<template #default="{ record }"> | <template #default="{ record }"> | ||||
<a-row :gutter="20"> | <a-row :gutter="20"> | ||||
<a-col> | <a-col> |
watch(() => props.search_params, (newVal) => { | watch(() => props.search_params, (newVal) => { | ||||
emit('searchData', commomParams.value.search) | emit('searchData', commomParams.value.search) | ||||
},{ | |||||
immediate: true | |||||
}) | }) | ||||
const getData = () => { | const getData = () => { |
export const cols = <ColType.type[]>[ | |||||
{ | |||||
title: '绑定的账号', | |||||
dataIndex: 'username' | |||||
}, { | |||||
title: '联系方式', | |||||
dataIndex: 'mobile' | |||||
},{ | |||||
title: '绑定时间', | |||||
dataIndex: 'created_at', | |||||
}, | |||||
{ | |||||
title: '操作', | |||||
dataIndex: 'operation', | |||||
slots: { customRender: 'operation' }, | |||||
}, | |||||
] |
<template> | |||||
<a-search @searchData="searchData" @clearData="clearData" :search_params="commomParams.search"></a-search> | |||||
<a-card title="转换验证码"> | |||||
<template #extra> | |||||
<a-button @click="getCode" type="primary" size="large">生成验证码</a-button> | |||||
</template> | |||||
<a-biaoge :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" | |||||
@page="getPage" :loading="loading"> | |||||
<template #status="{ record }"> | |||||
<a-tag color="green" v-if="record.customer_id ==0">未使用</a-tag> | |||||
<a-tag color="red" v-else>已使用</a-tag> | |||||
</template> | |||||
<template #default="{ record }"> | |||||
<a-row :gutter="20"> | |||||
<a-col> | |||||
<a-dropdown placement="bottomRight"> | |||||
<template #overlay> | |||||
<a-menu> | |||||
<a-menu-item key="1"> | |||||
<a-button @click="unbind(record.id)" block>解除授权</a-button> | |||||
</a-menu-item> | |||||
</a-menu> | |||||
</template> | |||||
<a-button> | |||||
操作 | |||||
<DownOutlined /> | |||||
</a-button> | |||||
</a-dropdown> | |||||
</a-col> | |||||
</a-row> | |||||
</template> | |||||
</a-biaoge> | |||||
</a-card> | |||||
</template> | |||||
<script setup lang="ts"> | |||||
import { ref, onMounted, computed, defineEmits, createVNode } from 'vue'; | |||||
import { PostCompanycustomercodeAdd, PostCompanycustomercodeDel, PostCustomerUpdate, GetCompanyRecruiters } from '@/apis/models'; | |||||
import ASearch from '@/components/user/manage/search.vue'; | |||||
import { useCommon } from '@/hooks/useCommon'; | |||||
import { cols } from '@/components/user/manage/columns'; | |||||
import { warnToast, successToast } from '@/utils/toastHelper'; | |||||
const emit = defineEmits(); | |||||
let { commomParams, ExclamationCircleOutlined, Modal } = useCommon(); | |||||
let loading = ref<Boolean>(true); | |||||
onMounted(() => { | |||||
getData(); | |||||
}) | |||||
const searchData = (data : object) => { | |||||
commomParams.value.search = data | |||||
getData(); | |||||
} | |||||
const clearData = (data : object) => { | |||||
if (data) { | |||||
commomParams.value.search = data | |||||
} else { | |||||
commomParams.value.search = { | |||||
page: 1, | |||||
pagesize: 10, | |||||
sort: 'id', | |||||
sortby: 'asc', | |||||
keyword: '' | |||||
} | |||||
} | |||||
getData(); | |||||
} | |||||
const getPage = (data : object) => { | |||||
commomParams.value.search.page = data.current; | |||||
commomParams.value.search.pagesize = data.pageSize; | |||||
getData(); | |||||
} | |||||
const getData = async () => { | |||||
try { | |||||
loading.value = true; | |||||
let res = await GetCompanyRecruiters(); | |||||
loading.value = false; | |||||
commomParams.value.table.data = res.data.customers; | |||||
commomParams.value.table.columns = cols; | |||||
commomParams.value.page = { | |||||
current: commomParams.value.search.page, | |||||
pageSize: commomParams.value.search.pagesize, | |||||
total: res.data.total, | |||||
pageSizeOptions: ['10', '20', '30', '40'], | |||||
hideOnSinglePage: false, | |||||
showSizeChanger: true | |||||
}; | |||||
} catch { | |||||
loading.value = false; | |||||
} | |||||
} | |||||
// 修改 | |||||
const edit = (record : Object) => { | |||||
emit('toEdit', { record: record }) | |||||
} | |||||
const unbind = (id) => { | |||||
Modal.confirm({ | |||||
title: '是否要解除授权该账号', | |||||
icon: createVNode(ExclamationCircleOutlined), | |||||
centered: true, | |||||
onOk() { | |||||
PostCustomerUpdate({ id: id, role: 1 }).then(res => { | |||||
successToast('解除授权成功') | |||||
getData() | |||||
}) | |||||
}, | |||||
onCancel() { | |||||
}, | |||||
}); | |||||
} | |||||
const del = (id : number) => { | |||||
commomParams.value.delParam = { id: id }; | |||||
Modal.confirm({ | |||||
title: '是否要删除此验证码', | |||||
icon: createVNode(ExclamationCircleOutlined), | |||||
centered: true, | |||||
onOk() { | |||||
PostCompanycustomercodeDel(commomParams.value.delParam).then(res => { | |||||
successToast('删除成功'); | |||||
getData(); | |||||
}) | |||||
}, | |||||
onCancel() { | |||||
}, | |||||
}); | |||||
} | |||||
</script> | |||||
<style scoped lang="less"> | |||||
</style> |
<template> | |||||
<a-form :model="commomParams.search"> | |||||
<a-row :gutter="20"> | |||||
<a-col span="6"> | |||||
<a-form-item> | |||||
<a-input-search v-model:value="commomParams.search.keyword" placeholder="请输入验证码" enter-button="搜索" | |||||
@search="getData" /> | |||||
</a-form-item> | |||||
</a-col> | |||||
<a-col span="6"> | |||||
<a-button type="primary" @click="clearSearch">重置</a-button> | |||||
</a-col> | |||||
</a-row> | |||||
</a-form> | |||||
</template> | |||||
<script lang="ts" setup> | |||||
import { ref, onMounted, watch, computed } from 'vue'; | |||||
import { useCommon } from '@/hooks/useCommon'; | |||||
let { commomParams } = useCommon(); | |||||
let props = defineProps(['search_params']); | |||||
const emit = defineEmits(); | |||||
watch(() => props.search_params, (newVal) => { | |||||
emit('searchData', commomParams.value.search) | |||||
}) | |||||
const getData = () => { | |||||
emit('searchData', commomParams.value.search) | |||||
} | |||||
// 清空搜索 | |||||
const clearSearch = () => { | |||||
commomParams.value.search = { | |||||
page: 1, | |||||
pagesize: 10, | |||||
sort: 'id', | |||||
sortby: 'asc', | |||||
keyword: '' | |||||
} | |||||
emit('clearData', commomParams.value.search) | |||||
} | |||||
</script> | |||||
<style> | |||||
</style> |
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { ref, onMounted, computed, onBeforeUnmount } from 'vue'; | import { ref, onMounted, computed, onBeforeUnmount } from 'vue'; | ||||
import { PostJobseekerEditPwd, PostSmsSend, GetCaptcha, PostJobseekerResetPwd } from '@/apis/models'; | |||||
import { PostJobseekerEditPwd, PostSmsSend,PostCustomerTokenExpiration, GetCaptcha, PostJobseekerResetPwd } from '@/apis/models'; | |||||
import { warnToast, successToast } from '@/utils/toastHelper'; | import { warnToast, successToast } from '@/utils/toastHelper'; | ||||
import { store } from '@/store/index'; | import { store } from '@/store/index'; | ||||
import { router } from '@/router/index'; | import { router } from '@/router/index'; | ||||
} | } | ||||
const quit = () => { | const quit = () => { | ||||
if (routerCur() == '/job/home') { | |||||
sessionStorage.clear() | |||||
location.reload() | |||||
} else { | |||||
store.commit('getPageType', { | |||||
pageType: '' | |||||
}) | |||||
store.commit('setShowLoginBox', { | |||||
showLoginBox: false | |||||
}) | |||||
sessionStorage.clear() | |||||
sessionStorage.setItem('pageType', '') | |||||
store.commit('permissions/SET_PERMISSION', null) | |||||
store.commit('permissions/SET_MENU', []) | |||||
router.push('/job/home') | |||||
} | |||||
PostCustomerTokenExpiration().then(res => { | |||||
if (routerCur() == '/job/home') { | |||||
sessionStorage.clear() | |||||
location.reload() | |||||
} else { | |||||
store.commit('getPageType', { | |||||
pageType: '' | |||||
}) | |||||
store.commit('setShowLoginBox', { | |||||
showLoginBox: false | |||||
}) | |||||
sessionStorage.clear() | |||||
sessionStorage.setItem('pageType', '') | |||||
store.commit('permissions/SET_PERMISSION', null) | |||||
store.commit('permissions/SET_MENU', []) | |||||
router.push('/job/home') | |||||
} | |||||
}) | |||||
} | } | ||||
const resetForm = () => { | const resetForm = () => { |
}, | }, | ||||
}; | }; | ||||
// 新窗口 | |||||
export const OutpageCompanyRoute: AppRouteRecordRaw = { | |||||
path: '/company/detail', | |||||
name: 'outpageCompany', | |||||
component: routerList.OutpageCompany, | |||||
meta: { | |||||
title: '企业详情' | |||||
} | |||||
} | |||||
export const OutpageJobRoute: AppRouteRecordRaw = { | |||||
path: '/job/detail', | |||||
name: 'outpageJob', | |||||
component: routerList.OutpageJob, | |||||
meta: { | |||||
title: '职位详情' | |||||
} | |||||
} | |||||
export const routesModuleList : AppRouteModule[] = [ | export const routesModuleList : AppRouteModule[] = [ | ||||
RelationshipRoute, | RelationshipRoute, | ||||
NewsRoute, | NewsRoute, | ||||
// RegisterRoute | // RegisterRoute | ||||
OutpageCompanyRoute, | |||||
OutpageJobRoute | |||||
]; | ]; |
import JobseekerSearch from '@/views/jobseeker/search/index.vue'; | import JobseekerSearch from '@/views/jobseeker/search/index.vue'; | ||||
import JobseekerPassword from '@/views/jobseeker/password/index.vue'; | import JobseekerPassword from '@/views/jobseeker/password/index.vue'; | ||||
// 新窗口 | |||||
import OutpageCompany from '@/views/common/outpage/company.vue'; | |||||
import OutpageJob from '@/views/common/outpage/job.vue'; | |||||
export const routerList = { | export const routerList = { | ||||
Home, | Home, | ||||
Job, | Job, | ||||
JobseekerRecommend, | JobseekerRecommend, | ||||
JobseekerResume, | JobseekerResume, | ||||
JobseekerSearch, | JobseekerSearch, | ||||
JobseekerPassword | |||||
JobseekerPassword, | |||||
OutpageCompany, | |||||
OutpageJob | |||||
} | } |
import LOGIN from '@/views/login/login.vue'; | import LOGIN from '@/views/login/login.vue'; | ||||
// import HOME from '@/views/home/home.vue'; | // import HOME from '@/views/home/home.vue'; | ||||
import Layout from '@/components/layout/index.vue'; | import Layout from '@/components/layout/index.vue'; | ||||
import { routesModuleList } from '@/router/dynamic'; | import { routesModuleList } from '@/router/dynamic'; | ||||
import { routesManageModuleList } from '@/router/manageDynamic'; | import { routesManageModuleList } from '@/router/manageDynamic'; | ||||
// // 登录路由 | |||||
// 登录路由 | |||||
export const LoginRoute: AppRouteRecordRaw = { | export const LoginRoute: AppRouteRecordRaw = { | ||||
path: '/login', | path: '/login', | ||||
name: 'login', | name: 'login', | ||||
} | } | ||||
// layout路由 | // layout路由 | ||||
export const LayoutRoute : AppRouteRecordRaw = { | export const LayoutRoute : AppRouteRecordRaw = { | ||||
path: '', | path: '', | ||||
} | } | ||||
export const basicRoutes = [ | export const basicRoutes = [ | ||||
LoginRoute, | LoginRoute, | ||||
LayoutRoute | |||||
LayoutRoute, | |||||
] | ] |
try { | try { | ||||
// let res = await LOGIN.permissions(); | // let res = await LOGIN.permissions(); | ||||
// let arr = res.data.data; | // let arr = res.data.data; | ||||
console.log(rootState) | |||||
if(rootState.token && rootState.role === 'company' && rootState.pageType == 'company' ) { | if(rootState.token && rootState.role === 'company' && rootState.pageType == 'company' ) { | ||||
LayoutRoute.children = []; | LayoutRoute.children = []; | ||||
commit('SET_MENU', []); | commit('SET_MENU', []); | ||||
routerAdd(NotFound); | routerAdd(NotFound); | ||||
let initialRoutes = routerInit(); | let initialRoutes = routerInit(); | ||||
commit('SET_PERMISSION', [...initialRoutes]); | commit('SET_PERMISSION', [...initialRoutes]); | ||||
debugger | |||||
} | } | ||||
} catch { | } catch { |
<template> | |||||
<div class="content-padding-inline" style="margin: 30px 0;"> | |||||
<a-row :gutter="[10,10]" type="flex" justify="center"> | |||||
<a-col span="18"> | |||||
<div v-if="mode== 'detail'"> | |||||
<a-page-header> | |||||
<a-list item-layout="vertical"> | |||||
<a-list-item> | |||||
<a-list-item-meta> | |||||
<template #title> | |||||
<div style="font-size: 24px; font-family: bold;">{{companyDetail.full_name}}</div> | |||||
</template> | |||||
<template #description> | |||||
<div> | |||||
企业编号:{{companyDetail.id}} | |||||
</div> | |||||
</template> | |||||
</a-list-item-meta> | |||||
</a-list-item> | |||||
</a-list> | |||||
<a-tabs v-model:activeKey="activeKey" type="card" @change="activeChange"> | |||||
<a-tab-pane :key="1" tab="企业信息"> | |||||
<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 :key="2" tab="招聘职位" force-render> | |||||
<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="8"> | |||||
<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="16"> | |||||
<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> | |||||
</a-tab-pane> | |||||
</a-tabs> | |||||
</a-page-header> | |||||
</div> | |||||
</a-col> | |||||
</a-row> | |||||
</div> | |||||
</template> | |||||
<script setup lang="ts"> | |||||
import { ref, onMounted, computed, watch, onBeforeUnmount } from 'vue'; | |||||
import JobDetail from '@/components/job/detail/index.vue' | |||||
import JobCard from '@/components/job/card/index.vue' | |||||
import JobList from '@/components/job/list/index.vue' | |||||
import JobInternship from '@/components/job/internship/index.vue' | |||||
import MapMarker from '@/components/map/marker.vue' | |||||
import { PostCompanyInfo, GetJobCompanyjobs } from '@/apis/models'; | |||||
import { ArrowLeftOutlined } from '@ant-design/icons-vue'; | |||||
import { router } from '@/router'; | |||||
import { useCommon } from '@/hooks/useCommon'; | |||||
let { imageprefix } = useCommon(); | |||||
let activeKey = ref<Number>(sessionStorage.getItem('tab_key') ? Number(sessionStorage.getItem('tab_key')) : 1) | |||||
let companyDetail = ref<object>({}) | |||||
let jobList = ref<object[]>([]) | |||||
let pubilc_id = ref<Number>(0) | |||||
let current = ref<Number>(1) | |||||
let total = ref<Number>(0) | |||||
let job_id = ref<Number>(sessionStorage.getItem('job_id') ? Number(sessionStorage.getItem('job_id')) : 0) | |||||
let mode = ref<String>(sessionStorage.getItem('mode')) | |||||
const toDetail = (data) => { | |||||
job_id.value = data.id; | |||||
} | |||||
const activeChange = (data) => { | |||||
sessionStorage.removeItem('job_id') | |||||
getJobCompanyjobs() | |||||
} | |||||
const pageChange = (page) => { | |||||
current.value = page | |||||
getJobCompanyjobs(page) | |||||
} | |||||
const getJobCompanyjobs = (page) => { | |||||
GetJobCompanyjobs({ company_id: pubilc_id.value ? pubilc_id.value : sessionStorage.getItem('id'), page: current.value, pagesize: 3 }).then(res => { | |||||
total.value = res.data.total; | |||||
if (res.data.jobs.length > 3) { | |||||
jobList.value = res.data.jobs.slice(0, 3) | |||||
} else { | |||||
jobList.value = res.data.jobs | |||||
} | |||||
job_id.value = sessionStorage.getItem('job_id') ? Number(sessionStorage.getItem('job_id')) : jobList.value[0].id | |||||
}) | |||||
} | |||||
const back = (page) => { | |||||
sessionStorage.removeItem('pubilc_id') | |||||
sessionStorage.removeItem('mode') | |||||
sessionStorage.removeItem('tab_key') | |||||
sessionStorage.removeItem('job_id') | |||||
mode.value = sessionStorage.getItem('mode') | |||||
} | |||||
const showDetail = (page) => { | |||||
mode.value = sessionStorage.getItem('mode') | |||||
activeKey.value = sessionStorage.getItem('tab_key') ? Number(sessionStorage.getItem('tab_key')) : 1 | |||||
job_id.value = sessionStorage.getItem('job_id') ? Number(sessionStorage.getItem('job_id')) : 0; | |||||
pubilc_id.value = sessionStorage.getItem('pubilc_id') ? Number(sessionStorage.getItem('pubilc_id')) : pubilc_id.value; | |||||
if (sessionStorage.getItem('pubilc_id') != 0 || sessionStorage.getItem('id') != 0) { | |||||
PostCompanyInfo({ id: pubilc_id.value ? pubilc_id.value : sessionStorage.getItem('id') }).then(res => { | |||||
companyDetail.value = res.data | |||||
}) | |||||
getJobCompanyjobs(current.value) | |||||
} | |||||
if(activeKey.value == 1) { | |||||
window.open('/company/detail', "_blank"); | |||||
} else{ | |||||
window.open('/job/detail', "_blank"); | |||||
} | |||||
} | |||||
onMounted(() => { | |||||
if (mode.value == 'detail') { | |||||
// job_id.value = sessionStorage.getItem('job_id') ? Number(sessionStorage.getItem('job_id')) : 0; | |||||
// console.log(job_id.value ) | |||||
pubilc_id.value = sessionStorage.getItem('pubilc_id') ? Number(sessionStorage.getItem('pubilc_id')) : pubilc_id.value; | |||||
if (sessionStorage.getItem('pubilc_id') != 0 || sessionStorage.getItem('id') != 0) { | |||||
PostCompanyInfo({ id: pubilc_id.value ? pubilc_id.value : sessionStorage.getItem('id') }).then(res => { | |||||
companyDetail.value = res.data; | |||||
}) | |||||
getJobCompanyjobs(current.value) | |||||
} | |||||
} | |||||
}) | |||||
onBeforeUnmount(() => { | |||||
sessionStorage.removeItem('pubilc_id') | |||||
sessionStorage.removeItem('mode') | |||||
sessionStorage.removeItem('tab_key') | |||||
sessionStorage.removeItem('job_id') | |||||
}) | |||||
</script> | |||||
<style scoped lang="less"> | |||||
:deep(.ant-list-item) { | |||||
padding: 0 !important; | |||||
} | |||||
:deep(.ant-card) { | |||||
padding: 0 !important; | |||||
} | |||||
:deep(.ant-card-body) { | |||||
padding: 0 !important; | |||||
} | |||||
</style> |
<template> | |||||
<div class="content-padding-inline" style="margin: 30px 0;"> | |||||
<a-row :gutter="[10,10]" type="flex" justify="center"> | |||||
<a-col span="18"> | |||||
<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="8"> | |||||
<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="16"> | |||||
<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> | |||||
</a-col> | |||||
</a-row> | |||||
</div> | |||||
</template> | |||||
<script setup lang="ts"> | |||||
import { ref, onMounted, computed, watch, onBeforeUnmount } from 'vue'; | |||||
import JobDetail from '@/components/job/detail/index.vue' | |||||
import JobCard from '@/components/job/card/index.vue' | |||||
import JobList from '@/components/job/list/index.vue' | |||||
import JobInternship from '@/components/job/internship/index.vue' | |||||
import MapMarker from '@/components/map/marker.vue' | |||||
import { PostCompanyInfo, GetJobCompanyjobs } from '@/apis/models'; | |||||
import { ArrowLeftOutlined } from '@ant-design/icons-vue'; | |||||
import { router } from '@/router'; | |||||
import { useCommon } from '@/hooks/useCommon'; | |||||
let { imageprefix } = useCommon(); | |||||
let activeKey = ref<Number>(sessionStorage.getItem('tab_key') ? Number(sessionStorage.getItem('tab_key')) : 1) | |||||
let companyDetail = ref<object>({}) | |||||
let jobList = ref<object[]>([]) | |||||
let pubilc_id = ref<Number>(0) | |||||
let current = ref<Number>(1) | |||||
let total = ref<Number>(0) | |||||
let job_id = ref<Number>(0) | |||||
let mode = ref<String>(sessionStorage.getItem('mode')) | |||||
const toDetail = (data) => { | |||||
job_id.value = data.id; | |||||
} | |||||
const pageChange = (page) => { | |||||
current.value = page | |||||
getJobCompanyjobs(page) | |||||
} | |||||
const getJobCompanyjobs = (page) => { | |||||
GetJobCompanyjobs({ company_id: pubilc_id.value ? pubilc_id.value : sessionStorage.getItem('id'), page: page, pagesize: 3 }).then(res => { | |||||
total.value = res.data.total; | |||||
if (res.data.jobs.length > 3) { | |||||
jobList.value = res.data.jobs.slice(0, 3) | |||||
} else { | |||||
jobList.value = res.data.jobs | |||||
} | |||||
job_id.value = jobList.value[0].id | |||||
}) | |||||
} | |||||
const back = (page) => { | |||||
sessionStorage.removeItem('pubilc_id') | |||||
sessionStorage.removeItem('mode') | |||||
sessionStorage.removeItem('tab_key') | |||||
sessionStorage.removeItem('job_id') | |||||
mode.value = sessionStorage.getItem('mode') | |||||
} | |||||
const showDetail = (page) => { | |||||
mode.value = sessionStorage.getItem('mode') | |||||
activeKey.value = sessionStorage.getItem('tab_key') ? Number(sessionStorage.getItem('tab_key')) : 1 | |||||
job_id.value = sessionStorage.getItem('job_id') ? Number(sessionStorage.getItem('job_id')) : 0; | |||||
pubilc_id.value = sessionStorage.getItem('pubilc_id') ? Number(sessionStorage.getItem('pubilc_id')) : pubilc_id.value; | |||||
if (sessionStorage.getItem('pubilc_id') != 0 || sessionStorage.getItem('id') != 0) { | |||||
PostCompanyInfo({ id: pubilc_id.value ? pubilc_id.value : sessionStorage.getItem('id') }).then(res => { | |||||
companyDetail.value = res.data | |||||
}) | |||||
getJobCompanyjobs(current.value) | |||||
} | |||||
window.open('/company/detail', "_blank"); | |||||
} | |||||
onMounted(() => { | |||||
if (mode.value == 'detail') { | |||||
job_id.value = sessionStorage.getItem('job_id') ? Number(sessionStorage.getItem('job_id')) : 0; | |||||
pubilc_id.value = sessionStorage.getItem('pubilc_id') ? Number(sessionStorage.getItem('pubilc_id')) : pubilc_id.value; | |||||
if (sessionStorage.getItem('pubilc_id') != 0 || sessionStorage.getItem('id') != 0) { | |||||
PostCompanyInfo({ id: pubilc_id.value ? pubilc_id.value : sessionStorage.getItem('id') }).then(res => { | |||||
companyDetail.value = res.data; | |||||
}) | |||||
getJobCompanyjobs(current.value) | |||||
} | |||||
} | |||||
}) | |||||
onBeforeUnmount(() => { | |||||
sessionStorage.removeItem('pubilc_id') | |||||
sessionStorage.removeItem('mode') | |||||
sessionStorage.removeItem('tab_key') | |||||
sessionStorage.removeItem('job_id') | |||||
}) | |||||
</script> | |||||
<style scoped lang="less"> | |||||
:deep(.ant-list-item) { | |||||
padding: 0 !important; | |||||
} | |||||
:deep(.ant-card) { | |||||
padding: 0 !important; | |||||
} | |||||
:deep(.ant-card-body) { | |||||
padding: 0 !important; | |||||
} | |||||
</style> |
} | } | ||||
const showDetail = (page) => { | const showDetail = (page) => { | ||||
mode.value = sessionStorage.getItem('mode') | |||||
// mode.value = sessionStorage.getItem('mode') | |||||
activeKey.value = sessionStorage.getItem('tab_key') ? Number(sessionStorage.getItem('tab_key')) : 1 | activeKey.value = sessionStorage.getItem('tab_key') ? Number(sessionStorage.getItem('tab_key')) : 1 | ||||
job_id.value = sessionStorage.getItem('job_id') ? Number(sessionStorage.getItem('job_id')) : 0; | |||||
pubilc_id.value = sessionStorage.getItem('pubilc_id') ? Number(sessionStorage.getItem('pubilc_id')) : pubilc_id.value; | |||||
if (sessionStorage.getItem('pubilc_id') != 0 || sessionStorage.getItem('id') != 0) { | |||||
PostCompanyInfo({ id: pubilc_id.value ? pubilc_id.value : sessionStorage.getItem('id') }).then(res => { | |||||
companyDetail.value = res.data | |||||
}) | |||||
getJobCompanyjobs(current.value) | |||||
} | |||||
// job_id.value = sessionStorage.getItem('job_id') ? Number(sessionStorage.getItem('job_id')) : 0; | |||||
// pubilc_id.value = sessionStorage.getItem('pubilc_id') ? Number(sessionStorage.getItem('pubilc_id')) : pubilc_id.value; | |||||
// if (sessionStorage.getItem('pubilc_id') != 0 || sessionStorage.getItem('id') != 0) { | |||||
// PostCompanyInfo({ id: pubilc_id.value ? pubilc_id.value : sessionStorage.getItem('id') }).then(res => { | |||||
// companyDetail.value = res.data | |||||
// }) | |||||
// getJobCompanyjobs(current.value) | |||||
// } | |||||
window.open('/company/detail', "_blank"); | |||||
} | } | ||||
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { ref, onMounted, computed, onBeforeUnmount } from 'vue'; | import { ref, onMounted, computed, onBeforeUnmount } from 'vue'; | ||||
import { PostJobseekerEditPwd, PostSmsSend, GetCaptcha, PostJobseekerResetPwd } from '@/apis/models'; | |||||
import { PostJobseekerEditPwd, PostSmsSend,PostCustomerTokenExpiration, GetCaptcha, PostJobseekerResetPwd } from '@/apis/models'; | |||||
import { warnToast, successToast } from '@/utils/toastHelper'; | import { warnToast, successToast } from '@/utils/toastHelper'; | ||||
import { store } from '@/store/index'; | import { store } from '@/store/index'; | ||||
import { router } from '@/router/index'; | import { router } from '@/router/index'; | ||||
} | } | ||||
const quit = () => { | const quit = () => { | ||||
if(routerCur() == '/job/home') { | |||||
sessionStorage.clear() | |||||
location.reload() | |||||
} else { | |||||
store.commit('getPageType', { | |||||
pageType: '' | |||||
}) | |||||
store.commit('setShowLoginBox', { | |||||
showLoginBox: false | |||||
}) | |||||
sessionStorage.clear() | |||||
sessionStorage.setItem('pageType', '') | |||||
store.commit('permissions/SET_PERMISSION', null) | |||||
store.commit('permissions/SET_MENU', []) | |||||
router.push('/job/home') | |||||
} | |||||
PostCustomerTokenExpiration().then(res => { | |||||
if(routerCur() == '/job/home') { | |||||
sessionStorage.clear() | |||||
location.reload() | |||||
} else { | |||||
store.commit('getPageType', { | |||||
pageType: '' | |||||
}) | |||||
store.commit('setShowLoginBox', { | |||||
showLoginBox: false | |||||
}) | |||||
sessionStorage.clear() | |||||
sessionStorage.setItem('pageType', '') | |||||
store.commit('permissions/SET_PERMISSION', null) | |||||
store.commit('permissions/SET_MENU', []) | |||||
router.push('/job/home') | |||||
} | |||||
}) | |||||
} | } | ||||
const resetForm = () => { | const resetForm = () => { |
sessionStorage.setItem('role', 'company') | sessionStorage.setItem('role', 'company') | ||||
sessionStorage.setItem('pageType', 'company') | sessionStorage.setItem('pageType', 'company') | ||||
sessionStorage.setItem('id', res.data.company_id) | sessionStorage.setItem('id', res.data.company_id) | ||||
sessionStorage.setItem('primary', res.data.is_primary) | |||||
store.commit('permissions/SET_PERMISSION', null) | store.commit('permissions/SET_PERMISSION', null) | ||||
store.commit('permissions/SET_MENU', []) | store.commit('permissions/SET_MENU', []) | ||||
resetForm() | resetForm() | ||||
sessionStorage.setItem('role', 'company') | sessionStorage.setItem('role', 'company') | ||||
sessionStorage.setItem('pageType', 'company') | sessionStorage.setItem('pageType', 'company') | ||||
sessionStorage.setItem('id', res.data.company_id) | sessionStorage.setItem('id', res.data.company_id) | ||||
sessionStorage.setItem('primary', res.data.is_primary) | |||||
store.commit('permissions/SET_PERMISSION', null) | store.commit('permissions/SET_PERMISSION', null) | ||||
store.commit('permissions/SET_MENU', []) | store.commit('permissions/SET_MENU', []) | ||||
resetForm() | resetForm() |
<user-password v-if="curKey == 2"></user-password> | <user-password v-if="curKey == 2"></user-password> | ||||
<user-email v-if="curKey == 3"></user-email> | <user-email v-if="curKey == 3"></user-email> | ||||
<user-conver v-if="curKey == 4"></user-conver> | <user-conver v-if="curKey == 4"></user-conver> | ||||
<user-manage v-if="curKey == 5"></user-manage> | |||||
</div> | </div> | ||||
</a-col> | </a-col> | ||||
</a-row> | </a-row> | ||||
import UserPassword from '@/components/user/password/index.vue' | import UserPassword from '@/components/user/password/index.vue' | ||||
import UserEmail from '@/components/user/email/index.vue' | import UserEmail from '@/components/user/email/index.vue' | ||||
import UserConver from '@/components/user/conver/index.vue' | import UserConver from '@/components/user/conver/index.vue' | ||||
import UserManage from '@/components/user/manage/index.vue' | |||||
let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | ||||
let menu_list = ref([{ title: '费用管理', key: 1 },{ title: '重置密码', key: 2},{ title: '修改邮箱', key: 3},{ title: '生成招聘者代码', key: 4}]) | |||||
let menu_list = ref([{ title: '费用管理', key: 1 },{ title: '重置密码', key: 2},{ title: '修改邮箱', key: 3}]) | |||||
onMounted(() => { | |||||
if(sessionStorage.getItem('primary') && sessionStorage.getItem('primary') == 1) { | |||||
menu_list.value.push({ title: '生成招聘者代码', key: 4}, { title: '管理HR账号', key: 5}) | |||||
} | |||||
}) | |||||
let curKey = ref<Number>(1) | let curKey = ref<Number>(1) | ||||
const changeKey = (data) => { | const changeKey = (data) => { | ||||
curKey.value = data.key; | curKey.value = data.key; |