diff --git a/apps/web-antd/src/api/system/tenant/index.ts b/apps/web-antd/src/api/system/tenant/index.ts index c18a4dfa..6ee52e1d 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 cdc5e2c6..e9f36376 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 1f9b3bef..b7924b04 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 c18a4dfa..6ee52e1d 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 8facb2a2..2e5f6832 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 3e787306..61092dba 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({ });