From e4aa6ad18c8c3e967738cb4345a4d58384760abb Mon Sep 17 00:00:00 2001 From: XIE7654 <765462425@qq.com> Date: Tue, 28 Oct 2025 21:24:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AF=BB=E5=8F=96=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/system/user/modules/form.vue | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/web/apps/web-antd/src/views/system/user/modules/form.vue b/web/apps/web-antd/src/views/system/user/modules/form.vue index 28421b5..da606a1 100644 --- a/web/apps/web-antd/src/views/system/user/modules/form.vue +++ b/web/apps/web-antd/src/views/system/user/modules/form.vue @@ -9,6 +9,7 @@ import { Button } from 'ant-design-vue'; import { useVbenForm } from '#/adapter/form'; import { $t } from '#/locales'; +import { SystemConfigModel } from '#/models/system/config'; import { SystemUserModel } from '#/models/system/user'; import { useSchema } from '../data'; @@ -16,6 +17,7 @@ import { useSchema } from '../data'; const emit = defineEmits(['success']); const formModel = new SystemUserModel(); +const systemConfigModel = new SystemConfigModel(); const formData = ref(); const getTitle = computed(() => { @@ -61,9 +63,27 @@ const [Modal, modalApi] = useVbenModal({ onOpenChange(isOpen) { if (isOpen) { const data = modalApi.getData(); - if (data) { + const isEmptyObject = + data && + typeof data === 'object' && + !Array.isArray(data) && + Object.keys(data).length === 0; + + if (data && !isEmptyObject) { formData.value = data; formApi.setValues(formData.value); + } else { + // 新建时,从系统配置读取默认初始密码 + systemConfigModel + .list({ key: 'sys.user.initPassword' } as any) + .then((resp: any) => { + const items = resp?.items ?? (Array.isArray(resp) ? resp : []); + const initPwd = items?.[0]?.value; + if (initPwd) { + formApi.setValues({ password: initPwd }); + } + }) + .catch(() => {}); } } },