From 0ddd31feccf5013a2ab8b59d89d18e5af45713d7 Mon Sep 17 00:00:00 2001 From: Rizky Date: Wed, 26 Jun 2024 01:41:07 -0700 Subject: [PATCH] fix relation --- comps/form/field/type/TypeDropdown.tsx | 4 +--- comps/form/gen/fields.ts | 2 +- comps/form/gen/gen-field.ts | 1 + comps/form/gen/gen-rel-many.ts | 1 + comps/form/gen/on_load.ts | 3 +-- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/comps/form/field/type/TypeDropdown.tsx b/comps/form/field/type/TypeDropdown.tsx index d46ec16..e75337c 100755 --- a/comps/form/field/type/TypeDropdown.tsx +++ b/comps/form/field/type/TypeDropdown.tsx @@ -85,16 +85,14 @@ export const TypeDropdown: FC<{ { - console.log(search, item); if (item) { - const result = arg.opt_set_value({ + arg.opt_set_value({ fm, name: field.name, type: field.type, options: local.options, selected: [item.value], }); - console.log(item, result); } return item?.value || search; diff --git a/comps/form/gen/fields.ts b/comps/form/gen/fields.ts index 7c5ef74..3031058 100755 --- a/comps/form/gen/fields.ts +++ b/comps/form/gen/fields.ts @@ -107,7 +107,7 @@ export const newField = async ( const res = generateSelect(fields); const load = on_load_rel({ pk: res.pk, - table: arg.name, + table: arg.relation.to.table, select: res.select, pks: {}, }); diff --git a/comps/form/gen/gen-field.ts b/comps/form/gen/gen-field.ts index 0301ee0..31f5ce3 100755 --- a/comps/form/gen/gen-field.ts +++ b/comps/form/gen/gen-field.ts @@ -25,6 +25,7 @@ export const generateField = async ( ) as any; const pk = fields.find((e: any) => get(e, "is_pk")) as any; const pk_master = master.relation.fields.find((e: any) => get(e, "is_pk")); + const load = on_load_rel({ pk: generateSelect(parseGenField(master.value.checked)).pk, table: master?.name, diff --git a/comps/form/gen/gen-rel-many.ts b/comps/form/gen/gen-rel-many.ts index 73af9d3..79d3267 100755 --- a/comps/form/gen/gen-rel-many.ts +++ b/comps/form/gen/gen-rel-many.ts @@ -16,6 +16,7 @@ export const genRelMany = (prop: { // select master if (master) { const select = generateSelect(master.relation.fields); + result.on_load = on_load_rel({ pk: select.pk, table: master.name, diff --git a/comps/form/gen/on_load.ts b/comps/form/gen/on_load.ts index a0e1821..676a9c6 100755 --- a/comps/form/gen/on_load.ts +++ b/comps/form/gen/on_load.ts @@ -40,8 +40,7 @@ async (opt) => { raw_id = md.selected[pk]; } } - if (parseInt(raw_id)) raw_id = parseInt(raw_id); - + ${opt?.before_load ? opt.before_load : `let id = raw_id`} let item = {}; let where = {