diff --git a/packages/ui-vue/components/dynamic-form/src/composition/use-type-resolver.ts b/packages/ui-vue/components/dynamic-form/src/composition/use-type-resolver.ts index 786c8b71072bb94445a8c1c89b80ab732f1db65d..5d1bf9a36c2150bf513309726e0c9ba12da5ed71 100644 --- a/packages/ui-vue/components/dynamic-form/src/composition/use-type-resolver.ts +++ b/packages/ui-vue/components/dynamic-form/src/composition/use-type-resolver.ts @@ -74,7 +74,7 @@ export function useTypeResolver(): UseTypeResolver { case 'response-layout-editor-setting': case 'response-layout-splitter': case 'menu-lookup': - case 'configuration-parameter-editor': + case 'json-editor': return 'onChange'; case 'field-selector': case 'binding-selector': return 'onFieldSelected'; diff --git a/packages/ui-vue/components/dynamic-form/src/types.ts b/packages/ui-vue/components/dynamic-form/src/types.ts index d10c2663b284ad2b208a536f5902090ceda341bb..c9814ffcfcbcd0c6e95bf6d24d0d517cbc1e8add 100644 --- a/packages/ui-vue/components/dynamic-form/src/types.ts +++ b/packages/ui-vue/components/dynamic-form/src/types.ts @@ -3,7 +3,7 @@ export type EditorType = 'button-edit' | 'check-box' | 'check-group' | 'combo-li 'year-picker' | 'year-range' | 'input-group' | 'lookup' | 'number-range' | 'number-spinner' | 'radio-group' | 'text' | 'response-layout-editor-setting' | 'switch' | 'grid-field-editor' | 'field-selector' | 'schema-selector' | 'mapping-editor' | 'textarea' | 'response-form-layout-setting' | 'binding-selector' | 'query-solution-config' | 'solution-preset' | 'item-collection-editor' | - 'menu-lookup' | 'response-layout-splitter' | 'configuration-parameter-editor' | 'property-editor' | 'sort-condition-editor' | + 'menu-lookup' | 'response-layout-splitter' | 'json-editor' | 'property-editor' | 'sort-condition-editor' | 'filter-condition-editor' | 'expression-editor' | 'code-editor'; export interface EditorConfig { diff --git a/packages/ui-vue/components/dynamic-view/src/components/maps.ts b/packages/ui-vue/components/dynamic-view/src/components/maps.ts index 5286eb9dfb8ab6a5c2ee6f74311950d4e29e6266..c4da05aed6981af64f7367bc4f293ac8eeb538c0 100644 --- a/packages/ui-vue/components/dynamic-view/src/components/maps.ts +++ b/packages/ui-vue/components/dynamic-view/src/components/maps.ts @@ -64,7 +64,7 @@ import FFieldset from '@farris/ui-vue/components/fieldset'; import FSortConditionEditor from '@farris/ui-vue/components/sort-condition-editor'; import FMenuLookup from '@farris/ui-vue/components/menu-lookup'; import FDrawer from '@farris/ui-vue/components/drawer'; -import FConfigurationParameterEditor from '@farris/ui-vue/components/configuration-parameter-editor'; +import FJsonEditor from '@farris/ui-vue/components/json-editor'; import FPropertyEditor from '@farris/ui-vue/components/property-editor'; import FExpressionEditor from '@farris/ui-vue/components/expression-editor'; import FCodeEditor from '@farris/ui-vue/components/code-editor'; @@ -150,7 +150,7 @@ function loadRegister() { FFieldset.register(componentMap, componentPropsConverter, componentPropertyConfigConverter, resolverMap); FMenuLookup.register(componentMap, componentPropsConverter, componentPropertyConfigConverter, resolverMap); FDrawer.register(componentMap, componentPropsConverter, componentPropertyConfigConverter, resolverMap); - FConfigurationParameterEditor.register(componentMap, componentPropsConverter, componentPropertyConfigConverter, resolverMap); + FJsonEditor.register(componentMap, componentPropsConverter, componentPropertyConfigConverter, resolverMap); FPropertyEditor.register(componentMap, componentPropsConverter, componentPropertyConfigConverter, resolverMap); FCodeEditor.register(componentMap, componentPropsConverter, componentPropertyConfigConverter, resolverMap); FHtmlTemplate.register(componentMap, componentPropsConverter, componentPropertyConfigConverter, resolverMap); diff --git a/packages/ui-vue/components/event-parameter/src/composition/editors/use-filter-condition-editor.ts b/packages/ui-vue/components/event-parameter/src/composition/editors/use-filter-condition-editor.ts index 2220e8031b33c2c5ac4eb1d953138ce0e6fa4324..a569f83d8c75ecd165729bd0b6849fa0172576cd 100644 --- a/packages/ui-vue/components/event-parameter/src/composition/editors/use-filter-condition-editor.ts +++ b/packages/ui-vue/components/event-parameter/src/composition/editors/use-filter-condition-editor.ts @@ -30,8 +30,19 @@ export default function ( return JSON.stringify(editorValue); } + function getFieldTreeNodes(): any[] { + const fields: any[] = props.activeViewModelFieldData || []; + const treeNodes: any[] = []; + fields.forEach((field) => { + treeNodes.push( + Object.assign({}, field, { id: field.path, parent: field.parentNode?.path }) + ); + }); + return treeNodes; + } + function beforeOpen(): Promise { - const fieldList = [...(props.activeViewModelFieldData || [])]; + const fieldList = getFieldTreeNodes(); const conditionList = convertEventParamValue2EditorValue(props.modelValue); const entities = []; const variables = []; @@ -46,7 +57,7 @@ export default function ( editorMap[props.editorType] = { type: 'filter-condition-editor', componentProps: { - fields: props.activeViewModelFieldData, + fields: getFieldTreeNodes(), singleValue: false, beforeOpen, }, diff --git a/packages/ui-vue/components/event-parameter/src/composition/editors/use-configuration-parameter-editor.ts b/packages/ui-vue/components/event-parameter/src/composition/editors/use-json-editor.ts similarity index 83% rename from packages/ui-vue/components/event-parameter/src/composition/editors/use-configuration-parameter-editor.ts rename to packages/ui-vue/components/event-parameter/src/composition/editors/use-json-editor.ts index 4198d575b0ba257dfb0623ceb333dd0ac8c27ed2..2d5ed688d8adc19882edf6afc71bef4525d27fad 100644 --- a/packages/ui-vue/components/event-parameter/src/composition/editors/use-configuration-parameter-editor.ts +++ b/packages/ui-vue/components/event-parameter/src/composition/editors/use-json-editor.ts @@ -18,7 +18,7 @@ export default function ( } return []; } catch (error) { - console.error(`Expected array of parameter schema for ConfigurationParameterEditor, but received invalid JSON.`, error); + console.error(`Expected array of parameter schema for JsonEditor, but received invalid JSON.`, error); return []; } } @@ -36,7 +36,7 @@ export default function ( function createEditorProps(): void { editorMap[props.editorType] = { - type: 'configuration-parameter-editor', + type: 'json-editor', componentProps: { parameterDescriptors: getParameterDescriptors(), formContextData: { @@ -45,6 +45,11 @@ export default function ( formData: props.formData, }, beforeOpen, + dialogTitle: '可配置参数编辑器', + keyColumnTitle: '参数', + valueColumnTitle: '参数值', + addButtonText: '添加配置参数', + keyColumnPlaceholder: '请输入参数', }, }; } diff --git a/packages/ui-vue/components/event-parameter/src/composition/editors/use-sort-condition-editor.ts b/packages/ui-vue/components/event-parameter/src/composition/editors/use-sort-condition-editor.ts index 8c0b2a2825bb5e1308cfcb10fae1a3d90ba5e9cf..b35c2c6a31f485831eb362e97bcfe42c3e6dcf96 100644 --- a/packages/ui-vue/components/event-parameter/src/composition/editors/use-sort-condition-editor.ts +++ b/packages/ui-vue/components/event-parameter/src/composition/editors/use-sort-condition-editor.ts @@ -52,8 +52,19 @@ export default function ( return JSON.stringify(editorValue); } + function getFieldTreeNodes(): any[] { + const fields: any[] = props.activeViewModelFieldData || []; + const treeNodes: any[] = []; + fields.forEach((field) => { + treeNodes.push( + Object.assign({}, field, { id: field.path, parent: field.parentNode?.path }) + ); + }); + return treeNodes; + } + function beforeOpen(): Promise { - const fieldList = [...(props.activeViewModelFieldData || [])]; + const fieldList = getFieldTreeNodes(); const conditionList = convertEventParamValue2EditorValue(props.modelValue); const entities = []; const variables = []; @@ -65,7 +76,7 @@ export default function ( editorMap[props.editorType] = { type: 'sort-condition-editor', componentProps: { - fields: props.activeViewModelFieldData, + fields: getFieldTreeNodes(), beforeOpen, }, convertEditorValue2EventParamValue, diff --git a/packages/ui-vue/components/event-parameter/src/composition/use-editor.ts b/packages/ui-vue/components/event-parameter/src/composition/use-editor.ts index b3e370e8f4053243f4a38a3ea7356f95ec3eed68..0a76834cb9bb9757fab48b3138e80999abc17b15 100644 --- a/packages/ui-vue/components/event-parameter/src/composition/use-editor.ts +++ b/packages/ui-vue/components/event-parameter/src/composition/use-editor.ts @@ -6,7 +6,7 @@ import useEditorSwitch from './editors/use-switch'; import useEditorInput from './editors/use-input'; import useComboLookup from './editors/use-combo-tree'; import useMenuLookup from './editors/use-menu-lookup'; -import useConfigurationParameterEditor from './editors/use-configuration-parameter-editor'; +import useJsonEditor from './editors/use-json-editor'; import useSortConditionEditor from "./editors/use-sort-condition-editor"; import useFilterConditionEditor from "./editors/use-filter-condition-editor"; @@ -25,8 +25,8 @@ export default function ( const useEditorComboLookupComposition = useComboLookup(props); // 功能菜单选择器组件 const useMenuLookupComposition = useMenuLookup(props); - // 可配置参数编辑器组件 - const useConfigurationParameterEditorComposition = useConfigurationParameterEditor(props); + // JSON编辑器组件 + const useJsonEditorComposition = useJsonEditor(props); // 排序条件编辑器组件 const useSortConditionEditorComposition = useSortConditionEditor(props); // 过滤条件编辑器组件 @@ -44,7 +44,7 @@ export default function ( } else if (editorTypeValue === EditorType.MenuIdSelector) { useMenuLookupComposition.createEditorProps(); } else if (editorTypeValue === EditorType.ConfigurationParameterEditor) { - useConfigurationParameterEditorComposition.createEditorProps(); + useJsonEditorComposition.createEditorProps(); } else if (editorTypeValue === EditorType.SortEditor) { useSortConditionEditorComposition.createEditorProps(); } else if (editorTypeValue === EditorType.FilterEditor) { diff --git a/packages/ui-vue/components/filter-condition-editor/index.ts b/packages/ui-vue/components/filter-condition-editor/index.ts index f81b73146968f3c69a2bfef57e430cb0a9234cfd..7c3686837e169725e508f9ca4a4bd9fe698da6f1 100644 --- a/packages/ui-vue/components/filter-condition-editor/index.ts +++ b/packages/ui-vue/components/filter-condition-editor/index.ts @@ -3,6 +3,7 @@ import FilterConditionEditor from './src/filter-condition-editor.component'; import { propsResolver } from './src/filter-condition-editor.props'; import ConditionActions from './src/components/filter-condition-actions.component'; +import './src/filter-condition-editor.scss'; export * from './src/filter-condition-editor.props'; export * from './src/composition/types'; diff --git a/packages/ui-vue/components/filter-condition-editor/src/components/filter-condition-actions.component.tsx b/packages/ui-vue/components/filter-condition-editor/src/components/filter-condition-actions.component.tsx index 3ef16112e2de9747a221a7146e9edf0d2776e3a2..6370c6c7eca3d861a9eae1c2f66983d74916b5fc 100644 --- a/packages/ui-vue/components/filter-condition-editor/src/components/filter-condition-actions.component.tsx +++ b/packages/ui-vue/components/filter-condition-editor/src/components/filter-condition-actions.component.tsx @@ -51,7 +51,7 @@ export default defineComponent({ + class="btn btn-default f-btn-ml">上移