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, });