diff --git a/src/executor/design/mallTemplateModal/index.tsx b/src/executor/design/mallTemplateModal/index.tsx index f7a2262e7b559e7791296fed45e6105787afa1cf..3105b001b3b7029c8f1e5c364dae595ccc8788c9 100644 --- a/src/executor/design/mallTemplateModal/index.tsx +++ b/src/executor/design/mallTemplateModal/index.tsx @@ -44,16 +44,27 @@ const RenderCard = (props: IRenderCard) => { setTarget(splitField); const ids = [form?.id, hot?.id].filter(Boolean); if (ids.length === 0) return; - try { - const res = await Promise.all( + const formLists = await Promise.all( ids.map((id) => current.directory.resource.formColl.find([id])), ); - const fields = _.uniqBy( - res.flatMap((item) => item?.[0]?.attributes || []), - 'id', - ).filter((attr: any) => ['数值型', '货币型'].includes(attr.valueType)); - setFields(fields); + const allForms = formLists.flat(); + const attrResults = await Promise.all( + allForms.map((form) => + current.directory.resource.attributeColl.loadResult({ + options: { + match: { + formId: { _eq_: form.id }, + }, + }, + }), + ), + ); + const allAttrs = attrResults + .flatMap((res) => res?.data || []) + .filter((attr: any) => ['数值型', '货币型'].includes(attr.valueType)); + const uniqueFields = _.uniqBy(allAttrs, 'id'); + setFields(uniqueFields); } catch (error) { console.error('获取字段失败:', error); } @@ -80,7 +91,7 @@ const RenderCard = (props: IRenderCard) => {