From 9e89cdbcedc848e3c54a876b3b147d61318a1414 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 7 Oct 2025 11:04:07 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90antd=E3=80=91=E3=80=90ele?= =?UTF-8?q?=E3=80=91=E3=80=90member=20=E4=BC=9A=E5=91=98=E3=80=91signin=20?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=20ele?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/member/signin/config/data.ts | 20 +++----------- .../src/views/member/signin/config/index.vue | 4 +-- .../src/views/member/signin/record/data.ts | 2 +- .../src/views/member/signin/config/data.ts | 27 ++++++++++++------- .../src/views/member/signin/config/index.vue | 18 +++++++++---- .../member/signin/config/modules/form.vue | 2 +- .../src/views/member/signin/record/data.ts | 13 +++++++++ .../src/views/member/signin/record/index.vue | 9 ++++++- 8 files changed, 57 insertions(+), 38 deletions(-) diff --git a/apps/web-antd/src/views/member/signin/config/data.ts b/apps/web-antd/src/views/member/signin/config/data.ts index 2d3ca68ae..2b28d2fc9 100644 --- a/apps/web-antd/src/views/member/signin/config/data.ts +++ b/apps/web-antd/src/views/member/signin/config/data.ts @@ -6,16 +6,6 @@ import { getDictOptions } from '@vben/hooks'; import { z } from '#/adapter/form'; -/** 奖励验证函数 */ -const awardValidator = (value: number, formData: any, field: string) => { - const point = formData.point || 0; - const experience = formData.experience || 0; - if (point === 0 && experience === 0) { - return '奖励积分与奖励经验至少配置一个'; - } - return true; -}; - /** 新增/修改的表单 */ export function useFormSchema(): VbenFormSchema[] { return [ @@ -38,7 +28,7 @@ export function useFormSchema(): VbenFormSchema[] { precision: 0, placeholder: '请输入签到天数', }, - rules: z.number().min(1).max(7, '签到天数必须在1-7之间'), + rules: z.number().min(1).max(7, '签到天数必须在 1-7 之间'), }, { component: 'InputNumber', @@ -49,9 +39,7 @@ export function useFormSchema(): VbenFormSchema[] { precision: 0, placeholder: '请输入获得积分', }, - rules: z.number().min(0, '获得积分不能小于0').refine(awardValidator, { - message: '奖励积分与奖励经验至少配置一个', - }), + rules: z.number().min(0, '获得积分不能小于 0'), }, { component: 'InputNumber', @@ -62,9 +50,7 @@ export function useFormSchema(): VbenFormSchema[] { precision: 0, placeholder: '请输入奖励经验', }, - rules: z.number().min(0, '奖励经验不能小于0').refine(awardValidator, { - message: '奖励积分与奖励经验至少配置一个', - }), + rules: z.number().min(0, '奖励经验不能小于 0'), }, { fieldName: 'status', diff --git a/apps/web-antd/src/views/member/signin/config/index.vue b/apps/web-antd/src/views/member/signin/config/index.vue index 43de9e233..cc68b8a21 100644 --- a/apps/web-antd/src/views/member/signin/config/index.vue +++ b/apps/web-antd/src/views/member/signin/config/index.vue @@ -44,9 +44,7 @@ async function handleDelete(row: MemberSignInConfigApi.SignInConfig) { }); try { await deleteSignInConfig(row.id as number); - message.success({ - content: $t('ui.actionMessage.deleteSuccess'), - }); + message.success($t('ui.actionMessage.deleteSuccess')); handleRefresh(); } finally { hideLoading(); diff --git a/apps/web-antd/src/views/member/signin/record/data.ts b/apps/web-antd/src/views/member/signin/record/data.ts index 94dc1cdd9..5449b888c 100644 --- a/apps/web-antd/src/views/member/signin/record/data.ts +++ b/apps/web-antd/src/views/member/signin/record/data.ts @@ -34,7 +34,7 @@ export function useGridFormSchema(): VbenFormSchema[] { component: 'RangePicker', componentProps: { ...getRangePickerDefaultProps(), - placeholder: ['开始日期', '结束日期'], + allowClear: true, }, }, ]; diff --git a/apps/web-ele/src/views/member/signin/config/data.ts b/apps/web-ele/src/views/member/signin/config/data.ts index c1237cdd7..f9b5af4f0 100644 --- a/apps/web-ele/src/views/member/signin/config/data.ts +++ b/apps/web-ele/src/views/member/signin/config/data.ts @@ -26,7 +26,11 @@ export function useFormSchema(): VbenFormSchema[] { min: 1, max: 7, precision: 0, + placeholder: '请输入签到天数', + controlsPosition: 'right', + class: '!w-full', }, + rules: z.number().min(1).max(7, '签到天数必须在 1-7 之间'), }, { component: 'InputNumber', @@ -35,7 +39,11 @@ export function useFormSchema(): VbenFormSchema[] { componentProps: { min: 0, precision: 0, + placeholder: '请输入获得积分', + controlsPosition: 'right', + class: '!w-full', }, + rules: z.number().min(0, '获得积分不能小于 0'), }, { component: 'InputNumber', @@ -44,7 +52,11 @@ export function useFormSchema(): VbenFormSchema[] { componentProps: { min: 0, precision: 0, + placeholder: '请输入奖励经验', + controlsPosition: 'right', + class: '!w-full', }, + rules: z.number().min(0, '奖励经验不能小于 0'), }, { fieldName: 'status', @@ -63,39 +75,34 @@ export function useFormSchema(): VbenFormSchema[] { /** 列表的字段 */ export function useGridColumns(): VxeTableGridOptions['columns'] { return [ - { - field: 'id', - title: '编号', - }, { field: 'day', title: '签到天数', + minWidth: 120, formatter: ({ cellValue }) => ['第', cellValue, '天'].join(' '), }, { field: 'point', title: '获得积分', + minWidth: 120, }, { field: 'experience', title: '奖励经验', + minWidth: 120, }, { field: 'status', title: '状态', + minWidth: 100, cellRender: { name: 'CellDict', props: { type: DICT_TYPE.COMMON_STATUS }, }, }, - { - field: 'createTime', - title: '创建时间', - formatter: 'formatDateTime', - }, { title: '操作', - width: 130, + width: 150, fixed: 'right', slots: { default: 'actions' }, }, diff --git a/apps/web-ele/src/views/member/signin/config/index.vue b/apps/web-ele/src/views/member/signin/config/index.vue index 3110f6505..3b253a40b 100644 --- a/apps/web-ele/src/views/member/signin/config/index.vue +++ b/apps/web-ele/src/views/member/signin/config/index.vue @@ -2,7 +2,7 @@ import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { MemberSignInConfigApi } from '#/api/member/signin/config'; -import { Page, useVbenModal } from '@vben/common-ui'; +import { DocAlert, Page, useVbenModal } from '@vben/common-ui'; import { ElLoading, ElMessage } from 'element-plus'; @@ -22,7 +22,7 @@ const [FormModal, formModalApi] = useVbenModal({ }); /** 刷新表格 */ -function onRefresh() { +function handleRefresh() { gridApi.query(); } @@ -44,7 +44,7 @@ async function handleDelete(row: MemberSignInConfigApi.SignInConfig) { try { await deleteSignInConfig(row.id as number); ElMessage.success($t('ui.actionMessage.deleteSuccess')); - onRefresh(); + handleRefresh(); } finally { loadingInstance.close(); } @@ -67,6 +67,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ }, rowConfig: { keyField: 'id', + isHover: true, }, toolbarConfig: { refresh: true, @@ -78,7 +79,14 @@ const [Grid, gridApi] = useVbenVxeGrid({