diff --git a/apps/web-antd/src/views/member/user/detail/modules/balance-list.vue b/apps/web-antd/src/views/member/user/detail/modules/balance-list.vue
index 76d805f19..86b148ce7 100644
--- a/apps/web-antd/src/views/member/user/detail/modules/balance-list.vue
+++ b/apps/web-antd/src/views/member/user/detail/modules/balance-list.vue
@@ -4,6 +4,7 @@ import type { WalletTransactionApi } from '#/api/pay/wallet/transaction';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getTransactionPage } from '#/api/pay/wallet/transaction';
+import { useTransactionGridColumns } from '#/views/pay/wallet/balance/data';
const props = defineProps<{
walletId: number | undefined;
@@ -11,36 +12,7 @@ const props = defineProps<{
const [Grid] = useVbenVxeGrid({
gridOptions: {
- columns: [
- {
- field: 'id',
- title: '编号',
- minWidth: 100,
- },
- {
- field: 'title',
- title: '关联业务标题',
- minWidth: 200,
- },
- {
- field: 'price',
- title: '交易金额',
- minWidth: 120,
- formatter: 'formatFenToYuanAmount',
- },
- {
- field: 'balance',
- title: '钱包余额',
- minWidth: 120,
- formatter: 'formatFenToYuanAmount',
- },
- {
- field: 'createTime',
- title: '交易时间',
- minWidth: 180,
- formatter: 'formatDateTime',
- },
- ],
+ columns: useTransactionGridColumns(),
keepSource: true,
proxyConfig: {
ajax: {
diff --git a/apps/web-antd/src/views/member/user/detail/modules/experience-record-list.vue b/apps/web-antd/src/views/member/user/detail/modules/experience-record-list.vue
index 9c9674266..770bdef76 100644
--- a/apps/web-antd/src/views/member/user/detail/modules/experience-record-list.vue
+++ b/apps/web-antd/src/views/member/user/detail/modules/experience-record-list.vue
@@ -1,5 +1,6 @@
diff --git a/apps/web-antd/src/views/member/user/detail/modules/point-list.vue b/apps/web-antd/src/views/member/user/detail/modules/point-list.vue
index 77e698eb9..40ef48271 100644
--- a/apps/web-antd/src/views/member/user/detail/modules/point-list.vue
+++ b/apps/web-antd/src/views/member/user/detail/modules/point-list.vue
@@ -2,54 +2,43 @@
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MemberPointRecordApi } from '#/api/member/point/record';
-import { DICT_TYPE } from '@vben/constants';
-import { getDictOptions } from '@vben/hooks';
-
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getRecordPage } from '#/api/member/point/record';
-import { getRangePickerDefaultProps } from '#/utils';
-import { useGridColumns } from '#/views/member/point/record/data';
+import {
+ useGridColumns as usePointGridColumns,
+ useGridFormSchema as usePointGridFormSchema,
+} from '#/views/member/point/record/data';
const props = defineProps<{
userId: number;
}>();
+/** 列表的搜索表单(过滤掉用户相关字段) */
+function useGridFormSchema() {
+ const excludeFields = new Set(['nickname']);
+ return usePointGridFormSchema().filter(
+ (item) => !excludeFields.has(item.fieldName),
+ );
+}
+
+/** 列表的字段(过滤掉用户相关字段) */
+function useGridColumns() {
+ const excludeFields = new Set(['nickname']);
+ return usePointGridColumns()?.filter(
+ (item) => item.field && !excludeFields.has(item.field),
+ );
+}
+
const [Grid] = useVbenVxeGrid({
formOptions: {
- schema: [
- {
- fieldName: 'bizType',
- label: '业务类型',
- component: 'Select',
- componentProps: {
- options: getDictOptions(DICT_TYPE.MEMBER_POINT_BIZ_TYPE, 'number'),
- placeholder: '请选择业务类型',
- allowClear: true,
- },
- },
- {
- fieldName: 'title',
- label: '积分标题',
- component: 'Input',
- componentProps: {
- placeholder: '请输入积分标题',
- allowClear: true,
- },
- },
- {
- fieldName: 'createDate',
- label: '获得时间',
- component: 'RangePicker',
- componentProps: {
- ...getRangePickerDefaultProps(),
- allowClear: true,
- },
- },
- ],
+ schema: useGridFormSchema(),
},
gridOptions: {
columns: useGridColumns(),
keepSource: true,
+ pagerConfig: {
+ pageSize: 10,
+ },
proxyConfig: {
ajax: {
query: async ({ page }, formValues) => {
@@ -71,7 +60,6 @@ const [Grid] = useVbenVxeGrid({
search: true,
},
} as VxeTableGridOptions,
- separator: false,
});
diff --git a/apps/web-antd/src/views/member/user/detail/modules/sign-list.vue b/apps/web-antd/src/views/member/user/detail/modules/sign-list.vue
index 5b46aa29c..afede6537 100644
--- a/apps/web-antd/src/views/member/user/detail/modules/sign-list.vue
+++ b/apps/web-antd/src/views/member/user/detail/modules/sign-list.vue
@@ -4,35 +4,34 @@ import type { MemberSignInRecordApi } from '#/api/member/signin/record';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getSignInRecordPage } from '#/api/member/signin/record';
-import { getRangePickerDefaultProps } from '#/utils';
-import { useGridColumns } from '#/views/member/signin/record/data';
+import {
+ useGridColumns as useSignInGridColumns,
+ useGridFormSchema as useSignInGridFormSchema,
+} from '#/views/member/signin/record/data';
const props = defineProps<{
userId: number;
}>();
+/** 列表的搜索表单(过滤掉用户相关字段) */
+function useGridFormSchema() {
+ const excludeFields = new Set(['nickname']);
+ return useSignInGridFormSchema().filter(
+ (item) => !excludeFields.has(item.fieldName),
+ );
+}
+
+/** 列表的字段(过滤掉用户相关字段) */
+function useGridColumns() {
+ const excludeFields = new Set(['nickname']);
+ return useSignInGridColumns()?.filter(
+ (item) => item.field && !excludeFields.has(item.field),
+ );
+}
+
const [Grid] = useVbenVxeGrid({
formOptions: {
- schema: [
- {
- fieldName: 'day',
- label: '签到天数',
- component: 'Input',
- componentProps: {
- placeholder: '请输入签到天数',
- allowClear: true,
- },
- },
- {
- fieldName: 'createTime',
- label: '签到时间',
- component: 'RangePicker',
- componentProps: {
- ...getRangePickerDefaultProps(),
- allowClear: true,
- },
- },
- ],
+ schema: useGridFormSchema(),
},
gridOptions: {
columns: useGridColumns(),
@@ -58,7 +57,6 @@ const [Grid] = useVbenVxeGrid({
search: true,
},
} as VxeTableGridOptions,
- separator: false,
});
diff --git a/apps/web-ele/src/views/member/user/detail/modules/balance-list.vue b/apps/web-ele/src/views/member/user/detail/modules/balance-list.vue
index 76d805f19..86b148ce7 100644
--- a/apps/web-ele/src/views/member/user/detail/modules/balance-list.vue
+++ b/apps/web-ele/src/views/member/user/detail/modules/balance-list.vue
@@ -4,6 +4,7 @@ import type { WalletTransactionApi } from '#/api/pay/wallet/transaction';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getTransactionPage } from '#/api/pay/wallet/transaction';
+import { useTransactionGridColumns } from '#/views/pay/wallet/balance/data';
const props = defineProps<{
walletId: number | undefined;
@@ -11,36 +12,7 @@ const props = defineProps<{
const [Grid] = useVbenVxeGrid({
gridOptions: {
- columns: [
- {
- field: 'id',
- title: '编号',
- minWidth: 100,
- },
- {
- field: 'title',
- title: '关联业务标题',
- minWidth: 200,
- },
- {
- field: 'price',
- title: '交易金额',
- minWidth: 120,
- formatter: 'formatFenToYuanAmount',
- },
- {
- field: 'balance',
- title: '钱包余额',
- minWidth: 120,
- formatter: 'formatFenToYuanAmount',
- },
- {
- field: 'createTime',
- title: '交易时间',
- minWidth: 180,
- formatter: 'formatDateTime',
- },
- ],
+ columns: useTransactionGridColumns(),
keepSource: true,
proxyConfig: {
ajax: {
diff --git a/apps/web-ele/src/views/member/user/detail/modules/experience-record-list.vue b/apps/web-ele/src/views/member/user/detail/modules/experience-record-list.vue
index 9f038594f..cd3d71e40 100644
--- a/apps/web-ele/src/views/member/user/detail/modules/experience-record-list.vue
+++ b/apps/web-ele/src/views/member/user/detail/modules/experience-record-list.vue
@@ -1,5 +1,6 @@
diff --git a/apps/web-ele/src/views/member/user/detail/modules/point-list.vue b/apps/web-ele/src/views/member/user/detail/modules/point-list.vue
index 9f782017e..40ef48271 100644
--- a/apps/web-ele/src/views/member/user/detail/modules/point-list.vue
+++ b/apps/web-ele/src/views/member/user/detail/modules/point-list.vue
@@ -4,44 +4,34 @@ import type { MemberPointRecordApi } from '#/api/member/point/record';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getRecordPage } from '#/api/member/point/record';
-import { DICT_TYPE } from '@vben/constants';
-import { getDictOptions } from '@vben/hooks';
-
-import { getRangePickerDefaultProps } from '#/utils';
-import { useGridColumns } from '#/views/member/point/record/data';
+import {
+ useGridColumns as usePointGridColumns,
+ useGridFormSchema as usePointGridFormSchema,
+} from '#/views/member/point/record/data';
const props = defineProps<{
userId: number;
}>();
+/** 列表的搜索表单(过滤掉用户相关字段) */
+function useGridFormSchema() {
+ const excludeFields = new Set(['nickname']);
+ return usePointGridFormSchema().filter(
+ (item) => !excludeFields.has(item.fieldName),
+ );
+}
+
+/** 列表的字段(过滤掉用户相关字段) */
+function useGridColumns() {
+ const excludeFields = new Set(['nickname']);
+ return usePointGridColumns()?.filter(
+ (item) => item.field && !excludeFields.has(item.field),
+ );
+}
+
const [Grid] = useVbenVxeGrid({
formOptions: {
- schema: [
- {
- fieldName: 'bizType',
- label: '业务类型',
- component: 'Select',
- componentProps: {
- clearable: true,
- placeholder: '请选择业务类型',
- options: getDictOptions(DICT_TYPE.MEMBER_POINT_BIZ_TYPE, 'number'),
- },
- },
- {
- fieldName: 'title',
- label: '积分标题',
- component: 'Input',
- },
- {
- fieldName: 'createDate',
- label: '获得时间',
- component: 'RangePicker',
- componentProps: {
- ...getRangePickerDefaultProps(),
- clearable: true,
- },
- },
- ],
+ schema: useGridFormSchema(),
},
gridOptions: {
columns: useGridColumns(),
@@ -63,13 +53,13 @@ const [Grid] = useVbenVxeGrid({
},
rowConfig: {
keyField: 'id',
+ isHover: true,
},
toolbarConfig: {
refresh: true,
search: true,
},
} as VxeTableGridOptions,
- separator: false,
});
diff --git a/apps/web-ele/src/views/member/user/detail/modules/sign-list.vue b/apps/web-ele/src/views/member/user/detail/modules/sign-list.vue
index 39e31190f..afede6537 100644
--- a/apps/web-ele/src/views/member/user/detail/modules/sign-list.vue
+++ b/apps/web-ele/src/views/member/user/detail/modules/sign-list.vue
@@ -4,35 +4,34 @@ import type { MemberSignInRecordApi } from '#/api/member/signin/record';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getSignInRecordPage } from '#/api/member/signin/record';
-import { getRangePickerDefaultProps } from '#/utils';
-import { useGridColumns } from '#/views/member/signin/record/data';
+import {
+ useGridColumns as useSignInGridColumns,
+ useGridFormSchema as useSignInGridFormSchema,
+} from '#/views/member/signin/record/data';
const props = defineProps<{
userId: number;
}>();
+/** 列表的搜索表单(过滤掉用户相关字段) */
+function useGridFormSchema() {
+ const excludeFields = new Set(['nickname']);
+ return useSignInGridFormSchema().filter(
+ (item) => !excludeFields.has(item.fieldName),
+ );
+}
+
+/** 列表的字段(过滤掉用户相关字段) */
+function useGridColumns() {
+ const excludeFields = new Set(['nickname']);
+ return useSignInGridColumns()?.filter(
+ (item) => item.field && !excludeFields.has(item.field),
+ );
+}
+
const [Grid] = useVbenVxeGrid({
formOptions: {
- schema: [
- {
- fieldName: 'day',
- label: '签到天数',
- component: 'Input',
- componentProps: {
- placeholder: '请输入签到天数',
- clearable: true,
- },
- },
- {
- fieldName: 'createTime',
- label: '签到时间',
- component: 'RangePicker',
- componentProps: {
- ...getRangePickerDefaultProps(),
- clearable: true,
- },
- },
- ],
+ schema: useGridFormSchema(),
},
gridOptions: {
columns: useGridColumns(),
@@ -58,7 +57,6 @@ const [Grid] = useVbenVxeGrid({
search: true,
},
} as VxeTableGridOptions,
- separator: false,
});