Browse Source

筛选移到表格里面

ssvfdn 3 months ago
parent
commit
8ccbee26e2

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

@@ -10,7 +10,7 @@ import {getDailyAgentList} from "#/api/data_statistics/daily_agent.js";
 const disabledDate = (current) => {
 	return current && current > dayjs().endOf('day');
 };
-const [QueryForm, formApi] = useVbenForm({
+const formOptions = {
 	// 默认展开
 	collapsed: false,
 	// 所有表单项共用,可单独在表单内覆盖
@@ -20,9 +20,6 @@ const [QueryForm, formApi] = useVbenForm({
 			class: 'w-full',
 		},
 	},
-	// 提交函数
-	handleSubmit: onSubmit,
-	handleReset: onReset,
 	// 垂直布局,label和input在不同行,值为vertical
 	// 水平布局,label和input在同一行
 	layout: 'horizontal',
@@ -41,17 +38,10 @@ const [QueryForm, formApi] = useVbenForm({
 	submitButtonOptions: {
 		content: '查询',
 	},
+	showCollapseButton: false,
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
-});
-function onSubmit(values) {
-	gridApi.reload();
-}
-function onReset() {
-	formApi.resetForm();
-	gridApi.reload();
 }
 
-
 // 列表
 const gridOptions = {
 	border: true,
@@ -81,13 +71,13 @@ const gridOptions = {
 	keepSource: true,
 	proxyConfig: {
 		ajax: {
-			query: async ({ page }) => {
+			query: async ({ page }, formValues) => {
 				let form = {
 					page: page.currentPage,
 					limit: page.pageSize,
 					compress: 0
 				};
-				const search = await formApi.getValues();
+				const search = formValues;
 				for(let key in search) {
 					if(search[key]) {
 						form[key] = search[key];
@@ -120,26 +110,19 @@ const gridOptions = {
 	},
 };
 const [Grid, gridApi] = useVbenVxeGrid({
+	formOptions,
 	gridOptions,
 });
 </script>
 
 <template>
 	<Page>
-		<Card class="mb-5">
-			<QueryForm>
-			</QueryForm>
-		</Card>
-		<Card>
-			<div class="vp-raw w-full">
-				<Grid>
-					<template #game_profit="{ row }">
-						<span style="color:green" v-if="row.game_profit >= 0">{{row.game_profit}}</span>
-						<span style="color:red" v-else>{{row.game_profit}}</span>
-					</template>
-				</Grid>
-			</div>
-		</Card>
+		<Grid>
+			<template #game_profit="{ row }">
+				<span style="color:green" v-if="row.game_profit >= 0">{{row.game_profit}}</span>
+				<span style="color:red" v-else>{{row.game_profit}}</span>
+			</template>
+		</Grid>
 	</Page>
 </template>
 

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

@@ -62,16 +62,12 @@ const [Grid, gridApi] = useVbenVxeGrid({
 
 <template>
 	<Page>
-		<Card>
-			<div class="vp-raw w-full">
-				<Grid>
-					<template #game_profit="{ row }">
-						<span style="color:green" v-if="row.game_profit >= 0">{{row.game_profit}}</span>
-						<span style="color:red" v-else>{{row.game_profit}}</span>
-					</template>
-				</Grid>
-			</div>
-		</Card>
+		<Grid>
+			<template #game_profit="{ row }">
+				<span style="color:green" v-if="row.game_profit >= 0">{{row.game_profit}}</span>
+				<span style="color:red" v-else>{{row.game_profit}}</span>
+			</template>
+		</Grid>
 	</Page>
 </template>
 

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

@@ -18,7 +18,7 @@ getGameMinList().then((data) => {
 })
 
 
-const [QueryForm, formApi] = useVbenForm({
+const formOptions = {
 	// 默认展开
 	collapsed: false,
 	// 所有表单项共用,可单独在表单内覆盖
@@ -30,8 +30,8 @@ const [QueryForm, formApi] = useVbenForm({
 		labelWidth: 80
 	},
 	// 提交函数
-	handleSubmit: onSubmit,
-	handleReset: onReset,
+	// handleSubmit: onSubmit,
+	// handleReset: onReset,
 	// 垂直布局,label和input在不同行,值为vertical
 	// 水平布局,label和input在同一行
 	layout: 'horizontal',
@@ -51,20 +51,12 @@ const [QueryForm, formApi] = useVbenForm({
 		},
 	],
 	// 是否可展开
-	// showCollapseButton: true,
+	showCollapseButton: false,
 	submitButtonOptions: {
 		content: '查询',
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-2',
-});
-function onSubmit(values) {
-	gridApi.reload();
-}
-function onReset() {
-	formApi.resetForm();
-	gridApi.reload();
-}
-
+};
 const gridOptions = {
 	border: true,
 	stripe: true,
@@ -90,13 +82,12 @@ const gridOptions = {
 	keepSource: true,
 	proxyConfig: {
 		ajax: {
-			query: async ({ page }) => {
+			query: async ({ page }, formValues) => {
 				let form = {
-					// ...filterData,
 					page: page.currentPage,
 					limit: page.pageSize,
 				};
-				const filterData = await formApi.getValues();
+				const filterData = formValues;
 				if(filterData.game_id) {
 					form.game_id = filterData.game_id;
 				}
@@ -124,6 +115,7 @@ const gridOptions = {
 };
 
 const [Grid, gridApi] = useVbenVxeGrid({
+	formOptions,
 	gridOptions,
 });
 
@@ -175,32 +167,25 @@ const changeStatus = async (row) => {
 
 <template>
 	<Page>
-		<Card class="mb-5">
-			<QueryForm />
-		</Card>
-		<Card>
-			<div class="vp-raw w-full">
-				<Grid>
-					<template #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.title}}</span>
-						</div>
-					</template>
-					<template #action="{ row }">
-						<Button type="link" @click="gameInfo(row)">查看配置</Button>
-						<Button type="link" @click="gameEdit(row)">编辑配置</Button>
-					</template>
-					<template #rtp="{row}">
-						{{row.rtp}}%
-					</template>
-					<template #status="{row}">
-						<Switch :checked="row.status" @click="changeStatus(row)"></Switch>
-					</template>
-				</Grid>
-			</div>
-		</Card>
+		<Grid>
+			<template #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.title}}</span>
+				</div>
+			</template>
+			<template #action="{ row }">
+				<Button type="link" @click="gameInfo(row)">查看配置</Button>
+				<Button type="link" @click="gameEdit(row)">编辑配置</Button>
+			</template>
+			<template #rtp="{row}">
+				{{row.rtp}}%
+			</template>
+			<template #status="{row}">
+				<Switch :checked="row.status" @click="changeStatus(row)"></Switch>
+			</template>
+		</Grid>
 		<Modal />
 	</Page>
 </template>

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

@@ -10,7 +10,7 @@ import {getLogUserLoginList} from "#/api/log/log_login.js";
 const disabledDate = (current) => {
 	return current && current > dayjs().endOf('day');
 };
-const [QueryForm, formApi] = useVbenForm({
+const formOptions = {
 	// 默认展开
 	collapsed: false,
 	// 所有表单项共用,可单独在表单内覆盖
@@ -21,9 +21,6 @@ const [QueryForm, formApi] = useVbenForm({
 		},
 		labelWidth: 80
 	},
-	// 提交函数
-	handleSubmit: onSubmit,
-	handleReset: onReset,
 	// 垂直布局,label和input在不同行,值为vertical
 	// 水平布局,label和input在同一行
 	layout: 'horizontal',
@@ -73,19 +70,13 @@ const [QueryForm, formApi] = useVbenForm({
 			}
 		},
 	],
+	showCollapseButton: false,
 	// 是否可展开
 	submitButtonOptions: {
 		content: '查询',
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
-});
-function onSubmit(values) {
-	gridApi.reload();
-}
-function onReset() {
-	formApi.resetForm();
-	gridApi.reload();
-}
+};
 
 
 // 列表
@@ -118,7 +109,7 @@ const gridOptions = {
 					limit: page.pageSize,
 					compress: 0
 				};
-				const search = await formApi.getValues();
+				const search = await gridApi.formApi.getValues();
 				for(let key in search) {
 					if(search[key]) {
 						form[key] = search[key];
@@ -151,6 +142,7 @@ const gridOptions = {
 	},
 };
 const [Grid, gridApi] = useVbenVxeGrid({
+	formOptions,
 	gridOptions,
 });
 
@@ -158,18 +150,12 @@ const [Grid, gridApi] = useVbenVxeGrid({
 
 <template>
 	<Page>
-		<Card class="mb-5">
-			<QueryForm>
-			</QueryForm>
-		</Card>
-		<Card>
-			<Grid>
-				<template #login_status="{ row }">
-					<Tag v-if="row.login_status == 1" color="green">{{$t('common.success')}}</Tag>
-					<Tag v-else color="red">{{$t('common.error')}}</Tag>
-				</template>
-			</Grid>
-		</Card>
+		<Grid>
+			<template #login_status="{ row }">
+				<Tag v-if="row.login_status == 1" color="green">{{$t('common.success')}}</Tag>
+				<Tag v-else color="red">{{$t('common.error')}}</Tag>
+			</template>
+		</Grid>
 	</Page>
 </template>
 

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

@@ -10,7 +10,7 @@ import {getLogBehaviorList} from "#/api/log/log_operation.js";
 const disabledDate = (current) => {
 	return current && current > dayjs().endOf('day');
 };
-const [QueryForm, formApi] = useVbenForm({
+const formOptions = {
 	// 默认展开
 	collapsed: false,
 	// 所有表单项共用,可单独在表单内覆盖
@@ -22,8 +22,6 @@ const [QueryForm, formApi] = useVbenForm({
 		labelWidth: 80
 	},
 	// 提交函数
-	handleSubmit: onSubmit,
-	handleReset: onReset,
 	// 垂直布局,label和input在不同行,值为vertical
 	// 水平布局,label和input在同一行
 	layout: 'horizontal',
@@ -72,19 +70,13 @@ const [QueryForm, formApi] = useVbenForm({
 			}
 		},
 	],
+	showCollapseButton: false,
 	// 是否可展开
 	submitButtonOptions: {
 		content: '查询',
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
-});
-function onSubmit(values) {
-	gridApi.reload();
-}
-function onReset() {
-	formApi.resetForm();
-	gridApi.reload();
-}
+};
 
 
 // 列表
@@ -117,7 +109,7 @@ const gridOptions = {
 					limit: page.pageSize,
 					compress: 0
 				};
-				const search = await formApi.getValues();
+				const search = await gridApi.formApi.getValues();
 				for(let key in search) {
 					if(search[key]) {
 						form[key] = search[key];
@@ -150,6 +142,7 @@ const gridOptions = {
 	},
 };
 const [Grid, gridApi] = useVbenVxeGrid({
+	formOptions,
 	gridOptions,
 });
 
@@ -157,18 +150,12 @@ const [Grid, gridApi] = useVbenVxeGrid({
 
 <template>
 	<Page>
-		<Card class="mb-5">
-			<QueryForm>
-			</QueryForm>
-		</Card>
-		<Card>
-			<Grid>
-				<template #behavior_status="{ row }">
-					<Tag v-if="row.behavior_status == 1" color="green">{{$t('common.success')}}</Tag>
-					<Tag v-else color="red">{{$t('common.error')}}</Tag>
-				</template>
-			</Grid>
-		</Card>
+		<Grid>
+			<template #behavior_status="{ row }">
+				<Tag v-if="row.behavior_status == 1" color="green">{{$t('common.success')}}</Tag>
+				<Tag v-else color="red">{{$t('common.error')}}</Tag>
+			</template>
+		</Grid>
 	</Page>
 </template>
 

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

@@ -27,7 +27,7 @@ const disabledDate = (current) => {
 	// Can not select days before today and today
 	return current && current > dayjs().endOf('day');
 };
-const [QueryForm, formApi] = useVbenForm({
+const formOptions = {
 	// 默认展开
 	collapsed: false,
 	// 所有表单项共用,可单独在表单内覆盖
@@ -39,7 +39,7 @@ const [QueryForm, formApi] = useVbenForm({
 		labelWidth: 80
 	},
 	// 提交函数
-	handleSubmit: onSubmit,
+	// handleSubmit: onSubmit,
 	handleReset: onReset,
 	// 垂直布局,label和input在不同行,值为vertical
 	// 水平布局,label和input在同一行
@@ -124,26 +124,18 @@ const [QueryForm, formApi] = useVbenForm({
 			}
 		},
 	],
+	showCollapseButton: false,
 	// 是否可展开
 	submitButtonOptions: {
 		content: '查询',
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
-});
-function onSubmit(values) {
-	gridApi.reload();
-	// message.success({
-	// 	content: `form values: ${JSON.stringify(values)}`,
-	// });
-}
+};
 function onReset() {
-	formApi.resetForm();
+	gridApi.formApi.resetForm();
 	filterData.search_type = 'uname';
 	gridApi.reload();
 }
-
-
-
 // 列表
 const gridOptions = {
 	border: true,
@@ -196,7 +188,7 @@ const gridOptions = {
 					limit: page.pageSize,
 					compress: 0
 				};
-				const search = await formApi.getValues();
+				const search = await gridApi.formApi.getValues();
 				const keysList = ['game_id','search_text', 'order_status', 'third_order_id', 'third_gid', 'third_round_id'];
 				keysList.forEach(key => {
 					if(search[key]){
@@ -238,6 +230,7 @@ const gridOptions = {
 	},
 };
 const [Grid, gridApi] = useVbenVxeGrid({
+	formOptions,
 	gridOptions,
 });
 
@@ -245,56 +238,47 @@ const [Grid, gridApi] = useVbenVxeGrid({
 
 <template>
 	<Page>
-		<Card class="mb-5">
-			<QueryForm>
-				<template #search_text="slotProps">
+		<Card>
+			<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: 30%" v-model:value="filterData.search_type">
+						<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:70%"></Input>
+						<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>
-			</QueryForm>
-		</Card>
-		<Card>
-			<div class="vp-raw w-full">
-				<Grid>
-<!--					<template #action="{ row }">-->
-<!--						<Button type="link" :href="row.view_layout_url" target="_blank">查看布局</Button>-->
-<!--					</template>-->
-					<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>
-				</Grid>
-			</div>
+			</Grid>
 		</Card>
 	</Page>
 </template>

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

@@ -27,7 +27,7 @@ const disabledDate = (current) => {
 	// Can not select days before today and today
 	return current && current > dayjs().endOf('day');
 };
-const [QueryForm, formApi] = useVbenForm({
+const formOptions = {
 	// 默认展开
 	collapsed: false,
 	// 所有表单项共用,可单独在表单内覆盖
@@ -39,7 +39,7 @@ const [QueryForm, formApi] = useVbenForm({
 		labelWidth: 80
 	},
 	// 提交函数
-	handleSubmit: onSubmit,
+	// handleSubmit: onSubmit,
 	handleReset: onReset,
 	// 垂直布局,label和input在不同行,值为vertical
 	// 水平布局,label和input在同一行
@@ -113,20 +113,15 @@ const [QueryForm, formApi] = useVbenForm({
 			// 界面显示的label
 		},
 	],
+	showCollapseButton: false,
 	// 是否可展开
 	submitButtonOptions: {
 		content: '查询',
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
-});
-function onSubmit(values) {
-	gridApi.reload();
-	// message.success({
-	// 	content: `form values: ${JSON.stringify(values)}`,
-	// });
-}
+};
 function onReset() {
-	formApi.resetForm();
+	gridApi.formApi.resetForm();
 	filterData.search_type = 'uname';
 	gridApi.reload();
 }
@@ -182,13 +177,13 @@ const gridOptions = {
 	},
 	proxyConfig: {
 		ajax: {
-			query: async ({ page }) => {
+			query: async ({ page }, formValues) => {
 				let form = {
 					page: page.currentPage,
 					limit: page.pageSize,
 					compress: 0
 				};
-				const search = await formApi.getValues();
+				const search = await gridApi.formApi.getValues();
 				if(search.game_id) {
 					form.game_id = search.game_id;
 				}
@@ -236,6 +231,7 @@ const gridOptions = {
 	},
 };
 const [Grid, gridApi] = useVbenVxeGrid({
+	formOptions,
 	gridOptions,
 });
 
@@ -243,46 +239,40 @@ const [Grid, gridApi] = useVbenVxeGrid({
 
 <template>
 	<Page>
-		<Card class="mb-5">
-			<QueryForm>
-				<template #search_text="slotProps">
+		<Card>
+			<Grid>
+				<template #action="{ row }">
+					<Button type="link" :href="row.view_layout_url" target="_blank">查看布局</Button>
+				</template>
+				<template #bet_amount="{ row }">
+					<span style="color:red">{{row.bet}}</span>
+				</template>
+				<template #win_amount="{ row }">
+					<span style="color: green" v-if="row.win_amount >= 0">{{row.win_amount}}</span>
+					<span style="color: red" v-else>{{row.win_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 #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 #form-search_text="slotProps">
 					<Input-Group compact>
-						<Select name="search_type" style="width: 30%" v-model:value="filterData.search_type">
+						<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:70%"></Input>
+						<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>
-			</QueryForm>
-		</Card>
-		<Card>
-			<div class="vp-raw w-full">
-				<Grid>
-					<template #action="{ row }">
-						<Button type="link" :href="row.view_layout_url" target="_blank">查看布局</Button>
-					</template>
-					<template #bet_amount="{ row }">
-						<span style="color:red">{{row.bet}}</span>
-					</template>
-					<template #win_amount="{ row }">
-						<span style="color: green" v-if="row.win_amount >= 0">{{row.win_amount}}</span>
-						<span style="color: red" v-else>{{row.win_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 #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>
-				</Grid>
-			</div>
+			</Grid>
 		</Card>
 	</Page>
 </template>

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

@@ -27,7 +27,7 @@ const disabledDate = (current) => {
 	// Can not select days before today and today
 	return current && current > dayjs().endOf('day');
 };
-const [QueryForm, formApi] = useVbenForm({
+const formOptions = {
 	// 默认展开
 	collapsed: false,
 	// 所有表单项共用,可单独在表单内覆盖
@@ -39,7 +39,7 @@ const [QueryForm, formApi] = useVbenForm({
 		labelWidth: 50
 	},
 	// 提交函数
-	handleSubmit: onSubmit,
+	// handleSubmit: onSubmit,
 	handleReset: onReset,
 	// 垂直布局,label和input在不同行,值为vertical
 	// 水平布局,label和input在同一行
@@ -63,10 +63,10 @@ const [QueryForm, formApi] = useVbenForm({
 			fieldName: 'range_time',
 			componentProps: {
 				disabledDate: disabledDate,
-				showTime:{
-					hideDisabledOptions: true,
-					defaultValue: [dayjs('00:00:00', 'HH:mm'), dayjs('11:59:59', 'HH:mm:ss')],
-				}
+				// showTime:{
+				// 	hideDisabledOptions: true,
+				// 	defaultValue: [dayjs('00:00:00', 'HH:mm'), dayjs('11:59:59', 'HH:mm:ss')],
+				// }
 			}
 		},
 	],
@@ -74,13 +74,12 @@ const [QueryForm, formApi] = useVbenForm({
 	submitButtonOptions: {
 		content: '查询',
 	},
+	// 控制表单是否显示折叠按钮
+	showCollapseButton: false,
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
-});
-function onSubmit(values) {
-	gridApi.reload();
 }
 function onReset() {
-	formApi.resetForm();
+	gridApi.formApi.resetForm();
 	filterData.search_type = 'uname';
 	filterData.ip_type = 'login_ip';
 	gridApi.reload();
@@ -115,8 +114,8 @@ const gridOptions = {
 	keepSource: true,
 	proxyConfig: {
 		ajax: {
-			query: async ({ page }) => {
-				const search = await formApi.getValues();
+			query: async ({ page }, formValues) => {
+				const search = await gridApi.formApi.getValues();
 				let form = {
 					page: page.currentPage,
 					limit: page.pageSize,
@@ -148,15 +147,16 @@ const gridOptions = {
 		// import: true,
 		refresh: true,
 		zoom: true,
+		search: true
 	},
 };
 const [Grid, gridApi] = useVbenVxeGrid({
+	formOptions,
 	gridOptions,
 });
 
 // 查看玩家详情
 import ExtraModal from './player_info.vue';
-import {useVbenForm} from "#/adapter/form.js";
 const [Modal, modalApi] = useVbenModal({
 	// 连接抽离的组件
 	connectedComponent: ExtraModal,
@@ -169,60 +169,51 @@ const playerInfo = (row) => {
 	}).open();
 }
 
-
-
 </script>
 
 <template>
 	<Page>
-		<Card class="mb-5">
-			<QueryForm>
-				<template #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 #ip_text="slotProps">
-					<Input-Group compact>
-						<Select name="search_type" style="width: 110px;" v-model:value="filterData.ip_type">
-							<Select-Option value="login_ip">{{$t('player_data.search.login_ip')}}</Select-Option>
-							<Select-Option value="reg_ip">{{$t('player_data.search.reg_ip')}}</Select-Option>
-						</Select>
-						<Input name="ip_text" allowClear :placeholder="$t('player_data.placeholder') + '' + $t('player_data.search[\''+filterData.ip_type+'\']')"  v-bind="slotProps" style="width:calc(100% - 110px"></Input>
-					</Input-Group>
-				</template>
-			</QueryForm>
-		</Card>
-		<Card>
-			<div class="vp-raw w-full">
-				<Grid>
-					<template #uname="{ row }">
-						<Button type="link" @click="playerInfo(row)">{{row.uname}}</Button>
-					</template>
-					<template #status="{ row }">
-						<Tag color="green">{{row.status_text}}</Tag>
-					</template>
-					<template #adjust-status="{ row }">
-						<Tag>{{row.adjust_status_text}}</Tag>
-					</template>
+		<Grid>
+			<template #uname="{ row }">
+				<Button type="link" @click="playerInfo(row)">{{row.uname}}</Button>
+			</template>
+			<template #status="{ row }">
+				<Tag color="green">{{row.status_text}}</Tag>
+			</template>
+			<template #adjust-status="{ row }">
+				<Tag>{{row.adjust_status_text}}</Tag>
+			</template>
+
 
+			<template #today-win-amount="{ row }">
+				<span v-if="row.today_win_amount >= 0" style="color:green">{{row.today_win_amount }}</span>
+				<span v-else style="color:red">{{row.today_win_amount }}</span>
+			</template>
+			<template #history-win-amount="{ row }">
+				<span v-if="row.history_win_amount >= 0" style="color:green">{{row.history_win_amount }}</span>
+				<span v-else style="color:red">{{row.history_win_amount }}</span>
+			</template>
 
-					<template #today-win-amount="{ row }">
-						<span v-if="row.today_win_amount >= 0" style="color:green">{{row.today_win_amount }}</span>
-						<span v-else style="color:red">{{row.today_win_amount }}</span>
-					</template>
-					<template #history-win-amount="{ row }">
-						<span v-if="row.history_win_amount >= 0" style="color:green">{{row.history_win_amount }}</span>
-						<span v-else style="color:red">{{row.history_win_amount }}</span>
-					</template>
-				</Grid>
-			</div>
-		</Card>
+			<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 #form-ip_text="slotProps">
+				<Input-Group compact>
+					<Select name="search_type" style="width: 110px;" v-model:value="filterData.ip_type">
+						<Select-Option value="login_ip">{{$t('player_data.search.login_ip')}}</Select-Option>
+						<Select-Option value="reg_ip">{{$t('player_data.search.reg_ip')}}</Select-Option>
+					</Select>
+					<Input name="ip_text" allowClear :placeholder="$t('player_data.placeholder') + '' + $t('player_data.search[\''+filterData.ip_type+'\']')"  v-bind="slotProps" style="width:calc(100% - 110px)"></Input>
+				</Input-Group>
+			</template>
+		</Grid>
 		<Modal />
 	</Page>
 </template>

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

@@ -17,7 +17,7 @@ const filterData = reactive({
 const disabledDate = (current) => {
 	return current && current > dayjs().endOf('day');
 };
-const [QueryForm, formApi] = useVbenForm({
+const formOptions = {
 	// 默认展开
 	collapsed: false,
 	// 所有表单项共用,可单独在表单内覆盖
@@ -29,7 +29,7 @@ const [QueryForm, formApi] = useVbenForm({
 		labelWidth: 80
 	},
 	// 提交函数
-	handleSubmit: onSubmit,
+	// handleSubmit: onSubmit,
 	handleReset: onReset,
 	// 垂直布局,label和input在不同行,值为vertical
 	// 水平布局,label和input在同一行
@@ -84,20 +84,21 @@ const [QueryForm, formApi] = useVbenForm({
 			}
 		},
 	],
+	showCollapseButton: false,
 	// 是否可展开
 	submitButtonOptions: {
 		content: '查询',
 	},
 	wrapperClass: 'grid-cols-1 md:grid-cols-3',
-});
-function onSubmit(values) {
-	gridApi.reload();
-	// message.success({
-	// 	content: `form values: ${JSON.stringify(values)}`,
-	// });
-}
+};
+// function onSubmit(values) {
+// 	gridApi.reload();
+// 	// message.success({
+// 	// 	content: `form values: ${JSON.stringify(values)}`,
+// 	// });
+// }
 function onReset() {
-	formApi.resetForm();
+	gridApi.formApi.resetForm();
 	filterData.search_type = 'uname';
 	gridApi.reload();
 }
@@ -136,7 +137,7 @@ const gridOptions = {
 					limit: page.pageSize,
 					compress: 0
 				};
-				const search = await formApi.getValues();
+				const search = await gridApi.formApi.getValues();
 				const keysList = ['game_id','search_text', 'status', 'tx_id'];
 				keysList.forEach(key => {
 					if(search[key]){
@@ -167,6 +168,7 @@ const gridOptions = {
 	},
 };
 const [Grid, gridApi] = useVbenVxeGrid({
+	formOptions,
 	gridOptions,
 });
 
@@ -174,34 +176,28 @@ const [Grid, gridApi] = useVbenVxeGrid({
 
 <template>
 	<Page>
-		<Card class="mb-5">
-			<QueryForm>
-				<template #search_text="slotProps">
-					<Input-Group compact>
-						<Select name="search_type" style="width: 30%" 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:70%"></Input>
-					</Input-Group>
-				</template>
-			</QueryForm>
-		</Card>
-		<Card>
-			<div class="vp-raw w-full">
-				<Grid>
-					<template #status="{ row }">
-						<Tag v-if="row.status == 1" color="green">{{$t('common.success')}}</Tag>
-						<Tag v-if="row.status == 0" color="red">{{$t('common.error')}}</Tag>
-						<Tag v-if="row.status == 2" color="blue">{{$t('common.warning')}}</Tag>
-					</template>
-				</Grid>
-			</div>
-		</Card>
+		<Grid>
+			<template #status="{ row }">
+				<Tag v-if="row.status == 1" color="green">{{$t('common.success')}}</Tag>
+				<Tag v-if="row.status == 0" color="red">{{$t('common.error')}}</Tag>
+				<Tag v-if="row.status == 2" color="blue">{{$t('common.warning')}}</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>
+		</Grid>
 	</Page>
 </template>
 
 <style scoped>
-
+.ant-input-group.ant-input-group-compact>*:not(:last-child) {
+	border-inline-end-width: 0;
+}
 </style>