|
@@ -9181,6 +9181,255 @@ private void runMigration100() {
|
|
|
ensureColumn("product_skus", "linked_product_id", "BIGINT COMMENT '关联商品ID,null=Legacy SKU'");
|
|
ensureColumn("product_skus", "linked_product_id", "BIGINT COMMENT '关联商品ID,null=Legacy SKU'");
|
|
|
ensureColumn("product_skus", "label", "VARCHAR(100) COMMENT '自定义显示标签,null=使用linked_product.name'");
|
|
ensureColumn("product_skus", "label", "VARCHAR(100) COMMENT '自定义显示标签,null=使用linked_product.name'");
|
|
|
|
|
|
|
|
|
|
+ // 迁移248: families 添加 butler_id(B-5 管家行级隔离)
|
|
|
|
|
+ ensureColumn("families", "butler_id", "BIGINT COMMENT '绑定的管家userId'");
|
|
|
|
|
+ try {
|
|
|
|
|
+ jdbcTemplate.execute("CREATE INDEX idx_families_butler_id ON families(butler_id)");
|
|
|
|
|
+ log.info("已创建families.butler_id索引");
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ String msg = e.getMessage();
|
|
|
|
|
+ if (msg == null || !(msg.contains("Duplicate") || msg.contains("exists"))) {
|
|
|
|
|
+ log.warn("创建families.butler_id索引失败: {}", msg);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 迁移249: sys_menu 菜单归类调整 + 权限点拆分(《角色权限与菜单归类整合方案》第二部分/B-3,幂等)
|
|
|
|
|
+ migrateSysMenuReorg();
|
|
|
|
|
+
|
|
|
|
|
+ // 迁移250: 清理测试脏数据(B-7:TEST-Energy-Grant 测试任务、乱码昵称)
|
|
|
|
|
+ try {
|
|
|
|
|
+ int deletedTasks = jdbcTemplate.update("DELETE FROM tasks WHERE title LIKE 'TEST-Energy-Grant%'");
|
|
|
|
|
+ int fixedNicknames = jdbcTemplate.update("UPDATE users SET nickname = '测试家庭' WHERE nickname LIKE '娴嬭瘯%' AND nickname <> '测试家庭'");
|
|
|
|
|
+ if (deletedTasks > 0 || fixedNicknames > 0) {
|
|
|
|
|
+ log.info("迁移250: 已清理测试任务 {} 条,修复乱码昵称 {} 个", deletedTasks, fixedNicknames);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.warn("迁移250失败: {}", e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 迁移251: 健康饮食组挂载 报告管理/报告审核/应季食材(《角色权限与菜单归类整合方案》第二部分,幂等)
|
|
|
|
|
+ migrateHealthMenuMount();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 迁移249: 存量库 sys_menu 菜单归类调整 + 权限点拆分(幂等,按 path/title 定位)
|
|
|
|
|
+ * 1. 审核中心改为分组,归集:服务角色申请审核/活动审核/待退款管理/收益提现审核
|
|
|
|
|
+ * 2. 能量规则/能量行为/周期性服务 → 系统配置·健康配置
|
|
|
|
|
+ * 3. LangGraph 管理 → 报告解析系统
|
|
|
|
|
+ * 4. 测评管理/测评订单/待分配规划师 → 测评咨询(删除系统配置下原"测评管理"子组)
|
|
|
|
|
+ * 5. 菜单组权限统一 模块:* 格式;system:config 拆分为 system:base/config:member/config:dimension/config:health/config:report-parser
|
|
|
|
|
+ * 6. 术语统一:七维能量配置 → 五维能量配置
|
|
|
|
|
+ */
|
|
|
|
|
+ private void migrateSysMenuReorg() {
|
|
|
|
|
+ try {
|
|
|
|
|
+ // A. 审核中心:顶级叶子 → 分组,并插入"审核中心总览"子项
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET title='审核中心', label=NULL, path=NULL, perm='audit', sort=3 WHERE path='/review-center' AND parent_id=0 AND title IS NULL");
|
|
|
|
|
+ Long reviewGroup = queryMenuId("SELECT id FROM sys_menu WHERE parent_id=0 AND title='审核中心' AND (path IS NULL OR path='')");
|
|
|
|
|
+ if (reviewGroup != null) {
|
|
|
|
|
+ Integer childCount = jdbcTemplate.queryForObject(
|
|
|
|
|
+ "SELECT COUNT(*) FROM sys_menu WHERE parent_id=" + reviewGroup + " AND path='/review-center'", Integer.class);
|
|
|
|
|
+ if (childCount == null || childCount == 0) {
|
|
|
|
|
+ jdbcTemplate.update(
|
|
|
|
|
+ "INSERT INTO sys_menu (parent_id, title, label, path, icon, perm, sort, visible) VALUES (?, NULL, '审核中心总览', '/review-center', 'el-icon-s-check', 'audit', 0, 1)",
|
|
|
|
|
+ reviewGroup);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 迁入审核中心
|
|
|
|
|
+ moveMenu("/service-role-applications", reviewGroup, "audit:service-role", 1);
|
|
|
|
|
+ moveMenu("/activity-review", reviewGroup, "audit:activity", 2);
|
|
|
|
|
+ moveMenu("/pending-refund", reviewGroup, "audit:refund", 3);
|
|
|
|
|
+ moveMenu("/family-earnings-withdraw", reviewGroup, "audit:withdraw", 4);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // B. 能量规则/能量行为/周期性服务 → 系统配置·健康配置
|
|
|
|
|
+ Long healthConfig = queryMenuId("SELECT id FROM sys_menu WHERE title='健康配置' AND (path IS NULL OR path='')");
|
|
|
|
|
+ if (healthConfig != null) {
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm='config:health' WHERE id=" + healthConfig);
|
|
|
|
|
+ moveMenu("/energy-rule", healthConfig, "config:health", 3);
|
|
|
|
|
+ moveMenu("/energy-behavior-config", healthConfig, "config:health", 4);
|
|
|
|
|
+ moveMenu("/periodic-service-config", healthConfig, "config:health", 5);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // C. LangGraph 管理 → 报告解析系统
|
|
|
|
|
+ Long reportParser = queryMenuId("SELECT id FROM sys_menu WHERE parent_id=0 AND title='报告解析系统'");
|
|
|
|
|
+ if (reportParser != null) {
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm='config:report-parser' WHERE id=" + reportParser);
|
|
|
|
|
+ moveMenu("/langgraph-admin", reportParser, "config:report-parser", 4);
|
|
|
|
|
+ updateMenuPermByPath("/report-types", "config:report-parser");
|
|
|
|
|
+ updateMenuPermByPath("/report-parser-import", "config:report-parser");
|
|
|
|
|
+ updateMenuPermByPath("/report-unknown-clusters", "config:report-parser");
|
|
|
|
|
+ updateMenuPermByPath("/report-auto-learn", "config:report-parser");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // D. 测评管理/测评订单/待分配规划师 → 测评咨询
|
|
|
|
|
+ Long assessment = queryMenuId("SELECT id FROM sys_menu WHERE parent_id=0 AND title='测评咨询'");
|
|
|
|
|
+ Long oldAssessmentManage = queryMenuId("SELECT id FROM sys_menu WHERE title='测评管理' AND (path IS NULL OR path='')");
|
|
|
|
|
+ if (assessment != null) {
|
|
|
|
|
+ moveMenu("/assessment-admin", assessment, "assessment:manage", 0);
|
|
|
|
|
+ moveMenu("/assessment-orders", assessment, "assessment:orders", 1);
|
|
|
|
|
+ moveMenu("/assessment-assign", assessment, "assessment:assign", 2);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (oldAssessmentManage != null && assessment != null && !oldAssessmentManage.equals(assessment)) {
|
|
|
|
|
+ // 子项已迁走,删除系统配置下空的"测评管理"子组及其授权关联
|
|
|
|
|
+ jdbcTemplate.update("DELETE FROM sys_role_menu WHERE menu_id=" + oldAssessmentManage);
|
|
|
|
|
+ jdbcTemplate.update("DELETE FROM sys_menu WHERE id=" + oldAssessmentManage);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // E. 菜单组权限统一 模块:* 格式(废弃 operation/content/commerce/health 单段写法)
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm='family:*' WHERE parent_id=0 AND title='家庭运营'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm='articles:*' WHERE parent_id=0 AND title='知识中心'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm='commerce:*' WHERE parent_id=0 AND title='商城营销'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm='health:*' WHERE parent_id=0 AND title='健康饮食'");
|
|
|
|
|
+
|
|
|
|
|
+ // F. system:config 拆分
|
|
|
|
|
+ updateMenuPermByPath("/sys-config", "system:base");
|
|
|
|
|
+ updateMenuPermByPath("/gates", "system:base");
|
|
|
|
|
+ updateMenuPermByPath("/membership-center", "config:member");
|
|
|
|
|
+ updateMenuPermByPath("/badge-manage", "config:member");
|
|
|
|
|
+ updateMenuPermByPath("/virtual-goods-config", "config:member");
|
|
|
|
|
+ updateMenuPermByPath("/dimension-config", "config:dimension");
|
|
|
|
|
+ updateMenuPermByPath("/zodiac-configs", "config:dimension");
|
|
|
|
|
+ updateMenuPermByPath("/bazi-configs", "config:dimension");
|
|
|
|
|
+ updateMenuPermByPath("/blood-type-configs", "config:dimension");
|
|
|
|
|
+ updateMenuPermByPath("/health-norm-config", "config:health");
|
|
|
|
|
+ updateMenuPermByPath("/health-data-source", "config:health");
|
|
|
|
|
+ // 术语统一:七维能量配置 → 五维能量配置
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET label='五维能量配置', perm='config:health' WHERE path='/health-energy-config'");
|
|
|
|
|
+ updateMenuPermByPath("/virtual-teams", "system:base");
|
|
|
|
|
+ updateMenuPermByPath("/knowledge-base", "knowledge:base");
|
|
|
|
|
+ updateMenuPermByPath("/health-knowledge", "knowledge:base");
|
|
|
|
|
+ updateMenuPermByPath("/supplier-products", "supply:manage");
|
|
|
|
|
+ updateMenuPermByPath("/nutrition-products", "health:products");
|
|
|
|
|
+ updateMenuPermByPath("/energy-sandbox", "health:energy");
|
|
|
|
|
+ // 子组权限
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm='system:base' WHERE title='基础管理' AND (path IS NULL OR path='')");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm='config:dimension' WHERE title='配置中心' AND (path IS NULL OR path='')");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm='config:dimension' WHERE title='人生维度' AND (path IS NULL OR path='')");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm='system:base' WHERE title='虚拟团队' AND (path IS NULL OR path='')");
|
|
|
|
|
+
|
|
|
|
|
+ // G. 商城营销叶子权限统一(B-4 映射可识别)
|
|
|
|
|
+ updateMenuPermByPath("/product-manage", "commerce:products,commerce:self");
|
|
|
|
|
+ updateMenuPermByPath("/inventory", "inventory:self");
|
|
|
|
|
+ updateMenuPermByPath("/order-manage", "commerce:orders,order:self");
|
|
|
|
|
+ updateMenuPermByPath("/ecom-supplier", "commerce:supplier");
|
|
|
|
|
+ updateMenuPermByPath("/product-profit-rate", "finance:profit-rate");
|
|
|
|
|
+ updateMenuPermByPath("/coupon", "commerce:coupon");
|
|
|
|
|
+ updateMenuPermByPath("/coupon-grant-log", "commerce:coupon");
|
|
|
|
|
+ updateMenuPermByPath("/promotion", "commerce:promotion");
|
|
|
|
|
+ updateMenuPermByPath("/family-earnings", "finance:family-earnings");
|
|
|
|
|
+ updateMenuPermByPath("/activities", "activity:list,activity:self");
|
|
|
|
|
+ updateMenuPermByPath("/activity-registration-review", "activity:registration");
|
|
|
|
|
+ updateMenuPermByPath("/families", "family:list,family:read,family:bound");
|
|
|
|
|
+ updateMenuPermByPath("/children", "family:children,family:read,family:bound");
|
|
|
|
|
+ updateMenuPermByPath("/points-log", "family:points,family:bound");
|
|
|
|
|
+ updateMenuPermByPath("/growth-task", "task:growth");
|
|
|
|
|
+
|
|
|
|
|
+ log.info("迁移249: sys_menu 菜单归类调整与权限拆分完成");
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.warn("迁移249失败: {}", e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /** 按 path 更新菜单权限(找不到时忽略) */
|
|
|
|
|
+ private void updateMenuPermByPath(String path, String perm) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET perm=? WHERE path=?", perm, path);
|
|
|
|
|
+ } catch (Exception ignored) {
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 迁移251: 健康饮食组挂载 报告管理/报告审核/应季食材(存量库 sys_menu 幂等补齐)
|
|
|
|
|
+ * 对应页面 ReportManagement.vue / HealthReportAudit.vue / SeasonalFoods.vue 已开发完成但此前未挂载;
|
|
|
|
|
+ * 同时将健康饮食组排序对齐《浠艾福后台-角色权限与菜单归类整合方案》最终菜单树。
|
|
|
|
|
+ */
|
|
|
|
|
+ private void migrateHealthMenuMount() {
|
|
|
|
|
+ try {
|
|
|
|
|
+ Long healthGroup = queryMenuId("SELECT id FROM sys_menu WHERE parent_id=0 AND title='健康饮食'");
|
|
|
|
|
+ if (healthGroup == null) {
|
|
|
|
|
+ log.warn("迁移251: 未找到健康饮食分组,跳过");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 1. 存量菜单排序对齐(健康报告0..五维能量11),先更新防止插入冲突
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET sort=0 WHERE parent_id=" + healthGroup + " AND path='/health-reports'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET sort=3 WHERE parent_id=" + healthGroup + " AND path='/health-indicators'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET sort=4 WHERE parent_id=" + healthGroup + " AND path='/health-checkins'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET sort=5 WHERE parent_id=" + healthGroup + " AND path='/emotion-alert'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET sort=6 WHERE parent_id=" + healthGroup + " AND path='/nutrition-mappings'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET sort=7 WHERE parent_id=" + healthGroup + " AND path='/foods'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET sort=8 WHERE parent_id=" + healthGroup + " AND path='/recipes'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET sort=10 WHERE parent_id=" + healthGroup + " AND path='/nutrition-products'");
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET sort=11 WHERE parent_id=" + healthGroup + " AND path='/energy-sandbox'");
|
|
|
|
|
+ // 2. 按 path 幂等插入 3 个新页面
|
|
|
|
|
+ Long reportManagementId = insertHealthMenu(healthGroup, "报告管理", "/report-management", "el-icon-document", "health:reports", 1);
|
|
|
|
|
+ Long reportAuditId = insertHealthMenu(healthGroup, "报告审核", "/report-audit", "el-icon-document-checked", "report:audit", 2);
|
|
|
|
|
+ Long seasonalFoodsId = insertHealthMenu(healthGroup, "应季食材", "/seasonal-foods", "el-icon-apple", "diet:foods", 9);
|
|
|
|
|
+ // 3. 条件授权:仅当已配置过角色授权(sys_role_menu 非空)时补授权,
|
|
|
|
|
+ // 避免破坏"所有角色均未授权 → 返回全量可见树"的兼容逻辑(SysMenuService.userMenus)
|
|
|
|
|
+ Integer grantCount = jdbcTemplate.queryForObject("SELECT COUNT(*) FROM sys_role_menu", Integer.class);
|
|
|
|
|
+ if (grantCount != null && grantCount > 0) {
|
|
|
|
|
+ String[] roles = {"admin", "butler", "nutritionist"};
|
|
|
|
|
+ Long[] menuIds = {reportManagementId, reportAuditId, seasonalFoodsId};
|
|
|
|
|
+ for (String role : roles) {
|
|
|
|
|
+ for (Long menuId : menuIds) {
|
|
|
|
|
+ grantMenuToRole(role, menuId);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ log.info("迁移251: 已为 admin/butler/nutritionist 补授权新健康菜单");
|
|
|
|
|
+ }
|
|
|
|
|
+ log.info("迁移251: 健康饮食组挂载 报告管理/报告审核/应季食材完成");
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.warn("迁移251失败: {}", e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /** 按 path 幂等插入健康饮食叶子菜单,返回菜单 id(已存在返回原 id) */
|
|
|
|
|
+ private Long insertHealthMenu(Long parentId, String label, String path, String icon, String perm, int sort) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ Long existed = queryMenuId("SELECT id FROM sys_menu WHERE parent_id=" + parentId + " AND path='" + path + "'");
|
|
|
|
|
+ if (existed != null) {
|
|
|
|
|
+ return existed;
|
|
|
|
|
+ }
|
|
|
|
|
+ jdbcTemplate.update(
|
|
|
|
|
+ "INSERT INTO sys_menu (parent_id, title, label, path, icon, perm, sort, visible) VALUES (?, NULL, ?, ?, ?, ?, ?, 1)",
|
|
|
|
|
+ parentId, label, path, icon, perm, sort
|
|
|
|
|
+ );
|
|
|
|
|
+ Long id = jdbcTemplate.queryForObject("SELECT LAST_INSERT_ID()", Long.class);
|
|
|
|
|
+ log.info("迁移251: 已挂载健康饮食菜单「{}」", label);
|
|
|
|
|
+ return id;
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.warn("迁移251: 挂载菜单「{}」失败: {}", label, e.getMessage());
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /** 角色-菜单授权(幂等,唯一键 uk_role_menu 冲突忽略) */
|
|
|
|
|
+ private void grantMenuToRole(String role, Long menuId) {
|
|
|
|
|
+ if (role == null || menuId == null) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ try {
|
|
|
|
|
+ jdbcTemplate.update("INSERT IGNORE INTO sys_role_menu (role, menu_id) VALUES (?, ?)", role, menuId);
|
|
|
|
|
+ } catch (Exception ignored) {
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /** 将菜单(按 path)移动到指定父组并更新权限/排序(幂等) */
|
|
|
|
|
+ private void moveMenu(String path, Long parentId, String perm, int sort) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ jdbcTemplate.update("UPDATE sys_menu SET parent_id=?, perm=?, sort=? WHERE path=?", parentId, perm, sort, path);
|
|
|
|
|
+ } catch (Exception ignored) {
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /** 查询单个菜单 id,不存在返回 null */
|
|
|
|
|
+ private Long queryMenuId(String sql) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ List<Long> ids = jdbcTemplate.queryForList(sql, Long.class);
|
|
|
|
|
+ return ids.isEmpty() ? null : ids.get(0);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -9193,115 +9442,118 @@ private void runMigration100() {
|
|
|
String[][] menus = {
|
|
String[][] menus = {
|
|
|
// 顶级叶子
|
|
// 顶级叶子
|
|
|
{"", "home", "", "首页", "/dashboard", "el-icon-s-home", "dashboard", "0"},
|
|
{"", "home", "", "首页", "/dashboard", "el-icon-s-home", "dashboard", "0"},
|
|
|
- // 家庭运营
|
|
|
|
|
- {"", "operation", "家庭运营", "", "", "el-icon-s-custom", "operation", "1"},
|
|
|
|
|
- {"operation", "families", "", "家庭列表", "/families", "el-icon-s-custom", "family:list", "0"},
|
|
|
|
|
- {"operation", "children", "", "孩子管理", "/children", "el-icon-user-solid", "family:children", "1"},
|
|
|
|
|
|
|
+ // 家庭运营(family:*)
|
|
|
|
|
+ {"", "operation", "家庭运营", "", "", "el-icon-s-custom", "family:*", "1"},
|
|
|
|
|
+ {"operation", "families", "", "家庭列表", "/families", "el-icon-s-custom", "family:list,family:read,family:bound", "0"},
|
|
|
|
|
+ {"operation", "children", "", "孩子管理", "/children", "el-icon-user-solid", "family:children,family:read,family:bound", "1"},
|
|
|
{"operation", "points", "", "积分管理", "/points", "el-icon-s-finance", "family:points", "2"},
|
|
{"operation", "points", "", "积分管理", "/points", "el-icon-s-finance", "family:points", "2"},
|
|
|
- {"operation", "pointsLog", "", "积分记录", "/points-log", "el-icon-document", "family:points", "3"},
|
|
|
|
|
|
|
+ {"operation", "pointsLog", "", "积分记录", "/points-log", "el-icon-document", "family:points,family:bound", "3"},
|
|
|
{"operation", "wishes", "", "心愿管理", "/wishes", "el-icon-star-off", "family:wishes", "4"},
|
|
{"operation", "wishes", "", "心愿管理", "/wishes", "el-icon-star-off", "family:wishes", "4"},
|
|
|
{"operation", "rewards", "", "奖励管理", "/rewards", "el-icon-s-goods", "reward:list", "5"},
|
|
{"operation", "rewards", "", "奖励管理", "/rewards", "el-icon-s-goods", "reward:list", "5"},
|
|
|
- // 任务中心
|
|
|
|
|
|
|
+ // 任务中心(task:*)
|
|
|
{"", "taskCenter", "任务中心", "", "", "el-icon-s-order", "task:*", "2"},
|
|
{"", "taskCenter", "任务中心", "", "", "el-icon-s-order", "task:*", "2"},
|
|
|
{"taskCenter", "tasks", "", "任务列表", "/tasks", "el-icon-s-order", "task:list", "0"},
|
|
{"taskCenter", "tasks", "", "任务列表", "/tasks", "el-icon-s-order", "task:list", "0"},
|
|
|
{"taskCenter", "taskTemplates", "", "任务模板", "/task-templates", "el-icon-document", "task:templates", "1"},
|
|
{"taskCenter", "taskTemplates", "", "任务模板", "/task-templates", "el-icon-document", "task:templates", "1"},
|
|
|
- {"taskCenter", "growthTask", "", "成长任务管理", "/growth-task", "el-icon-s-management", "task:list", "2"},
|
|
|
|
|
- // 审核中心
|
|
|
|
|
- {"", "reviewCenter", "", "审核中心", "/review-center", "el-icon-s-check", "audit", "3"},
|
|
|
|
|
- {"", "serviceRoleApp", "", "服务角色申请审核", "/service-role-applications", "el-icon-s-check", "audit", "4"},
|
|
|
|
|
- // 商城营销
|
|
|
|
|
- {"", "commerce", "商城营销", "", "", "el-icon-s-goods", "commerce", "5"},
|
|
|
|
|
- {"commerce", "productManage", "", "商品管理", "/product-manage", "el-icon-s-goods", "commerce:products", "0"},
|
|
|
|
|
- {"commerce", "inventory", "", "库存管理", "/inventory", "el-icon-document", "commerce:products", "1"},
|
|
|
|
|
- {"commerce", "ecomSupplier", "", "供应商管理", "/ecom-supplier", "el-icon-s-shop", "commerce:products", "2"},
|
|
|
|
|
- {"commerce", "orderManage", "", "订单管理", "/order-manage", "el-icon-s-order", "commerce:orders", "3"},
|
|
|
|
|
- {"commerce", "pendingRefund", "", "待退款管理", "/pending-refund", "el-icon-warning", "commerce:orders", "4"},
|
|
|
|
|
- {"commerce", "productProfitRate", "", "产品利润率", "/product-profit-rate", "el-icon-data-line", "commerce:profit", "5"},
|
|
|
|
|
- {"commerce", "coupon", "", "优惠券管理", "/coupon", "el-icon-ticket", "marketing:coupon", "6"},
|
|
|
|
|
- {"commerce", "couponGrantLog", "", "发券记录", "/coupon-grant-log", "el-icon-document", "marketing:coupon", "7"},
|
|
|
|
|
- {"commerce", "promotion", "", "推广管理", "/promotion", "el-icon-s-marketing", "marketing:promotion", "8"},
|
|
|
|
|
- {"commerce", "familyEarnings", "", "家庭收益", "/family-earnings", "el-icon-s-money", "marketing:promotion", "9"},
|
|
|
|
|
- {"commerce", "earningWithdraw", "", "收益提现审核", "/family-earnings-withdraw", "el-icon-document-checked", "audit:withdraw", "10"},
|
|
|
|
|
- // 知识中心
|
|
|
|
|
- {"", "knowledge", "知识中心", "", "", "el-icon-document", "content", "6"},
|
|
|
|
|
|
|
+ {"taskCenter", "growthTask", "", "成长任务管理", "/growth-task", "el-icon-s-management", "task:growth", "2"},
|
|
|
|
|
+ // 审核中心(audit,归集各审核页:服务角色申请/活动审核/退款/提现)
|
|
|
|
|
+ {"", "reviewCenterGroup", "审核中心", "", "", "el-icon-s-check", "audit", "3"},
|
|
|
|
|
+ {"reviewCenterGroup", "reviewCenter", "", "审核中心总览", "/review-center", "el-icon-s-check", "audit", "0"},
|
|
|
|
|
+ {"reviewCenterGroup", "serviceRoleApp", "", "服务角色申请审核", "/service-role-applications", "el-icon-s-check", "audit:service-role", "1"},
|
|
|
|
|
+ {"reviewCenterGroup", "activityReview", "", "活动审核", "/activity-review", "el-icon-document-checked", "audit:activity", "2"},
|
|
|
|
|
+ {"reviewCenterGroup", "pendingRefund", "", "待退款管理", "/pending-refund", "el-icon-warning", "audit:refund", "3"},
|
|
|
|
|
+ {"reviewCenterGroup", "earningWithdraw", "", "收益提现审核", "/family-earnings-withdraw", "el-icon-document-checked", "audit:withdraw", "4"},
|
|
|
|
|
+ // 商城营销(commerce:*)
|
|
|
|
|
+ {"", "commerce", "商城营销", "", "", "el-icon-s-goods", "commerce:*", "4"},
|
|
|
|
|
+ {"commerce", "productManage", "", "商品管理", "/product-manage", "el-icon-s-goods", "commerce:products,commerce:self", "0"},
|
|
|
|
|
+ {"commerce", "inventory", "", "库存管理", "/inventory", "el-icon-document", "inventory:self", "1"},
|
|
|
|
|
+ {"commerce", "orderManage", "", "订单管理", "/order-manage", "el-icon-s-order", "commerce:orders,order:self", "2"},
|
|
|
|
|
+ {"commerce", "ecomSupplier", "", "供应商管理", "/ecom-supplier", "el-icon-s-shop", "commerce:supplier", "3"},
|
|
|
|
|
+ {"commerce", "productProfitRate", "", "产品利润率", "/product-profit-rate", "el-icon-data-line", "finance:profit-rate", "4"},
|
|
|
|
|
+ {"commerce", "coupon", "", "优惠券管理", "/coupon", "el-icon-ticket", "commerce:coupon", "5"},
|
|
|
|
|
+ {"commerce", "couponGrantLog", "", "发券记录", "/coupon-grant-log", "el-icon-document", "commerce:coupon", "6"},
|
|
|
|
|
+ {"commerce", "promotion", "", "推广管理", "/promotion", "el-icon-s-marketing", "commerce:promotion", "7"},
|
|
|
|
|
+ {"commerce", "familyEarnings", "", "家庭收益", "/family-earnings", "el-icon-s-money", "finance:family-earnings", "8"},
|
|
|
|
|
+ // 知识中心(articles:*)
|
|
|
|
|
+ {"", "knowledge", "知识中心", "", "", "el-icon-document", "articles:*", "5"},
|
|
|
{"knowledge", "articleCategories", "", "知识分类", "/article-categories", "el-icon-folder", "articles:categories", "0"},
|
|
{"knowledge", "articleCategories", "", "知识分类", "/article-categories", "el-icon-folder", "articles:categories", "0"},
|
|
|
{"knowledge", "articleManage", "", "知识管理", "/article-manage", "el-icon-document", "articles:manage", "1"},
|
|
{"knowledge", "articleManage", "", "知识管理", "/article-manage", "el-icon-document", "articles:manage", "1"},
|
|
|
{"knowledge", "commentReview", "", "评论审核", "/comment-review", "el-icon-chat-dot-round", "articles:manage", "2"},
|
|
{"knowledge", "commentReview", "", "评论审核", "/comment-review", "el-icon-chat-dot-round", "articles:manage", "2"},
|
|
|
{"knowledge", "knowledgeTags", "", "知识标签", "/knowledge-tags", "el-icon-price-tag", "articles:categories", "3"},
|
|
{"knowledge", "knowledgeTags", "", "知识标签", "/knowledge-tags", "el-icon-price-tag", "articles:categories", "3"},
|
|
|
- {"knowledge", "knowledgeBase", "", "知识库", "/knowledge-base", "el-icon-reading", "system:config", "4"},
|
|
|
|
|
- {"knowledge", "healthKnowledge", "", "健康知识库", "/health-knowledge", "el-icon-first-aid-kit", "system:config", "5"},
|
|
|
|
|
- // 活动管理
|
|
|
|
|
- {"", "activity", "活动管理", "", "", "el-icon-date", "activity:*", "7"},
|
|
|
|
|
- {"activity", "activities", "", "活动列表", "/activities", "el-icon-date", "activity:list", "0"},
|
|
|
|
|
- {"activity", "activityReview", "", "活动审核", "/activity-review", "el-icon-document-checked", "activity:review", "1"},
|
|
|
|
|
- {"activity", "activityRegReview", "", "活动报名审核", "/activity-registration-review", "el-icon-document-checked", "activity:review", "2"},
|
|
|
|
|
- // 健康饮食
|
|
|
|
|
- {"", "health", "健康饮食", "", "", "el-icon-first-aid-kit", "health", "8"},
|
|
|
|
|
|
|
+ {"knowledge", "knowledgeBase", "", "知识库", "/knowledge-base", "el-icon-reading", "knowledge:base", "4"},
|
|
|
|
|
+ {"knowledge", "healthKnowledge", "", "健康知识库", "/health-knowledge", "el-icon-first-aid-kit", "knowledge:base", "5"},
|
|
|
|
|
+ // 活动管理(activity:*,活动审核已移入审核中心)
|
|
|
|
|
+ {"", "activity", "活动管理", "", "", "el-icon-date", "activity:*", "6"},
|
|
|
|
|
+ {"activity", "activities", "", "活动列表", "/activities", "el-icon-date", "activity:list,activity:self", "0"},
|
|
|
|
|
+ {"activity", "activityRegReview", "", "活动报名审核", "/activity-registration-review", "el-icon-document-checked", "activity:registration", "1"},
|
|
|
|
|
+ // 健康饮食(health:*,能量规则/行为/周期性服务已移入系统配置·健康配置,LangGraph已移入报告解析系统;报告管理/报告审核/应季食材按方案挂载)
|
|
|
|
|
+ {"", "health", "健康饮食", "", "", "el-icon-first-aid-kit", "health:*", "7"},
|
|
|
{"health", "healthReports", "", "健康报告", "/health-reports", "el-icon-document", "health:reports", "0"},
|
|
{"health", "healthReports", "", "健康报告", "/health-reports", "el-icon-document", "health:reports", "0"},
|
|
|
- {"health", "healthIndicators", "", "健康指标", "/health-indicators", "el-icon-data-line", "health:indicators", "1"},
|
|
|
|
|
- {"health", "healthCheckins", "", "健康打卡", "/health-checkins", "el-icon-s-order", "health:checkins", "2"},
|
|
|
|
|
- {"health", "emotionAlert", "", "情绪告警", "/emotion-alert", "el-icon-warning", "health:checkins", "3"},
|
|
|
|
|
- {"health", "nutritionMappings", "", "营养素映射", "/nutrition-mappings", "el-icon-connection", "health:mappings", "4"},
|
|
|
|
|
- {"health", "energySandbox", "", "五维能量", "/energy-sandbox", "el-icon-data-line", "energy", "5"},
|
|
|
|
|
- {"health", "energyRule", "", "能量规则管理", "/energy-rule", "el-icon-setting", "energy", "6"},
|
|
|
|
|
- {"health", "energyBehaviorConfig", "", "能量行为配置", "/energy-behavior-config", "el-icon-edit-outline", "energy", "7"},
|
|
|
|
|
- {"health", "periodicServiceConfig", "", "周期性服务配置", "/periodic-service-config", "el-icon-refresh", "energy", "8"},
|
|
|
|
|
- {"health", "foods", "", "食材管理", "/foods", "el-icon-apple", "diet:foods", "9"},
|
|
|
|
|
- {"health", "recipes", "", "食谱管理", "/recipes", "el-icon-dish", "diet:recipes", "10"},
|
|
|
|
|
- {"health", "langgraphAdmin", "", "LangGraph 管理", "/langgraph-admin", "el-icon-cpu", "system:config", "11"},
|
|
|
|
|
- {"health", "nutritionProducts", "", "营养产品", "/nutrition-products", "el-icon-first-aid-kit", "health:*", "12"},
|
|
|
|
|
- // 报告解析系统
|
|
|
|
|
- {"", "reportParser", "报告解析系统", "", "", "el-icon-cpu", "system:config", "9"},
|
|
|
|
|
- {"reportParser", "reportTypes", "", "报告类型管理", "/report-types", "el-icon-collection", "system:config", "0"},
|
|
|
|
|
- {"reportParser", "reportParserImport", "", "解析器导入", "/report-parser-import", "el-icon-upload2", "system:config", "1"},
|
|
|
|
|
- {"reportParser", "reportUnknownClusters", "", "未知报告审核", "/report-unknown-clusters", "el-icon-question", "system:config", "2"},
|
|
|
|
|
- {"reportParser", "reportAutoLearn", "", "报告自学习", "/report-auto-learn", "el-icon-magic-stick", "system:config", "3"},
|
|
|
|
|
- // 家庭服务(规划师)
|
|
|
|
|
- {"", "familyService", "家庭服务", "", "", "el-icon-s-custom", "service:*", "10"},
|
|
|
|
|
|
|
+ {"health", "reportManagement", "", "报告管理", "/report-management", "el-icon-document", "health:reports", "1"},
|
|
|
|
|
+ {"health", "reportAudit", "", "报告审核", "/report-audit", "el-icon-document-checked", "report:audit", "2"},
|
|
|
|
|
+ {"health", "healthIndicators", "", "健康指标", "/health-indicators", "el-icon-data-line", "health:indicators", "3"},
|
|
|
|
|
+ {"health", "healthCheckins", "", "健康打卡", "/health-checkins", "el-icon-s-order", "health:checkins", "4"},
|
|
|
|
|
+ {"health", "emotionAlert", "", "情绪告警", "/emotion-alert", "el-icon-warning", "health:checkins", "5"},
|
|
|
|
|
+ {"health", "nutritionMappings", "", "营养素映射", "/nutrition-mappings", "el-icon-connection", "health:mappings", "6"},
|
|
|
|
|
+ {"health", "foods", "", "食材管理", "/foods", "el-icon-apple", "diet:foods", "7"},
|
|
|
|
|
+ {"health", "recipes", "", "食谱管理", "/recipes", "el-icon-dish", "diet:recipes", "8"},
|
|
|
|
|
+ {"health", "seasonalFoods", "", "应季食材", "/seasonal-foods", "el-icon-apple", "diet:foods", "9"},
|
|
|
|
|
+ {"health", "nutritionProducts", "", "营养产品", "/nutrition-products", "el-icon-first-aid-kit", "health:products", "10"},
|
|
|
|
|
+ {"health", "energySandbox", "", "五维能量", "/energy-sandbox", "el-icon-data-line", "health:energy", "11"},
|
|
|
|
|
+ // 报告解析系统(config:report-parser,LangGraph 管理归入)
|
|
|
|
|
+ {"", "reportParser", "报告解析系统", "", "", "el-icon-cpu", "config:report-parser", "8"},
|
|
|
|
|
+ {"reportParser", "reportTypes", "", "报告类型管理", "/report-types", "el-icon-collection", "config:report-parser", "0"},
|
|
|
|
|
+ {"reportParser", "reportParserImport", "", "解析器导入", "/report-parser-import", "el-icon-upload2", "config:report-parser", "1"},
|
|
|
|
|
+ {"reportParser", "reportUnknownClusters", "", "未知报告审核", "/report-unknown-clusters", "el-icon-question", "config:report-parser", "2"},
|
|
|
|
|
+ {"reportParser", "reportAutoLearn", "", "报告自学习", "/report-auto-learn", "el-icon-magic-stick", "config:report-parser", "3"},
|
|
|
|
|
+ {"reportParser", "langgraphAdmin", "", "LangGraph 管理", "/langgraph-admin", "el-icon-cpu", "config:report-parser", "4"},
|
|
|
|
|
+ // 家庭服务(service:*)
|
|
|
|
|
+ {"", "familyService", "家庭服务", "", "", "el-icon-s-custom", "service:*", "9"},
|
|
|
{"familyService", "myFamilies", "", "我的家庭", "/my-families", "el-icon-s-custom", "service:family", "0"},
|
|
{"familyService", "myFamilies", "", "我的家庭", "/my-families", "el-icon-s-custom", "service:family", "0"},
|
|
|
{"familyService", "teacherTeam", "", "我的团队", "/teacher-team", "el-icon-s-custom", "service:team", "1"},
|
|
{"familyService", "teacherTeam", "", "我的团队", "/teacher-team", "el-icon-s-custom", "service:team", "1"},
|
|
|
- // 业务管理(规划师)
|
|
|
|
|
- {"", "biz", "业务管理", "", "", "el-icon-s-marketing", "biz:*", "11"},
|
|
|
|
|
|
|
+ // 业务管理(biz:*)
|
|
|
|
|
+ {"", "biz", "业务管理", "", "", "el-icon-s-marketing", "biz:*", "10"},
|
|
|
{"biz", "teacherPackages", "", "任务模板管理", "/teacher-packages", "el-icon-s-goods", "biz:packages", "0"},
|
|
{"biz", "teacherPackages", "", "任务模板管理", "/teacher-packages", "el-icon-s-goods", "biz:packages", "0"},
|
|
|
{"biz", "teacherOrders", "", "订单佣金", "/teacher-orders", "el-icon-s-order", "biz:orders", "1"},
|
|
{"biz", "teacherOrders", "", "订单佣金", "/teacher-orders", "el-icon-s-order", "biz:orders", "1"},
|
|
|
- // 测评咨询(规划师)
|
|
|
|
|
- {"", "assessment", "测评咨询", "", "", "el-icon-edit", "assessment:*", "12"},
|
|
|
|
|
- {"assessment", "teacherAssessment", "", "DAN测评", "/teacher-assessment", "el-icon-edit", "assessment:dan", "0"},
|
|
|
|
|
- {"assessment", "teacherConsult", "", "家长咨询", "/teacher-consult", "el-icon-chat-dot-round", "assessment:consult", "1"},
|
|
|
|
|
- {"assessment", "growthRecords", "", "成长记录", "/growth-records", "el-icon-document", "growth:records", "2"},
|
|
|
|
|
- {"assessment", "growthPlans", "", "成长计划", "/growth-plans", "el-icon-document", "growth:plans", "3"},
|
|
|
|
|
- // 系统配置(三级)
|
|
|
|
|
- {"", "system", "系统配置", "", "", "el-icon-s-tools", "system:*", "13"},
|
|
|
|
|
- {"system", "baseManage", "基础管理", "", "", "el-icon-s-tools", "system:config", "0"},
|
|
|
|
|
- {"baseManage", "sysConfig", "", "系统配置", "/sys-config", "el-icon-s-tools", "system:config", "0"},
|
|
|
|
|
|
|
+ // 测评咨询(测评管理/测评订单/待分配规划师已从系统配置移入)
|
|
|
|
|
+ {"", "assessment", "测评咨询", "", "", "el-icon-edit", "assessment:*", "11"},
|
|
|
|
|
+ {"assessment", "assessmentAdmin", "", "测评管理", "/assessment-admin", "el-icon-edit", "assessment:manage", "0"},
|
|
|
|
|
+ {"assessment", "assessmentOrders", "", "测评订单", "/assessment-orders", "el-icon-s-order", "assessment:orders", "1"},
|
|
|
|
|
+ {"assessment", "assessmentAssign", "", "待分配规划师", "/assessment-assign", "el-icon-user", "assessment:assign", "2"},
|
|
|
|
|
+ {"assessment", "teacherAssessment", "", "DAN测评", "/teacher-assessment", "el-icon-edit", "assessment:dan", "3"},
|
|
|
|
|
+ {"assessment", "teacherConsult", "", "家长咨询", "/teacher-consult", "el-icon-chat-dot-round", "assessment:consult", "4"},
|
|
|
|
|
+ {"assessment", "growthRecords", "", "成长记录", "/growth-records", "el-icon-document", "growth:records", "5"},
|
|
|
|
|
+ {"assessment", "growthPlans", "", "成长计划", "/growth-plans", "el-icon-document", "growth:plans", "6"},
|
|
|
|
|
+ // 系统配置(system:*,权限拆分 system:base / config:member / config:dimension / config:health)
|
|
|
|
|
+ {"", "system", "系统配置", "", "", "el-icon-s-tools", "system:*", "12"},
|
|
|
|
|
+ {"system", "baseManage", "基础管理", "", "", "el-icon-s-tools", "system:base", "0"},
|
|
|
|
|
+ {"baseManage", "sysConfig", "", "系统配置", "/sys-config", "el-icon-s-tools", "system:base", "0"},
|
|
|
{"baseManage", "users", "", "用户管理", "/users", "el-icon-user", "system:users", "1"},
|
|
{"baseManage", "users", "", "用户管理", "/users", "el-icon-user", "system:users", "1"},
|
|
|
{"baseManage", "operationLogs", "", "操作日志", "/operation-logs", "el-icon-s-order", "system:logs", "2"},
|
|
{"baseManage", "operationLogs", "", "操作日志", "/operation-logs", "el-icon-s-order", "system:logs", "2"},
|
|
|
- {"baseManage", "membershipCenter", "", "会员中心", "/membership-center", "el-icon-s-custom", "system:config", "3"},
|
|
|
|
|
- {"baseManage", "badgeManage", "", "勋章管理", "/badge-manage", "el-icon-medal", "system:config", "4"},
|
|
|
|
|
- {"baseManage", "virtualGoodsConfig", "", "虚拟支付道具", "/virtual-goods-config", "el-icon-goods", "system:config", "5"},
|
|
|
|
|
- {"baseManage", "gates", "", "关卡配置", "/gates", "el-icon-key", "system:config", "6"},
|
|
|
|
|
|
|
+ {"baseManage", "membershipCenter", "", "会员中心", "/membership-center", "el-icon-s-custom", "config:member", "3"},
|
|
|
|
|
+ {"baseManage", "badgeManage", "", "勋章管理", "/badge-manage", "el-icon-medal", "config:member", "4"},
|
|
|
|
|
+ {"baseManage", "virtualGoodsConfig", "", "虚拟支付道具", "/virtual-goods-config", "el-icon-goods", "config:member", "5"},
|
|
|
|
|
+ {"baseManage", "gates", "", "关卡配置", "/gates", "el-icon-key", "system:base", "6"},
|
|
|
{"baseManage", "menuManage", "", "菜单管理", "/menu-manage", "el-icon-menu", "system:menu", "7"},
|
|
{"baseManage", "menuManage", "", "菜单管理", "/menu-manage", "el-icon-menu", "system:menu", "7"},
|
|
|
- {"system", "configCenter", "配置中心", "", "", "el-icon-setting", "system:config", "1"},
|
|
|
|
|
- {"configCenter", "dimensionConfig", "", "维度配置", "/dimension-config", "el-icon-data-line", "system:config", "0"},
|
|
|
|
|
|
|
+ {"system", "configCenter", "配置中心", "", "", "el-icon-setting", "config:dimension", "1"},
|
|
|
|
|
+ {"configCenter", "dimensionConfig", "", "维度配置", "/dimension-config", "el-icon-data-line", "config:dimension", "0"},
|
|
|
{"system", "supplyHierarchy", "供应商体系", "", "", "el-icon-s-management", "system:supply", "2"},
|
|
{"system", "supplyHierarchy", "供应商体系", "", "", "el-icon-s-management", "system:supply", "2"},
|
|
|
{"supplyHierarchy", "supplySystem", "", "供应商体系", "/supply-system", "el-icon-s-management", "system:supply", "0"},
|
|
{"supplyHierarchy", "supplySystem", "", "供应商体系", "/supply-system", "el-icon-s-management", "system:supply", "0"},
|
|
|
{"system", "supplierManage", "供应商管理", "", "", "el-icon-s-shop", "supply:manage", "3"},
|
|
{"system", "supplierManage", "供应商管理", "", "", "el-icon-s-shop", "supply:manage", "3"},
|
|
|
{"supplierManage", "supplyManage", "", "供应商管理", "/supply-manage", "el-icon-s-shop", "supply:manage", "0"},
|
|
{"supplierManage", "supplyManage", "", "供应商管理", "/supply-manage", "el-icon-s-shop", "supply:manage", "0"},
|
|
|
- {"supplierManage", "supplierProducts", "", "商品管理", "/supplier-products", "el-icon-s-goods", "commerce:product", "1"},
|
|
|
|
|
- {"system", "healthConfig", "健康配置", "", "", "el-icon-first-aid-kit", "system:config", "4"},
|
|
|
|
|
- {"healthConfig", "healthNormConfig", "", "健康常模", "/health-norm-config", "el-icon-data-line", "system:config", "0"},
|
|
|
|
|
- {"healthConfig", "healthDataSource", "", "健康数据源", "/health-data-source", "el-icon-data-line", "system:config", "1"},
|
|
|
|
|
- {"healthConfig", "healthEnergyConfig", "", "七维能量配置", "/health-energy-config", "el-icon-data-line", "system:config", "2"},
|
|
|
|
|
- {"system", "lifeDimension", "人生维度", "", "", "el-icon-s-custom", "system:config", "5"},
|
|
|
|
|
- {"lifeDimension", "zodiacConfigs", "", "星座配置", "/zodiac-configs", "el-icon-s-management", "system:config", "0"},
|
|
|
|
|
- {"lifeDimension", "baziConfigs", "", "八字配置", "/bazi-configs", "el-icon-s-management", "system:config", "1"},
|
|
|
|
|
- {"lifeDimension", "bloodTypeConfigs", "", "血型配置", "/blood-type-configs", "el-icon-s-management", "system:config", "2"},
|
|
|
|
|
- {"system", "assessmentManage", "测评管理", "", "", "el-icon-edit", "assessment:dan", "6"},
|
|
|
|
|
- {"assessmentManage", "assessmentAdmin", "", "测评管理", "/assessment-admin", "el-icon-edit", "assessment:dan", "0"},
|
|
|
|
|
- {"assessmentManage", "assessmentOrders", "", "测评订单", "/assessment-orders", "el-icon-s-order", "assessment:dan", "1"},
|
|
|
|
|
- {"assessmentManage", "assessmentAssign", "", "待分配规划师", "/assessment-assign", "el-icon-user", "assessment:dan", "2"},
|
|
|
|
|
- {"system", "virtualTeam", "虚拟团队", "", "", "el-icon-s-custom", "system:config", "7"},
|
|
|
|
|
- {"virtualTeam", "virtualTeams", "", "虚拟团队", "/virtual-teams", "el-icon-s-custom", "system:config", "0"},
|
|
|
|
|
|
|
+ {"supplierManage", "supplierProducts", "", "商品管理", "/supplier-products", "el-icon-s-goods", "supply:manage", "1"},
|
|
|
|
|
+ {"system", "healthConfig", "健康配置", "", "", "el-icon-first-aid-kit", "config:health", "4"},
|
|
|
|
|
+ {"healthConfig", "healthNormConfig", "", "健康常模", "/health-norm-config", "el-icon-data-line", "config:health", "0"},
|
|
|
|
|
+ {"healthConfig", "healthDataSource", "", "健康数据源", "/health-data-source", "el-icon-data-line", "config:health", "1"},
|
|
|
|
|
+ {"healthConfig", "healthEnergyConfig", "", "五维能量配置", "/health-energy-config", "el-icon-data-line", "config:health", "2"},
|
|
|
|
|
+ {"healthConfig", "energyRule", "", "能量规则管理", "/energy-rule", "el-icon-setting", "config:health", "3"},
|
|
|
|
|
+ {"healthConfig", "energyBehaviorConfig", "", "能量行为配置", "/energy-behavior-config", "el-icon-edit-outline", "config:health", "4"},
|
|
|
|
|
+ {"healthConfig", "periodicServiceConfig", "", "周期性服务配置", "/periodic-service-config", "el-icon-refresh", "config:health", "5"},
|
|
|
|
|
+ {"system", "lifeDimension", "人生维度", "", "", "el-icon-s-custom", "config:dimension", "5"},
|
|
|
|
|
+ {"lifeDimension", "zodiacConfigs", "", "星座配置", "/zodiac-configs", "el-icon-s-management", "config:dimension", "0"},
|
|
|
|
|
+ {"lifeDimension", "baziConfigs", "", "八字配置", "/bazi-configs", "el-icon-s-management", "config:dimension", "1"},
|
|
|
|
|
+ {"lifeDimension", "bloodTypeConfigs", "", "血型配置", "/blood-type-configs", "el-icon-s-management", "config:dimension", "2"},
|
|
|
|
|
+ {"system", "virtualTeam", "虚拟团队", "", "", "el-icon-s-custom", "system:base", "6"},
|
|
|
|
|
+ {"virtualTeam", "virtualTeams", "", "虚拟团队", "/virtual-teams", "el-icon-s-custom", "system:base", "0"},
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
for (String[] m : menus) {
|
|
for (String[] m : menus) {
|