first commit

This commit is contained in:
2025-11-24 16:06:44 +08:00
commit e57d497751
165 changed files with 59349 additions and 0 deletions

179
src/constants/menu.js Normal file
View File

@@ -0,0 +1,179 @@
import {
ChartBarIcon as ChartBar,
ChartPieIcon as ChartPie,
ClipboardDocumentListIcon as Clipboard,
CreditCardIcon as CreditCard,
CubeIcon as Cube,
DocumentTextIcon as DocumentText,
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 },
{ 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
},
{
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 },
{ name: '调用记录', path: '/admin/usage', icon: Clipboard },
{ name: '消费记录', path: '/admin/transactions', icon: Clipboard },
{ name: '充值记录', path: '/admin/recharge-records', icon: CreditCard },
{ name: '发票管理', path: '/admin/invoices', icon: Wallet }
]
})
}
return baseMenuItems
}
// 需要企业认证的页面路径列表
export const requiresCertificationPaths = [
'/finance/wallet',
'/finance/recharge-records',
'/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: '为了查看完整的充值记录,请先完成企业入驻认证。认证成功后我们将赠送您一定的调用额度!'
},
'/finance/transactions': {
title: '消费记录',
description: '为了查看完整的消费记录,请先完成企业入驻认证。认证成功后我们将赠送您一定的调用额度!'
},
'/apis/usage': {
title: 'API调用记录',
description: '为了查看完整的API调用记录请先完成企业入驻认证。认证成功后我们将赠送您一定的调用额度'
},
'/apis/whitelist': {
title: '白名单管理',
description: '为了管理API访问白名单请先完成企业入驻认证。认证成功后我们将赠送您一定的调用额度'
}
}
return {
requiresCertification: true,
...pageConfig[path]
}
}