From ce5a34e3b0e426c360341457973607e32a0c3676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?cls=5F=E5=AE=81=E6=B3=A2=E6=9C=AC=E6=9C=BA?= <908705107@qq.com> Date: Tue, 9 Jun 2026 23:41:12 +0800 Subject: [PATCH] Restore lightweight form data selectors --- .gitignore | 2 - .../zq-form/form-selector/form-selector.vue | 497 +++++++++++++++- .../components/zq-form/form-selector/types.ts | 20 +- .../zq-form/table-selector/table-selector.vue | 530 +++++++++++++++++- .../zq-form/table-selector/types.ts | 37 ++ 5 files changed, 1055 insertions(+), 31 deletions(-) create mode 100644 web/apps/web-ele/src/components/zq-form/table-selector/types.ts diff --git a/.gitignore b/.gitignore index f777bb6..ffaaba6 100644 --- a/.gitignore +++ b/.gitignore @@ -269,8 +269,6 @@ web/apps/web-ele/src/views/ai-platform/workflow/editor/panels/SystemSummaryPanel !web/apps/web-ele/src/views/ai-platform/workflow/editor/nodes/SystemSummaryNode.vue !web/apps/web-ele/src/views/ai-platform/workflow/editor/panels/SystemSummaryPanel.vue web/apps/web-ele/src/views/wiki/ -web/apps/web-ele/src/components/zq-form/table-selector/types.ts - # keep only lightweight form-editor barrel web/apps/web-ele/src/components/form-editor/* !web/apps/web-ele/src/components/form-editor/index.ts diff --git a/web/apps/web-ele/src/components/zq-form/form-selector/form-selector.vue b/web/apps/web-ele/src/components/zq-form/form-selector/form-selector.vue index f84ecd3..e368e62 100644 --- a/web/apps/web-ele/src/components/zq-form/form-selector/form-selector.vue +++ b/web/apps/web-ele/src/components/zq-form/form-selector/form-selector.vue @@ -1,23 +1,492 @@ - - {{ placeholder || 'Form selector unavailable' }} - + + + + + + + + + + + {{ $t('common.search') }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ $t('form-design.attribute.selectFormFirst') }} + + + + + + + + + {{ + $t('form-design.attribute.selectedCount', { + count: selectedValues.size, + }) + }} + + + + {{ $t('common.cancel') }} + + + {{ $t('common.ok') }} + + + + + + + + + + diff --git a/web/apps/web-ele/src/components/zq-form/form-selector/types.ts b/web/apps/web-ele/src/components/zq-form/form-selector/types.ts index 3bed226..5173886 100644 --- a/web/apps/web-ele/src/components/zq-form/form-selector/types.ts +++ b/web/apps/web-ele/src/components/zq-form/form-selector/types.ts @@ -1,5 +1,23 @@ export interface FormSelectorProps { - disabled?: boolean; + modelValue?: null | string | string[]; + formCode?: string; + valueField?: string; + labelField?: string; multiple?: boolean; + collapseTags?: boolean; + maxCollapseTags?: number; placeholder?: string; + disabled?: boolean; + clearable?: boolean; + dialogTitle?: string; + dialogWidth?: string; + expandMultipleToRows?: boolean; + externalSelectedValues?: string[]; + initialFilters?: Record; +} + +export interface FormSelectorEmits { + (e: 'update:modelValue', value: null | string | string[]): void; + (e: 'change', value: null | string | string[]): void; + (e: 'select-item', item: any): void; } diff --git a/web/apps/web-ele/src/components/zq-form/table-selector/table-selector.vue b/web/apps/web-ele/src/components/zq-form/table-selector/table-selector.vue index c43e4da..7912e9a 100644 --- a/web/apps/web-ele/src/components/zq-form/table-selector/table-selector.vue +++ b/web/apps/web-ele/src/components/zq-form/table-selector/table-selector.vue @@ -1,23 +1,525 @@ - - {{ placeholder || 'Table selector unavailable' }} - + + + + + + + + + + + {{ $t('common.search') }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ + $t('form-design.attribute.selectedCount', { + count: selectedValues.size, + }) + }} + + + + + {{ $t('common.cancel') }} + + + {{ $t('common.confirm') }} + + + + + + + + + + diff --git a/web/apps/web-ele/src/components/zq-form/table-selector/types.ts b/web/apps/web-ele/src/components/zq-form/table-selector/types.ts new file mode 100644 index 0000000..17e50e8 --- /dev/null +++ b/web/apps/web-ele/src/components/zq-form/table-selector/types.ts @@ -0,0 +1,37 @@ +export interface TableSelectorColumn { + field: string; + label: string; + width?: number | string; +} + +export interface TableSelectorProps { + modelValue?: string | string[]; + multiple?: boolean; + placeholder?: string; + disabled?: boolean; + clearable?: boolean; + dialogTitle?: string; + dialogWidth?: string; + columns?: TableSelectorColumn[]; + labelField?: string; + valueField?: string; + dataSourceType?: 'api' | 'dataSource' | 'dict' | 'formData' | 'static'; + dictCode?: string; + dataSourceCode?: string; + formCode?: string; + apiUrl?: string; + apiMethod?: 'GET' | 'POST'; + searchFields?: string[]; + collapseTags?: boolean; + options?: Array>; +} + +export interface TableSelectorEmits { + (e: 'update:modelValue', value: string | string[] | undefined): void; + (e: 'change', value: string | string[] | undefined): void; + (e: 'blur'): void; + ( + e: 'select-item', + item: Record | Record[] | undefined, + ): void; +}