ssvfdn 3 月之前
父節點
當前提交
20993f7fc8
共有 24 個文件被更改,包括 499 次插入20 次删除
  1. 25 0
      apps/web-antd/src/api/game_control/player_control.ts
  2. 2 1
      apps/web-antd/src/locales/langs/zh-CN/common.json
  3. 6 0
      apps/web-antd/src/locales/langs/zh-CN/game_control.json
  4. 20 0
      apps/web-antd/src/router/routes/modules/game_control.ts
  5. 1 1
      apps/web-antd/src/views/data_statistics/agent/index.vue
  6. 1 1
      apps/web-antd/src/views/data_statistics/daily/agent/index.vue
  7. 1 1
      apps/web-antd/src/views/data_statistics/daily/game/index.vue
  8. 1 1
      apps/web-antd/src/views/data_statistics/rank/bet/index.vue
  9. 1 1
      apps/web-antd/src/views/data_statistics/rank/lose/index.vue
  10. 1 1
      apps/web-antd/src/views/data_statistics/rank/win/index.vue
  11. 1 1
      apps/web-antd/src/views/data_statistics/trend/agent/index.vue
  12. 1 1
      apps/web-antd/src/views/data_statistics/trend/rewards/index.vue
  13. 1 1
      apps/web-antd/src/views/data_statistics/trend/win_lose/index.vue
  14. 2 2
      apps/web-antd/src/views/game_control/game_config/game_info.vue
  15. 1 1
      apps/web-antd/src/views/game_control/game_config/index.vue
  16. 170 0
      apps/web-antd/src/views/game_control/player_control/list/create_player.vue
  17. 257 0
      apps/web-antd/src/views/game_control/player_control/list/index.vue
  18. 1 1
      apps/web-antd/src/views/log/agent/login/index.vue
  19. 1 1
      apps/web-antd/src/views/log/agent/operation/index.vue
  20. 1 1
      apps/web-antd/src/views/player_data/funds_change/index.vue
  21. 1 1
      apps/web-antd/src/views/player_data/game_records/index.vue
  22. 1 1
      apps/web-antd/src/views/player_data/player_list/index.vue
  23. 1 1
      apps/web-antd/src/views/player_data/transform_records/index.vue
  24. 1 1
      apps/web-antd/src/views/user/user_list/index.vue

+ 25 - 0
apps/web-antd/src/api/game_control/player_control.ts

@@ -0,0 +1,25 @@
+import {requestBodyClient, requestClient} from "#/api/request";
+
+interface ApiResultListData {
+    data: Object;
+    status: number;
+    total: number;
+    list: Array<any>;
+}
+
+/**
+ * 获取点控记录列表
+ */
+export async function getPlayerControlList(data:any) {
+    const params = new URLSearchParams(data); // 创建一个新的URLSearchParams对象
+    const queryString = params.toString(); // 转换为查询字符串
+    return requestClient.get<ApiResultListData>('/player_control/list?' + queryString);
+}
+
+/**
+ * 增加和更新点控
+ * @param data
+ */
+export async function updatePlayerControlInfo(data:any) {
+    return requestBodyClient.post<ApiResultData>('/player_control/update', data);
+}

+ 2 - 1
apps/web-antd/src/locales/langs/zh-CN/common.json

@@ -10,5 +10,6 @@
     "abnormal": "异常",
     "warn": "警告",
     "warning": "待处理",
-    "serial": "序号"
+    "serial": "序号",
+    "search_submit_button": "查询"
 }

+ 6 - 0
apps/web-antd/src/locales/langs/zh-CN/game_control.json

@@ -2,6 +2,8 @@
     "title": "游戏调控",
     "game_config": "游戏配置",
     "game": "游戏",
+    "play_control_title": "玩家点控",
+    "play_control_list_title": "点控列表",
     "game_list": {
         "game_title": "游戏名称",
         "game_en_title": "游戏英文名称",
@@ -15,5 +17,9 @@
         "action": "操作",
         "confirm_title": "确认要开启【{title}】的游戏维护开关吗?",
         "confirm_desc": "维护游戏:玩家无法正常进入游戏且在游戏内的玩家结算后无法再次进行对局。"
+    },
+    "button": {
+        "create_control": "新增点控",
+        "all_cancel_control": "一键取消点控"
     }
 }

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

@@ -23,6 +23,26 @@ const routes: RouteRecordRaw[] = [
                 path: '/game-control/game_config',
                 component: () => import('#/views/game_control/game_config/index.vue'),
             },
+            {
+                meta: {
+                    title: $t('game_control.play_control_title'),
+                    icon:'solar:remote-controller-outline',
+                    keepAlive: true
+                },
+                name: 'GameControlGamePlayerControl',
+                path: '/game-control/player-control',
+                children:[
+                    {
+                        meta: {
+                            title: $t('game_control.play_control_list_title'),
+                            keepAlive: true
+                        },
+                        name: 'GameControlGamePlayerControlList',
+                        path: '/game-control/player-control/list',
+                        component: () => import('#/views/game_control/player_control/list/index.vue'),
+                    },
+                ]
+            },
         ],
     },
 ];

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

@@ -34,7 +34,7 @@ const formOptions = {
 	],
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	showCollapseButton: false,
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',

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

@@ -36,7 +36,7 @@ const formOptions = {
 	],
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	showCollapseButton: false,
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',

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

@@ -61,7 +61,7 @@ const formOptions = {
 	],
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	showCollapseButton: false,
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',

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

@@ -39,7 +39,7 @@ const formOptions = {
 	],
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	showCollapseButton: false,
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',

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

@@ -39,7 +39,7 @@ const formOptions = {
 	],
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	showCollapseButton: false,
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',

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

@@ -39,7 +39,7 @@ const formOptions = {
 	],
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	showCollapseButton: false,
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',

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

@@ -83,7 +83,7 @@ const [QueryForm, formApi] = useVbenForm({
 	// 是否可展开
 	showCollapseButton: false,
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
 });

+ 1 - 1
apps/web-antd/src/views/data_statistics/trend/rewards/index.vue

@@ -60,7 +60,7 @@ const [QueryForm, formApi] = useVbenForm({
 	// 是否可展开
 	showCollapseButton: false,
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-2',
 });

+ 1 - 1
apps/web-antd/src/views/data_statistics/trend/win_lose/index.vue

@@ -60,7 +60,7 @@ const [QueryForm, formApi] = useVbenForm({
 	// 是否可展开
 	showCollapseButton: false,
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-2',
 });

+ 2 - 2
apps/web-antd/src/views/game_control/game_config/game_info.vue

@@ -56,10 +56,10 @@ const [Modal, modalApi] = useVbenModal({
 			modalApi.setData({
 				'is_reload': true
 			});
-			messageApi.success(res.message);
+			message.success(res.message);
 			await modalApi.close();
 		}else {
-			messageApi.error(res.message);
+			message.error(res.message);
 		}
 	},
 });

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

@@ -53,7 +53,7 @@ const formOptions = {
 	// 是否可展开
 	showCollapseButton: false,
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-2',
 };

+ 170 - 0
apps/web-antd/src/views/game_control/player_control/list/create_player.vue

@@ -0,0 +1,170 @@
+<script setup>
+import {h, ref} from 'vue';
+import {useVbenModal} from '@vben/common-ui';
+import { useVbenForm, z } from '#/adapter/form';
+import {getGameMinList} from "#/api/game_control/game_config.js";
+import {$t} from "@vben/locales";
+import {updatePlayerControlInfo} from "#/api/game_control/player_control.js";
+import { message } from 'ant-design-vue';
+const [messageApi, contextHolder] = message.useMessage();
+
+
+const filterGameList = ref([]);
+getGameMinList().then((data) => {
+	data.forEach((game) => {
+		filterGameList.value.push({
+			'label': `【${game.game_id}】${game.title}`,
+			'value': game.game_id,
+		})
+	})
+})
+
+const data = ref();
+const loading = ref(true);
+const [Modal, modalApi] = useVbenModal({
+	draggable: true,
+	async onOpenChange(isOpen) {
+		loading.value = false;
+		if (isOpen) {
+
+		}
+	},
+	onConfirm:async function () {
+		const status = await formApi.validate();
+		if(!status.valid) {
+			// 验证不通过
+			return false;
+		}
+		const form = await formApi.getValues();
+		form['game_ids'] = form['game_ids'].join(',');
+		const res = await updatePlayerControlInfo(form);
+		if(res.state) {
+			modalApi.setData({
+				'is_reload': true
+			});
+			message.success(res.message);
+			await modalApi.close();
+		}else {
+			message.error(res.message);
+		}
+	},
+});
+
+
+const rtpList = [
+	70, 75, 80, 85, 90, 92, 93, 94, 95, 96, 96.5, 97, 99, 102
+];
+let rtpSelectList = [];
+rtpList.forEach((value, index) => {
+	rtpSelectList.push({
+		"label": value + "%",
+		"value": value
+	})
+})
+
+
+const [Form, formApi] = useVbenForm({
+	// 所有表单项共用,可单独在表单内覆盖
+	commonConfig: {
+		// 所有表单项
+		componentProps: {
+			class: 'w-full',
+		},
+		labelWidth: 200,
+		colon: true,
+	},
+	submitButtonOptions: {
+		show: false
+	},
+	resetButtonOptions: {
+		show: false
+	},
+	// 提交函数
+	// handleSubmit: onSubmit,
+	// 垂直布局,label和input在不同行,值为vertical
+	// 水平布局,label和input在同一行
+	scrollToFirstError: true,
+	layout: 'horizontal',
+	schema: [
+		{
+			// 组件需要在 #/adapter.ts内注册,并加上类型
+			component: 'Textarea',
+			// 对应组件的参数
+			componentProps: {
+				placeholder: '请输入平台ID,多个玩家用英文","隔天',
+				style:"width:70%;height:100px;",
+			},
+			// 字段名
+			fieldName: 'account_ids',
+			// 界面显示的label
+			label: '平台ID',
+			rules: 'required',
+		},
+		{
+			component: 'Select',
+			componentProps: {
+				allowClear: true,
+				filterOption: true,
+				name:'game_id',
+				options: filterGameList,
+				placeholder: $t('common.placeholder_select'),
+				showSearch: true,
+				mode:"tags",
+				maxTagCount: 3,
+				style:"width:70%",
+			},
+			fieldName: 'game_ids',
+			label: '游戏名称',
+			rules: 'required',
+		},
+
+		{
+			component: 'Select',
+			componentProps: {
+				allowClear: true,
+				filterOption: true,
+				options: rtpSelectList,
+				placeholder: '请选择',
+				showSearch: true,
+				style:"width:40%",
+			},
+			defaultValue: undefined,
+			fieldName: 'rtp',
+			label: '设置RTP',
+			rules: 'required',
+		},
+		{
+			component: 'InputNumber',
+			componentProps: {
+				placeholder: $t('common.placeholder'),
+				style:"width:30%",
+			},
+			fieldName: 'max_win_multi',
+			label: '赢取倍数限制',
+			suffix: () =>  h('span', { style: 'font-size:14px;color:#666;' }, '(玩家在调控期间每局赢奖倍数限制,此倍数与总押注相乘为每局最高可赢取额度)'),
+		},
+		{
+			component: 'InputNumber',
+			componentProps: {
+				placeholder: $t('common.placeholder'),
+				style:"width:32%",
+				"addon-after":"%"
+			},
+			fieldName: 'auto_cancel_rtp',
+			label: '达到RTP时自动解除控制',
+		},
+	],
+	wrapperClass: 'grid-cols-1',
+});
+
+</script>
+
+<template>
+	<Modal :loading="loading"  title="新增玩家点控">
+		<Form border></Form>
+	</Modal>
+</template>
+
+<style scoped>
+
+</style>

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

@@ -0,0 +1,257 @@
+<script setup>
+import {$t} from "@vben/locales";
+import {Avatar, Button, Card, Input, InputGroup, Select, SelectOption, Tag} from "ant-design-vue";
+import {Page, useVbenModal} from "@vben/common-ui";
+import {reactive, ref} from "vue";
+import {getGameMinList} from "#/api/game_control/game_config.js";
+import dayjs from "dayjs";
+import {useVbenVxeGrid} from "#/adapter/vxe-table.js";
+import {getPlayerControlList} from "#/api/game_control/player_control.js";
+
+
+// 列表筛选
+const filterData = reactive({
+	'search_type':"uname",
+});
+const filterGameList = ref([]);
+getGameMinList().then((data) => {
+	data.forEach((game) => {
+		filterGameList.value.push({
+			'label': `【${game.game_id}】${game.title}`,
+			'value': game.game_id,
+		})
+	})
+})
+const disabledDate = (current) => {
+	// Can not select days before today and today
+	return current && current > dayjs().endOf('day');
+};
+const formOptions = {
+	// 默认展开
+	collapsed: false,
+	// 所有表单项共用,可单独在表单内覆盖
+	commonConfig: {
+		// 所有表单项
+		componentProps: {
+			class: 'w-full',
+		},
+		labelWidth: 80
+	},
+	// 提交函数
+	// handleSubmit: onSubmit,
+	handleReset: onReset,
+	// 垂直布局,label和input在不同行,值为vertical
+	// 水平布局,label和input在同一行
+	layout: 'horizontal',
+	schema: [
+		{
+			// 组件需要在 #/adapter.ts内注册,并加上类型
+			component: 'Input',
+			// 对应组件的参数
+			// 字段名
+			fieldName: 'search_text',
+			// 界面显示的label
+		},
+		{
+			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.range_time"),
+			component: 'RangePicker',
+			defaultValue: [dayjs(), dayjs()],
+			fieldName: 'range_time',
+			componentProps: {
+				disabledDate: disabledDate,
+			}
+		},
+
+	],
+	showCollapseButton: false,
+	// 是否可展开
+	submitButtonOptions: {
+		content: $t('common.search_submit_button'),
+	},
+	wrapperClass: 'grid-cols-1 md:grid-cols-3',
+};
+function onReset() {
+	gridApi.formApi.resetForm();
+	filterData.search_type = 'uname';
+	gridApi.reload();
+}
+// 列表
+const gridOptions = {
+	border: true,
+	stripe: true,
+	scrollbarConfig: {
+		x: {
+			visible: 'visible'
+		},
+		y: {
+			visible: 'auto'
+		}
+	},
+	// checkboxConfig: {
+	// 	highlight: true,
+	// },
+	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')} },
+		// { align:"left", title: $t('game_control.game_list.action'), width: 220, slots: {default:'action'}},
+	],
+	exportConfig: {},
+	// height: 'auto', // 如果设置为 auto,则必须确保存在父节点且不允许存在相邻元素,否则会出现高度闪动问题
+	keepSource: true,
+	treeConfig: {
+		transform: true, // 指定表格为树形表格
+		parentField: 'parent_id', // 父节点字段名
+		rowField: 'id', // 行数据字段名
+	},
+	proxyConfig: {
+		ajax: {
+			query: async ({ page }) => {
+				let form = {
+					page: page.currentPage,
+					limit: page.pageSize,
+					compress: 0
+				};
+				const search = await gridApi.formApi.getValues();
+				if(search.game_id) {
+					form.game_id = search.game_id;
+				}
+				if(search.range_time) {
+					form['start_time'] = search.range_time[0].format('YYYY-MM-DD');
+					form['end_time'] = search.range_time[1].format('YYYY-MM-DD');
+				}
+				if(search.search_text) {
+					form[filterData['search_type']] = search.search_text;
+				}
+				const list = await getPlayerControlList(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,
+});
+
+// 查看玩家详情
+import ExtraModal from './create_player.vue';
+const [Modal, modalApi] = useVbenModal({
+	// 连接抽离的组件
+	connectedComponent: ExtraModal,
+	class:'w-[50%]',
+	onClosed: function () {
+		const _data = modalApi.getData();
+		if(_data.is_reload){
+			gridApi.reload();
+		}
+	}
+});
+const createControl = (row) => {
+	// modalApi.setData({
+	// 	user_id: row.user_id
+	// }).open();
+	modalApi.open();
+}
+
+</script>
+
+<template>
+	<Page>
+		<Grid>
+			<template #bet_amount="{ row }">
+				<span style="color:red">{{row.bet}}</span>
+			</template>
+			<template #amount="{ row }">
+				<span style="color: green" v-if="row.amount >= 0">{{row.amount}}</span>
+				<span style="color: red" v-else>{{row.amount}}</span>
+			</template>
+			<template #total_win_amount="{ row }">
+				<span style="color: green" v-if="row.total_win_amount >= 0">{{row.total_win_amount}}</span>
+				<span style="color: red" v-else>{{row.total_win_amount}}</span>
+			</template>
+			<template #action_type="{ row }">
+				<Tag v-if="row.action_type == 1" color="blue">{{ $t('player_data.fundsChange.bet') }}</Tag>
+				<Tag v-if="row.action_type == 3" color="green">{{ $t('player_data.fundsChange.result_amount') }}</Tag>
+				<Tag v-if="row.action_type == 4" color="red">{{ $t('player_data.fundsChange.check') }}</Tag>
+			</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 #status="{ row }">
+				<Tag v-if="row.status == 2" color="green">{{$t('common.success')}}</Tag>
+				<Tag v-if="row.status == 0" color="red">{{$t('common.abnormal')}}</Tag>
+				<Tag v-if="row.status == 1" color="blue">{{$t('common.warn')}}</Tag>
+			</template>
+			<template #form-search_text="slotProps">
+				<Input-Group compact>
+					<Select name="search_type" style="width: 110px;" v-model:value="filterData.search_type">
+						<Select-Option value="uname">{{$t('player_data.search.uname')}}</Select-Option>
+						<Select-Option value="nickname">{{$t('player_data.search.nickname')}}</Select-Option>
+						<Select-Option value="user_id">{{$t('player_data.search.user_id')}}</Select-Option>
+					</Select>
+					<Input name="search_text" allowClear :placeholder="$t('player_data.placeholder') + '' + $t('player_data.search[\''+filterData.search_type+'\']')" v-bind="slotProps" style="width:calc(100% - 110px)"></Input>
+				</Input-Group>
+			</template>
+
+			<template #toolbar-actions>
+				<Button type="primary" @click="createControl">{{$t('game_control.button.create_control')}}</Button>
+				<Button type="primary" danger style="margin-left:10px;">{{$t('game_control.button.all_cancel_control')}}</Button>
+			</template>
+		</Grid>
+		<Modal />
+	</Page>
+</template>
+
+<style scoped>
+.ant-input-group.ant-input-group-compact>*:not(:last-child) {
+	border-inline-end-width: 0;
+}
+</style>

+ 1 - 1
apps/web-antd/src/views/log/agent/login/index.vue

@@ -73,7 +73,7 @@ const formOptions = {
 	showCollapseButton: false,
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
 };

+ 1 - 1
apps/web-antd/src/views/log/agent/operation/index.vue

@@ -73,7 +73,7 @@ const formOptions = {
 	showCollapseButton: false,
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
 };

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

@@ -127,7 +127,7 @@ const formOptions = {
 	showCollapseButton: false,
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
 };

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

@@ -116,7 +116,7 @@ const formOptions = {
 	showCollapseButton: false,
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
 };

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

@@ -72,7 +72,7 @@ const formOptions = {
 	],
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	// 控制表单是否显示折叠按钮
 	showCollapseButton: false,

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

@@ -87,7 +87,7 @@ const formOptions = {
 	showCollapseButton: false,
 	// 是否可展开
 	submitButtonOptions: {
-		content: '查询',
+		content: $t('common.search_submit_button'),
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
 };

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

@@ -84,7 +84,7 @@ import ExtraModal from './user_info.vue';
 //   // 是否可展开
 //   showCollapseButton: true,
 //   submitButtonOptions: {
-//     content: '查询',
+//     	content: $t('common.search_submit_button'),
 //   },
 //   wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',
 // });