Jelajahi Sumber

添加权限

ssvfdn 2 bulan lalu
induk
melakukan
267a675076
1 mengubah file dengan 457 tambahan dan 18 penghapusan
  1. 457 18
      app/controller/Menu.php

+ 457 - 18
app/controller/Menu.php

@@ -39,28 +39,467 @@ class Menu extends BaseController
 
         $webMenu = [];
         $webMenu[] = [
-                'meta' => [
-                    'title' => 'page.dashboard.title'
-                ],
-                'name' => 'Dashboard',
-                'path' => '/',
-                'redirect' => '/analytics',
-                'children' => [
-                    [
-                        'name' => 'Analytics',
-                        'path' => '/analytics',
-                        'component' => '/dashboard/analytics/index',
-                        'meta' => [
-                            'affixTab' => true,
-                            'title' => 'page.dashboard.analytics'
-                        ]
-                    ]
-                ]
+            "meta" => [
+                "icon" => "solar:widget-5-linear",
+                "order" => -1,
+                "title" => "page.dashboard.title",
+            ],
+            "name" => "Dashboard",
+            "path" => "/dashboard",
+            "children" => [
+                [
+                    "name" => "Analytics",
+                    "path" => "/analytics",
+                    "component" => "/dashboard/analytics/index.vue",
+                    "meta" => [
+                        "affixTab" => true,
+                        "icon" => "lucide:area-chart",
+                        "title" => "dashboard.analytics_title",
+                    ],
+                ],
+                [
+                    "name" => "GgrReport",
+                    "path" => "/ggr-report",
+                    "component" => "/dashboard/ggr_report/index.vue",
+                    "meta" => [
+                        "icon" => "solar:align-bottom-outline",
+                        "title" => "dashboard.ggr_report_title",
+                    ],
+                ],
+            ],
         ];
 
+        // 综合数据
+        $webMenu[] = [
+            "meta"     => [
+                "keepAlive" => true,
+                "icon"      => "solar:cloud-check-outline",
+                "order"     => 1,
+                "title"     => "data_statistics.title",
+            ],
+            "name"     => "DataStatistics",
+            "path"     => "/data-statistics",
+            "children" => [
+                [
+                    "meta"      => [
+                        "title"     => "data_statistics.data_agent_title",
+                        "icon"      => "solar:server-minimalistic-linear",
+                        "keepAlive" => true,
+                    ],
+                    "name"      => "Agent",
+                    "path"      => "/data-statistics/agent",
+                    "component" => "/data_statistics/agent/index.vue",
+                ],
+                [
+                    "meta"     => [
+                        "title"     => "data_statistics.daily_title",
+                        "icon"      => "solar:notebook-linear",
+                        "keepAlive" => true,
+                    ],
+                    "name"     => "Daily",
+                    "path"     => "/data-statistics/daily",
+                    "children" => [
+                        [
+                            "meta"      => [
+                                "title"     => "data_statistics.agent_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "DailyAgent",
+                            "path"      => "/data-statistics/daily/agent",
+                            "component" => "/data_statistics/daily/agent/index.vue",
+                        ],
+                        [
+                            "meta"      => [
+                                "title"     => "data_statistics.game_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "DailyGame",
+                            "path"      => "/data-statistics/daily/game",
+                            "component" => "/data_statistics/daily/game/index.vue",
+                        ],
+                    ],
+                ],
+                [
+                    "meta"     => [
+                        "title"     => "data_statistics.history_title",
+                        "icon"      => "solar:sort-by-time-outline",
+                        "keepAlive" => true,
+                    ],
+                    "name"     => "History",
+                    "path"     => "/data-statistics/history",
+                    "children" => [
+                        [
+                            "meta"      => [
+                                "title"     => "data_statistics.history_agent_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "HistoryAgent",
+                            "path"      => "/data-statistics/history/agent",
+                            "component" => "/data_statistics/history/agent/index.vue",
+                        ],
+                    ],
+                ],
+                [
+                    "meta"     => [
+                        "title"     => "data_statistics.trend_title",
+                        "icon"      => "solar:chart-square-outline",
+                        "keepAlive" => true,
+                    ],
+                    "name"     => "Trend",
+                    "path"     => "/data-statistics/trend",
+                    "children" => [
+                        [
+                            "meta"      => [
+                                "title"     => "data_statistics.trend_win_lose_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "TrendWinLose",
+                            "path"      => "/data-statistics/trend/win_lose",
+                            "component" => "/data_statistics/trend/win_lose/index.vue",
+                        ],
+                        [
+                            "meta"      => [
+                                "title"     => "data_statistics.trend_rewards_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "TrendRewards",
+                            "path"      => "/data-statistics/trend/rewards",
+                            "component" => "/data_statistics/trend/rewards/index.vue",
+                        ],
+                        [
+                            "meta"      => [
+                                "title"     => "data_statistics.trend_agent_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "TrendAgent",
+                            "path"      => "/data-statistics/trend/agent",
+                            "component" => "/data_statistics/trend/agent/index.vue",
+                        ],
+                    ],
+                ],
+                [
+                    "meta"     => [
+                        "title"     => "data_statistics.rank_title",
+                        "icon"      => "solar:ranking-outline",
+                        "keepAlive" => true,
+                    ],
+                    "name"     => "Rank",
+                    "path"     => "/data-statistics/rank",
+                    "children" => [
+                        [
+                            "meta"      => [
+                                "title"     => "data_statistics.rank_win_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "RankWin",
+                            "path"      => "/data-statistics/rank/win",
+                            "component" => "/data_statistics/rank/win/index.vue",
+                        ],
+                        [
+                            "meta"      => [
+                                "title"     => "data_statistics.rank_lose_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "RankLose",
+                            "path"      => "/data-statistics/rank/lose",
+                            "component" => "/data_statistics/rank/lose/index.vue",
+                        ],
+                        [
+                            "meta"      => [
+                                "title"     => "data_statistics.rank_bet_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "RankBet",
+                            "path"      => "/data-statistics/rank/bet_amount",
+                            "component" => "/data_statistics/rank/bet/index.vue",
+                        ],
+                    ],
+                ],
+            ],
+        ];
+
+        // 玩家数据
+
+        $webMenu[] = [
+            "meta"     => [
+                "keepAlive" => true,
+                "icon"      => "solar:user-broken",
+                "order"     => 2,
+                "title"     => "player_data.title",
+            ],
+            "name"     => "PlayerData",
+            "path"     => "/player-data",
+            "children" => [
+                [
+                    "meta"      => [
+                        "title"     => "player_data.player_list",
+                        "icon"      => "solar:users-group-rounded-outline",
+                        "keepAlive" => true,
+                    ],
+                    "name"      => "AntDesignPlayerList",
+                    "path"      => "/player-data/player-list",
+                    "component" => "/player_data/player_list/index.vue",
+                ],
+                [
+                    "meta"      => [
+                        "title"     => "player_data.game_records",
+                        "icon"      => "solar:gamepad-minimalistic-outline",
+                        "keepAlive" => true,
+                    ],
+                    "name"      => "GameRecordList",
+                    "path"      => "/player-data/game-records",
+                    "component" => "/player_data/game_records/index.vue",
+                ],
+                [
+                    "meta"      => [
+                        "title"     => "player_data.funds_change",
+                        "icon"      => "solar:reorder-broken",
+                        "keepAlive" => true,
+                    ],
+                    "name"      => "FundsChangeList",
+                    "path"      => "/player-data/funds-change",
+                    "component" => "/player_data/funds_change/index.vue",
+                ],
+                [
+                    "meta"      => [
+                        "title"     => "player_data.transform_records",
+                        "icon"      => "solar:card-recive-line-duotone",
+                        "keepAlive" => true,
+                    ],
+                    "name"      => "TransformRecordsList",
+                    "path"      => "/player-data/transform-records",
+                    "component" => "/player_data/transform_records/index.vue",
+                ],
+            ],
+        ];
+
+        // 游戏数据
+        $webMenu[] = [
+            "meta"     => [
+                "icon"      => "solar:ghost-smile-outline",
+                "keepAlive" => true,
+                "order"     => 3,
+                "title"     => "game_data.title",
+            ],
+            "name"     => "gameData",
+            "path"     => "/game-data",
+            "children" => [
+                [
+                    "meta"      => [
+                        "title"     => "game_data.game_summary_title",
+                        "icon"      => "solar:dollar-outline",
+                        "keepAlive" => true,
+                    ],
+                    "name"      => "gameDataGameSummary",
+                    "path"      => "/game-data/game-summary",
+                    "component" => "/game_data/game_summary/index.vue",
+                ],
+                [
+                    "meta"      => [
+                        "title"     => "game_data.bet_level_title",
+                        "icon"      => "solar:card-transfer-outline",
+                        "keepAlive" => true,
+                    ],
+                    "name"      => "gameDataBetLevel",
+                    "path"      => "/game-data/bet-level",
+                    "component" => "/game_data/bet_level/index.vue",
+                ],
+            ],
+        ];
+
+        // 游戏调整
+        $webMenu[] = [
+            "meta"     => [
+                "icon"      => "solar:gamepad-outline",
+                "keepAlive" => true,
+                "order"     => 4,
+                "title"     => "game_control.title",
+            ],
+            "name"     => "gameControl",
+            "path"     => "/game-control",
+            "children" => [
+                [
+                    "meta"      => [
+                        "title"     => "game_control.game_config",
+                        "icon"      => "solar:gamepad-old-outline",
+                        "keepAlive" => true,
+                    ],
+                    "name"      => "GameControlGameConfig",
+                    "path"      => "/game-control/game_config",
+                    "component" => "/game_control/game_config/index.vue",
+                ],
+                [
+                    "meta"     => [
+                        "title"     => "game_control.play_control_title",
+                        "icon"      => "solar:remote-controller-outline",
+                        "keepAlive" => true,
+                    ],
+                    "name"     => "GameControlGamePlayerControl",
+                    "path"     => "/game-control/player-control",
+                    "children" => [
+                        [
+                            "meta"      => [
+                                "title"     => "game_control.play_control_list_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "GameControlGamePlayerControlList",
+                            "path"      => "/game-control/player-control/list",
+                            "component" =>
+                                "/game_control/player_control/list/index.vue",
+                        ],
+                        [
+                            "meta"      => [
+                                "title"     => "game_control.play_control_record_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "GameControlGamePlayerControlRecord",
+                            "path"      => "/game-control/player-control/record",
+                            "component" =>
+                                "/game_control/player_control/record/index.vue",
+                        ],
+                    ],
+                ],
+                [
+                    "meta"     => [
+                        "title"     => "game_control.control_auto_rtp_title",
+                        "icon"      => "solar:station-outline",
+                        "keepAlive" => true,
+                    ],
+                    "name"     => "GameControlGameAutoRtpControl",
+                    "path"     => "/game-control/auto-rtp",
+                    "children" => [
+                        [
+                            "meta"      => [
+                                "title"     => "game_control.control_auto_rtp_config_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "GameControlGameAutoRtpControlConfig",
+                            "path"      => "/game-control/auto-rtp/config",
+                            "component" => "/game_control/auto_rtp/config/index.vue",
+                        ],
+                    ],
+                ],
+                [
+                    "meta"     => [
+                        "title"     => "feed_user.feed_user_title",
+                        "icon"      => "solar:bomb-emoji-broken",
+                        "keepAlive" => true,
+                    ],
+                    "name"     => "FeedUser",
+                    "path"     => "/game-control/feed-user",
+                    "children" => [
+                        [
+                            "meta"      => [
+                                "title"     => "feed_user.feed_user_global_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "FeedUserGlobal",
+                            "path"      => "/game-control/feed-user/global",
+                            "component" => "/game_control/feed_user/global/index.vue",
+                        ],
+                        [
+                            "meta"      => [
+                                "title"     => "feed_user.feed_user_list_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "FeedUserList",
+                            "path"      => "/game-control/feed-user/list",
+                            "component" => "/game_control/feed_user/list/index.vue",
+                        ],
+                        [
+                            "meta"      => [
+                                "title"     => "feed_user.feed_user_record_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "FeedUserRecord",
+                            "path"      => "/game-control/feed-user/record",
+                            "component" => "/game_control/feed_user/record/index.vue",
+                        ],
+                    ],
+                ],
+            ],
+        ];
+
+        // 日志管理
+        $webMenu[] = [
+            "meta"     => [
+                "keepAlive" => true,
+                "icon"      => "solar:document-text-outline",
+                "order"     => 4,
+                "title"     => "log.title",
+            ],
+            "name"     => "Log",
+            "path"     => "/log",
+            "children" => [
+                [
+                    "meta"     => [
+                        "title"     => "log.agent_title",
+                        "icon"      => "solar:document-add-linear",
+                        "keepAlive" => true,
+                    ],
+                    "name"     => "LogAgent",
+                    "path"     => "/log/agent",
+                    "children" => [
+                        [
+                            "meta"      => [
+                                "title"     => "log.login_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "LogAgentLogin",
+                            "path"      => "/log/agent/login",
+                            "component" => "/log/agent/login/index.vue",
+                        ],
+                        [
+                            "meta"      => [
+                                "title"     => "log.operation_title",
+                                "keepAlive" => true,
+                            ],
+                            "name"      => "LogOperation",
+                            "path"      => "/log/agent/operation",
+                            "component" => "/log/agent/operation/index.vue",
+                        ],
+                    ],
+                ],
+            ],
+        ];
+
+        // 权限管理
+
+        $webMenu[] = [
+            "meta"     => [
+                "icon"      => "solar:verified-check-outline",
+                "keepAlive" => true,
+                "order"     => 4,
+                "title"     => "user.title",
+            ],
+            "name"     => "Permission",
+            "path"     => "/user",
+            "children" => [
+                [
+                    "meta"      => [
+                        "title" => "user.role_list",
+                        "icon"  => "solar:shield-user-outline",
+                    ],
+                    "name"      => "RoleList",
+                    "path"      => "/user/role-list",
+                    "component" => "/user/role_list/index.vue",
+                ],
+                [
+                    "meta"      => [
+                        "title" => "user.user_list",
+                        "icon"  => "solar:users-group-rounded-outline",
+                    ],
+                    "name"      => "UserList",
+                    "path"      => "/user/user-list",
+                    "component" => "/user/user_list/index.vue",
+                ],
+            ],
+        ];
+
+
         try {
             $menus = MenuService::getMenuTree($this->userId);
-            // $menus = $webMenu;
+            $menus = $webMenu;
             return json_success($menus);
         } catch (\Exception $e) {
             return json_error('获取菜单失败:' . $e->getMessage());