From 20586ad6940a902c030fa6588009a8d14ecd29d7 Mon Sep 17 00:00:00 2001 From: u2nyakim Date: Thu, 28 Aug 2025 16:03:37 +0800 Subject: [PATCH] =?UTF-8?q?up.=20=E6=B3=A8=E6=84=8F=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B1=82=E7=BA=A7=E4=B8=8B=E7=9A=84=E5=8F=96?= =?UTF-8?q?=E5=80=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- z_ele/src/utils/sys-config.ts | 7 ++++-- .../components/config-form-list.vue | 22 +++++++++++++++++++ z_ele/src/views/system/config-set/index.vue | 4 ++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/z_ele/src/utils/sys-config.ts b/z_ele/src/utils/sys-config.ts index d4d9dd1..c0b91c9 100644 --- a/z_ele/src/utils/sys-config.ts +++ b/z_ele/src/utils/sys-config.ts @@ -89,7 +89,7 @@ export function strToBind(type: string, bindStr: string): any { return {}; } -export function valueToStr(type: string, value: any) { +export function valueToStr(type: string, value: any):string { switch (type) { case 'json': return value ? JSON.stringify(value) : "{}"; @@ -109,7 +109,10 @@ export function valueToStr(type: string, value: any) { case 'date_range': case 'time_range': case 'datetime_range': - return value.join(","); + if(value.length == 2 && value[0] && value[1]){ + return value.join(","); + } + return ""; default: return value === null ? "" : value; } diff --git a/z_ele/src/views/system/config-set/components/config-form-list.vue b/z_ele/src/views/system/config-set/components/config-form-list.vue index ebea7a0..ed35d9f 100644 --- a/z_ele/src/views/system/config-set/components/config-form-list.vue +++ b/z_ele/src/views/system/config-set/components/config-form-list.vue @@ -10,6 +10,7 @@ @@ -19,6 +20,7 @@ @@ -35,6 +37,7 @@ > @@ -66,10 +69,22 @@ import type { ComponentPublicInstance } from "vue"; + interface ConfigFormListInstance { + getFormData: () => any; // 根据实际返回类型调整 + } // 定义组件引用类型 interface ConfigFormItemInstance { getDataValue: () => any; // 根据实际返回类型调整 } + // 存储所有组件引用的数组 + const listRefs = ref([]); + // 收集组件引用的函数 + const setListRef = (el: unknown) => { + const component = el as ComponentPublicInstance & ConfigFormListInstance; + if (component && component.getDataValue) { + listRefs.value.push(component); + } + }; // 存储所有组件引用的数组 const itemRefs = ref([]); @@ -88,6 +103,13 @@ const [name, value] = item.getDataValue(); data[name] = value; }); + listRefs.value.map((item)=>{ + let aa = item.getFormData(); + for (const dataKey in aa) { + data[dataKey] = aa[dataKey] + } + }); + return data; }; // 每次更新前清空引用数组 diff --git a/z_ele/src/views/system/config-set/index.vue b/z_ele/src/views/system/config-set/index.vue index 03151d1..e96d917 100644 --- a/z_ele/src/views/system/config-set/index.vue +++ b/z_ele/src/views/system/config-set/index.vue @@ -112,7 +112,7 @@ const reload = () => { } return d; }); - console.log("lists->lists", lists); + // console.log("lists->lists", lists); configList.value = toTree({ data: lists, idField: 'id', @@ -157,7 +157,7 @@ const saveForm = () => { console.log('所有组件数据:', allValues); updateConfigData(allValues).then(()=>{ EleMessage.success("保存成功"); - reload(); + // reload(); }) }