ssvfdn преди 3 месеца
родител
ревизия
bff4afd011
променени са 28 файла, в които са добавени 647 реда и са изтрити 198 реда
  1. 13 0
      apps/web-antd/src/api/game_data/bet_level.ts
  2. 13 0
      apps/web-antd/src/api/game_data/game_statis.ts
  3. 24 0
      apps/web-antd/src/locales/langs/zh-CN/game_data.json
  4. 1 1
      apps/web-antd/src/router/routes/modules/game_control.ts
  5. 40 0
      apps/web-antd/src/router/routes/modules/game_data.ts
  6. 11 11
      apps/web-antd/src/views/data_statistics/agent/index.vue
  7. 11 11
      apps/web-antd/src/views/data_statistics/daily/agent/index.vue
  8. 12 12
      apps/web-antd/src/views/data_statistics/daily/game/index.vue
  9. 9 9
      apps/web-antd/src/views/data_statistics/history/agent/index.vue
  10. 1 1
      apps/web-antd/src/views/data_statistics/rank/bet/index.vue
  11. 1 1
      apps/web-antd/src/views/data_statistics/rank/lose/index.vue
  12. 1 1
      apps/web-antd/src/views/data_statistics/rank/win/index.vue
  13. 5 5
      apps/web-antd/src/views/game_control/auto_rtp/config/index.vue
  14. 1 1
      apps/web-antd/src/views/game_control/auto_rtp/config/info.vue
  15. 13 13
      apps/web-antd/src/views/game_control/feed_user/list/index.vue
  16. 12 12
      apps/web-antd/src/views/game_control/feed_user/record/index.vue
  17. 10 10
      apps/web-antd/src/views/game_control/game_config/index.vue
  18. 17 17
      apps/web-antd/src/views/game_control/player_control/list/index.vue
  19. 17 17
      apps/web-antd/src/views/game_control/player_control/record/index.vue
  20. 169 0
      apps/web-antd/src/views/game_data/bet_level/index.vue
  21. 190 0
      apps/web-antd/src/views/game_data/game_summary/index.vue
  22. 17 17
      apps/web-antd/src/views/player_data/funds_change/index.vue
  23. 20 20
      apps/web-antd/src/views/player_data/game_records/index.vue
  24. 13 13
      apps/web-antd/src/views/player_data/player_list/index.vue
  25. 9 9
      apps/web-antd/src/views/player_data/transform_records/index.vue
  26. 5 5
      apps/web-antd/src/views/user/role_list/index.vue
  27. 10 10
      apps/web-antd/src/views/user/user_list/index.vue
  28. 2 2
      apps/web-antd/vite.config.mts

+ 13 - 0
apps/web-antd/src/api/game_data/bet_level.ts

@@ -0,0 +1,13 @@
+import {requestBodyClient, requestClient} from "#/api/request";
+
+interface ApiResultListData {
+    data: Object;
+    status: number;
+    total: number;
+    list: Array<any>;
+}
+export async function getBetLevelList(data:any) {
+    const params = new URLSearchParams(data); // 创建一个新的URLSearchParams对象
+    const queryString = params.toString(); // 转换为查询字符串
+    return requestClient.get<ApiResultListData>('/game_statis/bet_level?' + queryString);
+}

+ 13 - 0
apps/web-antd/src/api/game_data/game_statis.ts

@@ -0,0 +1,13 @@
+import {requestBodyClient, requestClient} from "#/api/request";
+
+interface ApiResultListData {
+    data: Object;
+    status: number;
+    total: number;
+    list: Array<any>;
+}
+export async function getGameSummaryList(data:any) {
+    const params = new URLSearchParams(data); // 创建一个新的URLSearchParams对象
+    const queryString = params.toString(); // 转换为查询字符串
+    return requestClient.get<ApiResultListData>('/game_statis/summary?' + queryString);
+}

+ 24 - 0
apps/web-antd/src/locales/langs/zh-CN/game_data.json

@@ -0,0 +1,24 @@
+{
+    "title": "游戏数据",
+    "game_summary_title": "游戏输赢汇总",
+    "bet_level_title": "押注档位数据",
+    "game_summary": {
+        "rtp": "设定RTP",
+        "game_rtp": "游戏RTP",
+        "history_rtp": "历史游戏RTP",
+        "total_bet": "注单金额",
+        "total_bet_count": "注单数",
+        "total_win": "游戏输赢",
+        "total_user_count": "投注用户"
+    },
+    "bet_level": {
+        "bet": "投注额",
+        "total_bet": "注单额",
+        "total_bet_rate": "注单额占比",
+        "bet_count": "注单数",
+        "bet_count_rate": "注单数占比",
+        "total_score": "游戏返奖",
+        "total_win": "游戏输赢",
+        "game_rtp": "游戏RTP"
+    }
+}

+ 1 - 1
apps/web-antd/src/router/routes/modules/game_control.ts

@@ -7,7 +7,7 @@ const routes: RouteRecordRaw[] = [
         meta: {
             icon: 'solar:gamepad-outline',
             keepAlive: true,
-            order: 3,
+            order: 4,
             title: $t('game_control.title'),
         },
         name: 'gameControl',

+ 40 - 0
apps/web-antd/src/router/routes/modules/game_data.ts

@@ -0,0 +1,40 @@
+import type { RouteRecordRaw } from 'vue-router';
+
+import { $t } from '#/locales';
+
+const routes: RouteRecordRaw[] = [
+    {
+        meta: {
+            icon: 'solar:ghost-smile-outline',
+            keepAlive: true,
+            order: 3,
+            title: $t('game_data.title'),
+        },
+        name: 'gameData',
+        path: '/game-data',
+        children: [
+            {
+                meta: {
+                    title: $t('game_data.game_summary_title'),
+                    icon:'solar:dollar-outline',
+                    keepAlive: true
+                },
+                name: 'gameDataGameSummary',
+                path: '/game-data/game-summary',
+                component: () => import('#/views/game_data/game_summary/index.vue'),
+            },
+            {
+                meta: {
+                    title: $t('game_data.bet_level_title'),
+                    icon:'solar:card-transfer-outline',
+                    keepAlive: true
+                },
+                name: 'gameDataBetLevel',
+                path: '/game-data/bet-level',
+                component: () => import('#/views/game_data/bet_level/index.vue'),
+            }
+        ],
+    },
+];
+
+export default routes;

+ 11 - 11
apps/web-antd/src/views/data_statistics/agent/index.vue

@@ -54,17 +54,17 @@ const gridOptions = {
 	},
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
-		{ field: 'date_stage', title: $t('data_statistics.daily_agent.date'), width: 200},
-		{ field: 'rtp', title: $t('data_statistics.daily_agent.rtp'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.rtp_desc')}},
-		{ field: 'bet_count', title: $t('data_statistics.daily_agent.bet_count'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_count_desc')}},
-		{ field: 'bet_amount', title: $t('data_statistics.daily_agent.bet_amount'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_amount_desc')}},
-		{ field: 'game_profit', title: $t('data_statistics.daily_agent.game_profit'), width:160, titlePrefix: {'content':$t('data_statistics.daily_agent.game_profit_desc')}, slots:{'default':'game_profit'}},
-		{ field: 'login_users', title: $t('data_statistics.daily_agent.login_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.login_users_desc')}},
-		{ field: 'register_users', title: $t('data_statistics.daily_agent.register_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.register_users_desc')}},
-		{ field: 'bet_users', title: $t('data_statistics.daily_agent.bet_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_users_desc')}},
-		{ field: 'commission_amount', title: $t('data_statistics.daily_agent.commission_amount'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.commission_amount_desc')}},
-		{ field: 'platform_fee', title: $t('data_statistics.daily_agent.platform_fee'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.platform_fee_desc')}},
-		{ field: 'buy_free_bet', title: $t('data_statistics.daily_agent.buy_free_bet'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.buy_free_bet_desc')}},
+		{ field: 'date_stage', title: $t('data_statistics.daily_agent.date'), minWidth: 200},
+		{ field: 'rtp', title: $t('data_statistics.daily_agent.rtp'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.rtp_desc')}},
+		{ field: 'bet_count', title: $t('data_statistics.daily_agent.bet_count'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_count_desc')}},
+		{ field: 'bet_amount', title: $t('data_statistics.daily_agent.bet_amount'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_amount_desc')}},
+		{ field: 'game_profit', title: $t('data_statistics.daily_agent.game_profit'), minWidth:160, titlePrefix: {'content':$t('data_statistics.daily_agent.game_profit_desc')}, slots:{'default':'game_profit'}},
+		{ field: 'login_users', title: $t('data_statistics.daily_agent.login_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.login_users_desc')}},
+		{ field: 'register_users', title: $t('data_statistics.daily_agent.register_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.register_users_desc')}},
+		{ field: 'bet_users', title: $t('data_statistics.daily_agent.bet_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_users_desc')}},
+		{ field: 'commission_amount', title: $t('data_statistics.daily_agent.commission_amount'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.commission_amount_desc')}},
+		{ field: 'platform_fee', title: $t('data_statistics.daily_agent.platform_fee'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.platform_fee_desc')}},
+		{ field: 'buy_free_bet', title: $t('data_statistics.daily_agent.buy_free_bet'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.buy_free_bet_desc')}},
 	],
 	keepSource: true,
 	proxyConfig: {

+ 11 - 11
apps/web-antd/src/views/data_statistics/daily/agent/index.vue

@@ -56,17 +56,17 @@ const gridOptions = {
 	},
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
-		{ field: 'date', title: $t('data_statistics.daily_agent.date'), width: 120},
-		{ field: 'game_profit', title: $t('data_statistics.daily_agent.game_profit'), width:160, titlePrefix: {'content':$t('data_statistics.daily_agent.game_profit_desc')}, slots:{'default':'game_profit'}},
-		{ field: 'rtp', title: $t('data_statistics.daily_agent.rtp'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.rtp_desc')}},
-		{ field: 'bet_amount', title: $t('data_statistics.daily_agent.bet_amount'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_amount_desc')}},
-		{ field: 'bet_count', title: $t('data_statistics.daily_agent.bet_count'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_count_desc')}},
-		{ field: 'bet_users', title: $t('data_statistics.daily_agent.bet_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_users_desc')}},
-		{ field: 'register_users', title: $t('data_statistics.daily_agent.register_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.register_users_desc')}},
-		{ field: 'login_users', title: $t('data_statistics.daily_agent.login_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.login_users_desc')}},
-		{ field: 'commission_amount', title: $t('data_statistics.daily_agent.commission_amount'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.commission_amount_desc')}},
-		{ field: 'platform_fee', title: $t('data_statistics.daily_agent.platform_fee'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.platform_fee_desc')}},
-		{ field: 'buy_free_bet', title: $t('data_statistics.daily_agent.buy_free_bet'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.buy_free_bet_desc')}},
+		{ field: 'date', title: $t('data_statistics.daily_agent.date'), minWidth: 120},
+		{ field: 'game_profit', title: $t('data_statistics.daily_agent.game_profit'), minWidth:160, titlePrefix: {'content':$t('data_statistics.daily_agent.game_profit_desc')}, slots:{'default':'game_profit'}},
+		{ field: 'rtp', title: $t('data_statistics.daily_agent.rtp'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.rtp_desc')}},
+		{ field: 'bet_amount', title: $t('data_statistics.daily_agent.bet_amount'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_amount_desc')}},
+		{ field: 'bet_count', title: $t('data_statistics.daily_agent.bet_count'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_count_desc')}},
+		{ field: 'bet_users', title: $t('data_statistics.daily_agent.bet_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_users_desc')}},
+		{ field: 'register_users', title: $t('data_statistics.daily_agent.register_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.register_users_desc')}},
+		{ field: 'login_users', title: $t('data_statistics.daily_agent.login_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.login_users_desc')}},
+		{ field: 'commission_amount', title: $t('data_statistics.daily_agent.commission_amount'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.commission_amount_desc')}},
+		{ field: 'platform_fee', title: $t('data_statistics.daily_agent.platform_fee'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.platform_fee_desc')}},
+		{ field: 'buy_free_bet', title: $t('data_statistics.daily_agent.buy_free_bet'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.buy_free_bet_desc')}},
 	],
 	keepSource: true,
 	proxyConfig: {

+ 12 - 12
apps/web-antd/src/views/data_statistics/daily/game/index.vue

@@ -81,18 +81,18 @@ const gridOptions = {
 	},
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
-		{ field: 'date', title: $t('data_statistics.daily_agent.date'), width: 200},
-		{ align: 'left', field: 'game_title', title: $t('game_control.game_list.game_title'), width: 200, slots: {'default':'game_title'}},
-		{ field: 'game_profit', title: $t('data_statistics.daily_agent.game_profit'), width:160, titlePrefix: {'content':$t('data_statistics.daily_agent.game_profit_desc')}, slots:{'default':'game_profit'}},
-		{ field: 'rtp', title: $t('data_statistics.daily_agent.rtp'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.rtp_desc')}},
-		{ field: 'bet_amount', title: $t('data_statistics.daily_agent.bet_amount'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_amount_desc')}},
-		{ field: 'bet_count', title: $t('data_statistics.daily_agent.bet_count'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_count_desc')}},
-		{ field: 'bet_users', title: $t('data_statistics.daily_agent.bet_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_users_desc')}},
-		{ field: 'register_users', title: $t('data_statistics.daily_agent.register_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.register_users_desc')}},
-		{ field: 'login_users', title: $t('data_statistics.daily_agent.login_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.login_users_desc')}},
-		{ field: 'commission_amount', title: $t('data_statistics.daily_agent.commission_amount'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.commission_amount_desc')}},
-		{ field: 'platform_fee', title: $t('data_statistics.daily_agent.platform_fee'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.platform_fee_desc')}},
-		{ field: 'buy_free_bet', title: $t('data_statistics.daily_agent.buy_free_bet'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.buy_free_bet_desc')}},
+		{ field: 'date', title: $t('data_statistics.daily_agent.date'), minWidth: 200},
+		{ align: 'left', field: 'game_title', title: $t('game_control.game_list.game_title'), minWidth: 200, slots: {'default':'game_title'}},
+		{ field: 'game_profit', title: $t('data_statistics.daily_agent.game_profit'), minWidth:160, titlePrefix: {'content':$t('data_statistics.daily_agent.game_profit_desc')}, slots:{'default':'game_profit'}},
+		{ field: 'rtp', title: $t('data_statistics.daily_agent.rtp'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.rtp_desc')}},
+		{ field: 'bet_amount', title: $t('data_statistics.daily_agent.bet_amount'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_amount_desc')}},
+		{ field: 'bet_count', title: $t('data_statistics.daily_agent.bet_count'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_count_desc')}},
+		{ field: 'bet_users', title: $t('data_statistics.daily_agent.bet_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_users_desc')}},
+		{ field: 'register_users', title: $t('data_statistics.daily_agent.register_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.register_users_desc')}},
+		{ field: 'login_users', title: $t('data_statistics.daily_agent.login_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.login_users_desc')}},
+		{ field: 'commission_amount', title: $t('data_statistics.daily_agent.commission_amount'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.commission_amount_desc')}},
+		{ field: 'platform_fee', title: $t('data_statistics.daily_agent.platform_fee'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.platform_fee_desc')}},
+		{ field: 'buy_free_bet', title: $t('data_statistics.daily_agent.buy_free_bet'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.buy_free_bet_desc')}},
 	],
 	keepSource: true,
 	proxyConfig: {

+ 9 - 9
apps/web-antd/src/views/data_statistics/history/agent/index.vue

@@ -21,15 +21,15 @@ const gridOptions = {
 	},
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
-		{ field: 'rtp', title: $t('data_statistics.daily_agent.rtp'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.rtp_desc')}},
-		{ field: 'bet_count', title: $t('data_statistics.daily_agent.bet_count'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_count_desc')}},
-		{ field: 'bet_amount', title: $t('data_statistics.daily_agent.bet_amount'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_amount_desc')}},
-		{ field: 'game_profit', title: $t('data_statistics.daily_agent.game_profit'), width:160, titlePrefix: {'content':$t('data_statistics.daily_agent.game_profit_desc')}, slots:{'default':'game_profit'}},
-		{ field: 'login_users', title: $t('data_statistics.daily_agent.login_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.login_users_desc')}},
-		{ field: 'register_users', title: $t('data_statistics.daily_agent.register_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.register_users_desc')}},
-		{ field: 'bet_users', title: $t('data_statistics.daily_agent.bet_users'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_users_desc')}},
-		{ field: 'commission_amount', title: $t('data_statistics.daily_agent.commission_amount'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.commission_amount_desc')}},
-		{ field: 'buy_free_bet', title: $t('data_statistics.daily_agent.buy_free_bet'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.buy_free_bet_desc')}},
+		{ field: 'rtp', title: $t('data_statistics.daily_agent.rtp'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.rtp_desc')}},
+		{ field: 'bet_count', title: $t('data_statistics.daily_agent.bet_count'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_count_desc')}},
+		{ field: 'bet_amount', title: $t('data_statistics.daily_agent.bet_amount'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_amount_desc')}},
+		{ field: 'game_profit', title: $t('data_statistics.daily_agent.game_profit'), minWidth:160, titlePrefix: {'content':$t('data_statistics.daily_agent.game_profit_desc')}, slots:{'default':'game_profit'}},
+		{ field: 'login_users', title: $t('data_statistics.daily_agent.login_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.login_users_desc')}},
+		{ field: 'register_users', title: $t('data_statistics.daily_agent.register_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.register_users_desc')}},
+		{ field: 'bet_users', title: $t('data_statistics.daily_agent.bet_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_users_desc')}},
+		{ field: 'commission_amount', title: $t('data_statistics.daily_agent.commission_amount'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.commission_amount_desc')}},
+		{ field: 'buy_free_bet', title: $t('data_statistics.daily_agent.buy_free_bet'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.buy_free_bet_desc')}},
 		// { field: 'platform_fee', title: $t('data_statistics.daily_agent.platform_fee'), width: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.platform_fee_desc')}},
 	],
 	keepSource: true,

+ 1 - 1
apps/web-antd/src/views/data_statistics/rank/bet/index.vue

@@ -61,7 +61,7 @@ const gridOptions = {
 		{ fixed: 'left', field: "ranking",  title: $t('data_statistics.rank_win.ranking'), type: 'seq', width: 80, slots: {'default':"ranking"}},
 		{ field: 'nickname', title: $t('data_statistics.rank_win.nickname')},
 		{ field: 'total_bet', title: $t('data_statistics.rank_win.total_bet'), slots:{'default':'total_bet'}},
-		{ field: 'rtp', title: "RTP", width: 100},
+		{ field: 'rtp', title: "RTP", minWidth: 100},
 		{ field: 'bet_count', title: $t('data_statistics.rank_win.bet_count')},
 		{ field: 'balance', title: $t('data_statistics.rank_win.balance')},
 	],

+ 1 - 1
apps/web-antd/src/views/data_statistics/rank/lose/index.vue

@@ -61,7 +61,7 @@ const gridOptions = {
 		{ fixed: 'left', field: "ranking",  title: $t('data_statistics.rank_win.ranking'), type: 'seq', width: 80, slots: {'default':"ranking"}},
 		{ field: 'nickname', title: $t('data_statistics.rank_win.nickname')},
 		{ field: 'total_lose', title: $t('data_statistics.rank_win.total_lose'), slots:{'default':'total_lose'}},
-		{ field: 'rtp', title: "RTP", width: 100},
+		{ field: 'rtp', title: "RTP", minWidth: 100},
 		{ field: 'bet_count', title: $t('data_statistics.rank_win.bet_count')},
 		{ field: 'balance', title: $t('data_statistics.rank_win.balance')},
 	],

+ 1 - 1
apps/web-antd/src/views/data_statistics/rank/win/index.vue

@@ -61,7 +61,7 @@ const gridOptions = {
 		{ fixed: 'left', field: "ranking",  title: $t('data_statistics.rank_win.ranking'), type: 'seq', width: 80, slots: {'default':"ranking"}},
 		{ field: 'nickname', title: $t('data_statistics.rank_win.nickname')},
 		{ field: 'total_win', title: $t('data_statistics.rank_win.total_win'), slots:{'default':'total_win'}},
-		{ field: 'rtp', title: "RTP", width: 100},
+		{ field: 'rtp', title: "RTP", minWidth: 100},
 		{ field: 'bet_count', title: $t('data_statistics.rank_win.bet_count')},
 		{ field: 'balance', title: $t('data_statistics.rank_win.balance')},
 	],

+ 5 - 5
apps/web-antd/src/views/game_control/auto_rtp/config/index.vue

@@ -17,12 +17,12 @@ const gridOptions = {
 	},
 	columns: [
 		{ field: 'new_user_number', title:  $t('game_control.auto_rtp.new_user_number'), width: 200},
-		{ field: 'float_rate', title: $t('game_control.auto_rtp.float_rate'), width: 300, slots: {default:"float_rate"} },
-		{ field: 'rtp_check', title: $t('game_control.auto_rtp.rtp_check'), width: 140},
-		{ field: 'rtp_float', title: $t('game_control.auto_rtp.rtp_float'), width: 200, slots: {default:"rtp_float"} },
+		{ field: 'float_rate', title: $t('game_control.auto_rtp.float_rate'), minWidth: 300, slots: {default:"float_rate"} },
+		{ field: 'rtp_check', title: $t('game_control.auto_rtp.rtp_check'), minWidth: 140},
+		{ field: 'rtp_float', title: $t('game_control.auto_rtp.rtp_float'), minWidth: 200, slots: {default:"rtp_float"} },
 		{ field: 'status', title: $t('game_control.auto_rtp.status'), slots: {default:'status'}},
-		{ title: $t('game_control.auto_rtp.auto_rtp_desc'), width: 200, slots: {default:'auto_rtp_desc'}},
-		{ fixed: 'right', title: $t('common.action'),width:150, slots: {default:'action'}},
+		{ title: $t('game_control.auto_rtp.auto_rtp_desc'), minWidth: 200, slots: {default:'auto_rtp_desc'}},
+		{ fixed: 'right', title: $t('common.action'),minWidth:150, slots: {default:'action'}},
 	],
 	exportConfig: {},
 	// height: 'auto', // 如果设置为 auto,则必须确保存在父节点且不允许存在相邻元素,否则会出现高度闪动问题

+ 1 - 1
apps/web-antd/src/views/game_control/auto_rtp/config/info.vue

@@ -182,7 +182,7 @@ const gridOptions = {
 	},
 	columns: [
 		{ title: $t('common.serial'), type: 'seq', width: 50 },
-		{ field: 'min_desc', title: $t('game_control.auto_rtp.user_rtp_change_desc'), width: 480},
+		{ field: 'min_desc', title: $t('game_control.auto_rtp.user_rtp_change_desc'), minWidth: 480},
 		{
 			title: $t('game_control.auto_rtp.new_old_diff_user'),
 			headerAlign: 'center',

+ 13 - 13
apps/web-antd/src/views/game_control/feed_user/list/index.vue

@@ -79,19 +79,19 @@ const gridOptions = {
 	// },
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
-		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), width: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
-		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), width: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
-		{ field: 'uname', title: $t('player_data.gameRecords.uname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
-		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
-		{ field: 'old_rtp', title: $t('game_control.player_control.old_rtp'), width: 150},
-		{ field: 'now_rtp', title: $t('game_control.player_control.now_rtp'), width: 150},
-		{ field: 'bet_amount', title: $t('game_control.player_control.bet_amount'), width: 150},
-		{ field: 'bet_count', title: $t('game_control.player_control.bet_count'), width: 150},
-		{ field: 'total_win_amount', title: $t('game_control.player_control.total_win_amount'), width: 150},
-		{ field: 'control_balance', title: $t('game_control.player_control.control_balance'), width: 150},
-		{ field: 'balance', title: $t('game_control.player_control.balance'), width: 150},
-		{ field: 'admin_name', title: $t('game_control.player_control.admin_name'), width: 150},
-		{ fixed: 'right', align: 'left', field: 'action', title: $t('common.action'), width: 200, slots: {"default":"action"} },
+		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), minWidth: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
+		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), minWidth: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
+		{ field: 'uname', title: $t('player_data.gameRecords.uname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
+		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
+		{ field: 'old_rtp', title: $t('game_control.player_control.old_rtp'), minWidth: 150},
+		{ field: 'now_rtp', title: $t('game_control.player_control.now_rtp'), minWidth: 150},
+		{ field: 'bet_amount', title: $t('game_control.player_control.bet_amount'), minWidth: 150},
+		{ field: 'bet_count', title: $t('game_control.player_control.bet_count'), minWidth: 150},
+		{ field: 'total_win_amount', title: $t('game_control.player_control.total_win_amount'), minWidth: 150},
+		{ field: 'control_balance', title: $t('game_control.player_control.control_balance'), minWidth: 150},
+		{ field: 'balance', title: $t('game_control.player_control.balance'), minWidth: 150},
+		{ field: 'admin_name', title: $t('game_control.player_control.admin_name'), minWidth: 150},
+		{ fixed: 'right', align: 'left', field: 'action', title: $t('common.action'), minWidth: 200, slots: {"default":"action"} },
 	],
 	exportConfig: {},
 	// height: 'auto', // 如果设置为 auto,则必须确保存在父节点且不允许存在相邻元素,否则会出现高度闪动问题

+ 12 - 12
apps/web-antd/src/views/game_control/feed_user/record/index.vue

@@ -96,18 +96,18 @@ const gridOptions = {
 	// },
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
-		{ field: 'create_time', title: $t('feed_user.record.create_time'), width: 200},
-		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), width: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
-		{ field: 'uname', title: $t('player_data.gameRecords.uname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
-		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
-		{ field: 'status_text', title: $t('feed_user.record.status'), width: 150},
-		{ field: 'evaluation_period_text', title: $t('feed_user.record.evaluation_period'), width: 250, slots: {'default':'evaluation_period'}},
-		{ field: 'net_income', title: $t('feed_user.record.net_income'), width: 150},
-		{ field: 'total_win_amount', title: $t('feed_user.record.total_win_amount'), width: 150},
-		{ field: 'control_balance', title: $t('feed_user.record.control_balance'), width: 150},
-		{ field: 'balance', title: $t('feed_user.record.balance'), width: 150},
-		{ field: 'start_end_time', title: $t('feed_user.record.start_end_time'), width: 380},
-		{ field: 'bet_amount_effective_count', title: $t('feed_user.record.bet_amount_effective_count'), width: 150, slots:{'default':'bet_amount_effective_count'}},
+		{ field: 'create_time', title: $t('feed_user.record.create_time'), minWidth: 200},
+		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), minWidth: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
+		{ field: 'uname', title: $t('player_data.gameRecords.uname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
+		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
+		{ field: 'status_text', title: $t('feed_user.record.status'), minWidth: 150},
+		{ field: 'evaluation_period_text', title: $t('feed_user.record.evaluation_period'), minWidth: 250, slots: {'default':'evaluation_period'}},
+		{ field: 'net_income', title: $t('feed_user.record.net_income'), minWidth: 150},
+		{ field: 'total_win_amount', title: $t('feed_user.record.total_win_amount'), minWidth: 150},
+		{ field: 'control_balance', title: $t('feed_user.record.control_balance'), minWidth: 150},
+		{ field: 'balance', title: $t('feed_user.record.balance'), minWidth: 150},
+		{ field: 'start_end_time', title: $t('feed_user.record.start_end_time'), minWidth: 380},
+		{ field: 'bet_amount_effective_count', title: $t('feed_user.record.bet_amount_effective_count'), minWidth: 150, slots:{'default':'bet_amount_effective_count'}},
 	],
 	exportConfig: {},
 	// height: 'auto', // 如果设置为 auto,则必须确保存在父节点且不允许存在相邻元素,否则会出现高度闪动问题

+ 10 - 10
apps/web-antd/src/views/game_control/game_config/index.vue

@@ -66,16 +66,16 @@ const gridOptions = {
 	},
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50 },
-		{ align: 'left', field: 'title', title: $t('game_control.game_list.game_title'), width: 250, slots: {default:'title'} },
-		{ field: 'title_en', title:  $t('game_control.game_list.game_en_title'), width: 200},
-		{ field: 'game_id', title: $t('game_control.game_list.game_id'), width: 140 },
-		{ field: 'rtp', title: $t('game_control.game_list.game_rtp'), width: 140, slots: {default:'rtp'}},
-		{ field: 'rtp_type_text', title: $t('game_control.game_list.game_rtp_type'), width: 140},
-		{ field: 'free_game_status', title: $t('game_control.game_list.buy_free'), width: 150},
-		{ field: 'max_multiple_count', title: $t('game_control.game_list.max_gm'), width: 150},
-		{ field: 'deposit_list', title: $t('game_control.game_list.bet_amount'), width: 120},
-		{ field: 'status_text', title: $t('game_control.game_list.game_status'), width: 120, slots: {default:'status'}},
-		{ fixed: 'right', title: $t('game_control.game_list.action'), width: 220, slots: {default:'action'}},
+		{ align: 'left', field: 'title', title: $t('game_control.game_list.game_title'), minWidth: 250, slots: {default:'title'} },
+		{ field: 'title_en', title:  $t('game_control.game_list.game_en_title'), minWidth: 200},
+		{ field: 'game_id', title: $t('game_control.game_list.game_id'), minWidth: 140 },
+		{ field: 'rtp', title: $t('game_control.game_list.game_rtp'), minWidth: 140, slots: {default:'rtp'}},
+		{ field: 'rtp_type_text', title: $t('game_control.game_list.game_rtp_type'), minWidth: 140},
+		{ field: 'free_game_status', title: $t('game_control.game_list.buy_free'), minWidth: 150},
+		{ field: 'max_multiple_count', title: $t('game_control.game_list.max_gm'), minWidth: 150},
+		{ field: 'deposit_list', title: $t('game_control.game_list.bet_amount'), minWidth: 120},
+		{ field: 'status_text', title: $t('game_control.game_list.game_status'), minWidth: 120, slots: {default:'status'}},
+		{ fixed: 'right', title: $t('game_control.game_list.action'), minWidth: 220, slots: {default:'action'}},
 	],
 	exportConfig: {},
 	// height: 'auto', // 如果设置为 auto,则必须确保存在父节点且不允许存在相邻元素,否则会出现高度闪动问题

+ 17 - 17
apps/web-antd/src/views/game_control/player_control/list/index.vue

@@ -110,24 +110,24 @@ const gridOptions = {
 	// },
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
-		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), width: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
-		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), width: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
-		{ field: 'uname', title: $t('player_data.gameRecords.uname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
-		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
-		{ align: 'left', field: 'game_title', title: $t('player_data.gameRecords.game_title'), width: 300, slots: {"default":"game_title"}},
+		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), minWidth: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
+		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), minWidth: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
+		{ field: 'uname', title: $t('player_data.gameRecords.uname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
+		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
+		{ align: 'left', field: 'game_title', title: $t('player_data.gameRecords.game_title'), minWidth: 300, slots: {"default":"game_title"}},
 
-		{ field: 'control_rpt', title: $t('game_control.player_control.control_rpt'), width: 150, },
-		{ field: 'auto_cancel_rtp', title: $t('game_control.player_control.auto_cancel_rtp'), width: 200,},
-		{ field: 'max_win_multi', title: $t('game_control.player_control.max_win_multi'), width: 150},
-		{ field: 'old_rtp', title: $t('game_control.player_control.old_rtp'), width: 150},
-		{ field: 'now_rtp', title: $t('game_control.player_control.now_rtp'), width: 150},
-		{ field: 'bet_amount', title: $t('game_control.player_control.bet_amount'), width: 150},
-		{ field: 'bet_count', title: $t('game_control.player_control.bet_count'), width: 150},
-		{ field: 'total_win_amount', title: $t('game_control.player_control.total_win_amount'), width: 150},
-		{ field: 'control_balance', title: $t('game_control.player_control.control_balance'), width: 150},
-		{ field: 'balance', title: $t('game_control.player_control.balance'), width: 150},
-		{ field: 'admin_name', title: $t('game_control.player_control.admin_name'), width: 150},
-		{ fixed: 'right', align: 'left', field: 'action', title: $t('common.action'), width: 150, slots: {"default":"action"} },
+		{ field: 'control_rpt', title: $t('game_control.player_control.control_rpt'), minWidth: 150, },
+		{ field: 'auto_cancel_rtp', title: $t('game_control.player_control.auto_cancel_rtp'), minWidth: 200,},
+		{ field: 'max_win_multi', title: $t('game_control.player_control.max_win_multi'), minWidth: 150},
+		{ field: 'old_rtp', title: $t('game_control.player_control.old_rtp'), minWidth: 150},
+		{ field: 'now_rtp', title: $t('game_control.player_control.now_rtp'), minWidth: 150},
+		{ field: 'bet_amount', title: $t('game_control.player_control.bet_amount'), minWidth: 150},
+		{ field: 'bet_count', title: $t('game_control.player_control.bet_count'), minWidth: 150},
+		{ field: 'total_win_amount', title: $t('game_control.player_control.total_win_amount'), minWidth: 150},
+		{ field: 'control_balance', title: $t('game_control.player_control.control_balance'), minWidth: 150},
+		{ field: 'balance', title: $t('game_control.player_control.balance'), minWidth: 150},
+		{ field: 'admin_name', title: $t('game_control.player_control.admin_name'), minWidth: 150},
+		{ fixed: 'right', align: 'left', field: 'action', title: $t('common.action'), minWidth: 150, slots: {"default":"action"} },
 	],
 	exportConfig: {},
 	// height: 'auto', // 如果设置为 auto,则必须确保存在父节点且不允许存在相邻元素,否则会出现高度闪动问题

+ 17 - 17
apps/web-antd/src/views/game_control/player_control/record/index.vue

@@ -110,24 +110,24 @@ const gridOptions = {
 	// },
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
-		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), width: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
-		{ field: 'end_time', title: $t('game_control.player_control.end_time'), width: 200 },
-		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), width: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
-		{ field: 'uname', title: $t('player_data.gameRecords.uname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
-		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
-		{ align: 'left', field: 'game_title', title: $t('player_data.gameRecords.game_title'), width: 300, slots: {"default":"game_title"}},
+		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), minWidth: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
+		{ field: 'end_time', title: $t('game_control.player_control.end_time'), minWidth: 200 },
+		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), minWidth: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
+		{ field: 'uname', title: $t('player_data.gameRecords.uname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
+		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
+		{ align: 'left', field: 'game_title', title: $t('player_data.gameRecords.game_title'), minWidth: 300, slots: {"default":"game_title"}},
 
-		{ field: 'control_rpt', title: $t('game_control.player_control.control_rpt'), width: 150, },
-		{ field: 'auto_cancel_rtp', title: $t('game_control.player_control.auto_cancel_rtp'), width: 200,},
-		{ field: 'max_win_multi', title: $t('game_control.player_control.max_win_multi'), width: 150},
-		{ field: 'old_rtp', title: $t('game_control.player_control.old_rtp'), width: 150},
-		{ field: 'now_rtp', title: $t('game_control.player_control.now_rtp'), width: 150},
-		{ field: 'bet_amount', title: $t('game_control.player_control.bet_amount'), width: 150},
-		{ field: 'bet_count', title: $t('game_control.player_control.bet_count'), width: 150},
-		{ field: 'total_win_amount', title: $t('game_control.player_control.total_win_amount'), width: 150},
-		{ field: 'control_balance', title: $t('game_control.player_control.control_balance'), width: 150},
-		{ field: 'balance', title: $t('game_control.player_control.balance'), width: 150},
-		{ field: 'admin_name', title: $t('game_control.player_control.admin_name'), width: 150},
+		{ field: 'control_rpt', title: $t('game_control.player_control.control_rpt'), minWidth: 150, },
+		{ field: 'auto_cancel_rtp', title: $t('game_control.player_control.auto_cancel_rtp'), minWidth: 200,},
+		{ field: 'max_win_multi', title: $t('game_control.player_control.max_win_multi'), minWidth: 150},
+		{ field: 'old_rtp', title: $t('game_control.player_control.old_rtp'), minWidth: 150},
+		{ field: 'now_rtp', title: $t('game_control.player_control.now_rtp'), minWidth: 150},
+		{ field: 'bet_amount', title: $t('game_control.player_control.bet_amount'), minWidth: 150},
+		{ field: 'bet_count', title: $t('game_control.player_control.bet_count'), minWidth: 150},
+		{ field: 'total_win_amount', title: $t('game_control.player_control.total_win_amount'), minWidth: 150},
+		{ field: 'control_balance', title: $t('game_control.player_control.control_balance'), minWidth: 150},
+		{ field: 'balance', title: $t('game_control.player_control.balance'), minWidth: 150},
+		{ field: 'admin_name', title: $t('game_control.player_control.admin_name'), minWidth: 150},
 	],
 	exportConfig: {},
 	// height: 'auto', // 如果设置为 auto,则必须确保存在父节点且不允许存在相邻元素,否则会出现高度闪动问题

+ 169 - 0
apps/web-antd/src/views/game_data/bet_level/index.vue

@@ -0,0 +1,169 @@
+<script setup>
+import {Page} from "@vben/common-ui";
+import dayjs from "dayjs";
+import {$t} from "@vben/locales";
+import {useVbenVxeGrid} from "#/adapter/vxe-table.js";
+import {getDailyGameList} from "#/api/data_statistics/daily_game.js";
+import {ref, reactive} from "vue";
+import {getGameMinList} from "#/api/game_control/game_config.js";
+import {Avatar, Tag, Statistic, Row, Col} from "ant-design-vue";
+import {getBetLevelList} from "#/api/game_data/bet_level.js";
+
+const disabledDate = (current) => {
+	return current && current > dayjs().endOf('day');
+};
+const filterGameList = ref([]);
+getGameMinList().then((data) => {
+	data.forEach((game) => {
+		filterGameList.value.push({
+			'label': `【${game.game_id}】${game.title}`,
+			'value': game.game_id,
+		})
+	})
+})
+
+const formOptions = {
+	// 默认展开
+	collapsed: false,
+	// 所有表单项共用,可单独在表单内覆盖
+	commonConfig: {
+		// 所有表单项
+		componentProps: {
+			class: 'w-full',
+		},
+	},
+	// 垂直布局,label和input在不同行,值为vertical
+	// 水平布局,label和input在同一行
+	layout: 'horizontal',
+	schema: [
+		{
+			component: 'Select',
+			componentProps: {
+				allowClear: true,
+				filterOption: true,
+				name:'game_id',
+				options: filterGameList,
+				placeholder: $t('common.placeholder_select'),
+				showSearch: true,
+				mode:"tags",
+				maxTagCount: 3
+			},
+			fieldName: 'game_id',
+			label: $t('game_control.game'),
+		},
+		{
+			label:$t("common.day_range_time"),
+			component: 'RangePicker',
+			defaultValue: [dayjs(), dayjs()],
+			fieldName: 'range_time',
+			componentProps: {
+				disabledDate: disabledDate,
+			}
+		},
+	],
+	// 是否可展开
+	submitButtonOptions: {
+		content: $t('common.search_submit_button'),
+	},
+	showCollapseButton: false,
+	wrapperClass: 'grid-cols-1 md:grid-cols-3',
+}
+
+// 列表
+const gridOptions = {
+	border: true,
+	stripe: true,
+	scrollbarConfig: {
+		x: {
+			visible: 'visible'
+		},
+		y: {
+			visible: 'auto'
+		}
+	},
+	columns: [
+		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
+		{ align: 'left', field: 'game_title', title: $t('game_control.game_list.game_title'), minWidth: 200, slots: {'default':'game_title'}},
+		{ field: 'bet', title: $t('game_data.bet_level.bet'), minWidth: 160},
+		{ field: 'total_bet', title: $t('game_data.bet_level.total_bet'), minWidth: 160},
+		{ field: 'total_bet_rate', title: $t('game_data.bet_level.total_bet_rate'), minWidth: 160, slots: {'default':'total_bet_rate'}},
+		{ field: 'bet_count', title: $t('game_data.bet_level.bet_count'), minWidth: 160},
+		{ field: 'bet_count_rate', title: $t('game_data.bet_level.bet_count_rate'), minWidth: 160, slots: {'default':'bet_count_rate'}},
+		{ field: 'total_score', title: $t('game_data.bet_level.total_score'), minWidth:160},
+		{ field: 'total_win', title: $t('game_data.bet_level.total_win'), minWidth: 160, slots: {'default':'total_win'}},
+		{ field: 'game_rtp', title: $t('game_data.bet_level.game_rtp'), minWidth: 160},
+	],
+	keepSource: true,
+	proxyConfig: {
+		ajax: {
+			query: async ({ page }) => {
+				let form = {
+					page: page.currentPage,
+					limit: page.pageSize,
+					compress: 0
+				};
+				const search = await gridApi.formApi.getValues();
+				for (let key in search) {
+					if(search[key]) {
+						form[key] = search[key];
+					}
+				}
+				if(search.range_time) {
+					if(form.range_time) {
+						delete form.range_time;
+					}
+					form['start_time'] = search.range_time[0].format('YYYY-MM-DD');
+					form['end_time'] = search.range_time[1].format('YYYY-MM-DD');
+				}
+				const list = await getBetLevelList(form);
+				return {
+					total: list.total,
+					items: list.list
+				}
+			},
+		},
+	},
+	rowConfig: {
+		isHover: true,
+	},
+	toolbarConfig: {
+		custom: true,
+		export: true,
+		// import: true,
+		refresh: true,
+		zoom: true,
+	},
+};
+const [Grid, gridApi] = useVbenVxeGrid({
+	formOptions,
+	gridOptions,
+});
+</script>
+
+<template>
+	<Page>
+		<Grid>
+			<template #total_win="{ row }">
+				<span style="color:green" v-if="row.total_win >= 0">{{row.total_win}}</span>
+				<span style="color:red" v-else>{{row.total_win}}</span>
+			</template>
+			<template #game_title="{ row }">
+				<div>
+					<Tag  color="blue" size="large">{{row.game_type_text}}</Tag>
+					<Avatar shape="square" :src="row.game_image_url"></Avatar>
+					<span style="margin-left: .5rem;display: inline-block;">{{row.game_title}}</span>
+				</div>
+			</template>
+			<template #total_bet_rate="{ row }">
+				{{row.total_bet_rate}}%
+			</template>
+			<template #bet_count_rate="{ row }">
+				{{row.bet_count_rate}}%
+			</template>
+		</Grid>
+	</Page>
+</template>
+
+<style scoped>
+
+</style>

+ 190 - 0
apps/web-antd/src/views/game_data/game_summary/index.vue

@@ -0,0 +1,190 @@
+<script setup>
+import {Page} from "@vben/common-ui";
+import dayjs from "dayjs";
+import {$t} from "@vben/locales";
+import {useVbenVxeGrid} from "#/adapter/vxe-table.js";
+import {getDailyGameList} from "#/api/data_statistics/daily_game.js";
+import {ref, reactive} from "vue";
+import {getGameMinList} from "#/api/game_control/game_config.js";
+import {Avatar, Tag, Statistic, Row, Col} from "ant-design-vue";
+import {getGameSummaryList} from "#/api/game_data/game_statis.js";
+
+const disabledDate = (current) => {
+	return current && current > dayjs().endOf('day');
+};
+const filterGameList = ref([]);
+getGameMinList().then((data) => {
+	data.forEach((game) => {
+		filterGameList.value.push({
+			'label': `【${game.game_id}】${game.title}`,
+			'value': game.game_id,
+		})
+	})
+})
+
+let summaryData = reactive({
+	total_bet:0.00,
+	total_bet_count:0,
+	total_win:0.00,
+	total_user_count: 0
+});
+
+const formOptions = {
+	// 默认展开
+	collapsed: false,
+	// 所有表单项共用,可单独在表单内覆盖
+	commonConfig: {
+		// 所有表单项
+		componentProps: {
+			class: 'w-full',
+		},
+	},
+	// 垂直布局,label和input在不同行,值为vertical
+	// 水平布局,label和input在同一行
+	layout: 'horizontal',
+	schema: [
+		{
+			component: 'Select',
+			componentProps: {
+				allowClear: true,
+				filterOption: true,
+				name:'game_id',
+				options: filterGameList,
+				placeholder: $t('common.placeholder_select'),
+				showSearch: true,
+				mode:"tags",
+				maxTagCount: 3
+			},
+			fieldName: 'game_id',
+			label: $t('game_control.game'),
+		},
+		{
+			label:$t("common.day_range_time"),
+			component: 'RangePicker',
+			defaultValue: [dayjs(), dayjs()],
+			fieldName: 'range_time',
+			componentProps: {
+				disabledDate: disabledDate,
+			}
+		},
+	],
+	// 是否可展开
+	submitButtonOptions: {
+		content: $t('common.search_submit_button'),
+	},
+	showCollapseButton: false,
+	wrapperClass: 'grid-cols-1 md:grid-cols-3',
+}
+
+// 列表
+const gridOptions = {
+	border: true,
+	stripe: true,
+	scrollbarConfig: {
+		x: {
+			visible: 'visible'
+		},
+		y: {
+			visible: 'auto'
+		}
+	},
+	columns: [
+		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
+		{ align: 'left', field: 'game_title', title: $t('game_control.game_list.game_title'), minWidth: 200, slots: {'default':'game_title'}},
+		{ field: 'rtp', title: $t('game_data.game_summary.rtp'), minWidth: 160},
+		{ field: 'game_rtp', title: $t('game_data.game_summary.game_rtp'), minWidth: 160},
+		{ field: 'history_rtp', title: $t('game_data.game_summary.history_rtp'), minWidth: 160},
+		{ field: 'total_bet', title: $t('data_statistics.daily_agent.bet_amount'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_amount_desc')}},
+		{ field: 'bet_count', title: $t('data_statistics.daily_agent.bet_count'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_count_desc')}},
+		{ field: 'total_win', title: $t('data_statistics.daily_agent.game_profit'), minWidth:160, titlePrefix: {'content':$t('data_statistics.daily_agent.game_profit_desc')}, slots:{'default':'total_win'}},
+		{ field: 'user_count', title: $t('data_statistics.daily_agent.bet_users'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.bet_users_desc')}},
+		{ field: 'buy_game_amount', title: $t('data_statistics.daily_agent.buy_free_bet'), minWidth: 160, titlePrefix: {'content':$t('data_statistics.daily_agent.buy_free_bet_desc')}},
+	],
+	keepSource: true,
+	proxyConfig: {
+		ajax: {
+			query: async ({ page }) => {
+				let form = {
+					page: page.currentPage,
+					limit: page.pageSize,
+					compress: 0
+				};
+				const search = await gridApi.formApi.getValues();
+				for (let key in search) {
+					if(search[key]) {
+						form[key] = search[key];
+					}
+				}
+				if(search.range_time) {
+					if(form.range_time) {
+						delete form.range_time;
+					}
+					form['start_time'] = search.range_time[0].format('YYYY-MM-DD');
+					form['end_time'] = search.range_time[1].format('YYYY-MM-DD');
+				}
+				const list = await getGameSummaryList(form);
+				summaryData.total_bet = list.summary.total_bet;
+				summaryData.total_bet_count = list.summary.total_bet_count;
+				summaryData.total_win = list.summary.total_win;
+				summaryData.total_user_count = list.summary.total_user_count;
+				return {
+					total: list.total,
+					items: list.list
+				}
+			},
+		},
+	},
+	rowConfig: {
+		isHover: true,
+	},
+	toolbarConfig: {
+		custom: true,
+		export: true,
+		// import: true,
+		refresh: true,
+		zoom: true,
+	},
+};
+const [Grid, gridApi] = useVbenVxeGrid({
+	formOptions,
+	gridOptions,
+});
+</script>
+
+<template>
+	<Page>
+		<Grid>
+			<template #total_win="{ row }">
+				<span style="color:green" v-if="row.total_win >= 0">{{row.total_win}}</span>
+				<span style="color:red" v-else>{{row.total_win}}</span>
+			</template>
+			<template #game_title="{ row }">
+				<div>
+					<Tag  color="blue" size="large">{{row.game_type_text}}</Tag>
+					<Avatar shape="square" :src="row.game_image_url"></Avatar>
+					<span style="margin-left: .5rem;display: inline-block;">{{row.game_title}}</span>
+				</div>
+			</template>
+			<template #toolbar-actions>
+				<Row class="w-full">
+					<Col :span="3">
+						<Statistic :title="$t('game_data.game_summary.total_bet')" :value="summaryData.total_bet"></Statistic>
+					</Col>
+					<Col :span="2">
+						<Statistic :title="$t('game_data.game_summary.total_bet_count')" :value="summaryData.total_bet_count"></Statistic>
+					</Col>
+					<Col :span="3">
+						<Statistic :title="$t('game_data.game_summary.total_win')" :value-style="{ color: summaryData.total_win >= 0 ? 'green' : 'red' }" :value="summaryData.total_win"></Statistic>
+					</Col>
+					<Col :span="2">
+						<Statistic :title="$t('game_data.game_summary.total_user_count')" :value="summaryData.total_user_count"></Statistic>
+					</Col>
+				</Row>
+			</template>
+		</Grid>
+	</Page>
+</template>
+
+<style scoped>
+
+</style>

+ 17 - 17
apps/web-antd/src/views/player_data/funds_change/index.vue

@@ -153,23 +153,23 @@ const gridOptions = {
 	// },
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
-		{ fixed: 'left', field: 'third_gid', title: $t('player_data.search.third_gid'), width: 230, titlePrefix: {'content':$t('player_data.gameRecords.tips.third_gid')}, treeNode: true  },
-		{ field: 'third_order_id', title:  $t('player_data.fundsChange.uuid'), width: 230},
-		{ field: 'third_round_id', title: $t('player_data.gameRecords.third_round_id'), width: 230, titlePrefix: {'content':$t('player_data.gameRecords.tips.third_round_id')} },
-		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
-		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), width: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
-		{ field: 'uname', title: $t('player_data.gameRecords.uname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
-		{ align: 'left', field: 'game_title', title: $t('player_data.gameRecords.game_title'), width: 200, slots: {"default":"game_title"}},
-		{ field: 'amount', title: $t('player_data.fundsChange.change_amount'), width: 140, slots: {'default':'amount'}},
-		{ field: 'prev_amount', title: $t('player_data.gameRecords.prev_amount'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.prev_amount')}},
-		{ field: 'next_amount', title: $t('player_data.gameRecords.next_amount'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.next_amount')}},
-		{ field: 'bet', title: $t('player_data.fundsChange.bet_amount'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.bet_amount')}, slots: {'default':'bet_amount'}},
-		{ field: 'total_win_amount', title: $t('player_data.fundsChange.change_total_amount'), width: 140,  slots: {'default':'total_win_amount'}},
-		{ field: 'total_amount', title: $t('player_data.fundsChange.total_amount'), width: 140,},
-		{ field: 'action_type', title: $t('player_data.fundsChange.order_type'), width: 140, slots: {'default':'action_type'}},
-		{ field: 'status', title: $t('player_data.fundsChange.order_status'), width: 140, slots: {'default':'status'}},
-		{ field: 'reason', title: $t('player_data.fundsChange.reason'), width: 200},
-		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), width: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
+		{ fixed: 'left', field: 'third_gid', title: $t('player_data.search.third_gid'), minWidth: 230, titlePrefix: {'content':$t('player_data.gameRecords.tips.third_gid')}, treeNode: true  },
+		{ field: 'third_order_id', title:  $t('player_data.fundsChange.uuid'), minWidth: 230},
+		{ field: 'third_round_id', title: $t('player_data.gameRecords.third_round_id'), minWidth: 230, titlePrefix: {'content':$t('player_data.gameRecords.tips.third_round_id')} },
+		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
+		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), minWidth: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
+		{ field: 'uname', title: $t('player_data.gameRecords.uname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
+		{ align: 'left', field: 'game_title', title: $t('player_data.gameRecords.game_title'), minWidth: 200, slots: {"default":"game_title"}},
+		{ field: 'amount', title: $t('player_data.fundsChange.change_amount'), minWidth: 140, slots: {'default':'amount'}},
+		{ field: 'prev_amount', title: $t('player_data.gameRecords.prev_amount'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.prev_amount')}},
+		{ field: 'next_amount', title: $t('player_data.gameRecords.next_amount'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.next_amount')}},
+		{ field: 'bet', title: $t('player_data.fundsChange.bet_amount'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.bet_amount')}, slots: {'default':'bet_amount'}},
+		{ field: 'total_win_amount', title: $t('player_data.fundsChange.change_total_amount'), minWidth: 140,  slots: {'default':'total_win_amount'}},
+		{ field: 'total_amount', title: $t('player_data.fundsChange.total_amount'), minWidth: 140,},
+		{ field: 'action_type', title: $t('player_data.fundsChange.order_type'), minWidth: 140, slots: {'default':'action_type'}},
+		{ field: 'status', title: $t('player_data.fundsChange.order_status'), minWidth: 140, slots: {'default':'status'}},
+		{ field: 'reason', title: $t('player_data.fundsChange.reason'), minWidth: 200},
+		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), minWidth: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
 		// { align:"left", title: $t('game_control.game_list.action'), width: 220, slots: {default:'action'}},
 	],
 	exportConfig: {},

+ 20 - 20
apps/web-antd/src/views/player_data/game_records/index.vue

@@ -144,26 +144,26 @@ const gridOptions = {
 	// },
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50},
-		{ fixed: 'left', field: 'third_gid', title: $t('player_data.gameRecords.third_gid'), width: 230, titlePrefix: {'content':$t('player_data.gameRecords.tips.third_gid')}, treeNode: true  },
-		{ field: 'uuid', title:  $t('player_data.gameRecords.uuid'), width: 230},
-		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), width: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
-		{ field: 'third_round_id', title: $t('player_data.gameRecords.third_round_id'), width: 230, titlePrefix: {'content':$t('player_data.gameRecords.tips.third_round_id')} },
-		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
-		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), width: 100, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
-		{ field: 'uname', title: $t('player_data.gameRecords.uname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
-		{ align: 'left', field: 'game_title', title: $t('player_data.gameRecords.game_title'), width: 200, slots: {'default':'game_title'}},
-		{ field: 'bet_game_play_type', title: $t('player_data.gameRecords.game_play'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.game_play')}},
-		{ field: 'control_state', title: $t('player_data.gameRecords.control_state'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.control_state')}},
-		{ field: 'trigger_mode', title: $t('player_data.gameRecords.trigger_mode'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.trigger_mode')}},
-		{ field: 'rtp', title: $t('player_data.gameRecords.rtp'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.rtp')}},
-		{ field: 'bet', title: $t('player_data.gameRecords.bet_amount'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.bet_amount')}, slots: {'default':'bet_amount'}},
-		{ field: 'should_bet_result', title: $t('player_data.gameRecords.should_bet_result'), width: 140},
-		{ field: 'win_amount', title: $t('player_data.gameRecords.win_amount'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.win_amount')}, slots: {'default':'win_amount'}},
-		{ field: 'prev_amount', title: $t('player_data.gameRecords.prev_amount'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.prev_amount')}},
-		{ field: 'next_amount', title: $t('player_data.gameRecords.next_amount'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.next_amount')}},
-		{ field: 'total_win_amount', title: $t('player_data.gameRecords.total_win_amount'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.total_win_amount')}, slots: {'default':'total_win_amount'}},
-		{ field: 'balance_amount', title: $t('player_data.gameRecords.balance_amount'), width: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.balance_amount')}},
-		{ fixed: 'right', align:"left", title: $t('game_control.game_list.action'), width: 220, slots: {default:'action'}},
+		{ fixed: 'left', field: 'third_gid', title: $t('player_data.gameRecords.third_gid'), minWidth: 230, titlePrefix: {'content':$t('player_data.gameRecords.tips.third_gid')}, treeNode: true  },
+		{ field: 'uuid', title:  $t('player_data.gameRecords.uuid'), minWidth: 230},
+		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), minWidth: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
+		{ field: 'third_round_id', title: $t('player_data.gameRecords.third_round_id'), minWidth: 230, titlePrefix: {'content':$t('player_data.gameRecords.tips.third_round_id')} },
+		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
+		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), minWidth: 100, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
+		{ field: 'uname', title: $t('player_data.gameRecords.uname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
+		{ align: 'left', field: 'game_title', title: $t('player_data.gameRecords.game_title'), minWidth: 200, slots: {'default':'game_title'}},
+		{ field: 'bet_game_play_type', title: $t('player_data.gameRecords.game_play'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.game_play')}},
+		{ field: 'control_state', title: $t('player_data.gameRecords.control_state'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.control_state')}},
+		{ field: 'trigger_mode', title: $t('player_data.gameRecords.trigger_mode'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.trigger_mode')}},
+		{ field: 'rtp', title: $t('player_data.gameRecords.rtp'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.rtp')}},
+		{ field: 'bet', title: $t('player_data.gameRecords.bet_amount'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.bet_amount')}, slots: {'default':'bet_amount'}},
+		{ field: 'should_bet_result', title: $t('player_data.gameRecords.should_bet_result'), minWidth: 140},
+		{ field: 'win_amount', title: $t('player_data.gameRecords.win_amount'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.win_amount')}, slots: {'default':'win_amount'}},
+		{ field: 'prev_amount', title: $t('player_data.gameRecords.prev_amount'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.prev_amount')}},
+		{ field: 'next_amount', title: $t('player_data.gameRecords.next_amount'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.next_amount')}},
+		{ field: 'total_win_amount', title: $t('player_data.gameRecords.total_win_amount'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.total_win_amount')}, slots: {'default':'total_win_amount'}},
+		{ field: 'balance_amount', title: $t('player_data.gameRecords.balance_amount'), minWidth: 140, titlePrefix: {'content':$t('player_data.gameRecords.tips.balance_amount')}},
+		{ fixed: 'right', align:"left", title: $t('game_control.game_list.action'), minWidth: 220, slots: {default:'action'}},
 		// { field: 'next_amount', title: $t('player_data.playlist.reg_ip'), width: 140},
 		// { field: 'releaseDate', formatter: 'formatDateTime', title: 'DateTime' },
 	],

+ 13 - 13
apps/web-antd/src/views/player_data/player_list/index.vue

@@ -94,19 +94,19 @@ const gridOptions = {
 	},
 	columns: [
 		{ fixed: 'left',  title: $t('common.serial'), type: 'seq', width: 50 },
-		{ field: 'user_id', title: $t('player_data.playlist.user_id'), width: 100 },
-		{ field: 'uname', title:  $t('player_data.playlist.uname'), width: 120, slots: {default:'uname'}},
-		{ field: 'nickname', title: $t('player_data.playlist.nickname'), width: 140 },
-		{ field: 'status_text', title: $t('player_data.playlist.status'), width: 100, slots: {default:'status'} },
-		{ field: 'today_win_amount', title: $t('player_data.playlist.today_win'), width: 100, slots: { default: 'today-win-amount' },},
-		{ field: 'history_win_amount', title: $t('player_data.playlist.history_win'), width: 100, slots: { default: 'history-win-amount' }},
-		{ field: 'today_bet_amount', title: $t('player_data.playlist.today_bet'), width: 100},
-		{ field: 'balance', title: $t('player_data.playlist.balance'), width: 120},
-		{ field: 'adjust_status_text', title: $t('player_data.playlist.regulation_status'), width: 100, slots: {default: 'adjust-status'}},
-		{ field: 'today_login_count', title: $t('player_data.playlist.today_login_count'), width: 100},
-		{ field: 'history_login_count', title: $t('player_data.playlist.history_login_count'), width: 100},
-		{ field: 'login_ip', title: $t('player_data.playlist.login_ip'), width: 140},
-		{ field: 'reg_ip', title: $t('player_data.playlist.reg_ip'), width: 140},
+		{ field: 'user_id', title: $t('player_data.playlist.user_id'), minWidth: 100 },
+		{ field: 'uname', title:  $t('player_data.playlist.uname'), minWidth: 120, slots: {default:'uname'}},
+		{ field: 'nickname', title: $t('player_data.playlist.nickname'), minWidth: 140 },
+		{ field: 'status_text', title: $t('player_data.playlist.status'), minWidth: 100, slots: {default:'status'} },
+		{ field: 'today_win_amount', title: $t('player_data.playlist.today_win'), minWidth: 100, slots: { default: 'today-win-amount' },},
+		{ field: 'history_win_amount', title: $t('player_data.playlist.history_win'), minWidth: 100, slots: { default: 'history-win-amount' }},
+		{ field: 'today_bet_amount', title: $t('player_data.playlist.today_bet'), minWidth: 100},
+		{ field: 'balance', title: $t('player_data.playlist.balance'), minWidth: 120},
+		{ field: 'adjust_status_text', title: $t('player_data.playlist.regulation_status'), minWidth: 100, slots: {default: 'adjust-status'}},
+		{ field: 'today_login_count', title: $t('player_data.playlist.today_login_count'), minWidth: 100},
+		{ field: 'history_login_count', title: $t('player_data.playlist.history_login_count'), minWidth: 100},
+		{ field: 'login_ip', title: $t('player_data.playlist.login_ip'), minWidth: 140},
+		{ field: 'reg_ip', title: $t('player_data.playlist.reg_ip'), minWidth: 140},
 		// { field: 'releaseDate', formatter: 'formatDateTime', title: 'DateTime' },
 	],
 	exportConfig: {},

+ 9 - 9
apps/web-antd/src/views/player_data/transform_records/index.vue

@@ -118,15 +118,15 @@ const gridOptions = {
 	},
 	columns: [
 		{ field: 'create_time', title: $t('player_data.gameRecords.create_time'), width: 200, titlePrefix: {'content':$t('player_data.gameRecords.tips.create_time')} },
-		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), width: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
-		{ field: 'uname', title: $t('player_data.gameRecords.uname'), width: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
-		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), width: 180, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
-		{ field: 'tx_id', title: $t('player_data.transferLog.tx_id'), width:200},
-		{ field: 'amount', title: $t('player_data.transferLog.amount'), width:200},
-		{ field: 'prev_amount', title: $t('player_data.transferLog.prev_amount'), width: 160},
-		{ field: 'next_amount', title: $t('player_data.transferLog.next_amount'), width: 160},
-		{ field: 'status', title: $t('player_data.fundsChange.order_status'), width: 140, slots: {'default':'status'}},
-		{ field: 'ip', title: "IP", width: 140},
+		{ field: 'user_id', title: $t('player_data.gameRecords.user_id'), minWidth: 120, titlePrefix: {'content':$t('player_data.gameRecords.tips.user_id')}},
+		{ field: 'uname', title: $t('player_data.gameRecords.uname'), minWidth: 150, titlePrefix: {'content':$t('player_data.gameRecords.tips.uname')}},
+		{ field: 'nickname', title: $t('player_data.gameRecords.nickname'), minWidth: 180, titlePrefix: {'content':$t('player_data.gameRecords.tips.nickname')}},
+		{ field: 'tx_id', title: $t('player_data.transferLog.tx_id'), minWidth:200},
+		{ field: 'amount', title: $t('player_data.transferLog.amount'), minWidth:200},
+		{ field: 'prev_amount', title: $t('player_data.transferLog.prev_amount'), minWidth: 160},
+		{ field: 'next_amount', title: $t('player_data.transferLog.next_amount'), minWidth: 160},
+		{ field: 'status', title: $t('player_data.fundsChange.order_status'), minWidth: 140, slots: {'default':'status'}},
+		{ field: 'ip', title: "IP", minWidth: 140},
 	],
 	keepSource: true,
 	proxyConfig: {

+ 5 - 5
apps/web-antd/src/views/user/role_list/index.vue

@@ -18,12 +18,12 @@ const gridOptions = {
   },
   columns: [
     { fixed: 'left', title: '序号', type: 'seq', width: 60 },
-    { field: 'id', title: '角色ID', width: 80 },
-    { field: 'role_name', title: '角色名称', width: 150 },
+    { field: 'id', title: '角色ID', minWidth: 80 },
+    { field: 'role_name', title: '角色名称', minWidth: 150 },
     { field: 'privileges', title: '权限', slots: { default: 'privileges' } },
-    { field: 'create_time', title: '创建时间', width: 180 },
-    { field: 'update_time', title: '更新时间', width: 180 },
-    { fixed: 'right', title: '操作', width: 120, slots: { default: 'action' } },
+    { field: 'create_time', title: '创建时间', minWidth: 180 },
+    { field: 'update_time', title: '更新时间', minWidth: 180 },
+    { fixed: 'right', title: '操作', minWidth: 120, slots: { default: 'action' } },
   ],
   exportConfig: {},
   keepSource: true,

+ 10 - 10
apps/web-antd/src/views/user/user_list/index.vue

@@ -102,16 +102,16 @@ const gridOptions = {
   },
   columns: [
     { fixed: 'left', title: $t('common.serial'), type: 'seq', width: 60 },
-    { field: 'user_id', title: $t('user.table.user_id'), width: 60 },
-    { field: 'user_name', title: $t('user.table.user_name'), width: 100 },
-    { field: 'nick_name', title: $t('user.table.nick_name'), width: 150 },
-    { field: 'phone', title: $t('user.table.phone'), width: 150 },
-    { field: 'role_name', title: $t('user.table.role_name'), width: 150, slots: { default: 'role' } },
-    { field: 'white_list_ip', title: $t('user.table.white_list_ip'), width: 150, slots: { default: 'ip' } },
-    { field: 'create_time', title: $t('user.table.create_time'), width: 180 },
-    { field: 'login_time', title: $t('user.table.login_time'), width: 180, slots: { default: 'login_time' } },
-    { field: 'update_time', title: $t('user.table.update_time'), width: 180 },
-    { fixed: 'right', title: $t('user.table.action'), width: 120, slots: { default: 'action' } },
+    { field: 'user_id', title: $t('user.table.user_id'), minWidth: 60 },
+    { field: 'user_name', title: $t('user.table.user_name'), minWidth: 100 },
+    { field: 'nick_name', title: $t('user.table.nick_name'), minWidth: 150 },
+    { field: 'phone', title: $t('user.table.phone'), minWidth: 150 },
+    { field: 'role_name', title: $t('user.table.role_name'), minWidth: 150, slots: { default: 'role' } },
+    { field: 'white_list_ip', title: $t('user.table.white_list_ip'), minWidth: 150, slots: { default: 'ip' } },
+    { field: 'create_time', title: $t('user.table.create_time'), minWidth: 180 },
+    { field: 'login_time', title: $t('user.table.login_time'), minWidth: 180, slots: { default: 'login_time' } },
+    { field: 'update_time', title: $t('user.table.update_time'), minWidth: 180 },
+    { fixed: 'right', title: $t('user.table.action'), minWidth: 120, slots: { default: 'action' } },
   ],
   exportConfig: {},
   keepSource: true,

+ 2 - 2
apps/web-antd/vite.config.mts

@@ -9,8 +9,8 @@ export default defineConfig(async () => {
           '/api': {
             changeOrigin: true,
             rewrite: (path) => path.replace(/^\/api/, ''),
-              // target: 'https://merchant.w115.net',
-              target: 'http://merchant.uwigb.mynatapp.cc',
+              target: 'https://merchant.w115.net',
+              // target: 'http://merchant.uwigb.mynatapp.cc',
             // ws: true,
           },
         },