@@ -1 +1 @@ | |||
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}; |
@@ -6,8 +6,8 @@ | |||
<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> | |||
<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> | |||
<body> | |||
<div id="app"></div> |
@@ -4,16 +4,18 @@ import { warnToast, successToast } from '@/utils/toastHelper'; | |||
import { router } from '@/router'; | |||
import { createVNode } from 'vue'; | |||
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({ | |||
title: val, | |||
centered: true, | |||
icon: createVNode(ExclamationCircleOutlined), | |||
okText: '确认', | |||
onOk() { | |||
}, | |||
onCancel() { | |||
@@ -45,7 +47,7 @@ instance.interceptors.request.use(function (config) { | |||
instance.interceptors.response.use(function (response) { | |||
switch (response.data.code) { | |||
case -1: | |||
msgModel(response.data.msg) | |||
msgModel(response.data.msg, response.data.code) | |||
break; | |||
case 0: | |||
break; | |||
@@ -53,21 +55,40 @@ instance.interceptors.response.use(function (response) { | |||
return response; | |||
break; | |||
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: | |||
msgModel(response.data.msg) | |||
msgModel(response.data.msg, response.data.code) | |||
break; | |||
case 404: | |||
break; | |||
case 600: | |||
if (response.data.errors && Object.keys(response.data.errors).length > 0) { | |||
msgModel(response.data.errors) | |||
msgModel(response.data.errors, response.data.code) | |||
} else { | |||
msgModel(response.data.msg) | |||
msgModel(response.data.msg, response.data.code) | |||
} | |||
break; | |||
default: | |||
msgModel(response.data.msg) | |||
msgModel(response.data.msg, response.data.code) | |||
// warnToast(response.data.msg); | |||
} | |||
// 2xx 范围内的状态码都会触发该函数。 |
@@ -17,6 +17,8 @@ export const PostJobseekerEditPwd = postModel(url.JobseekerEditPwd); | |||
export const PostCompanyLoginByMobile = postModel(url.CompanyLoginByMobile); | |||
export const PostJobseekerResetPwd = postModel(url.JobseekerResetPwd); | |||
export const PostCustomerTokenExpiration = postModel(url.CustomerTokenExpiration); | |||
// 招聘会 | |||
export const PostRecruitmentBookcompany = getModel(url.RecruitmentBookcompany);// 获取招聘会参与的企业 | |||
export const PostRecruitmentList = getModel(url.RecruitmentList);// 招聘会列表 | |||
@@ -94,6 +96,8 @@ export const PostCompanycustomercodeDel = postModel(url.CompanycustomercodeDel); | |||
export const PostCompanycustomercodeUpdate = postModel(url.CompanycustomercodeUpdate); // 编辑 | |||
export const GetCompanycustomercodeList = getModel(url.CompanycustomercodeList); // 列表 | |||
export const GetCompanycustomercodeDetail = getModel(url.CompanycustomercodeDetail); // 添加 | |||
export const GetCompanyRecruiters = getModel(url.CompanyRecruiters); // 列表 | |||
export const PostCustomerUpdate = postModel(url.CustomerUpdate); // 编辑 | |||
// 展示广告位 | |||
export const GetAdvertscheduleList = getModel(url.AdvertscheduleList); // 添加 | |||
@@ -14,6 +14,7 @@ declare namespace urlType { | |||
Jobseekerlogin: String, | |||
JobseekerResetPwd: String, | |||
SysconfigDetail: String, | |||
CustomerTokenExpiration: String, | |||
// 招聘会 | |||
RecruitmentBookcompany : String, | |||
@@ -84,6 +85,8 @@ declare namespace urlType { | |||
CompanycustomercodeUpdate : String, | |||
CompanycustomercodeList : String, | |||
CompanycustomercodeDetail : String, | |||
CompanyRecruiters : String, | |||
CustomerUpdate : String, | |||
// 展示广告位 | |||
AdvertscheduleList |
@@ -18,6 +18,7 @@ export const url : urlType.url = { | |||
JobseekerResetPwd: web + '/jobseeker/resetpwd', // 修改密码 | |||
'SysconfigDetail': common + '/sysconfig/detail', // 详情 | |||
'CustomerTokenExpiration': common + '/customer/token_expiration', // 详情 | |||
@@ -86,7 +87,9 @@ export const url : urlType.url = { | |||
CompanycustomercodeUpdate: web + '/companycustomercode/update', // 编辑 | |||
CompanycustomercodeList: web + '/companycustomercode/list', // 列表 | |||
CompanycustomercodeDetail: web + '/companycustomercode/detail', // 详情 | |||
CompanyRecruiters: web + '/company/recruiters', // 详情 | |||
CustomerUpdate: common + '/customer/turn_jobseeker', // 详情 | |||
// 展示广告位 | |||
AdvertscheduleList: web + '/advertschedule/list', // 详情 | |||
@@ -9,6 +9,9 @@ | |||
<template #meet_status="{ record }"> | |||
<slot name="meet_status" :record='record'></slot> | |||
</template> | |||
<template #status="{ record }"> | |||
<slot name="status" :record='record'></slot> | |||
</template> | |||
</a-table> | |||
</template> | |||
@@ -104,7 +104,7 @@ | |||
import { warnToast, successToast } from '@/utils/toastHelper'; | |||
let { store, commomParams, dayjs, richOption, ExclamationCircleOutlined, Modal, showOtherModal1 } = useCommon(); | |||
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 spinning = ref<Boolean>(false) | |||
let token = ref(sessionStorage.getItem('token') ? sessionStorage.getItem('token') : '') | |||
@@ -199,7 +199,7 @@ | |||
detail.value = null | |||
getDetail() | |||
} | |||
}) | |||
},{immediate: true}) | |||
</script> | |||
<style scoped lang="less"> |
@@ -5,7 +5,7 @@ | |||
> | |||
<a-flex vertical style="width: 100%;background-color: #fff;border-radius: 10px;padding: 20px;"> | |||
<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="color: #4FBE70;font-size: 18px;">{{item.pay_range_text}}</div> | |||
</a-flex> | |||
@@ -43,9 +43,7 @@ | |||
sessionStorage.setItem('tab_key', 1) | |||
sessionStorage.setItem('pubilc_id', company_id) | |||
sessionStorage.setItem('mode', 'detail') | |||
router.push({ | |||
path: '/personal' | |||
}) | |||
window.open('/company/detail', "_blank"); | |||
} | |||
const toDetail = (job_id : Number, company_id : Number) => { | |||
@@ -53,9 +51,7 @@ | |||
sessionStorage.setItem('tab_key', 2) | |||
sessionStorage.setItem('pubilc_id', company_id) | |||
sessionStorage.setItem('mode', 'detail') | |||
router.push({ | |||
path: '/personal' | |||
}) | |||
window.open('/company/detail', "_blank"); | |||
} | |||
watch(() => props.list, (newVal) => { | |||
jobList.value = newVal |
@@ -11,7 +11,7 @@ | |||
<a-col span="18"> | |||
<a-row :gutter="[10,10]"> | |||
<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> | |||
<div style="width: 100%;padding-top: 20px;"> | |||
<a-flex justify="center" align="center"> | |||
@@ -94,7 +94,7 @@ | |||
<template v-if="showData"> | |||
<a-row :gutter="[10,10]" style="margin-top: 10px;"> | |||
<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> | |||
<div style="width: 100%;padding-top: 20px;"> | |||
<a-flex justify="center" align="center"> | |||
@@ -158,9 +158,7 @@ | |||
const toCompanyDetail = (val : Number) => { | |||
sessionStorage.setItem('pubilc_id', val) | |||
sessionStorage.setItem('mode', 'detail') | |||
router.push({ | |||
path: '/personal' | |||
}) | |||
window.open('/company/detail', "_blank"); | |||
} | |||
const toArticle = (item) => { |
@@ -124,7 +124,7 @@ | |||
<script lang="ts" setup> | |||
import { ref, onMounted, computed, defineProps, defineEmits } from '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 { store } from '@/store/index'; | |||
import { router } from '@/router/index'; | |||
@@ -156,22 +156,24 @@ | |||
} | |||
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') | |||
} | |||
}) | |||
} | |||
@@ -2,27 +2,29 @@ | |||
<a-menu mode="horizontal" v-model:openKeys="openSubMenu" @openChange="onOpenChange" | |||
v-model:selectedKeys="selectedMenu" style="background: #0A130D; height: '90vh';color: #ffffff;"> | |||
<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> | |||
</a-menu> |
@@ -6,9 +6,13 @@ export const cols = <ColType.type[]>[ | |||
}, { | |||
title: '绑定的账号', | |||
dataIndex: 'customer.username' | |||
}, { | |||
title: '联系方式', | |||
dataIndex: 'customer.mobile' | |||
}, { | |||
title: '使用状态', | |||
dataIndex: 'customer_id' | |||
dataIndex: 'customer_id', | |||
slots: { customRender: 'status' }, | |||
}, { | |||
title: '生成时间', | |||
dataIndex: 'created_at', |
@@ -6,6 +6,10 @@ | |||
</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> |
@@ -24,8 +24,6 @@ | |||
watch(() => props.search_params, (newVal) => { | |||
emit('searchData', commomParams.value.search) | |||
},{ | |||
immediate: true | |||
}) | |||
const getData = () => { |
@@ -0,0 +1,18 @@ | |||
export const cols = <ColType.type[]>[ | |||
{ | |||
title: '绑定的账号', | |||
dataIndex: 'username' | |||
}, { | |||
title: '联系方式', | |||
dataIndex: 'mobile' | |||
},{ | |||
title: '绑定时间', | |||
dataIndex: 'created_at', | |||
}, | |||
{ | |||
title: '操作', | |||
dataIndex: 'operation', | |||
slots: { customRender: 'operation' }, | |||
}, | |||
] |
@@ -0,0 +1,146 @@ | |||
<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> |
@@ -0,0 +1,52 @@ | |||
<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> |
@@ -56,7 +56,7 @@ | |||
<script setup lang="ts"> | |||
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 { store } from '@/store/index'; | |||
import { router } from '@/router/index'; | |||
@@ -136,22 +136,25 @@ | |||
} | |||
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 = () => { |
@@ -180,6 +180,26 @@ const RegisterRoute : AppRouteRecordRaw = { | |||
}, | |||
}; | |||
// 新窗口 | |||
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[] = [ | |||
@@ -193,4 +213,6 @@ export const routesModuleList : AppRouteModule[] = [ | |||
RelationshipRoute, | |||
NewsRoute, | |||
// RegisterRoute | |||
OutpageCompanyRoute, | |||
OutpageJobRoute | |||
]; |
@@ -35,6 +35,10 @@ import JobseekerResume from '@/views/jobseeker/resume/index.vue'; | |||
import JobseekerSearch from '@/views/jobseeker/search/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 = { | |||
Home, | |||
Job, | |||
@@ -66,5 +70,7 @@ export const routerList = { | |||
JobseekerRecommend, | |||
JobseekerResume, | |||
JobseekerSearch, | |||
JobseekerPassword | |||
JobseekerPassword, | |||
OutpageCompany, | |||
OutpageJob | |||
} |
@@ -6,10 +6,12 @@ import { HomeOutlined } from '@ant-design/icons-vue'; | |||
import LOGIN from '@/views/login/login.vue'; | |||
// import HOME from '@/views/home/home.vue'; | |||
import Layout from '@/components/layout/index.vue'; | |||
import { routesModuleList } from '@/router/dynamic'; | |||
import { routesManageModuleList } from '@/router/manageDynamic'; | |||
// // 登录路由 | |||
// 登录路由 | |||
export const LoginRoute: AppRouteRecordRaw = { | |||
path: '/login', | |||
name: 'login', | |||
@@ -20,6 +22,7 @@ export const LoginRoute: AppRouteRecordRaw = { | |||
} | |||
// layout路由 | |||
export const LayoutRoute : AppRouteRecordRaw = { | |||
path: '', | |||
@@ -36,7 +39,8 @@ export const LayoutRoute : AppRouteRecordRaw = { | |||
} | |||
export const basicRoutes = [ | |||
LoginRoute, | |||
LayoutRoute | |||
LayoutRoute, | |||
] |
@@ -44,7 +44,6 @@ const actions = { | |||
try { | |||
// let res = await LOGIN.permissions(); | |||
// let arr = res.data.data; | |||
console.log(rootState) | |||
if(rootState.token && rootState.role === 'company' && rootState.pageType == 'company' ) { | |||
LayoutRoute.children = []; | |||
commit('SET_MENU', []); | |||
@@ -75,6 +74,7 @@ const actions = { | |||
routerAdd(NotFound); | |||
let initialRoutes = routerInit(); | |||
commit('SET_PERMISSION', [...initialRoutes]); | |||
debugger | |||
} | |||
} catch { |
@@ -0,0 +1,226 @@ | |||
<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> |
@@ -0,0 +1,142 @@ | |||
<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> |
@@ -165,16 +165,17 @@ | |||
} | |||
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 | |||
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"); | |||
} | |||
@@ -60,7 +60,7 @@ | |||
<script setup lang="ts"> | |||
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 { store } from '@/store/index'; | |||
import { router } from '@/router/index'; | |||
@@ -140,22 +140,25 @@ | |||
} | |||
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 = () => { |
@@ -325,6 +325,7 @@ | |||
sessionStorage.setItem('role', 'company') | |||
sessionStorage.setItem('pageType', 'company') | |||
sessionStorage.setItem('id', res.data.company_id) | |||
sessionStorage.setItem('primary', res.data.is_primary) | |||
store.commit('permissions/SET_PERMISSION', null) | |||
store.commit('permissions/SET_MENU', []) | |||
resetForm() | |||
@@ -353,6 +354,7 @@ | |||
sessionStorage.setItem('role', 'company') | |||
sessionStorage.setItem('pageType', 'company') | |||
sessionStorage.setItem('id', res.data.company_id) | |||
sessionStorage.setItem('primary', res.data.is_primary) | |||
store.commit('permissions/SET_PERMISSION', null) | |||
store.commit('permissions/SET_MENU', []) | |||
resetForm() |
@@ -13,6 +13,7 @@ | |||
<user-password v-if="curKey == 2"></user-password> | |||
<user-email v-if="curKey == 3"></user-email> | |||
<user-conver v-if="curKey == 4"></user-conver> | |||
<user-manage v-if="curKey == 5"></user-manage> | |||
</div> | |||
</a-col> | |||
</a-row> | |||
@@ -27,8 +28,15 @@ | |||
import UserPassword from '@/components/user/password/index.vue' | |||
import UserEmail from '@/components/user/email/index.vue' | |||
import UserConver from '@/components/user/conver/index.vue' | |||
import UserManage from '@/components/user/manage/index.vue' | |||
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) | |||
const changeKey = (data) => { | |||
curKey.value = data.key; |