50 lines
1.1 KiB
TypeScript
Executable File
50 lines
1.1 KiB
TypeScript
Executable File
import { newField } from "@/gen/gen_form/new_field";
|
|
import { FMLocal, FieldLocal } from "../typings";
|
|
import get from "lodash.get";
|
|
import { fieldMapping } from "../field/mapping";
|
|
import { createItem } from "@/gen/utils";
|
|
|
|
export const genFieldMitem = (arg: {
|
|
_meta: any;
|
|
_item: any;
|
|
_sync: any;
|
|
fm: FMLocal;
|
|
field: FieldLocal;
|
|
}) => {
|
|
const { _meta, _item, _sync, fm, field } = arg;
|
|
const m = _meta[_item.id];
|
|
if (m) {
|
|
const mitem = m.mitem;
|
|
if (mitem) {
|
|
const childs = mitem
|
|
.get("component")
|
|
?.get("props")
|
|
?.get("child")
|
|
?.get("content")
|
|
?.get("childs");
|
|
|
|
const col = fm.field_def[field.name];
|
|
if (col) {
|
|
const component = fieldMapping[field.type as "text"];
|
|
if (component) {
|
|
const item = createItem({
|
|
component: component as any,
|
|
});
|
|
|
|
_sync(childs, [...childs.toJSON(), item]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
export const updateFieldMItem = (_meta: any, _item: any, _sync: any) => {
|
|
const m = _meta[_item.id];
|
|
if (m) {
|
|
const mitem = m.mitem;
|
|
if (mitem) {
|
|
_sync(mitem, _item);
|
|
}
|
|
}
|
|
};
|