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;