From fe6fcdaf6739e9edb68e81b50d6a06118e1e4735 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 24 Jun 2025 16:23:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=20doc-alert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/doc-alert/doc-alert.vue | 40 +++++++++++++------ .../common-ui/src/components/page/page.vue | 2 +- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/packages/effects/common-ui/src/components/doc-alert/doc-alert.vue b/packages/effects/common-ui/src/components/doc-alert/doc-alert.vue index ee3fc55ef..f62b7b54f 100644 --- a/packages/effects/common-ui/src/components/doc-alert/doc-alert.vue +++ b/packages/effects/common-ui/src/components/doc-alert/doc-alert.vue @@ -1,10 +1,12 @@ diff --git a/packages/effects/common-ui/src/components/page/page.vue b/packages/effects/common-ui/src/components/page/page.vue index 31c944ba9..6c70eee45 100644 --- a/packages/effects/common-ui/src/components/page/page.vue +++ b/packages/effects/common-ui/src/components/page/page.vue @@ -63,7 +63,7 @@ onMounted(() => { ref="docRef" :class=" cn( - 'bg-card border-border relative flex items-start rounded-md border-b p-1', + 'bg-card border-border relative mx-4 flex items-start rounded-md border-b', ) " > From 9821f134fc9474e74c69c7b5198422e9f24577c9 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 24 Jun 2025 17:06:07 +0800 Subject: [PATCH 2/3] fix: style --- .../effects/common-ui/src/components/doc-alert/doc-alert.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/effects/common-ui/src/components/doc-alert/doc-alert.vue b/packages/effects/common-ui/src/components/doc-alert/doc-alert.vue index f62b7b54f..32ec11b34 100644 --- a/packages/effects/common-ui/src/components/doc-alert/doc-alert.vue +++ b/packages/effects/common-ui/src/components/doc-alert/doc-alert.vue @@ -35,7 +35,7 @@ function close() {
- 【{{ title }}】 + 【{{ title }}】 Date: Tue, 24 Jun 2025 17:35:43 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=20system?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/system/area/data.ts | 4 +- .../src/views/system/loginlog/data.ts | 53 ++++++++++ .../views/system/loginlog/modules/detail.vue | 51 +++------- .../system/mail/account/modules/form.vue | 4 +- .../src/views/system/mail/log/data.ts | 82 ++++++++++++++++ .../views/system/mail/log/modules/detail.vue | 64 +++--------- .../system/mail/template/modules/form.vue | 2 +- .../src/views/system/notice/index.vue | 2 +- .../src/views/system/notify/message/data.ts | 87 +++++++++++++++++ .../system/notify/message/modules/detail.vue | 60 +++--------- .../views/system/notify/my/modules/detail.vue | 2 +- .../src/views/system/oauth2/client/data.ts | 12 ++- .../system/oauth2/client/modules/form.vue | 5 +- .../src/views/system/oauth2/token/index.vue | 2 +- .../src/views/system/operatelog/data.ts | 68 +++++++++++++ .../system/operatelog/modules/detail.vue | 62 +++--------- .../web-antd/src/views/system/sms/log/data.ts | 97 +++++++++++++++++++ .../views/system/sms/log/modules/detail.vue | 81 +++------------- .../src/views/system/tenant/index.vue | 2 + .../src/views/system/tenant/modules/form.vue | 6 +- apps/web-antd/src/views/system/user/index.vue | 6 +- .../src/views/system/user/modules/form.vue | 6 +- 22 files changed, 483 insertions(+), 275 deletions(-) diff --git a/apps/web-antd/src/views/system/area/data.ts b/apps/web-antd/src/views/system/area/data.ts index 087133e96..0f79f576a 100644 --- a/apps/web-antd/src/views/system/area/data.ts +++ b/apps/web-antd/src/views/system/area/data.ts @@ -2,6 +2,8 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { SystemAreaApi } from '#/api/system/area'; +import { z } from '#/adapter/form'; + /** 查询 IP 的表单 */ export function useFormSchema(): VbenFormSchema[] { return [ @@ -12,7 +14,7 @@ export function useFormSchema(): VbenFormSchema[] { componentProps: { placeholder: '请输入 IP 地址', }, - rules: 'required', + rules: z.string().ip({ message: '请输入正确的 IP 地址' }), }, { fieldName: 'result', diff --git a/apps/web-antd/src/views/system/loginlog/data.ts b/apps/web-antd/src/views/system/loginlog/data.ts index f09f6b535..b298022e7 100644 --- a/apps/web-antd/src/views/system/loginlog/data.ts +++ b/apps/web-antd/src/views/system/loginlog/data.ts @@ -1,6 +1,12 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; +import type { DescriptionItemSchema } from '#/components/description'; +import { h } from 'vue'; + +import { formatDateTime } from '@vben/utils'; + +import { DictTag } from '#/components/dict-tag'; import { DICT_TYPE, getRangePickerDefaultProps } from '#/utils'; /** 列表的搜索表单 */ @@ -84,3 +90,50 @@ export function useGridColumns(): VxeTableGridOptions['columns'] { }, ]; } + +/** 详情页的字段 */ +export function useDetailSchema(): DescriptionItemSchema[] { + return [ + { + field: 'id', + label: '日志编号', + }, + { + field: 'logType', + label: '操作类型', + content: (data) => { + return h(DictTag, { + type: DICT_TYPE.SYSTEM_LOGIN_TYPE, + value: data?.logType, + }); + }, + }, + { + field: 'username', + label: '用户名称', + }, + { + field: 'userIp', + label: '登录地址', + }, + { + field: 'userAgent', + label: '浏览器', + }, + { + field: 'result', + label: '登录结果', + content: (data) => { + return h(DictTag, { + type: DICT_TYPE.SYSTEM_LOGIN_RESULT, + value: data?.result, + }); + }, + }, + { + field: 'createTime', + label: '登录日期', + content: (data) => formatDateTime(data?.createTime || '') as string, + }, + ]; +} diff --git a/apps/web-antd/src/views/system/loginlog/modules/detail.vue b/apps/web-antd/src/views/system/loginlog/modules/detail.vue index fd607fcac..61bcc89b6 100644 --- a/apps/web-antd/src/views/system/loginlog/modules/detail.vue +++ b/apps/web-antd/src/views/system/loginlog/modules/detail.vue @@ -4,15 +4,22 @@ import type { SystemLoginLogApi } from '#/api/system/login-log'; import { ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; -import { formatDateTime } from '@vben/utils'; -import { Descriptions } from 'ant-design-vue'; +import { useDescription } from '#/components/description'; -import { DictTag } from '#/components/dict-tag'; -import { DICT_TYPE } from '#/utils'; +import { useDetailSchema } from '../data'; const formData = ref(); +const [Descriptions] = useDescription({ + componentProps: { + bordered: true, + column: 1, + class: 'mx-4', + }, + schema: useDetailSchema(), +}); + const [Modal, modalApi] = useVbenModal({ async onOpenChange(isOpen: boolean) { if (!isOpen) { @@ -41,40 +48,6 @@ const [Modal, modalApi] = useVbenModal({ :show-cancel-button="false" :show-confirm-button="false" > - - - {{ formData?.id }} - - - - - - {{ formData?.username }} - - - {{ formData?.userIp }} - - - {{ formData?.userAgent }} - - - - - - {{ formatDateTime(formData?.createTime || '') }} - - + diff --git a/apps/web-antd/src/views/system/mail/account/modules/form.vue b/apps/web-antd/src/views/system/mail/account/modules/form.vue index 47342dbea..b230aaa59 100644 --- a/apps/web-antd/src/views/system/mail/account/modules/form.vue +++ b/apps/web-antd/src/views/system/mail/account/modules/form.vue @@ -31,7 +31,7 @@ const [Form, formApi] = useVbenForm({ class: 'w-full', }, formItemClass: 'col-span-2', - labelWidth: 80, + labelWidth: 140, }, layout: 'horizontal', schema: useFormSchema(), @@ -83,7 +83,7 @@ const [Modal, modalApi] = useVbenModal({ diff --git a/apps/web-antd/src/views/system/mail/log/data.ts b/apps/web-antd/src/views/system/mail/log/data.ts index 9c8ee7e5c..977e0174c 100644 --- a/apps/web-antd/src/views/system/mail/log/data.ts +++ b/apps/web-antd/src/views/system/mail/log/data.ts @@ -1,7 +1,13 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; +import type { DescriptionItemSchema } from '#/components/description'; + +import { h } from 'vue'; + +import { formatDateTime } from '@vben/utils'; import { getSimpleMailAccountList } from '#/api/system/mail/account'; +import { DictTag } from '#/components/dict-tag'; import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; /** 列表的搜索表单 */ @@ -117,3 +123,79 @@ export function useGridColumns(): VxeTableGridOptions['columns'] { }, ]; } + +/** 详情页的字段 */ +export function useDetailSchema(): DescriptionItemSchema[] { + return [ + { + field: 'id', + label: '编号', + }, + { + field: 'createTime', + label: '创建时间', + content: (data) => formatDateTime(data?.createTime || '') as string, + }, + { + field: 'toMail', + label: '收件邮箱', + }, + { + field: 'fromMail', + label: '发送邮箱', + }, + { + field: 'userId', + label: '用户编号', + }, + { + field: 'userType', + label: '用户类型', + }, + { + field: 'templateId', + label: '模板编号', + }, + { + field: 'templateCode', + label: '模板编码', + }, + { + field: 'templateTitle', + label: '邮件标题', + }, + { + field: 'templateContent', + label: '邮件内容', + content: (data) => { + // 渲染HTML内容 + return h('div', { + innerHTML: data?.templateContent || '', + }); + }, + }, + { + field: 'sendStatus', + label: '发送状态', + content: (data) => { + return h(DictTag, { + type: DICT_TYPE.SYSTEM_MAIL_SEND_STATUS, + value: data?.sendStatus, + }); + }, + }, + { + field: 'sendTime', + label: '发送时间', + content: (data) => formatDateTime(data?.sendTime || '') as string, + }, + { + field: 'sendMessageId', + label: '发送消息编号', + }, + { + field: 'sendException', + label: '发送异常', + }, + ]; +} diff --git a/apps/web-antd/src/views/system/mail/log/modules/detail.vue b/apps/web-antd/src/views/system/mail/log/modules/detail.vue index b6ef0b321..f29a26d2c 100644 --- a/apps/web-antd/src/views/system/mail/log/modules/detail.vue +++ b/apps/web-antd/src/views/system/mail/log/modules/detail.vue @@ -4,15 +4,22 @@ import type { SystemMailLogApi } from '#/api/system/mail/log'; import { ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; -import { formatDateTime } from '@vben/utils'; -import { Descriptions } from 'ant-design-vue'; +import { useDescription } from '#/components/description'; -import { DictTag } from '#/components/dict-tag'; -import { DICT_TYPE } from '#/utils'; +import { useDetailSchema } from '../data'; const formData = ref(); +const [Descriptions] = useDescription({ + componentProps: { + bordered: true, + column: 2, + class: 'mx-4', + }, + schema: useDetailSchema(), +}); + const [Modal, modalApi] = useVbenModal({ async onOpenChange(isOpen: boolean) { if (!isOpen) { @@ -41,53 +48,6 @@ const [Modal, modalApi] = useVbenModal({ :show-cancel-button="false" :show-confirm-button="false" > -
- - {{ formData?.id }} - - {{ formatDateTime(formData?.createTime || '') }} - - - {{ formData?.toMail }} - - - {{ formData?.fromMail }} - - - {{ formData?.userId }} - - - {{ formData?.userType }} - - - {{ formData?.templateId }} - - - {{ formData?.templateCode }} - - - {{ formData?.templateTitle }} - - - -
-
- - - - - {{ formatDateTime(formData?.sendTime || '') }} - - - {{ formData?.sendMessageId }} - - - {{ formData?.sendException }} - -
-
+ diff --git a/apps/web-antd/src/views/system/mail/template/modules/form.vue b/apps/web-antd/src/views/system/mail/template/modules/form.vue index 2f31a2c06..a5eefe79b 100644 --- a/apps/web-antd/src/views/system/mail/template/modules/form.vue +++ b/apps/web-antd/src/views/system/mail/template/modules/form.vue @@ -83,7 +83,7 @@ const [Modal, modalApi] = useVbenModal({ diff --git a/apps/web-antd/src/views/system/notice/index.vue b/apps/web-antd/src/views/system/notice/index.vue index a7131bf82..3d84e9e9a 100644 --- a/apps/web-antd/src/views/system/notice/index.vue +++ b/apps/web-antd/src/views/system/notice/index.vue @@ -87,7 +87,7 @@ async function handleDeleteBatch() { /** 推送公告 */ async function handlePush(row: SystemNoticeApi.Notice) { const hideLoading = message.loading({ - content: $t('ui.actionMessage.processing', ['推送']), + content: '正在推送中', key: 'action_process_msg', }); try { diff --git a/apps/web-antd/src/views/system/notify/message/data.ts b/apps/web-antd/src/views/system/notify/message/data.ts index 45e0436fa..76c3eb01c 100644 --- a/apps/web-antd/src/views/system/notify/message/data.ts +++ b/apps/web-antd/src/views/system/notify/message/data.ts @@ -1,6 +1,12 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; +import type { DescriptionItemSchema } from '#/components/description'; +import { h } from 'vue'; + +import { formatDateTime } from '@vben/utils'; + +import { DictTag } from '#/components/dict-tag'; import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; /** 列表的搜索表单 */ @@ -135,3 +141,84 @@ export function useGridColumns(): VxeTableGridOptions['columns'] { }, ]; } + +/** 详情页的字段 */ +export function useDetailSchema(): DescriptionItemSchema[] { + return [ + { + field: 'id', + label: '编号', + }, + { + field: 'userType', + label: '用户类型', + content: (data) => { + return h(DictTag, { + type: DICT_TYPE.USER_TYPE, + value: data?.userType, + }); + }, + }, + { + field: 'userId', + label: '用户编号', + }, + { + field: 'templateId', + label: '模版编号', + }, + { + field: 'templateCode', + label: '模板编码', + }, + { + field: 'templateNickname', + label: '发送人名称', + }, + { + field: 'templateContent', + label: '模版内容', + }, + { + field: 'templateParams', + label: '模版参数', + content: (data) => { + try { + return JSON.stringify(data?.templateParams); + } catch { + return ''; + } + }, + }, + { + field: 'templateType', + label: '模版类型', + content: (data) => { + return h(DictTag, { + type: DICT_TYPE.SYSTEM_NOTIFY_TEMPLATE_TYPE, + value: data?.templateType, + }); + }, + }, + { + field: 'readStatus', + label: '是否已读', + content: (data) => { + return h(DictTag, { + type: DICT_TYPE.INFRA_BOOLEAN_STRING, + value: data?.readStatus, + }); + }, + }, + { + field: 'readTime', + label: '阅读时间', + content: (data) => formatDateTime(data?.readTime || '') as string, + }, + { + field: 'createTime', + label: '创建时间', + content: (data) => formatDateTime(data?.createTime || '') as string, + }, + ]; +} diff --git a/apps/web-antd/src/views/system/notify/message/modules/detail.vue b/apps/web-antd/src/views/system/notify/message/modules/detail.vue index f6f70bc7a..0a3597176 100644 --- a/apps/web-antd/src/views/system/notify/message/modules/detail.vue +++ b/apps/web-antd/src/views/system/notify/message/modules/detail.vue @@ -4,15 +4,22 @@ import type { SystemNotifyMessageApi } from '#/api/system/notify/message'; import { ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; -import { formatDateTime } from '@vben/utils'; -import { Descriptions } from 'ant-design-vue'; +import { useDescription } from '#/components/description'; -import { DictTag } from '#/components/dict-tag'; -import { DICT_TYPE } from '#/utils'; +import { useDetailSchema } from '../data'; const formData = ref(); +const [Descriptions] = useDescription({ + componentProps: { + bordered: true, + column: 1, + class: 'mx-4', + }, + schema: useDetailSchema(), +}); + const [Modal, modalApi] = useVbenModal({ async onOpenChange(isOpen: boolean) { if (!isOpen) { @@ -37,51 +44,10 @@ const [Modal, modalApi] = useVbenModal({ diff --git a/apps/web-antd/src/views/system/notify/my/modules/detail.vue b/apps/web-antd/src/views/system/notify/my/modules/detail.vue index 82f84acb5..42f16aca2 100644 --- a/apps/web-antd/src/views/system/notify/my/modules/detail.vue +++ b/apps/web-antd/src/views/system/notify/my/modules/detail.vue @@ -11,7 +11,6 @@ const [Description, descApi] = useDescription({ componentProps: { bordered: true, column: 1, - size: 'middle', class: 'mx-4', }, schema: useDetailSchema(), @@ -40,6 +39,7 @@ const [Modal, modalApi] = useVbenModal({ diff --git a/apps/web-antd/src/views/system/sms/log/data.ts b/apps/web-antd/src/views/system/sms/log/data.ts index 4b4d632b0..ae5147253 100644 --- a/apps/web-antd/src/views/system/sms/log/data.ts +++ b/apps/web-antd/src/views/system/sms/log/data.ts @@ -1,7 +1,13 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; +import type { DescriptionItemSchema } from '#/components/description'; + +import { h } from 'vue'; + +import { formatDateTime } from '@vben/utils'; import { getSimpleSmsChannelList } from '#/api/system/sms/channel'; +import { DictTag } from '#/components/dict-tag'; import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; /** 列表的搜索表单 */ @@ -153,3 +159,94 @@ export function useGridColumns(): VxeTableGridOptions['columns'] { }, ]; } + +/** 详情页的字段 */ +export function useDetailSchema(): DescriptionItemSchema[] { + return [ + { + field: 'createTime', + label: '创建时间', + content: (data) => formatDateTime(data?.createTime || '') as string, + }, + { + field: 'mobile', + label: '手机号', + }, + { + field: 'channelCode', + label: '短信渠道', + }, + { + field: 'templateId', + label: '模板编号', + }, + { + field: 'templateType', + label: '模板类型', + content: (data) => { + return h(DictTag, { + type: DICT_TYPE.SYSTEM_SMS_TEMPLATE_TYPE, + value: data?.templateType, + }); + }, + }, + { + field: 'templateContent', + label: '短信内容', + }, + { + field: 'sendStatus', + label: '发送状态', + content: (data) => { + return h(DictTag, { + type: DICT_TYPE.SYSTEM_SMS_SEND_STATUS, + value: data?.sendStatus, + }); + }, + }, + { + field: 'sendTime', + label: '发送时间', + content: (data) => formatDateTime(data?.sendTime || '') as string, + }, + { + field: 'apiSendCode', + label: 'API 发送编码', + }, + { + field: 'apiSendMsg', + label: 'API 发送消息', + }, + { + field: 'receiveStatus', + label: '接收状态', + content: (data) => { + return h(DictTag, { + type: DICT_TYPE.SYSTEM_SMS_RECEIVE_STATUS, + value: data?.receiveStatus, + }); + }, + }, + { + field: 'receiveTime', + label: '接收时间', + content: (data) => formatDateTime(data?.receiveTime || '') as string, + }, + { + field: 'apiReceiveCode', + label: 'API 接收编码', + }, + { + field: 'apiReceiveMsg', + label: 'API 接收消息', + }, + { + field: 'apiRequestId', + label: 'API 请求 ID', + }, + { + field: 'apiSerialNo', + label: 'API 序列号', + }, + ]; +} diff --git a/apps/web-antd/src/views/system/sms/log/modules/detail.vue b/apps/web-antd/src/views/system/sms/log/modules/detail.vue index 64f58e0cf..8e0f504ed 100644 --- a/apps/web-antd/src/views/system/sms/log/modules/detail.vue +++ b/apps/web-antd/src/views/system/sms/log/modules/detail.vue @@ -4,15 +4,22 @@ import type { SystemSmsLogApi } from '#/api/system/sms/log'; import { ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; -import { formatDateTime } from '@vben/utils'; -import { Descriptions } from 'ant-design-vue'; +import { useDescription } from '#/components/description'; -import { DictTag } from '#/components/dict-tag'; -import { DICT_TYPE } from '#/utils'; +import { useDetailSchema } from '../data'; const formData = ref(); +const [Descriptions] = useDescription({ + componentProps: { + bordered: true, + column: 2, + class: 'mx-4', + }, + schema: useDetailSchema(), +}); + const [Modal, modalApi] = useVbenModal({ async onOpenChange(isOpen: boolean) { if (!isOpen) { @@ -41,70 +48,6 @@ const [Modal, modalApi] = useVbenModal({ :show-cancel-button="false" :show-confirm-button="false" > - - - {{ formatDateTime(formData?.createTime || '') }} - - - {{ formData?.mobile }} - - - {{ formData?.channelCode }} - - - {{ formData?.templateId }} - - - - - - {{ formData?.templateContent }} - - - - - - {{ formatDateTime(formData?.sendTime || '') }} - - - {{ formData?.apiSendCode }} - - - {{ formData?.apiSendMsg }} - - - - - - {{ formatDateTime(formData?.receiveTime || '') }} - - - {{ formData?.apiReceiveCode }} - - - {{ formData?.apiReceiveMsg }} - - - {{ formData?.apiRequestId }} - - - {{ formData?.apiSerialNo }} - - + diff --git a/apps/web-antd/src/views/system/tenant/index.vue b/apps/web-antd/src/views/system/tenant/index.vue index 383f3293a..cf5f1dc00 100644 --- a/apps/web-antd/src/views/system/tenant/index.vue +++ b/apps/web-antd/src/views/system/tenant/index.vue @@ -108,6 +108,8 @@ const [Grid, gridApi] = useVbenVxeGrid({ }, gridOptions: { columns: useGridColumns(getPackageName), + height: 'auto', + keepSource: true, proxyConfig: { ajax: { query: async ({ page }, formValues) => { diff --git a/apps/web-antd/src/views/system/tenant/modules/form.vue b/apps/web-antd/src/views/system/tenant/modules/form.vue index b61d147a6..1f9b3bef9 100644 --- a/apps/web-antd/src/views/system/tenant/modules/form.vue +++ b/apps/web-antd/src/views/system/tenant/modules/form.vue @@ -26,9 +26,9 @@ const [Form, formApi] = useVbenForm({ componentProps: { class: 'w-full', }, - formItemClass: 'col-span-2', - labelWidth: 80, }, + // 一共2列 + wrapperClass: 'grid-cols-2', layout: 'horizontal', schema: useFormSchema(), showDefaultActions: false, @@ -75,7 +75,7 @@ const [Modal, modalApi] = useVbenModal({ }); diff --git a/apps/web-antd/src/views/system/user/index.vue b/apps/web-antd/src/views/system/user/index.vue index 9a296f572..4aa72d026 100644 --- a/apps/web-antd/src/views/system/user/index.vue +++ b/apps/web-antd/src/views/system/user/index.vue @@ -8,7 +8,7 @@ import { ref } from 'vue'; import { confirm, DocAlert, Page, useVbenModal } from '@vben/common-ui'; import { downloadFileFromBlobPart, isEmpty } from '@vben/utils'; -import { message } from 'ant-design-vue'; +import { Card, message } from 'ant-design-vue'; import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { @@ -215,9 +215,9 @@ const [Grid, gridApi] = useVbenVxeGrid({
-
+ -
+
diff --git a/apps/web-antd/src/views/system/user/modules/form.vue b/apps/web-antd/src/views/system/user/modules/form.vue index 4ebb759ef..c7266811d 100644 --- a/apps/web-antd/src/views/system/user/modules/form.vue +++ b/apps/web-antd/src/views/system/user/modules/form.vue @@ -26,9 +26,9 @@ const [Form, formApi] = useVbenForm({ componentProps: { class: 'w-full', }, - formItemClass: 'col-span-2', - labelWidth: 80, }, + // 一共2列 + wrapperClass: 'grid-cols-2', layout: 'horizontal', schema: useFormSchema(), showDefaultActions: false, @@ -76,7 +76,7 @@ const [Modal, modalApi] = useVbenModal({