Files
tyapi-frontend/src/constants/menu.js

195 lines
6.3 KiB
JavaScript
Raw Normal View History

2025-11-24 16:06:44 +08:00
import {
ChartBarIcon as ChartBar,
ChartPieIcon as ChartPie,
ClipboardDocumentListIcon as Clipboard,
CreditCardIcon as CreditCard,
CubeIcon as Cube,
DocumentTextIcon as DocumentText,
2025-12-06 13:53:58 +08:00
MegaphoneIcon as Megaphone,
2025-11-24 16:06:44 +08:00
PresentationChartLineIcon as PresentationChartLine,
Cog6ToothIcon as Setting,
ShieldCheckIcon as ShieldCheck,
ShoppingCartIcon as ShoppingCart,
TagIcon as Tag,
UserIcon as User,
UserGroupIcon as Users,
WalletIcon as Wallet
} from '@heroicons/vue/24/outline'
// 用户菜单配置(分组结构)
export const userMenuItems = [
{
group: '数据中心',
icon: ChartBar,
children: [
{ name: '仪表盘', path: '/dashboard', icon: PresentationChartLine },
{ name: '数据大厅', path: '/products', icon: Cube },
{ name: '我的订阅', path: '/subscriptions', icon: ShoppingCart }
]
},
{
group: '账户中心',
icon: User,
children: [
{ name: '账户中心', path: '/profile', icon: User },
{ name: '企业入驻', path: '/profile/certification', icon: ShieldCheck }
]
},
{
group: '财务管理',
icon: Wallet,
children: [
{ name: '余额充值', path: '/finance/wallet', icon: CreditCard, requiresCertification: true },
{ name: '充值记录', path: '/finance/recharge-records', icon: CreditCard, requiresCertification: true },
2025-12-22 18:32:34 +08:00
{ name: '购买记录', path: '/finance/purchase-records', icon: ShoppingCart, requiresCertification: true },
2025-11-24 16:06:44 +08:00
{ name: '消费记录', path: '/finance/transactions', icon: Clipboard, requiresCertification: true },
{ name: '发票申请', path: '/finance/invoice', icon: Wallet, requiresCertification: true }
]
},
{
group: '开发者中心',
icon: Setting,
children: [
// { name: 'API管理', path: '/api/management', icon: Key },
{ name: '在线调试', path: '/apis/debugger', icon: Clipboard, requiresCertification: true },
{ name: '调用记录', path: '/apis/usage', icon: Clipboard, requiresCertification: true },
{ name: '白名单管理', path: '/apis/whitelist', icon: ShieldCheck, requiresCertification: true }
]
}
]
// 管理员菜单配置
export const adminMenuItems = [
{
name: '产品管理',
path: '/admin/products',
icon: Cube
},
{
name: '分类管理',
path: '/admin/categories',
icon: Tag
},
{
name: '订阅管理',
path: '/admin/subscriptions',
icon: ShoppingCart
},
{
name: '用户管理',
path: '/admin/users',
icon: Users
},
{
name: '文章管理',
path: '/admin/articles',
icon: DocumentText
},
2025-12-06 13:53:58 +08:00
{
name: '公告管理',
path: '/admin/announcements',
icon: Megaphone
},
2025-11-24 16:06:44 +08:00
{
name: '系统统计',
path: '/admin/statistics',
icon: ChartPie
}
]
// 新增:根据用户类型动态生成菜单
export const getMenuItems = (userType = 'user') => {
if (userType === 'admin') {
return adminMenuItems
}
return userMenuItems
}
// 新增:获取用户可访问的菜单项(包含管理员菜单)
export const getUserAccessibleMenuItems = (userType = 'user') => {
const baseMenuItems = [...userMenuItems]
// 如果是管理员,添加管理员菜单组
if (userType === 'admin') {
baseMenuItems.push({
group: '管理后台',
icon: Setting,
children: [
{ name: '系统统计', path: '/admin/statistics', icon: ChartBar },
{ name: '产品管理', path: '/admin/products', icon: Cube },
{ name: '用户管理', path: '/admin/users', icon: Users },
{ name: '分类管理', path: '/admin/categories', icon: Tag },
{ name: '订阅管理', path: '/admin/subscriptions', icon: ShoppingCart },
{ name: '文章管理', path: '/admin/articles', icon: DocumentText },
2025-12-06 13:53:58 +08:00
{ name: '公告管理', path: '/admin/announcements', icon: Megaphone },
2025-11-24 16:06:44 +08:00
{ name: '调用记录', path: '/admin/usage', icon: Clipboard },
{ name: '消费记录', path: '/admin/transactions', icon: Clipboard },
{ name: '充值记录', path: '/admin/recharge-records', icon: CreditCard },
2025-12-22 18:32:34 +08:00
{ name: '购买记录', path: '/admin/purchase-records', icon: ShoppingCart },
2025-12-19 16:57:49 +08:00
{ name: '发票管理', path: '/admin/invoices', icon: Wallet },
{ name: '组件管理', path: '/admin/ui-components', icon: Cube }
2025-11-24 16:06:44 +08:00
]
})
}
return baseMenuItems
}
// 需要企业认证的页面路径列表
export const requiresCertificationPaths = [
'/finance/wallet',
'/finance/recharge-records',
2025-12-22 18:32:34 +08:00
'/finance/purchase-records',
2025-11-24 16:06:44 +08:00
'/finance/transactions',
'/apis/usage',
'/apis/whitelist'
]
// 检查页面是否需要企业认证
export const isPageRequiresCertification = (path) => {
return requiresCertificationPaths.includes(path)
}
// 获取当前页面的认证配置
export const getCurrentPageCertificationConfig = (path) => {
// 检查是否在需要认证的路径列表中
const requiresCert = isPageRequiresCertification(path)
if (!requiresCert) {
return null
}
// 根据路径获取页面信息
const pageConfig = {
'/finance/wallet': {
title: '钱包充值',
description: '为了享受完整的充值服务,请先完成企业入驻认证。认证成功后我们将赠送您一定的调用额度!'
},
'/finance/recharge-records': {
title: '充值记录',
description: '为了查看完整的充值记录,请先完成企业入驻认证。认证成功后我们将赠送您一定的调用额度!'
},
2025-12-22 18:32:34 +08:00
'/finance/purchase-records': {
title: '购买记录',
description: '为了查看完整的购买记录,请先完成企业入驻认证。认证成功后我们将赠送您一定的调用额度!'
},
2025-11-24 16:06:44 +08:00
'/finance/transactions': {
title: '消费记录',
description: '为了查看完整的消费记录,请先完成企业入驻认证。认证成功后我们将赠送您一定的调用额度!'
},
'/apis/usage': {
title: 'API调用记录',
description: '为了查看完整的API调用记录请先完成企业入驻认证。认证成功后我们将赠送您一定的调用额度'
},
'/apis/whitelist': {
title: '白名单管理',
description: '为了管理API访问白名单请先完成企业入驻认证。认证成功后我们将赠送您一定的调用额度'
}
}
return {
requiresCertification: true,
...pageConfig[path]
}
}