| @@ -42,6 +42,7 @@ | |||
| <script setup lang="ts"> | |||
| import { ref, computed } from 'vue'; | |||
| import { store } from '@/store/index'; | |||
| import { router } from '@/router/index'; | |||
| const showLoginBox = computed(() => { | |||
| return store.state.showLoginBox | |||
| @@ -57,7 +58,6 @@ | |||
| store.commit('getRoleName', { | |||
| roleName: 'company' | |||
| }) | |||
| sessionStorage.setItem('role', 'company') | |||
| sessionStorage.setItem('token', 'admin') | |||
| } | |||
| @@ -18,7 +18,6 @@ | |||
| import { ref, computed } from 'vue'; | |||
| import AFooter from './footer/index.vue'; | |||
| import AHeader from './header/aHeader.vue'; | |||
| </script> | |||
| <style lang="less" scoped> | |||
| ::-webkit-scrollbar { | |||
| @@ -1,7 +1,7 @@ | |||
| <template> | |||
| <a-menu mode="horizontal" v-model:openKeys="openSubMenu" @openChange="onOpenChange" | |||
| v-model:selectedKeys="selectedMenu" style="background: #0a130d; height: '90vh';color: #fff;"> | |||
| <template v-for="(item,index) in LayoutRoute.children"> | |||
| <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> | |||
| @@ -29,11 +29,11 @@ | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, onMounted, computed } from 'vue'; | |||
| import { LayoutRoute } from '@/router/routes'; | |||
| import { store } from '@/store/index'; | |||
| import { useMenu } from '@/hooks/useMenu'; | |||
| let { onMenu, routerCur, routerArrayCur, routerArrayParentChildCur } = useMenu(); | |||
| let menuList = ref(store.state.permissions.menuList) | |||
| console.log(store.state.permissions.menuList) | |||
| let selectedMenu = computed(() => { | |||
| console.log(131,routerCur()) | |||
| let newSelectedMenu = [routerCur()]; | |||
| @@ -1,4 +1,4 @@ | |||
| import { createApp } from 'vue'; | |||
| import { createApp, watch } from 'vue'; | |||
| import './style.css'; | |||
| import App from './App.vue'; | |||
| import { router } from './router' | |||
| @@ -6,32 +6,32 @@ import { store } from './store'; | |||
| import Antd from 'ant-design-vue'; | |||
| import 'ant-design-vue/dist/reset.css'; | |||
| import CommonLeftSider from '@/components/common/left-sider.vue'; | |||
| // router.beforeEach((to, from, next) => { | |||
| // document.title = `${to.meta.title} - 菊城人才市场后台管理`; | |||
| // if (!sessionStorage.getItem('token')) { | |||
| // if (to.matched.length > 0 && !to.matched.some(record => record.meta.requiresAuth)) { | |||
| // next() | |||
| // } else { | |||
| // next({ | |||
| // path: '/login' | |||
| // }) | |||
| // } | |||
| // } else { | |||
| // if (store.state.permissions.permissionList == null) { | |||
| // store.dispatch('permissions/FETCH_PERMISSION').then(() => { | |||
| // next({ | |||
| // path: to.path | |||
| // }) | |||
| // }) | |||
| // } else { | |||
| // if (to.path !== '/login') { | |||
| // next() | |||
| // } else { | |||
| // next(from.fullPath) | |||
| // } | |||
| // } | |||
| // } | |||
| // }) | |||
| import { routesModuleList } from '@/router/dynamic'; | |||
| import { routesManageModuleList } from '@/router/manageDynamic'; | |||
| router.beforeEach((to, from, next) => { | |||
| document.title = `菊城人才市场后台管理`; | |||
| if (sessionStorage.getItem('token')) { | |||
| if (to.matched.length > 0 && !to.matched.some(record => record.meta.requiresAuth)) { | |||
| next() | |||
| } else { | |||
| next({ | |||
| path: '/job/home' | |||
| }) | |||
| } | |||
| } else { | |||
| console.log(store.state.permissions.permissionList) | |||
| if (store.state.permissions.permissionList == null) { | |||
| store.dispatch('permissions/FETCH_PERMISSION').then(() => { | |||
| next({ | |||
| path: to.path | |||
| }) | |||
| }) | |||
| } else { | |||
| next() | |||
| } | |||
| } | |||
| }) | |||
| const app = createApp(App); | |||
| app.component('common-left-sider', CommonLeftSider); | |||
| @@ -12,7 +12,7 @@ const HomeRoute : AppRouteRecordRaw = { | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| //求职 | |||
| const JobRoute : AppRouteRecordRaw = { | |||
| path: '/job', | |||
| @@ -100,8 +100,8 @@ const AboutRoute : AppRouteRecordRaw = { | |||
| }, | |||
| }; | |||
| // 法律咨询 | |||
| const LawRoute : AppRouteRecordRaw = { | |||
| path: '/law', | |||
| @@ -169,4 +169,106 @@ const NewsRoute : AppRouteRecordRaw = { | |||
| }, | |||
| }; | |||
| export const routesModuleList : AppRouteModule[] = [HomeRoute, JobRoute, AboutRoute, LawRoute, MentorRoute, ExpertRoute, TrainRoute, RelationshipRoute, NewsRoute]; | |||
| // 首页 | |||
| const ManageHomeRoute : AppRouteRecordRaw = { | |||
| path: '/manage/home', | |||
| name: 'manageHome', | |||
| component: routerList.ManageHome, | |||
| meta: { | |||
| title: '管理中心首页', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 企业资料 | |||
| const ManageBasicRoute : AppRouteRecordRaw = { | |||
| path: '/manage/basic', | |||
| name: 'basic', | |||
| component: routerList.ManageBasic, | |||
| meta: { | |||
| title: '企业资料', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 企业招聘 | |||
| const ManageInviteRoute : AppRouteRecordRaw = { | |||
| path: '/manageInvite', | |||
| name: 'manageInvite', | |||
| component: routerList.ManageInvite, | |||
| meta: { | |||
| title: '企业招聘', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 简历管理 | |||
| const ManageResumeRoute : AppRouteRecordRaw = { | |||
| path: '/manageResume', | |||
| name: 'resume', | |||
| component: routerList.ManageResume, | |||
| meta: { | |||
| title: '简历管理', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 搜索简历 | |||
| const ManageSearchRoute : AppRouteRecordRaw = { | |||
| path: '/manageSearch', | |||
| name: 'search', | |||
| component: routerList.ManageSearch, | |||
| meta: { | |||
| title: '搜索简历', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 招聘会管理 | |||
| const ManageMeetRoute : AppRouteRecordRaw = { | |||
| path: '/manageMeet', | |||
| name: 'meet', | |||
| component: routerList.ManageMeet, | |||
| meta: { | |||
| title: '招聘会管理', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 消息中心 | |||
| const ManageMessageRoute : AppRouteRecordRaw = { | |||
| path: '/manageMessage', | |||
| name: 'message', | |||
| component: routerList.ManageMessage, | |||
| meta: { | |||
| title: '消息中心', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 用户管理 | |||
| const ManageUserRoute : AppRouteRecordRaw = { | |||
| path: '/manageUser', | |||
| name: 'user', | |||
| component: routerList.ManageUser, | |||
| meta: { | |||
| title: '用户管理', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| export const routesModuleList : AppRouteModule[] = [HomeRoute, JobRoute, AboutRoute, LawRoute, MentorRoute, ExpertRoute, TrainRoute, RelationshipRoute, NewsRoute, ManageHomeRoute, | |||
| ManageBasicRoute, | |||
| ManageInviteRoute, | |||
| ManageResumeRoute, | |||
| ManageSearchRoute, | |||
| ManageMeetRoute, | |||
| ManageMessageRoute, | |||
| ManageUserRoute]; | |||
| @@ -29,7 +29,7 @@ const ManageBasicRoute : AppRouteRecordRaw = { | |||
| // 企业招聘 | |||
| const ManageInviteRoute : AppRouteRecordRaw = { | |||
| path: '/manage/invite', | |||
| path: '/manageInvite', | |||
| name: 'manageInvite', | |||
| component: routerList.ManageInvite, | |||
| meta: { | |||
| @@ -40,7 +40,7 @@ const ManageInviteRoute : AppRouteRecordRaw = { | |||
| // 简历管理 | |||
| const ManageResumeRoute : AppRouteRecordRaw = { | |||
| path: '/manage/resume', | |||
| path: '/manageResume', | |||
| name: 'resume', | |||
| component: routerList.ManageResume, | |||
| meta: { | |||
| @@ -52,7 +52,7 @@ const ManageResumeRoute : AppRouteRecordRaw = { | |||
| // 搜索简历 | |||
| const ManageSearchRoute : AppRouteRecordRaw = { | |||
| path: '/manage/search', | |||
| path: '/manageSearch', | |||
| name: 'search', | |||
| component: routerList.ManageSearch, | |||
| meta: { | |||
| @@ -63,7 +63,7 @@ const ManageSearchRoute : AppRouteRecordRaw = { | |||
| // 招聘会管理 | |||
| const ManageMeetRoute : AppRouteRecordRaw = { | |||
| path: '/manage/meet', | |||
| path: '/manageMeet', | |||
| name: 'meet', | |||
| component: routerList.ManageMeet, | |||
| meta: { | |||
| @@ -74,7 +74,7 @@ const ManageMeetRoute : AppRouteRecordRaw = { | |||
| // 消息中心 | |||
| const ManageMessageRoute : AppRouteRecordRaw = { | |||
| path: '/manage/message', | |||
| path: '/manageMessage', | |||
| name: 'message', | |||
| component: routerList.ManageMessage, | |||
| meta: { | |||
| @@ -85,7 +85,7 @@ const ManageMessageRoute : AppRouteRecordRaw = { | |||
| // 用户管理 | |||
| const ManageUserRoute : AppRouteRecordRaw = { | |||
| path: '/manage/user', | |||
| path: '/manageUser', | |||
| name: 'user', | |||
| component: routerList.ManageUser, | |||
| meta: { | |||
| @@ -94,13 +94,27 @@ const ManageUserRoute : AppRouteRecordRaw = { | |||
| }, | |||
| }; | |||
| const ManageRoute : AppRouteRecordRaw = { | |||
| path: '/manage', | |||
| name: 'manage', | |||
| component: routerList.Job, | |||
| meta: { | |||
| title: '企业管理', | |||
| icon: HomeOutlined | |||
| }, | |||
| children: [ | |||
| ManageHomeRoute, | |||
| ManageBasicRoute, | |||
| ManageInviteRoute, | |||
| ManageResumeRoute, | |||
| ManageSearchRoute, | |||
| ManageMeetRoute, | |||
| ManageMessageRoute, | |||
| ManageUserRoute | |||
| ] | |||
| }; | |||
| export const routesManageModuleList : AppRouteModule[] = [ | |||
| ManageHomeRoute, | |||
| ManageBasicRoute, | |||
| ManageInviteRoute, | |||
| ManageResumeRoute, | |||
| ManageSearchRoute, | |||
| ManageMeetRoute, | |||
| ManageMessageRoute, | |||
| ManageUserRoute | |||
| ManageRoute | |||
| ]; | |||
| @@ -35,20 +35,7 @@ export const LayoutRoute : AppRouteRecordRaw = { | |||
| } | |||
| let roleName = ref<String>(store.state.roleName) | |||
| console.log(roleName) | |||
| watch(() => roleName, (newVal) => { | |||
| if(roleName == newVal) { | |||
| LayoutRoute.children = [...routesModuleList]; | |||
| LayoutRoute.redirect = '/job/home'; | |||
| } else { | |||
| LayoutRoute.children = [...routesManageModuleList] | |||
| LayoutRoute.redirect = '/manage/home'; | |||
| } | |||
| }) | |||
| console.log(LayoutRoute) | |||
| export const basicRoutes = [ | |||
| LayoutRoute | |||
| ] | |||
| @@ -1,7 +1,6 @@ | |||
| import { Module } from 'vuex'; | |||
| import { useAsRouter } from '@/hooks/useAsRouter'; | |||
| import { routesModuleList } from '@/router/dynamic'; | |||
| import { routesManageModuleList } from '@/router/manageDynamic'; // 企业管理 | |||
| import { LayoutRoute } from '@/router/routes'; | |||
| const { routerDynamic, routerAdd, routerInit } = useAsRouter(); | |||
| @@ -24,6 +23,7 @@ const mutations = { | |||
| state.permissionList = routes | |||
| }, | |||
| SET_MENU(state, menu) { | |||
| console.log(menu) | |||
| state.menuList = menu | |||
| } | |||
| }; | |||
| @@ -33,15 +33,22 @@ const actions = { | |||
| commit | |||
| }) { | |||
| try { | |||
| if(sessionStorage.getItem('role') == "company") { | |||
| LayoutRoute.redirect = '/manage/home' | |||
| LayoutRoute.children = routesManageModuleList | |||
| routerAdd(LayoutRoute); | |||
| } else { | |||
| LayoutRoute.children = routesModuleList | |||
| routerAdd(LayoutRoute); | |||
| } | |||
| // let res = await LOGIN.permissions(); | |||
| // let arr = res.data.data; | |||
| let arr = ['home','job','jobhome','personal' ,'company','homemake','inviteMeet','information','download']; | |||
| debugger | |||
| let routes = routerDynamic(arr, routesModuleList); | |||
| debugger | |||
| LayoutRoute.children.push(...routes); | |||
| debugger | |||
| LayoutRoute.redirect= '/job/home'; | |||
| debugger | |||
| commit('SET_MENU', LayoutRoute.children); | |||
| debugger | |||
| console.log(LayoutRoute.children) | |||
| routerAdd(LayoutRoute); | |||
| let initialRoutes = routerInit(); | |||
| commit('SET_PERMISSION', [...initialRoutes]); | |||
| } catch { | |||
| } | |||
| @@ -32,6 +32,7 @@ | |||
| const changeKey = (data) => { | |||
| curKey.value = data.key; | |||
| } | |||
| console.log(1233232) | |||
| </script> | |||
| <style> | |||
| @@ -57,6 +57,7 @@ | |||
| import { ref, computed, onMounted } from 'vue'; | |||
| import JobTalents from '@/components/job/talents/index.vue' | |||
| let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||
| console.log(1233232) | |||
| </script> | |||
| <style> | |||