From 3b2b0d5438edb5f6f955955d26b71a2df94bf310 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 19 Aug 2025 22:59:07 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90system=20=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=AE=A1=E7=90=86=E3=80=91=E7=A7=9F=E6=88=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=97=B6=EF=BC=8C=E6=94=AF=E6=8C=81=E5=A1=AB=E5=86=99?= =?UTF-8?q?=E5=A4=9A=E4=B8=AA=E5=9F=9F=E5=90=8D=20websites?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/api/system/tenant/index.ts | 2 +- apps/web-antd/src/views/system/tenant/data.ts | 12 ++++++---- .../src/views/system/tenant/modules/form.vue | 22 ++++++++++++++++--- apps/web-ele/src/api/system/tenant/index.ts | 2 +- apps/web-ele/src/views/system/tenant/data.ts | 12 ++++++---- .../src/views/system/tenant/modules/form.vue | 22 ++++++++++++++++--- 6 files changed, 56 insertions(+), 16 deletions(-) diff --git a/apps/web-antd/src/api/system/tenant/index.ts b/apps/web-antd/src/api/system/tenant/index.ts index c18a4dfab..6ee52e1d6 100644 --- a/apps/web-antd/src/api/system/tenant/index.ts +++ b/apps/web-antd/src/api/system/tenant/index.ts @@ -12,7 +12,7 @@ export namespace SystemTenantApi { contactMobile: string; accountCount: number; expireTime: Date; - website: string; + websites: string[]; status: number; } } diff --git a/apps/web-antd/src/views/system/tenant/data.ts b/apps/web-antd/src/views/system/tenant/data.ts index cdc5e2c6a..e9f363761 100644 --- a/apps/web-antd/src/views/system/tenant/data.ts +++ b/apps/web-antd/src/views/system/tenant/data.ts @@ -90,9 +90,13 @@ export function useFormSchema(): VbenFormSchema[] { }, { label: '绑定域名', - fieldName: 'website', - component: 'Input', - rules: 'required', + fieldName: 'websites', + component: 'Textarea', + componentProps: { + placeholder: '请输入绑定域名,多个域名请换行分隔', + rows: 3, + allowClear: true, + }, }, { fieldName: 'status', @@ -195,7 +199,7 @@ export function useGridColumns( formatter: 'formatDateTime', }, { - field: 'website', + field: 'websites', title: '绑定域名', }, { 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 1f9b3bef9..b7924b04e 100644 --- a/apps/web-antd/src/views/system/tenant/modules/form.vue +++ b/apps/web-antd/src/views/system/tenant/modules/form.vue @@ -42,7 +42,16 @@ const [Modal, modalApi] = useVbenModal({ } modalApi.lock(); // 提交表单 - const data = (await formApi.getValues()) as SystemTenantApi.Tenant; + const formValues = (await formApi.getValues()) as SystemTenantApi.Tenant & { + websites: string; + }; + // 将换行符分隔的字符串转换为数组 + const data: SystemTenantApi.Tenant = { + ...formValues, + websites: formValues.websites + ? formValues.websites.split('\n').filter((item) => item.trim()) + : [], + }; try { await (formData.value ? updateTenant(data) : createTenant(data)); // 关闭并提示 @@ -66,8 +75,15 @@ const [Modal, modalApi] = useVbenModal({ modalApi.lock(); try { formData.value = await getTenant(data.id as number); + // 将数组转换为换行符分隔的字符串 + const formValues = { + ...formData.value, + websites: Array.isArray(formData.value.websites) + ? formData.value.websites.join('\n') + : formData.value.websites || '', + }; // 设置到 values - await formApi.setValues(formData.value); + await formApi.setValues(formValues); } finally { modalApi.unlock(); } @@ -75,7 +91,7 @@ const [Modal, modalApi] = useVbenModal({ }); diff --git a/apps/web-ele/src/api/system/tenant/index.ts b/apps/web-ele/src/api/system/tenant/index.ts index c18a4dfab..6ee52e1d6 100644 --- a/apps/web-ele/src/api/system/tenant/index.ts +++ b/apps/web-ele/src/api/system/tenant/index.ts @@ -12,7 +12,7 @@ export namespace SystemTenantApi { contactMobile: string; accountCount: number; expireTime: Date; - website: string; + websites: string[]; status: number; } } diff --git a/apps/web-ele/src/views/system/tenant/data.ts b/apps/web-ele/src/views/system/tenant/data.ts index 8facb2a25..2e5f6832f 100644 --- a/apps/web-ele/src/views/system/tenant/data.ts +++ b/apps/web-ele/src/views/system/tenant/data.ts @@ -95,9 +95,13 @@ export function useFormSchema(): VbenFormSchema[] { }, { label: '绑定域名', - fieldName: 'website', - component: 'Input', - rules: 'required', + fieldName: 'websites', + component: 'Textarea', + componentProps: { + placeholder: '请输入绑定域名,多个域名请换行分隔', + rows: 3, + allowClear: true, + }, }, { fieldName: 'status', @@ -211,7 +215,7 @@ export function useGridColumns( formatter: 'formatDateTime', }, { - field: 'website', + field: 'websites', title: '绑定域名', minWidth: 180, }, diff --git a/apps/web-ele/src/views/system/tenant/modules/form.vue b/apps/web-ele/src/views/system/tenant/modules/form.vue index 3e7873062..61092dba2 100644 --- a/apps/web-ele/src/views/system/tenant/modules/form.vue +++ b/apps/web-ele/src/views/system/tenant/modules/form.vue @@ -42,7 +42,16 @@ const [Modal, modalApi] = useVbenModal({ } modalApi.lock(); // 提交表单 - const data = (await formApi.getValues()) as SystemTenantApi.Tenant; + const formValues = (await formApi.getValues()) as SystemTenantApi.Tenant & { + websites: string; + }; + // 将换行符分隔的字符串转换为数组 + const data: SystemTenantApi.Tenant = { + ...formValues, + websites: formValues.websites + ? formValues.websites.split('\n').filter((item) => item.trim()) + : [], + }; try { await (formData.value ? updateTenant(data) : createTenant(data)); // 关闭并提示 @@ -66,8 +75,15 @@ const [Modal, modalApi] = useVbenModal({ modalApi.lock(); try { formData.value = await getTenant(data.id as number); + // 将数组转换为换行符分隔的字符串 + const formValues = { + ...formData.value, + websites: Array.isArray(formData.value.websites) + ? formData.value.websites.join('\n') + : formData.value.websites || '', + }; // 设置到 values - await formApi.setValues(formData.value); + await formApi.setValues(formValues); } finally { modalApi.unlock(); } @@ -75,7 +91,7 @@ const [Modal, modalApi] = useVbenModal({ });