diff --git a/src/lib/components/dictionary/test/config/test-form-config.js b/src/lib/components/dictionary/test/config/test-form-config.js index 0ac6e67..49a9aae 100644 --- a/src/lib/components/dictionary/test/config/test-form-config.js +++ b/src/lib/components/dictionary/test/config/test-form-config.js @@ -74,7 +74,7 @@ export const testCalSchema = z }); export const testGroupSchema = z.object({ - Member: z.string().optional() + Members: z.string().optional() }); export const refNumSchema = z @@ -219,7 +219,7 @@ export const testCalInitialForm = { export const testGroupInitialForm = { TestGrpID: '', TestSiteID: '', - Member: '', + Members: [], } export const refNumInitialForm = { @@ -284,7 +284,7 @@ export const testCalDefaultErrors = { }; export const testGroupDefaultErrors = { - Member: null, + Members: 'fdsa', } export const refNumDefaultErrors = { @@ -1062,6 +1062,11 @@ export function buildTestPayload({ mainForm, activeFormStates, testType, refNumD } else if (key === 'refTxt' && refTxtData?.length > 0) { payload[key] = refTxtData; + } else if(key === 'group') { + payload[key] = { + ...state.form, + Members: state.form?.Members?.map((m) => m.value).filter(Boolean) ?? [] + }; } else if (state?.form) { payload[key] = { ...state.form diff --git a/src/lib/components/dictionary/test/page/create-page.svelte b/src/lib/components/dictionary/test/page/create-page.svelte index b09f8e8..d915c66 100644 --- a/src/lib/components/dictionary/test/page/create-page.svelte +++ b/src/lib/components/dictionary/test/page/create-page.svelte @@ -123,6 +123,9 @@ map: mapFormState }; case 'GROUP': + return { + group: groupFormState + } case 'TITLE': default: return {}; diff --git a/src/lib/components/dictionary/test/page/tabs/group.svelte b/src/lib/components/dictionary/test/page/tabs/group.svelte index 75ecc4f..9dd05a5 100644 --- a/src/lib/components/dictionary/test/page/tabs/group.svelte +++ b/src/lib/components/dictionary/test/page/tabs/group.svelte @@ -1,25 +1,34 @@
- -
\ No newline at end of file + + diff --git a/src/lib/components/reusable/form/dictionary-form-renderer.svelte b/src/lib/components/reusable/form/dictionary-form-renderer.svelte index 29fa9bd..13dcc3d 100644 --- a/src/lib/components/reusable/form/dictionary-form-renderer.svelte +++ b/src/lib/components/reusable/form/dictionary-form-renderer.svelte @@ -30,11 +30,26 @@ handleTestTypeChange, handleResultTypeChange, handleRefTypeChange, - members = [], onAddMember, - onRemoveMember, + onRemoveMember } = $props(); + // $effect(() => { + // if (!formFields) return; + + // const hasMembersField = formFields.some((group) => + // group.rows?.some((row) => row.columns?.some((col) => col.type === 'members')) + // ); + + // if (hasMembersField) { + // if (members.length > 0) { + // formState.form.Member = members.map((m) => m.value).filter((v) => v); + // } else { + // formState.form.Member = ''; + // } + // } + // }); + const operators = ['+', '-', '*', '/', '^', '(', ')']; let searchQuery = $state({}); @@ -355,7 +370,7 @@ {@const currentValues = Array.isArray(formState.form[key]) ? formState.form[key] : []} item.value)} + value={currentValues.map((item) => item.value)} onValueChange={(val) => { const selectedObjects = (formState.selectOptions?.[key] ?? []).filter((opt) => val.includes(opt.value) @@ -615,21 +630,20 @@ {/if} - {:else if type === "members"} + {:else if type === 'members'} {@const filteredOptions = getFilteredOptions(key)}
- {#each members as member, index (member.id)} - {@const selectedLabel = - formState.selectOptions?.[key]?.find( - (opt) => opt.value === member.value - )?.label || 'Choose'} + {#each formState.form.Members as member, index (member.id)} + {@const selectedLabel = + formState.selectOptions?.[key]?.find((opt) => opt.value === member.value)?.label || + 'Choose'}
- +
- { @@ -668,7 +682,12 @@
-