fix gen-form
This commit is contained in:
parent
b2b34659c6
commit
f44456cbdf
|
|
@ -147,71 +147,68 @@ export const generateForm = async (
|
|||
walkGenForm(new_body, existing_childs as any);
|
||||
}
|
||||
|
||||
if (item.edit) {
|
||||
const current_body = propFromItem(item)?.body?.value as IItem;
|
||||
const prop_item = propFromItem(item);
|
||||
const current_body = prop_item?.body?.value as IItem;
|
||||
|
||||
if (current_body) {
|
||||
const mapping = mapCompItemTree(new_body, {
|
||||
shouldAdd({ item }) {
|
||||
if (item.component?.props?.sub_type?.value === "table-edit")
|
||||
return "add-skip-children";
|
||||
if (current_body) {
|
||||
const mapping = mapCompItemTree(new_body, {
|
||||
shouldAdd({ item }) {
|
||||
if (item.component?.props?.sub_type?.value === "table-edit")
|
||||
return "add-skip-children";
|
||||
|
||||
return "add";
|
||||
},
|
||||
});
|
||||
return "add";
|
||||
},
|
||||
});
|
||||
|
||||
reduceItemMapping(current_body, mapping, (old_item, new_item) => {
|
||||
const pold = propFromItem(old_item);
|
||||
const pnew = propFromItem(new_item);
|
||||
|
||||
let result = old_item;
|
||||
if (
|
||||
result.component &&
|
||||
result.component?.id === "32550d01-42a3-4b15-a04a-2c2d5c3c8e67"
|
||||
) {
|
||||
if (pold.type.value !== pnew.type.value) {
|
||||
result = new_item;
|
||||
} else if (pold.sub_type.value !== pnew.sub_type.value) {
|
||||
result = new_item;
|
||||
}
|
||||
|
||||
copyProps(old_item, new_item, [
|
||||
"placeholder",
|
||||
"label",
|
||||
"link__url",
|
||||
"ext__width",
|
||||
"opt__load_trigger",
|
||||
"ext__on_change",
|
||||
"ext__description",
|
||||
"ext__show_label",
|
||||
"ext__disabled",
|
||||
"ext__prefix",
|
||||
"ext__suffix",
|
||||
]);
|
||||
}
|
||||
|
||||
return result;
|
||||
});
|
||||
reduceItemMapping(current_body, mapping, (old_item, new_item) => {
|
||||
const pold = propFromItem(old_item);
|
||||
const pnew = propFromItem(new_item);
|
||||
|
||||
let result = old_item;
|
||||
if (
|
||||
mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"] &&
|
||||
Object.keys(mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"]).length >
|
||||
0
|
||||
result.component &&
|
||||
result.component?.id === "32550d01-42a3-4b15-a04a-2c2d5c3c8e67"
|
||||
) {
|
||||
for (const val of Object.values(
|
||||
mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"]
|
||||
)) {
|
||||
current_body.childs?.[0]?.childs.push(val);
|
||||
if (pold.type.value !== pnew.type.value) {
|
||||
result = new_item;
|
||||
} else if (pold.sub_type.value !== pnew.sub_type.value) {
|
||||
result = new_item;
|
||||
}
|
||||
|
||||
copyProps(old_item, new_item, [
|
||||
"placeholder",
|
||||
"label",
|
||||
"link__url",
|
||||
"ext__width",
|
||||
"opt__load_trigger",
|
||||
"ext__on_change",
|
||||
"ext__description",
|
||||
"ext__show_label",
|
||||
"ext__disabled",
|
||||
"ext__prefix",
|
||||
"ext__suffix",
|
||||
]);
|
||||
}
|
||||
|
||||
if (current_body?.childs?.length > 0) {
|
||||
new_body = current_body;
|
||||
return result;
|
||||
});
|
||||
|
||||
if (
|
||||
mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"] &&
|
||||
Object.keys(mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"]).length > 0
|
||||
) {
|
||||
for (const val of Object.values(
|
||||
mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"]
|
||||
)) {
|
||||
current_body.childs?.[0]?.childs.push(val);
|
||||
}
|
||||
}
|
||||
|
||||
if (current_body?.childs?.length > 0) {
|
||||
new_body = current_body;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(result);
|
||||
if (commit) {
|
||||
Object.keys(result).map((e) => {
|
||||
item.edit.setProp(e, result[e]);
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ export const generateMDForm = async (
|
|||
mode: "raw",
|
||||
value: `({ md: typeof md !== "undefined" ? md : undefined })`,
|
||||
},
|
||||
on_load: {
|
||||
on_load: {
|
||||
mode: "string",
|
||||
value: "",
|
||||
},
|
||||
|
|
@ -43,9 +43,9 @@ export const generateMDForm = async (
|
|||
name: "item",
|
||||
childs: [],
|
||||
}),
|
||||
},
|
||||
},
|
||||
};
|
||||
const newitem: any = {
|
||||
const raw_new_item: any = {
|
||||
type: "item",
|
||||
name: "item",
|
||||
component: {
|
||||
|
|
@ -53,7 +53,28 @@ export const generateMDForm = async (
|
|||
props,
|
||||
},
|
||||
};
|
||||
generateForm(async (props: any) => {}, props, newitem, false, true);
|
||||
|
||||
let cur_item = (
|
||||
item.edit.childs
|
||||
.find((e) => e.name.includes("child"))
|
||||
?.edit?.childs?.find((e) => e.name === "tab")?.component?.props as any
|
||||
)?.child?.content?.childs?.[0];
|
||||
|
||||
if (cur_item) {
|
||||
const new_item = createItem(raw_new_item) as IItem;
|
||||
for (const [k, v] of Object.entries(new_item.component?.props || {})) {
|
||||
if (cur_item.component) {
|
||||
const prop = v as any;
|
||||
if (prop.meta.type !== "content-element") {
|
||||
cur_item.component.props[k] = v;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cur_item = raw_new_item;
|
||||
}
|
||||
|
||||
generateForm(async (props: any) => {}, props, cur_item, false, true);
|
||||
|
||||
tab_detail?.edit.setProp("breadcrumb", {
|
||||
mode: "raw",
|
||||
|
|
|
|||
Loading…
Reference in New Issue