front/src/router/routes/newModules/marketing.ts
zzh 336f8657ee
All checks were successful
Build and Deploy Front / deploy (push) Successful in 6m56s
feat: 官网海洋蓝波浪首页与指南分受众,并同步业务页优化
官网换 GradientWaves/TextType 并做性能减负;模块指南拆开发/运营;含营销指南、轨迹单与 H5 价格等改动。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-21 18:07:41 +08:00

131 lines
3.6 KiB
TypeScript

import { DEFAULT_LAYOUT } from '../base';
import { AppRouteRecordRaw } from '../types';
const MARKETING: AppRouteRecordRaw = {
path: '/marketing',
name: 'Marketing',
component: DEFAULT_LAYOUT,
meta: {
locale: 'menu.marketing',
icon: 'icon-gift',
requiresAuth: true,
order: 7,
},
children: [
{
path: 'guide',
name: 'MarketingGuide',
component: () => import('@/views/marketing/marketingGuide/index.vue'),
meta: {
locale: 'menu.marketing.marketingGuide',
requiresAuth: true,
// 与渠道/订单/轨迹指引一致:独立 Guide 权限码,供「同步子菜单」写入 RBAC
menuPermission: 'Marketing.Guide',
order: 0,
icon: 'icon-book',
},
},
{
path: 'memberLevel',
name: 'MarketingMemberLevel',
component: () => import('@/views/marketing/memberLevel/index.vue'),
meta: {
locale: 'menu.marketing.memberLevel',
requiresAuth: true,
permission: 'Marketing.Level.View',
order: 1,
},
},
{
path: 'pointsRule',
name: 'MarketingPointsRule',
component: () => import('@/views/marketing/pointsRule/index.vue'),
meta: {
locale: 'menu.marketing.pointsRule',
requiresAuth: true,
permission: 'Marketing.PointsRule.Edit',
order: 2,
},
},
{
path: 'pointsFlow',
name: 'MarketingPointsFlow',
component: () => import('@/views/marketing/pointsFlow/index.vue'),
meta: {
locale: 'menu.marketing.pointsFlow',
requiresAuth: true,
permission: 'Marketing.Points.View',
order: 3,
},
},
{
path: 'couponTemplate',
name: 'MarketingCouponTemplate',
component: () => import('@/views/marketing/couponTemplate/index.vue'),
meta: {
locale: 'menu.marketing.couponTemplate',
requiresAuth: true,
permission: 'Marketing.Coupon.Template.View',
order: 4,
},
},
{
path: 'couponGrant',
name: 'MarketingCouponGrant',
component: () => import('@/views/marketing/couponGrant/index.vue'),
meta: {
locale: 'menu.marketing.couponGrant',
requiresAuth: true,
permission: 'Marketing.Coupon.Grant',
order: 5,
},
},
{
path: 'commissionRule',
name: 'MarketingCommissionRule',
component: () => import('@/views/marketing/commissionRule/index.vue'),
meta: {
locale: 'menu.marketing.commissionRule',
requiresAuth: true,
permission: 'Marketing.Commission.Rule.Edit',
order: 6,
},
},
{
path: 'commissionDetail',
name: 'MarketingCommissionDetail',
component: () => import('@/views/marketing/commissionDetail/index.vue'),
meta: {
locale: 'menu.marketing.commissionDetail',
requiresAuth: true,
permission: 'Marketing.Commission.View',
order: 7,
},
},
{
path: 'commissionWithdraw',
name: 'MarketingCommissionWithdraw',
component: () => import('@/views/marketing/commissionWithdraw/index.vue'),
meta: {
locale: 'menu.marketing.commissionWithdraw',
requiresAuth: true,
permission: 'Marketing.Commission.Withdraw.View',
order: 8,
},
},
{
path: 'referralTree',
name: 'MarketingReferralTree',
component: () => import('@/views/marketing/referralTree/index.vue'),
meta: {
locale: 'menu.marketing.referralTree',
requiresAuth: true,
permission: 'Marketing.Referral.View',
order: 9,
},
},
],
};
export default MARKETING;