feat: 产品菜单路由权限

This commit is contained in:
rd
2025-07-08 16:55:04 +08:00
parent ead209da4d
commit f87e5ff020
26 changed files with 263 additions and 102 deletions

View File

@ -1,28 +1,35 @@
import type { RouteRecordRaw } from 'vue-router';
import { REDIRECT_ROUTE_NAME } from '@/router/constants';
export const REDIRECT_MAIN: RouteRecordRaw = {
path: '/redirect',
name: 'redirect',
meta: {
requiresAuth: true,
hideInMenu: true,
},
children: [
{
path: '/redirect/:path',
name: REDIRECT_ROUTE_NAME,
component: () => import('@/layouts/Basic.vue'),
meta: {
requiresAuth: true,
hideInMenu: true,
},
},
],
};
// export const REDIRECT_MAIN: RouteRecordRaw = {
// path: '/redirect',
// name: 'redirect',
// meta: {
// requiresAuth: false,
// requireLogin: false,
// hideInMenu: true,
// },
// children: [
// {
// path: '/redirect/:path',
// name: REDIRECT_ROUTE_NAME,
// component: () => import('@/layouts/Basic.vue'),
// meta: {
// requiresAuth: false,
// requireLogin: false,
// hideInMenu: true,
// },
// },
// ],
// };
export const NOT_FOUND_ROUTE: RouteRecordRaw = {
path: '/:pathMatch(.*)*',
name: 'notFound',
component: () => import('@/layouts/NotFound.vue'),
meta: {
requiresAuth: false,
hideInMenu: true,
hideSidebar: true,
},
};

View File

@ -1,5 +1,5 @@
import type { RouteRecordNormalized } from 'vue-router';
import { REDIRECT_MAIN, NOT_FOUND_ROUTE } from './base';
// import { REDIRECT_MAIN, NOT_FOUND_ROUTE } from './base';
import { MENU_GROUP_IDS } from '@/router/constants';
const modules = import.meta.glob('./modules/*.ts', { eager: true });
@ -17,6 +17,6 @@ function formatModules(_modules: any, result: RouteRecordNormalized[]) {
return result;
}
export const appRoutes: any[] = formatModules(modules, []);
export const appRoutes: RouteRecordNormalized[] = formatModules(modules, []);
// export const appExternalRoutes: RouteRecordNormalized[] = formatModules(externalModules, []);

View File

@ -15,8 +15,8 @@ const COMPONENTS: AppRouteRecordRaw[] = [
locale: '全域数据引擎',
icon: IconBookmark,
requiresAuth: true,
requireLogin: true,
roles: ['*'],
requiresSidebar: true,
id: MENU_GROUP_IDS.DATA_ENGINE_ID,
},
children: [
@ -26,6 +26,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '行业热门话题洞察',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/components/dataEngine/hotTranslation.vue'),
@ -36,6 +37,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '行业词云',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/components/dataEngine/hotCloud.vue'),
@ -46,6 +48,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '行业关键词动向',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/components/dataEngine/keyWord.vue'),
@ -56,6 +59,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '用户痛点观察',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/components/dataEngine/userPainPoints.vue'),
@ -66,6 +70,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '重点品牌动向',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/components/dataEngine/keyBrandMovement.vue'),
@ -76,6 +81,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '用户画像',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/components/dataEngine/userPersona.vue'),

View File

@ -15,8 +15,8 @@ const COMPONENTS: AppRouteRecordRaw[] = [
locale: '管理中心',
icon: IconBookmark,
requiresAuth: true,
requireLogin: true,
roles: ['*'],
requiresSidebar: true,
id: MENU_GROUP_IDS.MANAGEMENT_ID,
},
children: [
@ -27,6 +27,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '个人信息',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
},
@ -37,6 +38,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '企业信息',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
},
@ -47,6 +49,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '账号管理',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
},

View File

@ -19,8 +19,8 @@ const COMPONENTS: AppRouteRecordRaw[] = [
locale: '品牌资产管理',
icon: IconRepository,
requiresAuth: true,
requireLogin: true,
roles: ['*'],
requiresSidebar: true,
id: MENU_GROUP_IDS.PROPERTY_ID,
},
children: [
@ -30,6 +30,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '品牌信息',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/brands/brand-materials/index.vue'),
@ -44,8 +45,8 @@ const COMPONENTS: AppRouteRecordRaw[] = [
locale: '账号资源中心',
icon: IconMediaAccount,
requiresAuth: true,
requireLogin: true,
roles: ['*'],
requiresSidebar: true,
id: MENU_GROUP_IDS.PROPERTY_ID,
},
children: [
@ -55,6 +56,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '账号管理',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/media-account/account-manage'),
@ -65,6 +67,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '账号数据看板',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/media-account/account-dashboard'),
@ -75,6 +78,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '账号详情',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
hideInMenu: true,
activeMenu: 'MediaAccountAccountDashboard',
@ -91,8 +95,8 @@ const COMPONENTS: AppRouteRecordRaw[] = [
locale: '投放资源中心',
icon: IconPutAccount,
requiresAuth: true,
requireLogin: true,
roles: ['*'],
requiresSidebar: true,
id: MENU_GROUP_IDS.PROPERTY_ID,
},
children: [
@ -102,6 +106,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '账户管理',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/put-account/account-manage'),
@ -112,6 +117,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '账户数据',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/put-account/account-data'),
@ -122,6 +128,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '投放表现分析',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/put-account/account-dashboard'),
@ -132,6 +139,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '平台投放指南',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/put-account/investment-guidelines'),
@ -146,8 +154,8 @@ const COMPONENTS: AppRouteRecordRaw[] = [
locale: '智能方案管理',
icon: IconIntelligentSolution,
requiresAuth: true,
requireLogin: true,
roles: ['*'],
requiresSidebar: true,
id: MENU_GROUP_IDS.PROPERTY_ID,
},
children: [
@ -157,6 +165,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '业务洞察报告',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/intelligent-solution/businessAnalysisReport'),
@ -167,6 +176,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
meta: {
locale: '竟品对比报告',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/intelligent-solution/competitiveProductAnalysisReport'),