Some checks failed
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Lint (ubuntu-latest) (push) Has been cancelled
CI / Lint (windows-latest) (push) Has been cancelled
CI / Check (ubuntu-latest) (push) Has been cancelled
CI / Check (windows-latest) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Website on push / Deploy Push Playground Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Docs Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Antd Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Element Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Naive Ftp (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
CI / CI OK (push) Has been cancelled
Deploy Website on push / Rerun on failure (push) Has been cancelled
Lock Threads / action (push) Has been cancelled
Issue Close Require / close-issues (push) Has been cancelled
Close stale issues / stale (push) Has been cancelled
13 KiB
13 KiB
代理管理菜单路由配置清单
本文档列出了重构后的代理管理菜单路由配置,用于配置到数据库的 admin_menu 表中。
菜单结构
代理管理 (父菜单)
├── 代理列表
├── 推广链接
├── 佣金记录
├── 返佣记录 (新增)
├── 升级记录 (新增)
├── 订单记录 (新增)
├── 提现记录
├── 邀请码管理 (新增)
├── 系统配置 (新增)
├── 实名认证 (新增)
└── 产品配置
数据库配置说明
表名: admin_menu
字段说明:
pid: 父菜单ID(0表示顶级菜单)name: 路由名称(Route Name)path: 路由路径component: 组件路径(前端视图组件路径)redirect: 重定向路径(可选)meta: 元数据JSON字符串,包含title(标题)、icon(图标)、order(排序)status: 状态(1=启用,0=禁用)type: 菜单类型(catalog=目录,menu=菜单)sort: 排序号
1. 父菜单:代理管理
{
"pid": 0,
"name": "Agent",
"path": "/agent",
"component": "",
"redirect": "",
"meta": "{\"title\":\"代理管理\",\"icon\":\"mdi:account-group\",\"order\":2000}",
"status": 1,
"type": "catalog",
"sort": 2000
}
说明:
- 父菜单ID设为
0或插入后获取的实际ID type使用字典值catalog(目录类型)component留空(因为这是父菜单,不直接渲染组件)
2. 子菜单配置
2.1 代理列表
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentList",
"path": "/agent/list",
"component": "/views/agent/agent-list/list",
"redirect": "",
"meta": "{\"title\":\"代理列表\",\"icon\":\"mdi:account-multiple\",\"order\":2001}",
"status": 1,
"type": "menu",
"sort": 2001
}
2.2 推广链接
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentLinks",
"path": "/agent/links",
"component": "/views/agent/agent-links/list",
"redirect": "",
"meta": "{\"title\":\"推广链接\",\"icon\":\"mdi:link-variant\",\"order\":2002}",
"status": 1,
"type": "menu",
"sort": 2002
}
2.3 佣金记录
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentCommission",
"path": "/agent/commission",
"component": "/views/agent/agent-commission/list",
"redirect": "",
"meta": "{\"title\":\"佣金记录\",\"icon\":\"mdi:cash-multiple\",\"order\":2003}",
"status": 1,
"type": "menu",
"sort": 2003
}
2.4 返佣记录 (新增)
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentRebate",
"path": "/agent/rebate",
"component": "/views/agent/agent-rebate/list",
"redirect": "",
"meta": "{\"title\":\"返佣记录\",\"icon\":\"mdi:currency-usd\",\"order\":2004}",
"status": 1,
"type": "menu",
"sort": 2004
}
2.5 升级记录 (新增)
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentUpgrade",
"path": "/agent/upgrade",
"component": "/views/agent/agent-upgrade/list",
"redirect": "",
"meta": "{\"title\":\"升级记录\",\"icon\":\"mdi:arrow-up-circle\",\"order\":2005}",
"status": 1,
"type": "menu",
"sort": 2005
}
2.6 订单记录 (新增)
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentOrder",
"path": "/agent/order",
"component": "/views/agent/agent-order/list",
"redirect": "",
"meta": "{\"title\":\"订单记录\",\"icon\":\"mdi:package-variant\",\"order\":2006}",
"status": 1,
"type": "menu",
"sort": 2006
}
2.7 提现记录
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentWithdrawal",
"path": "/agent/withdrawal",
"component": "/views/agent/agent-withdrawal/list",
"redirect": "",
"meta": "{\"title\":\"提现记录\",\"icon\":\"mdi:bank-transfer-out\",\"order\":2007}",
"status": 1,
"type": "menu",
"sort": 2007
}
2.8 邀请码管理 (新增)
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentInviteCode",
"path": "/agent/invite-code",
"component": "/views/agent/agent-invite-code/list",
"redirect": "",
"meta": "{\"title\":\"邀请码管理\",\"icon\":\"mdi:ticket-confirmation\",\"order\":2008}",
"status": 1,
"type": "menu",
"sort": 2008
}
2.9 系统配置 (新增)
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentConfig",
"path": "/agent/config",
"component": "/views/agent/agent-config/list",
"redirect": "",
"meta": "{\"title\":\"系统配置\",\"icon\":\"mdi:cog\",\"order\":2009}",
"status": 1,
"type": "menu",
"sort": 2009
}
2.10 实名认证 (新增)
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentRealName",
"path": "/agent/real-name",
"component": "/views/agent/agent-real-name/list",
"redirect": "",
"meta": "{\"title\":\"实名认证\",\"icon\":\"mdi:account-check\",\"order\":2010}",
"status": 1,
"type": "menu",
"sort": 2010
}
2.11 产品配置
{
"pid": "[父菜单ID - Agent的ID]",
"name": "AgentProductConfig",
"path": "/agent/product-config",
"component": "/views/agent/agent-product-config/list",
"redirect": "",
"meta": "{\"title\":\"产品配置\",\"icon\":\"mdi:package-variant-closed\",\"order\":2011}",
"status": 1,
"type": "menu",
"sort": 2011
}
3. 需要删除的旧菜单 (如果存在)
以下菜单应该从数据库中删除(已移除的功能):
-
上级抽佣记录 -
AgentCommissionDeduction- 路径:
/agent/commission-deduction或类似路径
- 路径:
-
平台抽佣记录 -
AgentPlatformDeduction- 路径:
/agent/platform-deduction或类似路径
- 路径:
-
会员充值订单 -
MembershipRechargeOrder- 路径:
/agent/membership-recharge-order或类似路径
- 路径:
-
会员配置 -
AgentMembershipConfig- 路径:
/agent/membership-config或类似路径
- 路径:
-
奖励记录 -
AgentReward(如果存在独立菜单)- 路径:
/agent/reward或类似路径 - 注意: 已被"返佣记录"替代
- 路径:
4. SQL 插入示例 (MySQL)
假设父菜单ID为 100(请根据实际情况替换):
-- 插入代理列表
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentList',
'/agent/list',
'/views/agent/agent-list/list',
'',
'{"title":"代理列表","icon":"mdi:account-multiple","order":2001}',
1,
'menu',
2001,
NOW(),
NOW(),
0,
1
);
-- 插入推广链接
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentLinks',
'/agent/links',
'/views/agent/agent-links/list',
'',
'{"title":"推广链接","icon":"mdi:link-variant","order":2002}',
1,
'menu',
2002,
NOW(),
NOW(),
0,
1
);
-- 插入佣金记录
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentCommission',
'/agent/commission',
'/views/agent/agent-commission/list',
'',
'{"title":"佣金记录","icon":"mdi:cash-multiple","order":2003}',
1,
'menu',
2003,
NOW(),
NOW(),
0,
1
);
-- 插入返佣记录 (新增)
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentRebate',
'/agent/rebate',
'/views/agent/agent-rebate/list',
'',
'{"title":"返佣记录","icon":"mdi:currency-usd","order":2004}',
1,
'menu',
2004,
NOW(),
NOW(),
0,
1
);
-- 插入升级记录 (新增)
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentUpgrade',
'/agent/upgrade',
'/views/agent/agent-upgrade/list',
'',
'{"title":"升级记录","icon":"mdi:arrow-up-circle","order":2005}',
1,
'menu',
2005,
NOW(),
NOW(),
0,
1
);
-- 插入订单记录 (新增)
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentOrder',
'/agent/order',
'/views/agent/agent-order/list',
'',
'{"title":"订单记录","icon":"mdi:package-variant","order":2006}',
1,
'menu',
2006,
NOW(),
NOW(),
0,
1
);
-- 插入提现记录
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentWithdrawal',
'/agent/withdrawal',
'/views/agent/agent-withdrawal/list',
'',
'{"title":"提现记录","icon":"mdi:bank-transfer-out","order":2007}',
1,
'menu',
2007,
NOW(),
NOW(),
0,
1
);
-- 插入邀请码管理 (新增)
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentInviteCode',
'/agent/invite-code',
'/views/agent/agent-invite-code/list',
'',
'{"title":"邀请码管理","icon":"mdi:ticket-confirmation","order":2008}',
1,
'menu',
2008,
NOW(),
NOW(),
0,
1
);
-- 插入系统配置 (新增)
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentConfig',
'/agent/config',
'/views/agent/agent-config/list',
'',
'{"title":"系统配置","icon":"mdi:cog","order":2009}',
1,
'menu',
2009,
NOW(),
NOW(),
0,
1
);
-- 插入实名认证 (新增)
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentRealName',
'/agent/real-name',
'/views/agent/agent-real-name/list',
'',
'{"title":"实名认证","icon":"mdi:account-check","order":2010}',
1,
'menu',
2010,
NOW(),
NOW(),
0,
1
);
-- 插入产品配置
INSERT INTO `admin_menu` (`pid`, `name`, `path`, `component`, `redirect`, `meta`, `status`, `type`, `sort`, `create_time`, `update_time`, `del_state`, `version`)
VALUES (
100,
'AgentProductConfig',
'/agent/product-config',
'/views/agent/agent-product-config/list',
'',
'{"title":"产品配置","icon":"mdi:package-variant-closed","order":2011}',
1,
'menu',
2011,
NOW(),
NOW(),
0,
1
);
5. 配置步骤
-
查找或创建父菜单:
- 查询数据库中是否已存在
name = 'Agent'且path = '/agent'的菜单 - 如果不存在,先插入父菜单(
pid = 0,type = 'catalog') - 记录父菜单的ID,后续子菜单会使用
- 查询数据库中是否已存在
-
删除旧菜单 (如果存在):
- 删除"上级抽佣记录"、"平台抽佣记录"、"会员充值订单"、"会员配置"等旧菜单
- 如果存在"奖励记录"独立菜单,也删除(已改为"返佣记录")
-
更新现有菜单:
- 检查并更新现有菜单的路径、组件路径等信息(如有变化)
-
插入新菜单:
- 按照上面的SQL示例插入新的菜单项
- 确保
pid使用正确的父菜单ID - 确保
sort和meta.order保持一致的排序
-
验证:
- 登录后台管理系统,检查菜单是否正常显示
- 点击每个菜单项,确认路由跳转正常
6. 注意事项
-
菜单类型 (type):
- 父菜单使用
catalog(目录类型) - 子菜单使用
menu(菜单类型) - 需要确保这些类型值在系统的字典表
admin_menu_type中存在
- 父菜单使用
-
组件路径 (component):
- 路径格式为:
/views/agent/xxx/list - 前端会自动添加
.vue后缀
- 路径格式为:
-
Meta字段格式:
- 必须是有效的JSON字符串
- 包含
title(标题)、icon(图标)、order(排序)
-
排序号 (sort):
- 建议与
meta.order保持一致 - 数值越小,排序越靠前
- 建议与
-
状态 (status):
1= 启用0= 禁用
7. 快速检查清单
- 父菜单"代理管理"已存在或已创建
- 已删除旧的菜单项(上级抽佣、平台抽佣、会员充值订单、会员配置)
- 所有新菜单项已插入数据库
- 所有菜单项的
pid正确指向父菜单ID - 所有菜单项的
component路径正确 - 所有菜单项的
metaJSON格式正确 - 菜单排序号(sort)设置合理
- 菜单状态(status)为启用(1)
配置完成后,刷新后台管理系统页面,新的菜单结构就会生效。