mirror of
				https://github.com/Tencent/tmagic-editor.git
				synced 2025-11-04 02:28:04 +08:00 
			
		
		
		
	feat(editor,form,form-schema): 新增form-schema,将表单schema放入其中
This commit is contained in:
		
							parent
							
								
									85284e54f5
								
							
						
					
					
						commit
						50b74d10e6
					
				@ -13,7 +13,7 @@
 | 
				
			|||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script lang="ts" setup>
 | 
					<script lang="ts" setup>
 | 
				
			||||||
import type { FieldProps, FormItem } from '@tmagic/form';
 | 
					import type { CodeConfig, FieldProps } from '@tmagic/form';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import MagicCodeEditor from '@editor/layouts/CodeEditor.vue';
 | 
					import MagicCodeEditor from '@editor/layouts/CodeEditor.vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -25,23 +25,9 @@ const emit = defineEmits<{
 | 
				
			|||||||
  change: [value: string | any];
 | 
					  change: [value: string | any];
 | 
				
			||||||
}>();
 | 
					}>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
withDefaults(
 | 
					withDefaults(defineProps<FieldProps<CodeConfig>>(), {
 | 
				
			||||||
  defineProps<
 | 
					  disabled: false,
 | 
				
			||||||
    FieldProps<
 | 
					});
 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        language?: string;
 | 
					 | 
				
			||||||
        options?: {
 | 
					 | 
				
			||||||
          [key: string]: any;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        height?: string;
 | 
					 | 
				
			||||||
        parse?: boolean;
 | 
					 | 
				
			||||||
      } & FormItem
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
  >(),
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    disabled: false,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const save = (v: string | any) => {
 | 
					const save = (v: string | any) => {
 | 
				
			||||||
  emit('change', v);
 | 
					  emit('change', v);
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@
 | 
				
			|||||||
import { computed, reactive, watch } from 'vue';
 | 
					import { computed, reactive, watch } from 'vue';
 | 
				
			||||||
import serialize from 'serialize-javascript';
 | 
					import serialize from 'serialize-javascript';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import type { FieldProps, FormItem } from '@tmagic/form';
 | 
					import type { CodeLinkConfig, FieldProps } from '@tmagic/form';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { getEditorConfig } from '@editor/utils/config';
 | 
					import { getEditorConfig } from '@editor/utils/config';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14,15 +14,7 @@ defineOptions({
 | 
				
			|||||||
  name: 'MFieldsCodeLink',
 | 
					  name: 'MFieldsCodeLink',
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = defineProps<
 | 
					const props = defineProps<FieldProps<CodeLinkConfig>>();
 | 
				
			||||||
  FieldProps<
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      type: 'code-link';
 | 
					 | 
				
			||||||
      formTitle?: string;
 | 
					 | 
				
			||||||
      codeOptions?: Object;
 | 
					 | 
				
			||||||
    } & FormItem
 | 
					 | 
				
			||||||
  >
 | 
					 | 
				
			||||||
>();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const emit = defineEmits(['change']);
 | 
					const emit = defineEmits(['change']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,7 @@ import { isEmpty } from 'lodash-es';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import { HookCodeType, HookType } from '@tmagic/core';
 | 
					import { HookCodeType, HookType } from '@tmagic/core';
 | 
				
			||||||
import { TMagicCard } from '@tmagic/design';
 | 
					import { TMagicCard } from '@tmagic/design';
 | 
				
			||||||
import type { ContainerChangeEventData, FieldProps, FormItem, GroupListConfig } from '@tmagic/form';
 | 
					import type { CodeSelectConfig, ContainerChangeEventData, FieldProps, GroupListConfig } from '@tmagic/form';
 | 
				
			||||||
import { MContainer } from '@tmagic/form';
 | 
					import { MContainer } from '@tmagic/form';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { useServices } from '@editor/hooks/use-services';
 | 
					import { useServices } from '@editor/hooks/use-services';
 | 
				
			||||||
@ -36,16 +36,7 @@ const emit = defineEmits<{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const { dataSourceService, codeBlockService } = useServices();
 | 
					const { dataSourceService, codeBlockService } = useServices();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = withDefaults(
 | 
					const props = withDefaults(defineProps<FieldProps<CodeSelectConfig>>(), {});
 | 
				
			||||||
  defineProps<
 | 
					 | 
				
			||||||
    FieldProps<
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        className?: string;
 | 
					 | 
				
			||||||
      } & FormItem
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
  >(),
 | 
					 | 
				
			||||||
  {},
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const codeConfig = computed<GroupListConfig>(() => ({
 | 
					const codeConfig = computed<GroupListConfig>(() => ({
 | 
				
			||||||
  type: 'group-list',
 | 
					  type: 'group-list',
 | 
				
			||||||
 | 
				
			|||||||
@ -42,6 +42,7 @@ import { isEmpty, map } from 'lodash-es';
 | 
				
			|||||||
import type { Id } from '@tmagic/core';
 | 
					import type { Id } from '@tmagic/core';
 | 
				
			||||||
import { TMagicButton } from '@tmagic/design';
 | 
					import { TMagicButton } from '@tmagic/design';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
 | 
					  type CodeSelectColConfig,
 | 
				
			||||||
  type ContainerChangeEventData,
 | 
					  type ContainerChangeEventData,
 | 
				
			||||||
  createValues,
 | 
					  createValues,
 | 
				
			||||||
  type FieldProps,
 | 
					  type FieldProps,
 | 
				
			||||||
@ -53,7 +54,7 @@ import {
 | 
				
			|||||||
import CodeParams from '@editor/components/CodeParams.vue';
 | 
					import CodeParams from '@editor/components/CodeParams.vue';
 | 
				
			||||||
import MIcon from '@editor/components/Icon.vue';
 | 
					import MIcon from '@editor/components/Icon.vue';
 | 
				
			||||||
import { useServices } from '@editor/hooks/use-services';
 | 
					import { useServices } from '@editor/hooks/use-services';
 | 
				
			||||||
import type { CodeParamStatement, CodeSelectColConfig, EventBus } from '@editor/type';
 | 
					import type { CodeParamStatement, EventBus } from '@editor/type';
 | 
				
			||||||
import { SideItemKey } from '@editor/type';
 | 
					import { SideItemKey } from '@editor/type';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
defineOptions({
 | 
					defineOptions({
 | 
				
			||||||
 | 
				
			|||||||
@ -30,10 +30,9 @@
 | 
				
			|||||||
import { computed } from 'vue';
 | 
					import { computed } from 'vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { getDesignConfig, TMagicSelect } from '@tmagic/design';
 | 
					import { getDesignConfig, TMagicSelect } from '@tmagic/design';
 | 
				
			||||||
import type { FieldProps } from '@tmagic/form';
 | 
					import type { CondOpSelectConfig, FieldProps } from '@tmagic/form';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { useServices } from '@editor/hooks/use-services';
 | 
					import { useServices } from '@editor/hooks/use-services';
 | 
				
			||||||
import type { CondOpSelectConfig } from '@editor/type';
 | 
					 | 
				
			||||||
import { arrayOptions, eqOptions, numberOptions } from '@editor/utils';
 | 
					import { arrayOptions, eqOptions, numberOptions } from '@editor/utils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
defineOptions({
 | 
					defineOptions({
 | 
				
			||||||
 | 
				
			|||||||
@ -44,12 +44,11 @@ import { Coin } from '@element-plus/icons-vue';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import { DataSchema } from '@tmagic/core';
 | 
					import { DataSchema } from '@tmagic/core';
 | 
				
			||||||
import { TMagicButton, tMagicMessage, TMagicTooltip } from '@tmagic/design';
 | 
					import { TMagicButton, tMagicMessage, TMagicTooltip } from '@tmagic/design';
 | 
				
			||||||
import type { ContainerChangeEventData, FieldProps, FormState } from '@tmagic/form';
 | 
					import type { ContainerChangeEventData, DataSourceFieldSelectConfig, FieldProps, FormState } from '@tmagic/form';
 | 
				
			||||||
import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX } from '@tmagic/utils';
 | 
					import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX } from '@tmagic/utils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import MIcon from '@editor/components/Icon.vue';
 | 
					import MIcon from '@editor/components/Icon.vue';
 | 
				
			||||||
import { useServices } from '@editor/hooks/use-services';
 | 
					import { useServices } from '@editor/hooks/use-services';
 | 
				
			||||||
import type { DataSourceFieldSelectConfig } from '@editor/type';
 | 
					 | 
				
			||||||
import { removeDataSourceFieldPrefix } from '@editor/utils';
 | 
					import { removeDataSourceFieldPrefix } from '@editor/utils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import FieldSelect from './FieldSelect.vue';
 | 
					import FieldSelect from './FieldSelect.vue';
 | 
				
			||||||
 | 
				
			|||||||
@ -53,6 +53,7 @@ import type { DataSchema } from '@tmagic/core';
 | 
				
			|||||||
import { TMagicButton, tMagicMessage, tMagicMessageBox } from '@tmagic/design';
 | 
					import { TMagicButton, tMagicMessage, tMagicMessageBox } from '@tmagic/design';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  type ContainerChangeEventData,
 | 
					  type ContainerChangeEventData,
 | 
				
			||||||
 | 
					  type DataSourceFieldsConfig,
 | 
				
			||||||
  type FieldProps,
 | 
					  type FieldProps,
 | 
				
			||||||
  type FormConfig,
 | 
					  type FormConfig,
 | 
				
			||||||
  type FormState,
 | 
					  type FormState,
 | 
				
			||||||
@ -71,16 +72,9 @@ defineOptions({
 | 
				
			|||||||
  name: 'MFieldsDataSourceFields',
 | 
					  name: 'MFieldsDataSourceFields',
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = withDefaults(
 | 
					const props = withDefaults(defineProps<FieldProps<DataSourceFieldsConfig>>(), {
 | 
				
			||||||
  defineProps<
 | 
					  disabled: false,
 | 
				
			||||||
    FieldProps<{
 | 
					});
 | 
				
			||||||
      type: 'data-source-fields';
 | 
					 | 
				
			||||||
    }>
 | 
					 | 
				
			||||||
  >(),
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    disabled: false,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const emit = defineEmits<{
 | 
					const emit = defineEmits<{
 | 
				
			||||||
  change: [v: any, eventData?: ContainerChangeEventData];
 | 
					  change: [v: any, eventData?: ContainerChangeEventData];
 | 
				
			||||||
 | 
				
			|||||||
@ -53,7 +53,7 @@ import { Coin } from '@element-plus/icons-vue';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import type { DataSchema, DataSourceSchema } from '@tmagic/core';
 | 
					import type { DataSchema, DataSourceSchema } from '@tmagic/core';
 | 
				
			||||||
import { getDesignConfig, TMagicAutocomplete, TMagicTag } from '@tmagic/design';
 | 
					import { getDesignConfig, TMagicAutocomplete, TMagicTag } from '@tmagic/design';
 | 
				
			||||||
import type { FieldProps, FormItem } from '@tmagic/form';
 | 
					import type { DataSourceInputConfig, FieldProps } from '@tmagic/form';
 | 
				
			||||||
import { getKeysArray, isNumber } from '@tmagic/utils';
 | 
					import { getKeysArray, isNumber } from '@tmagic/utils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Icon from '@editor/components/Icon.vue';
 | 
					import Icon from '@editor/components/Icon.vue';
 | 
				
			||||||
@ -64,18 +64,9 @@ defineOptions({
 | 
				
			|||||||
  name: 'MFieldsDataSourceInput',
 | 
					  name: 'MFieldsDataSourceInput',
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = withDefaults(
 | 
					const props = withDefaults(defineProps<FieldProps<DataSourceInputConfig>>(), {
 | 
				
			||||||
  defineProps<
 | 
					  disabled: false,
 | 
				
			||||||
    FieldProps<
 | 
					});
 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        type: 'data-source-input';
 | 
					 | 
				
			||||||
      } & FormItem
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
  >(),
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    disabled: false,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const emit = defineEmits<{
 | 
					const emit = defineEmits<{
 | 
				
			||||||
  change: [value: string];
 | 
					  change: [value: string];
 | 
				
			||||||
 | 
				
			|||||||
@ -39,6 +39,7 @@ import type { Id } from '@tmagic/core';
 | 
				
			|||||||
import { TMagicButton, TMagicTooltip } from '@tmagic/design';
 | 
					import { TMagicButton, TMagicTooltip } from '@tmagic/design';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  createValues,
 | 
					  createValues,
 | 
				
			||||||
 | 
					  type DataSourceMethodSelectConfig,
 | 
				
			||||||
  type FieldProps,
 | 
					  type FieldProps,
 | 
				
			||||||
  filterFunction,
 | 
					  filterFunction,
 | 
				
			||||||
  type FormState,
 | 
					  type FormState,
 | 
				
			||||||
@ -49,7 +50,7 @@ import {
 | 
				
			|||||||
import CodeParams from '@editor/components/CodeParams.vue';
 | 
					import CodeParams from '@editor/components/CodeParams.vue';
 | 
				
			||||||
import MIcon from '@editor/components/Icon.vue';
 | 
					import MIcon from '@editor/components/Icon.vue';
 | 
				
			||||||
import { useServices } from '@editor/hooks/use-services';
 | 
					import { useServices } from '@editor/hooks/use-services';
 | 
				
			||||||
import type { CodeParamStatement, DataSourceMethodSelectConfig, EventBus } from '@editor/type';
 | 
					import type { CodeParamStatement, EventBus } from '@editor/type';
 | 
				
			||||||
import { SideItemKey } from '@editor/type';
 | 
					import { SideItemKey } from '@editor/type';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
defineOptions({
 | 
					defineOptions({
 | 
				
			||||||
 | 
				
			|||||||
@ -26,7 +26,7 @@ import { cloneDeep } from 'lodash-es';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import type { CodeBlockContent } from '@tmagic/core';
 | 
					import type { CodeBlockContent } from '@tmagic/core';
 | 
				
			||||||
import { TMagicButton, tMagicMessageBox } from '@tmagic/design';
 | 
					import { TMagicButton, tMagicMessageBox } from '@tmagic/design';
 | 
				
			||||||
import type { ContainerChangeEventData, FieldProps } from '@tmagic/form';
 | 
					import type { ContainerChangeEventData, DataSourceMethodsConfig, FieldProps } from '@tmagic/form';
 | 
				
			||||||
import { type ColumnConfig, MagicTable } from '@tmagic/table';
 | 
					import { type ColumnConfig, MagicTable } from '@tmagic/table';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import CodeBlockEditor from '@editor/components/CodeBlockEditor.vue';
 | 
					import CodeBlockEditor from '@editor/components/CodeBlockEditor.vue';
 | 
				
			||||||
@ -37,16 +37,9 @@ defineOptions({
 | 
				
			|||||||
  name: 'MFieldsDataSourceMethods',
 | 
					  name: 'MFieldsDataSourceMethods',
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = withDefaults(
 | 
					const props = withDefaults(defineProps<FieldProps<DataSourceMethodsConfig>>(), {
 | 
				
			||||||
  defineProps<
 | 
					  disabled: false,
 | 
				
			||||||
    FieldProps<{
 | 
					});
 | 
				
			||||||
      type: 'data-source-methods';
 | 
					 | 
				
			||||||
    }>
 | 
					 | 
				
			||||||
  >(),
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    disabled: false,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const emit = defineEmits(['change']);
 | 
					const emit = defineEmits(['change']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -32,7 +32,7 @@ import { inject, Ref, ref } from 'vue';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import type { MockSchema } from '@tmagic/core';
 | 
					import type { MockSchema } from '@tmagic/core';
 | 
				
			||||||
import { TMagicButton, tMagicMessageBox, TMagicSwitch } from '@tmagic/design';
 | 
					import { TMagicButton, tMagicMessageBox, TMagicSwitch } from '@tmagic/design';
 | 
				
			||||||
import { type FieldProps, type FormConfig, type FormState, MFormBox } from '@tmagic/form';
 | 
					import { type DataSourceMocksConfig, type FieldProps, type FormConfig, type FormState, MFormBox } from '@tmagic/form';
 | 
				
			||||||
import { type ColumnConfig, MagicTable } from '@tmagic/table';
 | 
					import { type ColumnConfig, MagicTable } from '@tmagic/table';
 | 
				
			||||||
import { getDefaultValueFromFields } from '@tmagic/utils';
 | 
					import { getDefaultValueFromFields } from '@tmagic/utils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -47,16 +47,9 @@ defineOptions({
 | 
				
			|||||||
  name: 'MFieldsDataSourceMocks',
 | 
					  name: 'MFieldsDataSourceMocks',
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = withDefaults(
 | 
					const props = withDefaults(defineProps<FieldProps<DataSourceMocksConfig>>(), {
 | 
				
			||||||
  defineProps<
 | 
					  disabled: false,
 | 
				
			||||||
    FieldProps<{
 | 
					});
 | 
				
			||||||
      type: 'data-source-mocks';
 | 
					 | 
				
			||||||
    }>
 | 
					 | 
				
			||||||
  >(),
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    disabled: false,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const emit = defineEmits(['change']);
 | 
					const emit = defineEmits(['change']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -24,11 +24,18 @@ import { computed, inject } from 'vue';
 | 
				
			|||||||
import { Edit, View } from '@element-plus/icons-vue';
 | 
					import { Edit, View } from '@element-plus/icons-vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { TMagicButton, TMagicTooltip } from '@tmagic/design';
 | 
					import { TMagicButton, TMagicTooltip } from '@tmagic/design';
 | 
				
			||||||
import { type FieldProps, filterFunction, type FormState, MSelect, type SelectConfig } from '@tmagic/form';
 | 
					import {
 | 
				
			||||||
 | 
					  type DataSourceSelect,
 | 
				
			||||||
 | 
					  type FieldProps,
 | 
				
			||||||
 | 
					  filterFunction,
 | 
				
			||||||
 | 
					  type FormState,
 | 
				
			||||||
 | 
					  MSelect,
 | 
				
			||||||
 | 
					  type SelectConfig,
 | 
				
			||||||
 | 
					} from '@tmagic/form';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import MIcon from '@editor/components/Icon.vue';
 | 
					import MIcon from '@editor/components/Icon.vue';
 | 
				
			||||||
import { useServices } from '@editor/hooks/use-services';
 | 
					import { useServices } from '@editor/hooks/use-services';
 | 
				
			||||||
import type { DataSourceSelect, EventBus } from '@editor/type';
 | 
					import type { EventBus } from '@editor/type';
 | 
				
			||||||
import { SideItemKey } from '@editor/type';
 | 
					import { SideItemKey } from '@editor/type';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
defineOptions({
 | 
					defineOptions({
 | 
				
			||||||
 | 
				
			|||||||
@ -18,8 +18,8 @@ import { computed, inject } from 'vue';
 | 
				
			|||||||
import type { DisplayCond } from '@tmagic/core';
 | 
					import type { DisplayCond } from '@tmagic/core';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  type ContainerChangeEventData,
 | 
					  type ContainerChangeEventData,
 | 
				
			||||||
 | 
					  type DisplayCondsConfig,
 | 
				
			||||||
  type FieldProps,
 | 
					  type FieldProps,
 | 
				
			||||||
  type FilterFunction,
 | 
					 | 
				
			||||||
  filterFunction,
 | 
					  filterFunction,
 | 
				
			||||||
  type FormState,
 | 
					  type FormState,
 | 
				
			||||||
  type GroupListConfig,
 | 
					  type GroupListConfig,
 | 
				
			||||||
@ -37,17 +37,9 @@ const emit = defineEmits<{
 | 
				
			|||||||
  change: [value: DisplayCond[], eventData?: ContainerChangeEventData];
 | 
					  change: [value: DisplayCond[], eventData?: ContainerChangeEventData];
 | 
				
			||||||
}>();
 | 
					}>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = withDefaults(
 | 
					const props = withDefaults(defineProps<FieldProps<DisplayCondsConfig>>(), {
 | 
				
			||||||
  defineProps<
 | 
					  disabled: false,
 | 
				
			||||||
    FieldProps<{
 | 
					});
 | 
				
			||||||
      titlePrefix?: string;
 | 
					 | 
				
			||||||
      parentFields?: string[] | FilterFunction<string[]>;
 | 
					 | 
				
			||||||
    }>
 | 
					 | 
				
			||||||
  >(),
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    disabled: false,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { dataSourceService } = useServices();
 | 
					const { dataSourceService } = useServices();
 | 
				
			||||||
const mForm = inject<FormState | undefined>('mForm');
 | 
					const mForm = inject<FormState | undefined>('mForm');
 | 
				
			||||||
 | 
				
			|||||||
@ -60,7 +60,10 @@ import { TMagicButton } from '@tmagic/design';
 | 
				
			|||||||
import type {
 | 
					import type {
 | 
				
			||||||
  CascaderOption,
 | 
					  CascaderOption,
 | 
				
			||||||
  ChildConfig,
 | 
					  ChildConfig,
 | 
				
			||||||
 | 
					  CodeSelectColConfig,
 | 
				
			||||||
  ContainerChangeEventData,
 | 
					  ContainerChangeEventData,
 | 
				
			||||||
 | 
					  DataSourceMethodSelectConfig,
 | 
				
			||||||
 | 
					  EventSelectConfig,
 | 
				
			||||||
  FieldProps,
 | 
					  FieldProps,
 | 
				
			||||||
  FormState,
 | 
					  FormState,
 | 
				
			||||||
  OnChangeHandlerData,
 | 
					  OnChangeHandlerData,
 | 
				
			||||||
@ -70,7 +73,6 @@ import { MContainer as MFormContainer, MPanel } from '@tmagic/form';
 | 
				
			|||||||
import { DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX, traverseNode } from '@tmagic/utils';
 | 
					import { DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX, traverseNode } from '@tmagic/utils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { useServices } from '@editor/hooks/use-services';
 | 
					import { useServices } from '@editor/hooks/use-services';
 | 
				
			||||||
import type { CodeSelectColConfig, DataSourceMethodSelectConfig, EventSelectConfig } from '@editor/type';
 | 
					 | 
				
			||||||
import { getCascaderOptionsFromFields } from '@editor/utils';
 | 
					import { getCascaderOptionsFromFields } from '@editor/utils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
defineOptions({
 | 
					defineOptions({
 | 
				
			||||||
 | 
				
			|||||||
@ -63,7 +63,7 @@ import { ref, watchEffect } from 'vue';
 | 
				
			|||||||
import { Delete, Plus } from '@element-plus/icons-vue';
 | 
					import { Delete, Plus } from '@element-plus/icons-vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { TMagicButton, TMagicInput } from '@tmagic/design';
 | 
					import { TMagicButton, TMagicInput } from '@tmagic/design';
 | 
				
			||||||
import type { FieldProps, FormItem } from '@tmagic/form';
 | 
					import type { FieldProps, KeyValueConfig } from '@tmagic/form';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import CodeIcon from '@editor/icons/CodeIcon.vue';
 | 
					import CodeIcon from '@editor/icons/CodeIcon.vue';
 | 
				
			||||||
import MagicCodeEditor from '@editor/layouts/CodeEditor.vue';
 | 
					import MagicCodeEditor from '@editor/layouts/CodeEditor.vue';
 | 
				
			||||||
@ -72,19 +72,9 @@ defineOptions({
 | 
				
			|||||||
  name: 'MFieldsKeyValue',
 | 
					  name: 'MFieldsKeyValue',
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = withDefaults(
 | 
					const props = withDefaults(defineProps<FieldProps<KeyValueConfig>>(), {
 | 
				
			||||||
  defineProps<
 | 
					  disabled: false,
 | 
				
			||||||
    FieldProps<
 | 
					});
 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        type: 'key-value';
 | 
					 | 
				
			||||||
        advanced?: boolean;
 | 
					 | 
				
			||||||
      } & FormItem
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
  >(),
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    disabled: false,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const emit = defineEmits<{
 | 
					const emit = defineEmits<{
 | 
				
			||||||
  change: [value: Record<string, any>];
 | 
					  change: [value: Record<string, any>];
 | 
				
			||||||
 | 
				
			|||||||
@ -20,11 +20,10 @@ import { computed } from 'vue';
 | 
				
			|||||||
import { Edit } from '@element-plus/icons-vue';
 | 
					import { Edit } from '@element-plus/icons-vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Id, NodeType } from '@tmagic/core';
 | 
					import { Id, NodeType } from '@tmagic/core';
 | 
				
			||||||
import { FieldProps } from '@tmagic/form';
 | 
					import { FieldProps, type PageFragmentSelectConfig } from '@tmagic/form';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Icon from '@editor/components/Icon.vue';
 | 
					import Icon from '@editor/components/Icon.vue';
 | 
				
			||||||
import { useServices } from '@editor/hooks/use-services';
 | 
					import { useServices } from '@editor/hooks/use-services';
 | 
				
			||||||
import type { PageFragmentSelectConfig } from '@editor/type';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
defineOptions({
 | 
					defineOptions({
 | 
				
			||||||
  name: 'MFieldsPageFragmentSelect',
 | 
					  name: 'MFieldsPageFragmentSelect',
 | 
				
			||||||
 | 
				
			|||||||
@ -47,7 +47,7 @@ import { throttle } from 'lodash-es';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import type { Id, MNode } from '@tmagic/core';
 | 
					import type { Id, MNode } from '@tmagic/core';
 | 
				
			||||||
import { TMagicButton, TMagicTooltip } from '@tmagic/design';
 | 
					import { TMagicButton, TMagicTooltip } from '@tmagic/design';
 | 
				
			||||||
import type { FieldProps, FormItem, FormState } from '@tmagic/form';
 | 
					import type { FieldProps, FormState, UISelectConfig } from '@tmagic/form';
 | 
				
			||||||
import { getIdFromEl } from '@tmagic/utils';
 | 
					import { getIdFromEl } from '@tmagic/utils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { useServices } from '@editor/hooks/use-services';
 | 
					import { useServices } from '@editor/hooks/use-services';
 | 
				
			||||||
@ -57,7 +57,7 @@ defineOptions({
 | 
				
			|||||||
  name: 'MFieldsUISelect',
 | 
					  name: 'MFieldsUISelect',
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = defineProps<FieldProps<{ type: 'ui-select' } & FormItem>>();
 | 
					const props = defineProps<FieldProps<UISelectConfig>>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const emit = defineEmits(['change']);
 | 
					const emit = defineEmits(['change']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -21,27 +21,8 @@ import type EventEmitter from 'events';
 | 
				
			|||||||
import Sortable, { type Options, type SortableEvent } from 'sortablejs';
 | 
					import Sortable, { type Options, type SortableEvent } from 'sortablejs';
 | 
				
			||||||
import type { PascalCasedProperties } from 'type-fest';
 | 
					import type { PascalCasedProperties } from 'type-fest';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import type {
 | 
					import type { CodeBlockContent, CodeBlockDSL, Id, MApp, MContainer, MNode, MPage, MPageFragment } from '@tmagic/core';
 | 
				
			||||||
  CodeBlockContent,
 | 
					import type { FormConfig, TableColumnConfig } from '@tmagic/form';
 | 
				
			||||||
  CodeBlockDSL,
 | 
					 | 
				
			||||||
  DataSourceFieldType,
 | 
					 | 
				
			||||||
  DataSourceSchema,
 | 
					 | 
				
			||||||
  Id,
 | 
					 | 
				
			||||||
  MApp,
 | 
					 | 
				
			||||||
  MContainer,
 | 
					 | 
				
			||||||
  MNode,
 | 
					 | 
				
			||||||
  MPage,
 | 
					 | 
				
			||||||
  MPageFragment,
 | 
					 | 
				
			||||||
} from '@tmagic/core';
 | 
					 | 
				
			||||||
import type {
 | 
					 | 
				
			||||||
  ChildConfig,
 | 
					 | 
				
			||||||
  FilterFunction,
 | 
					 | 
				
			||||||
  FormConfig,
 | 
					 | 
				
			||||||
  FormItem,
 | 
					 | 
				
			||||||
  FormState,
 | 
					 | 
				
			||||||
  Input,
 | 
					 | 
				
			||||||
  TableColumnConfig,
 | 
					 | 
				
			||||||
} from '@tmagic/form';
 | 
					 | 
				
			||||||
import type StageCore from '@tmagic/stage';
 | 
					import type StageCore from '@tmagic/stage';
 | 
				
			||||||
import type {
 | 
					import type {
 | 
				
			||||||
  ContainerHighlightType,
 | 
					  ContainerHighlightType,
 | 
				
			||||||
@ -562,25 +543,6 @@ export interface HistoryState {
 | 
				
			|||||||
  canUndo: boolean;
 | 
					  canUndo: boolean;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface EventSelectConfig {
 | 
					 | 
				
			||||||
  name: string;
 | 
					 | 
				
			||||||
  type: 'event-select';
 | 
					 | 
				
			||||||
  src: 'datasource' | 'component';
 | 
					 | 
				
			||||||
  labelWidth?: string;
 | 
					 | 
				
			||||||
  /** 事件名称表单配置 */
 | 
					 | 
				
			||||||
  eventNameConfig?: FormItem;
 | 
					 | 
				
			||||||
  /** 动作类型配置 */
 | 
					 | 
				
			||||||
  actionTypeConfig?: FormItem;
 | 
					 | 
				
			||||||
  /** 联动组件配置 */
 | 
					 | 
				
			||||||
  targetCompConfig?: FormItem;
 | 
					 | 
				
			||||||
  /** 联动组件动作配置 */
 | 
					 | 
				
			||||||
  compActionConfig?: FormItem;
 | 
					 | 
				
			||||||
  /** 联动代码配置 */
 | 
					 | 
				
			||||||
  codeActionConfig?: FormItem;
 | 
					 | 
				
			||||||
  /** 联动数据源配置 */
 | 
					 | 
				
			||||||
  dataSourceActionConfig?: FormItem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export enum KeyBindingCommand {
 | 
					export enum KeyBindingCommand {
 | 
				
			||||||
  /** 复制 */
 | 
					  /** 复制 */
 | 
				
			||||||
  COPY_NODE = 'tmagic-system-copy-node',
 | 
					  COPY_NODE = 'tmagic-system-copy-node',
 | 
				
			||||||
@ -636,69 +598,6 @@ export interface KeyBindingCacheItem {
 | 
				
			|||||||
  bound: boolean;
 | 
					  bound: boolean;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface CodeSelectColConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'code-select-col';
 | 
					 | 
				
			||||||
  /** 是否可以编辑代码块,disable表示的是是否可以选择代码块 */
 | 
					 | 
				
			||||||
  notEditable?: boolean | FilterFunction;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface PageFragmentSelectConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'page-fragment-select';
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface DataSourceSelect extends FormItem, Input {
 | 
					 | 
				
			||||||
  type: 'data-source-select';
 | 
					 | 
				
			||||||
  /** 数据源类型: base、http... */
 | 
					 | 
				
			||||||
  dataSourceType?: string;
 | 
					 | 
				
			||||||
  /** 是否要编译成数据源的data。
 | 
					 | 
				
			||||||
   * id: 不编译,就是要数据源id;
 | 
					 | 
				
			||||||
   * value: 要编译(数据源data)
 | 
					 | 
				
			||||||
   * */
 | 
					 | 
				
			||||||
  value?: 'id' | 'value';
 | 
					 | 
				
			||||||
  /** 是否可以编辑数据源,disable表示的是是否可以选择数据源 */
 | 
					 | 
				
			||||||
  notEditable?: boolean | FilterFunction;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface DataSourceMethodSelectConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'data-source-method-select';
 | 
					 | 
				
			||||||
  /** 是否可以编辑数据源,disable表示的是是否可以选择数据源 */
 | 
					 | 
				
			||||||
  notEditable?: boolean | FilterFunction;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface DataSourceFieldSelectConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'data-source-field-select';
 | 
					 | 
				
			||||||
  /**
 | 
					 | 
				
			||||||
   * 是否要编译成数据源的data。
 | 
					 | 
				
			||||||
   * key: 不编译,就是要数据源id和field name;
 | 
					 | 
				
			||||||
   * value: 要编译(数据源data[`${filed}`])
 | 
					 | 
				
			||||||
   * */
 | 
					 | 
				
			||||||
  value?: 'key' | 'value';
 | 
					 | 
				
			||||||
  /** 是否严格的遵守父子节点不互相关联 */
 | 
					 | 
				
			||||||
  checkStrictly?:
 | 
					 | 
				
			||||||
    | boolean
 | 
					 | 
				
			||||||
    | ((
 | 
					 | 
				
			||||||
        mForm: FormState | undefined,
 | 
					 | 
				
			||||||
        data: {
 | 
					 | 
				
			||||||
          model: Record<any, any>;
 | 
					 | 
				
			||||||
          values: Record<any, any>;
 | 
					 | 
				
			||||||
          parent?: Record<any, any>;
 | 
					 | 
				
			||||||
          formValue: Record<any, any>;
 | 
					 | 
				
			||||||
          prop: string;
 | 
					 | 
				
			||||||
          config: DataSourceFieldSelectConfig;
 | 
					 | 
				
			||||||
          dataSource?: DataSourceSchema;
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      ) => boolean);
 | 
					 | 
				
			||||||
  dataSourceFieldType?: DataSourceFieldType[];
 | 
					 | 
				
			||||||
  fieldConfig?: ChildConfig;
 | 
					 | 
				
			||||||
  /** 是否可以编辑数据源,disable表示的是是否可以选择数据源 */
 | 
					 | 
				
			||||||
  notEditable?: boolean | FilterFunction;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface CondOpSelectConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'cond-op';
 | 
					 | 
				
			||||||
  parentFields?: string[];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/** 可新增的数据源类型选项 */
 | 
					/** 可新增的数据源类型选项 */
 | 
				
			||||||
export interface DatasourceTypeOption {
 | 
					export interface DatasourceTypeOption {
 | 
				
			||||||
  /** 数据源类型 */
 | 
					  /** 数据源类型 */
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
import type { FormConfig } from '@tmagic/form';
 | 
					import { defineFormConfig } from '@tmagic/form';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default function (): FormConfig {
 | 
					export default () =>
 | 
				
			||||||
  return [
 | 
					  defineFormConfig([
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      name: 'id',
 | 
					      name: 'id',
 | 
				
			||||||
      type: 'hidden',
 | 
					      type: 'hidden',
 | 
				
			||||||
@ -26,5 +26,4 @@ export default function (): FormConfig {
 | 
				
			|||||||
      name: 'description',
 | 
					      name: 'description',
 | 
				
			||||||
      text: '描述',
 | 
					      text: '描述',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  ];
 | 
					  ]);
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
import { FormConfig } from '@tmagic/form';
 | 
					import { defineFormConfig } from '@tmagic/form';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'autoFetch',
 | 
					    name: 'autoFetch',
 | 
				
			||||||
    text: '自动请求',
 | 
					    text: '自动请求',
 | 
				
			||||||
@ -59,4 +59,4 @@ export default [
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
] as FormConfig;
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										41
									
								
								packages/form-schema/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								packages/form-schema/package.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "version": "1.5.16",
 | 
				
			||||||
 | 
					  "name": "@tmagic/form-schema",
 | 
				
			||||||
 | 
					  "type": "module",
 | 
				
			||||||
 | 
					  "main": "dist/tmagic-form-schema.umd.cjs",
 | 
				
			||||||
 | 
					  "module": "dist/tmagic-form-schema.js",
 | 
				
			||||||
 | 
					  "types": "types/index.d.ts",
 | 
				
			||||||
 | 
					  "exports": {
 | 
				
			||||||
 | 
					    ".": {
 | 
				
			||||||
 | 
					      "types": "./types/index.d.ts",
 | 
				
			||||||
 | 
					      "import": "./dist/tmagic-form-schema.js",
 | 
				
			||||||
 | 
					      "require": "./dist/tmagic-form-schema.umd.cjs"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "./*": "./*"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "files": [
 | 
				
			||||||
 | 
					    "dist",
 | 
				
			||||||
 | 
					    "types",
 | 
				
			||||||
 | 
					    "src"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "engines": {
 | 
				
			||||||
 | 
					    "node": ">=18"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "license": "Apache-2.0",
 | 
				
			||||||
 | 
					  "repository": {
 | 
				
			||||||
 | 
					    "directory": "packages/form-schema",
 | 
				
			||||||
 | 
					    "type": "git",
 | 
				
			||||||
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/schema": "workspace:*"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
					    "typescript": "*"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "peerDependenciesMeta": {
 | 
				
			||||||
 | 
					    "typescript": {
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										783
									
								
								packages/form-schema/src/base.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										783
									
								
								packages/form-schema/src/base.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,783 @@
 | 
				
			|||||||
 | 
					import type { EditorChildConfig } from './editor';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type ElMessageBoxShortcutMethod = ((
 | 
				
			||||||
 | 
					  message: string,
 | 
				
			||||||
 | 
					  title: string,
 | 
				
			||||||
 | 
					  options?: any,
 | 
				
			||||||
 | 
					  appContext?: any | null,
 | 
				
			||||||
 | 
					) => Promise<any>) &
 | 
				
			||||||
 | 
					  ((message: string, options?: any, appContext?: any | null) => Promise<any>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface ChangeRecord {
 | 
				
			||||||
 | 
					  propPath?: string;
 | 
				
			||||||
 | 
					  value: any;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface OnChangeHandlerData {
 | 
				
			||||||
 | 
					  model: FormValue;
 | 
				
			||||||
 | 
					  values?: FormValue;
 | 
				
			||||||
 | 
					  parent?: FormValue;
 | 
				
			||||||
 | 
					  formValue?: FormValue;
 | 
				
			||||||
 | 
					  config: any;
 | 
				
			||||||
 | 
					  prop: string;
 | 
				
			||||||
 | 
					  changeRecords: ChangeRecord[];
 | 
				
			||||||
 | 
					  setModel: (prop: string, value: any) => void;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export type FormValue = Record<string | number, any>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export type OnChangeHandler = (mForm: FormState | undefined, value: any, data: OnChangeHandlerData) => any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type DefaultValueFunction = (mForm: FormState | undefined) => any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface FieldProps<T = any> {
 | 
				
			||||||
 | 
					  config: T;
 | 
				
			||||||
 | 
					  model: any;
 | 
				
			||||||
 | 
					  initValues?: any;
 | 
				
			||||||
 | 
					  values?: any;
 | 
				
			||||||
 | 
					  name: string;
 | 
				
			||||||
 | 
					  prop: string;
 | 
				
			||||||
 | 
					  disabled?: boolean;
 | 
				
			||||||
 | 
					  size?: 'large' | 'default' | 'small';
 | 
				
			||||||
 | 
					  lastValues?: Record<string, any>;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 整个表单的数据,会注入到各个组件中去
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export type FormState = {
 | 
				
			||||||
 | 
					  config: FormConfig;
 | 
				
			||||||
 | 
					  popperClass?: string;
 | 
				
			||||||
 | 
					  initValues: FormValue;
 | 
				
			||||||
 | 
					  lastValues: FormValue;
 | 
				
			||||||
 | 
					  isCompare: boolean;
 | 
				
			||||||
 | 
					  values: FormValue;
 | 
				
			||||||
 | 
					  $emit: (event: string, ...args: any[]) => void;
 | 
				
			||||||
 | 
					  keyProp?: string;
 | 
				
			||||||
 | 
					  parentValues?: FormValue;
 | 
				
			||||||
 | 
					  setField: (prop: string, field: any) => void;
 | 
				
			||||||
 | 
					  getField: (prop: string) => any;
 | 
				
			||||||
 | 
					  deleteField: (prop: string) => any;
 | 
				
			||||||
 | 
					  $messageBox: {
 | 
				
			||||||
 | 
					    alert: ElMessageBoxShortcutMethod;
 | 
				
			||||||
 | 
					    confirm: ElMessageBoxShortcutMethod;
 | 
				
			||||||
 | 
					    prompt: ElMessageBoxShortcutMethod;
 | 
				
			||||||
 | 
					    close(): void;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  $message: {
 | 
				
			||||||
 | 
					    success: (msg: string) => void;
 | 
				
			||||||
 | 
					    warning: (msg: string) => void;
 | 
				
			||||||
 | 
					    info: (msg: string) => void;
 | 
				
			||||||
 | 
					    error: (msg: string) => void;
 | 
				
			||||||
 | 
					    closeAll: () => void;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  [key: string]: any;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 排序配置
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface SortProp {
 | 
				
			||||||
 | 
					  /** 跟该值排序 */
 | 
				
			||||||
 | 
					  prop: string;
 | 
				
			||||||
 | 
					  order: 'ascending' | 'descending';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface FormItem {
 | 
				
			||||||
 | 
					  /** vnode的key值,默认是遍历数组时的index */
 | 
				
			||||||
 | 
					  __key?: string | number;
 | 
				
			||||||
 | 
					  /** 表单域标签的的宽度,例如 '50px'。支持 auto。 */
 | 
				
			||||||
 | 
					  labelWidth?: string;
 | 
				
			||||||
 | 
					  /** label 标签的title属性 */
 | 
				
			||||||
 | 
					  labelTitle?: string;
 | 
				
			||||||
 | 
					  className?: string;
 | 
				
			||||||
 | 
					  /** 表单组件类型 */
 | 
				
			||||||
 | 
					  type?: string | TypeFunction;
 | 
				
			||||||
 | 
					  /** 字段名 */
 | 
				
			||||||
 | 
					  name?: string | number;
 | 
				
			||||||
 | 
					  /** 额外的提示信息,和 help 类似,当提示文案同时出现时,可以使用这个。 */
 | 
				
			||||||
 | 
					  extra?: string | FilterFunction<string>;
 | 
				
			||||||
 | 
					  /** 配置提示信息 */
 | 
				
			||||||
 | 
					  tooltip?: string | FilterFunction<string>;
 | 
				
			||||||
 | 
					  /** 是否置灰 */
 | 
				
			||||||
 | 
					  disabled?: boolean | FilterFunction;
 | 
				
			||||||
 | 
					  /** 使用表单中的值作为key,例如配置了text,则使用model.text作为key */
 | 
				
			||||||
 | 
					  key?: string;
 | 
				
			||||||
 | 
					  /** 是否显示 */
 | 
				
			||||||
 | 
					  display?: boolean | 'expand' | FilterFunction<boolean | 'expand'>;
 | 
				
			||||||
 | 
					  /** 值发生改变时调用的方法 */
 | 
				
			||||||
 | 
					  onChange?: OnChangeHandler;
 | 
				
			||||||
 | 
					  /** label 标签的文本 */
 | 
				
			||||||
 | 
					  text?: string | FilterFunction<string>;
 | 
				
			||||||
 | 
					  /** 右侧感叹号 */
 | 
				
			||||||
 | 
					  tip?: string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  filter?: 'number' | OnChangeHandler;
 | 
				
			||||||
 | 
					  /** 是否去除首尾空格 */
 | 
				
			||||||
 | 
					  trim?: boolean;
 | 
				
			||||||
 | 
					  /** 默认值 */
 | 
				
			||||||
 | 
					  defaultValue?: any | DefaultValueFunction;
 | 
				
			||||||
 | 
					  /** 表单验证规则 */
 | 
				
			||||||
 | 
					  rules?: Rule[];
 | 
				
			||||||
 | 
					  extensible?: boolean;
 | 
				
			||||||
 | 
					  dynamicKey?: string;
 | 
				
			||||||
 | 
					  /** 是否需要显示`展开更多配置` */
 | 
				
			||||||
 | 
					  expand?: boolean;
 | 
				
			||||||
 | 
					  [key: string]: any;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface ContainerCommonConfig {
 | 
				
			||||||
 | 
					  items: FormConfig;
 | 
				
			||||||
 | 
					  onInitValue?: (
 | 
				
			||||||
 | 
					    mForm: FormState | undefined,
 | 
				
			||||||
 | 
					    data: {
 | 
				
			||||||
 | 
					      formValue: FormValue;
 | 
				
			||||||
 | 
					      initValue: FormValue;
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  ) => FormValue;
 | 
				
			||||||
 | 
					  extensible?: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface Rule {
 | 
				
			||||||
 | 
					  message?: string;
 | 
				
			||||||
 | 
					  /** 系统提供的验证器类型。有:string,number,boolean,method,regexp,integer,float,array,object,enum,date,url,hex,email,any */
 | 
				
			||||||
 | 
					  type?: string;
 | 
				
			||||||
 | 
					  /** 是否必填 */
 | 
				
			||||||
 | 
					  required?: boolean;
 | 
				
			||||||
 | 
					  trigger?: string;
 | 
				
			||||||
 | 
					  /** 自定义验证器 */
 | 
				
			||||||
 | 
					  validator?: (
 | 
				
			||||||
 | 
					    options: {
 | 
				
			||||||
 | 
					      rule: string;
 | 
				
			||||||
 | 
					      value: any;
 | 
				
			||||||
 | 
					      callback: Function;
 | 
				
			||||||
 | 
					      source: Object;
 | 
				
			||||||
 | 
					      options: {
 | 
				
			||||||
 | 
					        messages: string;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    data: {
 | 
				
			||||||
 | 
					      /** 表单的初始值 */
 | 
				
			||||||
 | 
					      values: FormValue;
 | 
				
			||||||
 | 
					      /** 当前作用域下的值 */
 | 
				
			||||||
 | 
					      model: FormValue;
 | 
				
			||||||
 | 
					      parent: FormValue;
 | 
				
			||||||
 | 
					      /** 整个表单的值 */
 | 
				
			||||||
 | 
					      formValue: FormValue;
 | 
				
			||||||
 | 
					      prop: string;
 | 
				
			||||||
 | 
					      config: any;
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    mForm: FormState | undefined,
 | 
				
			||||||
 | 
					  ) => void;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface Input {
 | 
				
			||||||
 | 
					  /** 输入框没有内容时显示的文案 */
 | 
				
			||||||
 | 
					  placeholder?: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export type TypeFunction = (
 | 
				
			||||||
 | 
					  mForm: FormState | undefined,
 | 
				
			||||||
 | 
					  data: {
 | 
				
			||||||
 | 
					    model: FormValue;
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					) => string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export type FilterFunction<T = boolean> = (
 | 
				
			||||||
 | 
					  mForm: FormState | undefined,
 | 
				
			||||||
 | 
					  data: {
 | 
				
			||||||
 | 
					    model: FormValue;
 | 
				
			||||||
 | 
					    values: FormValue;
 | 
				
			||||||
 | 
					    parent?: FormValue;
 | 
				
			||||||
 | 
					    formValue: FormValue;
 | 
				
			||||||
 | 
					    prop: string;
 | 
				
			||||||
 | 
					    config: any;
 | 
				
			||||||
 | 
					    index?: number;
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					) => T;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 下拉选择器选项配置
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface SelectConfigOption {
 | 
				
			||||||
 | 
					  /** 选项的标签 */
 | 
				
			||||||
 | 
					  text: string | SelectOptionTextFunction;
 | 
				
			||||||
 | 
					  /** 选项的值 */
 | 
				
			||||||
 | 
					  value: any | SelectOptionValueFunction;
 | 
				
			||||||
 | 
					  /** 是否禁用该选项 */
 | 
				
			||||||
 | 
					  disabled?: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface SelectOption {
 | 
				
			||||||
 | 
					  /** 选项的标签 */
 | 
				
			||||||
 | 
					  text: string;
 | 
				
			||||||
 | 
					  /** 选项的值 */
 | 
				
			||||||
 | 
					  value: any;
 | 
				
			||||||
 | 
					  /** 是否禁用该选项 */
 | 
				
			||||||
 | 
					  disabled?: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 下拉选择器分组选项配置
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface SelectConfigGroupOption {
 | 
				
			||||||
 | 
					  /** 分组的组名 */
 | 
				
			||||||
 | 
					  label: string;
 | 
				
			||||||
 | 
					  /** 是否禁用该选项组 */
 | 
				
			||||||
 | 
					  disabled: boolean;
 | 
				
			||||||
 | 
					  options: {
 | 
				
			||||||
 | 
					    /** 选项的标签 */
 | 
				
			||||||
 | 
					    label: string | SelectOptionTextFunction;
 | 
				
			||||||
 | 
					    /** 选项的值 */
 | 
				
			||||||
 | 
					    value: any | SelectOptionValueFunction;
 | 
				
			||||||
 | 
					    /** 是否禁用该选项 */
 | 
				
			||||||
 | 
					    disabled?: boolean;
 | 
				
			||||||
 | 
					  }[];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface SelectGroupOption {
 | 
				
			||||||
 | 
					  /** 分组的组名 */
 | 
				
			||||||
 | 
					  label: string;
 | 
				
			||||||
 | 
					  /** 是否禁用该选项组 */
 | 
				
			||||||
 | 
					  disabled: boolean;
 | 
				
			||||||
 | 
					  options: {
 | 
				
			||||||
 | 
					    /** 选项的标签 */
 | 
				
			||||||
 | 
					    label?: string;
 | 
				
			||||||
 | 
					    text?: string;
 | 
				
			||||||
 | 
					    /** 选项的值 */
 | 
				
			||||||
 | 
					    value: any;
 | 
				
			||||||
 | 
					    /** 是否禁用该选项 */
 | 
				
			||||||
 | 
					    disabled?: boolean;
 | 
				
			||||||
 | 
					  }[];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type SelectOptionFunction = (
 | 
				
			||||||
 | 
					  mForm: FormState | undefined,
 | 
				
			||||||
 | 
					  data: {
 | 
				
			||||||
 | 
					    model: any;
 | 
				
			||||||
 | 
					    prop?: string;
 | 
				
			||||||
 | 
					    formValues: any;
 | 
				
			||||||
 | 
					    formValue: any;
 | 
				
			||||||
 | 
					    config: any;
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					) => SelectOption[] | SelectGroupOption[];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type RemoteSelectOptionBodyFunction = (
 | 
				
			||||||
 | 
					  mForm: FormState | undefined,
 | 
				
			||||||
 | 
					  data: {
 | 
				
			||||||
 | 
					    model: any;
 | 
				
			||||||
 | 
					    formValue: any;
 | 
				
			||||||
 | 
					    formValues: any;
 | 
				
			||||||
 | 
					    config: any;
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					) => Record<string, any>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type RemoteSelectOptionAfterRequestFunction = (
 | 
				
			||||||
 | 
					  mForm: FormState | undefined,
 | 
				
			||||||
 | 
					  res: any,
 | 
				
			||||||
 | 
					  data: {
 | 
				
			||||||
 | 
					    model: any;
 | 
				
			||||||
 | 
					    formValue: any;
 | 
				
			||||||
 | 
					    formValues: any;
 | 
				
			||||||
 | 
					    config: any;
 | 
				
			||||||
 | 
					    prop: string;
 | 
				
			||||||
 | 
					    postOptions: Record<string, any>;
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					) => any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type RemoteSelectOptionBeforeRequestFunction = (
 | 
				
			||||||
 | 
					  mForm: FormState | undefined,
 | 
				
			||||||
 | 
					  postOptions: Record<string, any>,
 | 
				
			||||||
 | 
					  data: {
 | 
				
			||||||
 | 
					    model: any;
 | 
				
			||||||
 | 
					    formValue: any;
 | 
				
			||||||
 | 
					    formValues: any;
 | 
				
			||||||
 | 
					    config: any;
 | 
				
			||||||
 | 
					    prop: string;
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					) => Record<string, any>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type RemoteSelectOptionItemFunction = (optionsData: Record<string, any>) => SelectOption[] | SelectGroupOption[];
 | 
				
			||||||
 | 
					type SelectOptionValueFunction = (item: Record<string, any>) => any;
 | 
				
			||||||
 | 
					type SelectOptionTextFunction = (item: Record<string, any>) => string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface CascaderOption {
 | 
				
			||||||
 | 
					  /** 指定选项的值为选项对象的某个属性值 */
 | 
				
			||||||
 | 
					  value: any;
 | 
				
			||||||
 | 
					  /** 指定选项标签为选项对象的某个属性值 */
 | 
				
			||||||
 | 
					  label: string;
 | 
				
			||||||
 | 
					  /** 指定选项的子选项为选项对象的某个属性值 */
 | 
				
			||||||
 | 
					  children?: CascaderOption[];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 日期范围
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface DaterangeConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'daterange';
 | 
				
			||||||
 | 
					  defaultTime?: Date[];
 | 
				
			||||||
 | 
					  names?: string[];
 | 
				
			||||||
 | 
					  valueFormat?: string;
 | 
				
			||||||
 | 
					  dateFormat?: string;
 | 
				
			||||||
 | 
					  timeFormat?: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * html编辑器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface HtmlField extends FormItem {
 | 
				
			||||||
 | 
					  type: 'html';
 | 
				
			||||||
 | 
					  /** 是否异步加载编辑的内容 */
 | 
				
			||||||
 | 
					  asyncLoad?: {
 | 
				
			||||||
 | 
					    name: string | number;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** 展示文本,不可编辑 */
 | 
				
			||||||
 | 
					export interface DisplayConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'display';
 | 
				
			||||||
 | 
					  initValue?: string | number | boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** 文本输入框 */
 | 
				
			||||||
 | 
					export interface TextConfig extends FormItem, Input {
 | 
				
			||||||
 | 
					  type?: 'text';
 | 
				
			||||||
 | 
					  tooltip?: string;
 | 
				
			||||||
 | 
					  /** 后置元素,一般为标签或按钮 */
 | 
				
			||||||
 | 
					  append?:
 | 
				
			||||||
 | 
					    | string
 | 
				
			||||||
 | 
					    | {
 | 
				
			||||||
 | 
					        text: string;
 | 
				
			||||||
 | 
					        value?: 0 | 1;
 | 
				
			||||||
 | 
					        type: 'button';
 | 
				
			||||||
 | 
					        handler?: (
 | 
				
			||||||
 | 
					          mForm: FormState | undefined,
 | 
				
			||||||
 | 
					          data: {
 | 
				
			||||||
 | 
					            model: any;
 | 
				
			||||||
 | 
					            values: any;
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					        ) => void;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 文本域
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface TextareaConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'textarea';
 | 
				
			||||||
 | 
					  placeholder?: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 计数器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface NumberConfig extends FormItem {
 | 
				
			||||||
 | 
					  type?: 'number';
 | 
				
			||||||
 | 
					  tooltip?: string;
 | 
				
			||||||
 | 
					  min?: number;
 | 
				
			||||||
 | 
					  max?: number;
 | 
				
			||||||
 | 
					  step?: number;
 | 
				
			||||||
 | 
					  placeholder?: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 数值范围
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface NumberRangeConfig extends FormItem {
 | 
				
			||||||
 | 
					  type?: 'number-range';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 隐藏域
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface HiddenConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'hidden';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 日期选择器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface DateConfig extends FormItem, Input {
 | 
				
			||||||
 | 
					  type: 'date';
 | 
				
			||||||
 | 
					  format?: 'YYYY-MM-dd HH:mm:ss' | string;
 | 
				
			||||||
 | 
					  valueFormat?: 'YYYY-MM-dd HH:mm:ss' | string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 日期时间选择器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface DateTimeConfig extends FormItem, Input {
 | 
				
			||||||
 | 
					  type: 'datetime';
 | 
				
			||||||
 | 
					  defaultTime?: Date[];
 | 
				
			||||||
 | 
					  format?: 'YYYY-MM-dd HH:mm:ss' | string;
 | 
				
			||||||
 | 
					  valueFormat?: 'YYYY-MM-dd HH:mm:ss' | string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 时间选择器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface TimeConfig extends FormItem, Input {
 | 
				
			||||||
 | 
					  type: 'time';
 | 
				
			||||||
 | 
					  format?: 'HH:mm:ss' | string;
 | 
				
			||||||
 | 
					  valueFormat?: 'HH:mm:ss' | string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 单个多选框
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface CheckboxConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'checkbox';
 | 
				
			||||||
 | 
					  activeValue?: number | string;
 | 
				
			||||||
 | 
					  inactiveValue?: number | string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 开关
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface SwitchConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'switch';
 | 
				
			||||||
 | 
					  activeValue?: boolean | number | string;
 | 
				
			||||||
 | 
					  inactiveValue?: boolean | number | string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 单选框
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface RadioGroupConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'radio-group';
 | 
				
			||||||
 | 
					  childType?: 'default' | 'button';
 | 
				
			||||||
 | 
					  options: {
 | 
				
			||||||
 | 
					    value: string | number | boolean;
 | 
				
			||||||
 | 
					    text: string;
 | 
				
			||||||
 | 
					    icon?: any;
 | 
				
			||||||
 | 
					    tooltip?: string;
 | 
				
			||||||
 | 
					  }[];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 颜色选择器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface ColorPickConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'colorPicker';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface CheckboxGroupOption {
 | 
				
			||||||
 | 
					  value: any;
 | 
				
			||||||
 | 
					  text: string;
 | 
				
			||||||
 | 
					  disabled?: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 多选框组
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface CheckboxGroupConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'checkbox-group';
 | 
				
			||||||
 | 
					  options: CheckboxGroupOption[] | FilterFunction<CheckboxGroupOption[]>;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 下拉选择器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface SelectConfig extends FormItem, Input {
 | 
				
			||||||
 | 
					  type: 'select';
 | 
				
			||||||
 | 
					  clearable?: boolean;
 | 
				
			||||||
 | 
					  multiple?: boolean;
 | 
				
			||||||
 | 
					  valueKey?: string;
 | 
				
			||||||
 | 
					  allowCreate?: boolean;
 | 
				
			||||||
 | 
					  filterable?: boolean;
 | 
				
			||||||
 | 
					  group?: boolean;
 | 
				
			||||||
 | 
					  options?: SelectConfigOption[] | SelectConfigGroupOption[] | SelectOptionFunction;
 | 
				
			||||||
 | 
					  remote?: true;
 | 
				
			||||||
 | 
					  option?: {
 | 
				
			||||||
 | 
					    url: string | ((mForm: FormState | undefined, data: { model: any; formValue: any }) => string);
 | 
				
			||||||
 | 
					    initUrl?: string | ((mForm: FormState | undefined, data: { model: any; formValue: any }) => string);
 | 
				
			||||||
 | 
					    method?: 'jsonp' | string;
 | 
				
			||||||
 | 
					    cache?: boolean;
 | 
				
			||||||
 | 
					    timeout?: number;
 | 
				
			||||||
 | 
					    mode?: string;
 | 
				
			||||||
 | 
					    headers?: {
 | 
				
			||||||
 | 
					      [key: string]: string;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    json?: false | boolean;
 | 
				
			||||||
 | 
					    body?: Record<string, any> | RemoteSelectOptionBodyFunction;
 | 
				
			||||||
 | 
					    initBody?: Record<string, any> | RemoteSelectOptionBodyFunction;
 | 
				
			||||||
 | 
					    jsonpCallback?: 'callback' | string;
 | 
				
			||||||
 | 
					    afterRequest?: RemoteSelectOptionAfterRequestFunction;
 | 
				
			||||||
 | 
					    afterInitRequest?: RemoteSelectOptionAfterRequestFunction;
 | 
				
			||||||
 | 
					    beforeRequest?: RemoteSelectOptionBeforeRequestFunction;
 | 
				
			||||||
 | 
					    beforeInitRequest?: RemoteSelectOptionBeforeRequestFunction;
 | 
				
			||||||
 | 
					    root?: string;
 | 
				
			||||||
 | 
					    totalKey?: string;
 | 
				
			||||||
 | 
					    initRoot?: string;
 | 
				
			||||||
 | 
					    item?: RemoteSelectOptionItemFunction;
 | 
				
			||||||
 | 
					    value?: string | SelectOptionValueFunction;
 | 
				
			||||||
 | 
					    text?: string | SelectOptionTextFunction;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 链接
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface LinkConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'link';
 | 
				
			||||||
 | 
					  href?: string | ((model: Record<string, any>) => string);
 | 
				
			||||||
 | 
					  css?: {
 | 
				
			||||||
 | 
					    [key: string]: string | number;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  disabledCss?: {
 | 
				
			||||||
 | 
					    [key: string]: string | number;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  formTitle?: string;
 | 
				
			||||||
 | 
					  formWidth?: number | string;
 | 
				
			||||||
 | 
					  displayText?:
 | 
				
			||||||
 | 
					    | ((
 | 
				
			||||||
 | 
					        mForm: FormState | undefined,
 | 
				
			||||||
 | 
					        data: {
 | 
				
			||||||
 | 
					          model: Record<any, any>;
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      ) => string)
 | 
				
			||||||
 | 
					    | string;
 | 
				
			||||||
 | 
					  form:
 | 
				
			||||||
 | 
					    | FormConfig
 | 
				
			||||||
 | 
					    | ((
 | 
				
			||||||
 | 
					        mForm: FormState | undefined,
 | 
				
			||||||
 | 
					        data: {
 | 
				
			||||||
 | 
					          model: Record<any, any>;
 | 
				
			||||||
 | 
					          values: Record<any, any>;
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      ) => FormConfig);
 | 
				
			||||||
 | 
					  fullscreen?: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 级联选择器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface CascaderConfig extends FormItem, Input {
 | 
				
			||||||
 | 
					  type: 'cascader';
 | 
				
			||||||
 | 
					  remote?: boolean;
 | 
				
			||||||
 | 
					  /** 在选中节点改变时,是否返回由该节点所在的各级菜单的值所组成的数组,若设置 false,则只返回该节点的值,默认 true */
 | 
				
			||||||
 | 
					  emitPath?: boolean;
 | 
				
			||||||
 | 
					  /** 是否多选,默认 false */
 | 
				
			||||||
 | 
					  multiple?: boolean;
 | 
				
			||||||
 | 
					  /** 是否严格的遵守父子节点不互相关联,默认 false */
 | 
				
			||||||
 | 
					  checkStrictly?: boolean | FilterFunction<boolean>;
 | 
				
			||||||
 | 
					  /** 弹出内容的自定义类名 */
 | 
				
			||||||
 | 
					  popperClass?: string;
 | 
				
			||||||
 | 
					  /** 合并成字符串时的分隔符 */
 | 
				
			||||||
 | 
					  valueSeparator?: string | FilterFunction<string>;
 | 
				
			||||||
 | 
					  options?:
 | 
				
			||||||
 | 
					    | ((
 | 
				
			||||||
 | 
					        mForm: FormState | undefined,
 | 
				
			||||||
 | 
					        data: {
 | 
				
			||||||
 | 
					          model: Record<any, any>;
 | 
				
			||||||
 | 
					          prop: string;
 | 
				
			||||||
 | 
					          formValue: Record<any, any>;
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      ) => CascaderOption[])
 | 
				
			||||||
 | 
					    | CascaderOption[];
 | 
				
			||||||
 | 
					  option?: {
 | 
				
			||||||
 | 
					    url: string;
 | 
				
			||||||
 | 
					    cache?: boolean;
 | 
				
			||||||
 | 
					    timeout?: number;
 | 
				
			||||||
 | 
					    body?: Record<string, any> | RemoteSelectOptionBodyFunction;
 | 
				
			||||||
 | 
					    root: 'string';
 | 
				
			||||||
 | 
					    item: (optionsData: Record<string, any>) => CascaderOption[];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface DynamicFieldConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'dynamic-field';
 | 
				
			||||||
 | 
					  returnFields: (
 | 
				
			||||||
 | 
					    config: DynamicFieldConfig,
 | 
				
			||||||
 | 
					    model: Record<any, any>,
 | 
				
			||||||
 | 
					    request: Object,
 | 
				
			||||||
 | 
					  ) => {
 | 
				
			||||||
 | 
					    name: string;
 | 
				
			||||||
 | 
					    label: string;
 | 
				
			||||||
 | 
					    defaultValue: string;
 | 
				
			||||||
 | 
					  }[];
 | 
				
			||||||
 | 
					  dynamicKey: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 分组容器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface RowConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'row';
 | 
				
			||||||
 | 
					  span: number;
 | 
				
			||||||
 | 
					  items: ({ span?: number } & (ChildConfig | EditorChildConfig))[];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 标签页容器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface TabPaneConfig {
 | 
				
			||||||
 | 
					  status?: string;
 | 
				
			||||||
 | 
					  title: string;
 | 
				
			||||||
 | 
					  lazy?: boolean;
 | 
				
			||||||
 | 
					  labelWidth?: string;
 | 
				
			||||||
 | 
					  items: FormConfig;
 | 
				
			||||||
 | 
					  onTabClick?: (mForm: FormState | undefined, tab: any, data: any) => void;
 | 
				
			||||||
 | 
					  [key: string]: any;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface TabConfig extends FormItem, ContainerCommonConfig {
 | 
				
			||||||
 | 
					  type: 'tab' | 'dynamic-tab';
 | 
				
			||||||
 | 
					  tabType?: string;
 | 
				
			||||||
 | 
					  editable?: boolean;
 | 
				
			||||||
 | 
					  dynamic?: boolean;
 | 
				
			||||||
 | 
					  tabPosition?: 'top' | 'right' | 'bottom' | 'left';
 | 
				
			||||||
 | 
					  items: TabPaneConfig[];
 | 
				
			||||||
 | 
					  onChange?: (mForm: FormState | undefined, data: any) => void;
 | 
				
			||||||
 | 
					  onTabAdd?: (mForm: FormState | undefined, data: any) => void;
 | 
				
			||||||
 | 
					  onTabRemove?: (mForm: FormState | undefined, tabName: string, data: any) => void;
 | 
				
			||||||
 | 
					  onTabClick?: (mForm: FormState | undefined, tab: any, data: any) => void;
 | 
				
			||||||
 | 
					  activeChange?: (mForm: FormState | undefined, tabName: string, data: any) => void;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 分组
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface FieldsetConfig extends FormItem, ContainerCommonConfig {
 | 
				
			||||||
 | 
					  type: 'fieldset';
 | 
				
			||||||
 | 
					  checkbox?: boolean;
 | 
				
			||||||
 | 
					  expand?: boolean;
 | 
				
			||||||
 | 
					  legend?: string;
 | 
				
			||||||
 | 
					  schematic?: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 面板容器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface PanelConfig extends FormItem, ContainerCommonConfig {
 | 
				
			||||||
 | 
					  type: 'panel';
 | 
				
			||||||
 | 
					  expand?: boolean;
 | 
				
			||||||
 | 
					  title?: string;
 | 
				
			||||||
 | 
					  schematic?: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface TableColumnConfig extends FormItem {
 | 
				
			||||||
 | 
					  name?: string;
 | 
				
			||||||
 | 
					  label: string;
 | 
				
			||||||
 | 
					  width?: string | number;
 | 
				
			||||||
 | 
					  sortable?: boolean;
 | 
				
			||||||
 | 
					  [key: string]: any;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 表格容器
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface TableConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'table' | 'groupList' | 'group-list';
 | 
				
			||||||
 | 
					  items: TableColumnConfig[];
 | 
				
			||||||
 | 
					  tableItems?: TableColumnConfig[];
 | 
				
			||||||
 | 
					  groupItems?: TableColumnConfig[];
 | 
				
			||||||
 | 
					  enableToggleMode?: boolean;
 | 
				
			||||||
 | 
					  /** 最大行数 */
 | 
				
			||||||
 | 
					  max?: number;
 | 
				
			||||||
 | 
					  /** 最大高度 */
 | 
				
			||||||
 | 
					  maxHeight?: number | string;
 | 
				
			||||||
 | 
					  border?: boolean;
 | 
				
			||||||
 | 
					  /** 显示行号 */
 | 
				
			||||||
 | 
					  showIndex?: boolean;
 | 
				
			||||||
 | 
					  /** 操作栏宽度 */
 | 
				
			||||||
 | 
					  operateColWidth?: number | string;
 | 
				
			||||||
 | 
					  pagination?: boolean;
 | 
				
			||||||
 | 
					  enum?: any[];
 | 
				
			||||||
 | 
					  /** 是否显示添加按钮 */
 | 
				
			||||||
 | 
					  addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
 | 
				
			||||||
 | 
					  /** 是否显示删除按钮 */
 | 
				
			||||||
 | 
					  delete?: (model: any, index: number, values: any) => boolean | boolean;
 | 
				
			||||||
 | 
					  copyable?: (model: any, data: any) => boolean | boolean;
 | 
				
			||||||
 | 
					  /** 是否显示导入按钮 */
 | 
				
			||||||
 | 
					  importable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
 | 
				
			||||||
 | 
					  /** 是否显示checkbox */
 | 
				
			||||||
 | 
					  selection?: (mForm: FormState | undefined, data: any) => boolean | boolean | 'single';
 | 
				
			||||||
 | 
					  /** 新增的默认行 */
 | 
				
			||||||
 | 
					  defaultAdd?: (mForm: FormState | undefined, data: any) => any;
 | 
				
			||||||
 | 
					  onSelect?: (mForm: FormState | undefined, data: any) => any;
 | 
				
			||||||
 | 
					  defautSort?: SortProp;
 | 
				
			||||||
 | 
					  defaultSort?: SortProp;
 | 
				
			||||||
 | 
					  dropSort?: boolean;
 | 
				
			||||||
 | 
					  /** 是否显示全屏按钮 */
 | 
				
			||||||
 | 
					  enableFullscreen?: boolean;
 | 
				
			||||||
 | 
					  fixed?: boolean;
 | 
				
			||||||
 | 
					  itemExtra?: string | FilterFunction<string>;
 | 
				
			||||||
 | 
					  rowKey?: string;
 | 
				
			||||||
 | 
					  /** table 新增行时前置回调 */
 | 
				
			||||||
 | 
					  beforeAddRow?: (mForm: FormState | undefined, data: any) => boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface GroupListConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'table' | 'groupList' | 'group-list';
 | 
				
			||||||
 | 
					  span?: number;
 | 
				
			||||||
 | 
					  enableToggleMode?: boolean;
 | 
				
			||||||
 | 
					  items: FormConfig;
 | 
				
			||||||
 | 
					  groupItems?: FormConfig;
 | 
				
			||||||
 | 
					  tableItems?: FormConfig;
 | 
				
			||||||
 | 
					  titleKey?: string;
 | 
				
			||||||
 | 
					  titlePrefix?: string;
 | 
				
			||||||
 | 
					  title?: string | FilterFunction<string>;
 | 
				
			||||||
 | 
					  itemExtra?: string | FilterFunction<string>;
 | 
				
			||||||
 | 
					  expandAll?: boolean;
 | 
				
			||||||
 | 
					  addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
 | 
				
			||||||
 | 
					  defaultAdd?: (mForm: FormState | undefined, data: any) => any;
 | 
				
			||||||
 | 
					  delete?: (model: any, index: number | string | symbol, values: any) => boolean | boolean;
 | 
				
			||||||
 | 
					  copyable?: FilterFunction<boolean>;
 | 
				
			||||||
 | 
					  movable?: (
 | 
				
			||||||
 | 
					    mForm: FormState | undefined,
 | 
				
			||||||
 | 
					    index: number | string | symbol,
 | 
				
			||||||
 | 
					    model: any,
 | 
				
			||||||
 | 
					    groupModel: any,
 | 
				
			||||||
 | 
					  ) => boolean | boolean;
 | 
				
			||||||
 | 
					  moveSpecifyLocation?: boolean;
 | 
				
			||||||
 | 
					  [key: string]: any;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface StepItemConfig extends FormItem, ContainerCommonConfig {
 | 
				
			||||||
 | 
					  title: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface StepConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'step';
 | 
				
			||||||
 | 
					  /** 每个 step 的间距,不填写将自适应间距。支持百分比。 */
 | 
				
			||||||
 | 
					  space?: string | number;
 | 
				
			||||||
 | 
					  items: StepItemConfig[];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface ComponentConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'component';
 | 
				
			||||||
 | 
					  id: string;
 | 
				
			||||||
 | 
					  extend: any;
 | 
				
			||||||
 | 
					  display: any;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export type ChildConfig =
 | 
				
			||||||
 | 
					  | FormItem
 | 
				
			||||||
 | 
					  | TabConfig
 | 
				
			||||||
 | 
					  | RowConfig
 | 
				
			||||||
 | 
					  | FieldsetConfig
 | 
				
			||||||
 | 
					  | PanelConfig
 | 
				
			||||||
 | 
					  | TableConfig
 | 
				
			||||||
 | 
					  | GroupListConfig
 | 
				
			||||||
 | 
					  | StepConfig
 | 
				
			||||||
 | 
					  | DisplayConfig
 | 
				
			||||||
 | 
					  | TextConfig
 | 
				
			||||||
 | 
					  | HiddenConfig
 | 
				
			||||||
 | 
					  | LinkConfig
 | 
				
			||||||
 | 
					  | DaterangeConfig
 | 
				
			||||||
 | 
					  | SelectConfig
 | 
				
			||||||
 | 
					  | CascaderConfig
 | 
				
			||||||
 | 
					  | HtmlField
 | 
				
			||||||
 | 
					  | DateConfig
 | 
				
			||||||
 | 
					  | ColorPickConfig
 | 
				
			||||||
 | 
					  | TimeConfig
 | 
				
			||||||
 | 
					  | DateTimeConfig
 | 
				
			||||||
 | 
					  | CheckboxConfig
 | 
				
			||||||
 | 
					  | SwitchConfig
 | 
				
			||||||
 | 
					  | RadioGroupConfig
 | 
				
			||||||
 | 
					  | TextareaConfig
 | 
				
			||||||
 | 
					  | DynamicFieldConfig
 | 
				
			||||||
 | 
					  | ComponentConfig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export type FormConfig = (ChildConfig | EditorChildConfig)[];
 | 
				
			||||||
							
								
								
									
										155
									
								
								packages/form-schema/src/editor.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								packages/form-schema/src/editor.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,155 @@
 | 
				
			|||||||
 | 
					import type { DataSourceFieldType, DataSourceSchema } from '@tmagic/schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import type { ChildConfig, FilterFunction, FormItem, FormState, Input } from './base';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface DataSourceFieldSelectConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'data-source-field-select';
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * 是否要编译成数据源的data。
 | 
				
			||||||
 | 
					   * key: 不编译,就是要数据源id和field name;
 | 
				
			||||||
 | 
					   * value: 要编译(数据源data[`${filed}`])
 | 
				
			||||||
 | 
					   * */
 | 
				
			||||||
 | 
					  value?: 'key' | 'value';
 | 
				
			||||||
 | 
					  /** 是否严格的遵守父子节点不互相关联 */
 | 
				
			||||||
 | 
					  checkStrictly?:
 | 
				
			||||||
 | 
					    | boolean
 | 
				
			||||||
 | 
					    | ((
 | 
				
			||||||
 | 
					        mForm: FormState | undefined,
 | 
				
			||||||
 | 
					        data: {
 | 
				
			||||||
 | 
					          model: Record<any, any>;
 | 
				
			||||||
 | 
					          values: Record<any, any>;
 | 
				
			||||||
 | 
					          parent?: Record<any, any>;
 | 
				
			||||||
 | 
					          formValue: Record<any, any>;
 | 
				
			||||||
 | 
					          prop: string;
 | 
				
			||||||
 | 
					          config: DataSourceFieldSelectConfig;
 | 
				
			||||||
 | 
					          dataSource?: DataSourceSchema;
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      ) => boolean);
 | 
				
			||||||
 | 
					  dataSourceFieldType?: DataSourceFieldType[];
 | 
				
			||||||
 | 
					  fieldConfig?: ChildConfig;
 | 
				
			||||||
 | 
					  /** 是否可以编辑数据源,disable表示的是是否可以选择数据源 */
 | 
				
			||||||
 | 
					  notEditable?: boolean | FilterFunction;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface CodeConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'code';
 | 
				
			||||||
 | 
					  language?: string;
 | 
				
			||||||
 | 
					  options?: {
 | 
				
			||||||
 | 
					    [key: string]: any;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  height?: string;
 | 
				
			||||||
 | 
					  parse?: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface CodeLinkConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'code-link';
 | 
				
			||||||
 | 
					  formTitle?: string;
 | 
				
			||||||
 | 
					  codeOptions?: Object;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface CodeSelectConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'code-select';
 | 
				
			||||||
 | 
					  className?: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface CodeSelectColConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'code-select-col';
 | 
				
			||||||
 | 
					  /** 是否可以编辑代码块,disable表示的是是否可以选择代码块 */
 | 
				
			||||||
 | 
					  notEditable?: boolean | FilterFunction;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface CondOpSelectConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'cond-op';
 | 
				
			||||||
 | 
					  parentFields?: string[];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface DataSourceFieldsConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'data-source-fields';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface DataSourceInputConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'data-source-input';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface DataSourceMethodsConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'data-source-methods';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface DataSourceMethodSelectConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'data-source-method-select';
 | 
				
			||||||
 | 
					  /** 是否可以编辑数据源,disable表示的是是否可以选择数据源 */
 | 
				
			||||||
 | 
					  notEditable?: boolean | FilterFunction;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface DataSourceMocksConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'data-source-mocks';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface DataSourceSelect extends FormItem, Input {
 | 
				
			||||||
 | 
					  type: 'data-source-select';
 | 
				
			||||||
 | 
					  /** 数据源类型: base、http... */
 | 
				
			||||||
 | 
					  dataSourceType?: string;
 | 
				
			||||||
 | 
					  /** 是否要编译成数据源的data。
 | 
				
			||||||
 | 
					   * id: 不编译,就是要数据源id;
 | 
				
			||||||
 | 
					   * value: 要编译(数据源data)
 | 
				
			||||||
 | 
					   * */
 | 
				
			||||||
 | 
					  value?: 'id' | 'value';
 | 
				
			||||||
 | 
					  /** 是否可以编辑数据源,disable表示的是是否可以选择数据源 */
 | 
				
			||||||
 | 
					  notEditable?: boolean | FilterFunction;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface DisplayCondsConfig extends FormItem {
 | 
				
			||||||
 | 
					  titlePrefix?: string;
 | 
				
			||||||
 | 
					  parentFields?: string[] | FilterFunction<string[]>;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface EventSelectConfig {
 | 
				
			||||||
 | 
					  name: string;
 | 
				
			||||||
 | 
					  type: 'event-select';
 | 
				
			||||||
 | 
					  src: 'datasource' | 'component';
 | 
				
			||||||
 | 
					  labelWidth?: string;
 | 
				
			||||||
 | 
					  /** 事件名称表单配置 */
 | 
				
			||||||
 | 
					  eventNameConfig?: FormItem;
 | 
				
			||||||
 | 
					  /** 动作类型配置 */
 | 
				
			||||||
 | 
					  actionTypeConfig?: FormItem;
 | 
				
			||||||
 | 
					  /** 联动组件配置 */
 | 
				
			||||||
 | 
					  targetCompConfig?: FormItem;
 | 
				
			||||||
 | 
					  /** 联动组件动作配置 */
 | 
				
			||||||
 | 
					  compActionConfig?: FormItem;
 | 
				
			||||||
 | 
					  /** 联动代码配置 */
 | 
				
			||||||
 | 
					  codeActionConfig?: FormItem;
 | 
				
			||||||
 | 
					  /** 联动数据源配置 */
 | 
				
			||||||
 | 
					  dataSourceActionConfig?: FormItem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface KeyValueConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'key-value';
 | 
				
			||||||
 | 
					  advanced?: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface PageFragmentSelectConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'page-fragment-select';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface UISelectConfig extends FormItem {
 | 
				
			||||||
 | 
					  type: 'ui-select';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export type EditorChildConfig =
 | 
				
			||||||
 | 
					  | DataSourceFieldSelectConfig
 | 
				
			||||||
 | 
					  | CodeConfig
 | 
				
			||||||
 | 
					  | CodeLinkConfig
 | 
				
			||||||
 | 
					  | CodeSelectConfig
 | 
				
			||||||
 | 
					  | CodeSelectColConfig
 | 
				
			||||||
 | 
					  | CondOpSelectConfig
 | 
				
			||||||
 | 
					  | DataSourceFieldsConfig
 | 
				
			||||||
 | 
					  | DataSourceInputConfig
 | 
				
			||||||
 | 
					  | DataSourceMethodsConfig
 | 
				
			||||||
 | 
					  | DataSourceMethodSelectConfig
 | 
				
			||||||
 | 
					  | DataSourceMocksConfig
 | 
				
			||||||
 | 
					  | DataSourceSelect
 | 
				
			||||||
 | 
					  | DisplayCondsConfig
 | 
				
			||||||
 | 
					  | EventSelectConfig
 | 
				
			||||||
 | 
					  | KeyValueConfig
 | 
				
			||||||
 | 
					  | PageFragmentSelectConfig
 | 
				
			||||||
 | 
					  | UISelectConfig;
 | 
				
			||||||
							
								
								
									
										6
									
								
								packages/form-schema/src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								packages/form-schema/src/index.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					import type { FormConfig } from './base';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export * from './base';
 | 
				
			||||||
 | 
					export * from './editor';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const defineFormConfig = <T = FormConfig>(config: T): T => config;
 | 
				
			||||||
@ -51,6 +51,7 @@
 | 
				
			|||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/design": "workspace:*",
 | 
					    "@tmagic/design": "workspace:*",
 | 
				
			||||||
    "@tmagic/utils": "workspace:*",
 | 
					    "@tmagic/utils": "workspace:*",
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:*",
 | 
				
			||||||
    "vue": ">=3.5.0",
 | 
					    "vue": ">=3.5.0",
 | 
				
			||||||
    "typescript": "*"
 | 
					    "typescript": "*"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@
 | 
				
			|||||||
      <Container
 | 
					      <Container
 | 
				
			||||||
        v-for="(item, index) in config"
 | 
					        v-for="(item, index) in config"
 | 
				
			||||||
        :disabled="disabled"
 | 
					        :disabled="disabled"
 | 
				
			||||||
        :key="item[keyProp] ?? index"
 | 
					        :key="(item as Record<string, any>)[keyProp] ?? index"
 | 
				
			||||||
        :config="item"
 | 
					        :config="item"
 | 
				
			||||||
        :model="values"
 | 
					        :model="values"
 | 
				
			||||||
        :last-values="lastValuesProcessed"
 | 
					        :last-values="lastValuesProcessed"
 | 
				
			||||||
 | 
				
			|||||||
@ -20,7 +20,7 @@
 | 
				
			|||||||
        <div style="flex: 1">
 | 
					        <div style="flex: 1">
 | 
				
			||||||
          <Container
 | 
					          <Container
 | 
				
			||||||
            v-for="(item, index) in items"
 | 
					            v-for="(item, index) in items"
 | 
				
			||||||
            :key="item[mForm?.keyProp || '__key'] ?? index"
 | 
					            :key="(item as Record<string, any>)[mForm?.keyProp || '__key'] ?? index"
 | 
				
			||||||
            :config="item"
 | 
					            :config="item"
 | 
				
			||||||
            :model="name ? model[name] : model"
 | 
					            :model="name ? model[name] : model"
 | 
				
			||||||
            :lastValues="name ? lastValues[name] : lastValues"
 | 
					            :lastValues="name ? lastValues[name] : lastValues"
 | 
				
			||||||
@ -40,7 +40,7 @@
 | 
				
			|||||||
      <template v-else>
 | 
					      <template v-else>
 | 
				
			||||||
        <Container
 | 
					        <Container
 | 
				
			||||||
          v-for="(item, index) in items"
 | 
					          v-for="(item, index) in items"
 | 
				
			||||||
          :key="item[mForm?.keyProp || '__key'] ?? index"
 | 
					          :key="(item as Record<string, any>)[mForm?.keyProp || '__key'] ?? index"
 | 
				
			||||||
          :config="item"
 | 
					          :config="item"
 | 
				
			||||||
          :model="name ? model[name] : model"
 | 
					          :model="name ? model[name] : model"
 | 
				
			||||||
          :lastValues="name ? lastValues[name] : lastValues"
 | 
					          :lastValues="name ? lastValues[name] : lastValues"
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@
 | 
				
			|||||||
  <TMagicRow :gutter="10">
 | 
					  <TMagicRow :gutter="10">
 | 
				
			||||||
    <Col
 | 
					    <Col
 | 
				
			||||||
      v-for="(col, index) in config.items"
 | 
					      v-for="(col, index) in config.items"
 | 
				
			||||||
      :key="col[mForm?.keyProp || '__key'] ?? index"
 | 
					      :key="(col as Record<string, any>)[mForm?.keyProp || '__key'] ?? index"
 | 
				
			||||||
      :span="col.span || config.span || 24 / config.items.length"
 | 
					      :span="col.span || config.span || 24 / config.items.length"
 | 
				
			||||||
      :config="col"
 | 
					      :config="col"
 | 
				
			||||||
      :labelWidth="config.labelWidth || labelWidth"
 | 
					      :labelWidth="config.labelWidth || labelWidth"
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@
 | 
				
			|||||||
        <Container
 | 
					        <Container
 | 
				
			||||||
          v-if="item"
 | 
					          v-if="item"
 | 
				
			||||||
          v-show="active - 1 === index"
 | 
					          v-show="active - 1 === index"
 | 
				
			||||||
          :key="item[mForm?.keyProp || '__key']"
 | 
					          :key="(item as Record<string, any>)[mForm?.keyProp || '__key']"
 | 
				
			||||||
          :config="item"
 | 
					          :config="item"
 | 
				
			||||||
          :model="step.name ? model[step.name] : model"
 | 
					          :model="step.name ? model[step.name] : model"
 | 
				
			||||||
          :lastValues="step.name ? lastValues[step.name] : lastValues"
 | 
					          :lastValues="step.name ? lastValues[step.name] : lastValues"
 | 
				
			||||||
 | 
				
			|||||||
@ -34,7 +34,7 @@
 | 
				
			|||||||
      </template>
 | 
					      </template>
 | 
				
			||||||
      <Container
 | 
					      <Container
 | 
				
			||||||
        v-for="item in tabItems(tab)"
 | 
					        v-for="item in tabItems(tab)"
 | 
				
			||||||
        :key="item[mForm?.keyProp || '__key']"
 | 
					        :key="(item as Record<string, any>)[mForm?.keyProp || '__key']"
 | 
				
			||||||
        :config="item"
 | 
					        :config="item"
 | 
				
			||||||
        :disabled="disabled"
 | 
					        :disabled="disabled"
 | 
				
			||||||
        :model="
 | 
					        :model="
 | 
				
			||||||
 | 
				
			|||||||
@ -1,22 +1,4 @@
 | 
				
			|||||||
/*
 | 
					export * from '@tmagic/form-schema';
 | 
				
			||||||
 * Tencent is pleased to support the open source community by making TMagicEditor available.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (C) 2023 THL A29 Limited, a Tencent company.  All rights reserved.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 | 
				
			||||||
 * you may not use this file except in compliance with the License.
 | 
					 | 
				
			||||||
 * You may obtain a copy of the License at
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 *   http://www.apache.org/licenses/LICENSE-2.0
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Unless required by applicable law or agreed to in writing, software
 | 
					 | 
				
			||||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
					 | 
				
			||||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
					 | 
				
			||||||
 * See the License for the specific language governing permissions and
 | 
					 | 
				
			||||||
 * limitations under the License.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import type { TMagicMessage, TMagicMessageBox } from '@tmagic/design';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ValidateError {
 | 
					export interface ValidateError {
 | 
				
			||||||
  message: string;
 | 
					  message: string;
 | 
				
			||||||
@ -32,760 +14,3 @@ export interface ContainerChangeEventData {
 | 
				
			|||||||
  modifyKey?: string;
 | 
					  modifyKey?: string;
 | 
				
			||||||
  changeRecords?: ChangeRecord[];
 | 
					  changeRecords?: ChangeRecord[];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface FieldProps<T = any> {
 | 
					 | 
				
			||||||
  config: T;
 | 
					 | 
				
			||||||
  model: any;
 | 
					 | 
				
			||||||
  initValues?: any;
 | 
					 | 
				
			||||||
  values?: any;
 | 
					 | 
				
			||||||
  name: string;
 | 
					 | 
				
			||||||
  prop: string;
 | 
					 | 
				
			||||||
  disabled?: boolean;
 | 
					 | 
				
			||||||
  size?: 'large' | 'default' | 'small';
 | 
					 | 
				
			||||||
  lastValues?: Record<string, any>;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 整个表单的数据,会注入到各个组件中去
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export type FormState = {
 | 
					 | 
				
			||||||
  config: FormConfig;
 | 
					 | 
				
			||||||
  popperClass?: string;
 | 
					 | 
				
			||||||
  initValues: FormValue;
 | 
					 | 
				
			||||||
  lastValues: FormValue;
 | 
					 | 
				
			||||||
  isCompare: boolean;
 | 
					 | 
				
			||||||
  values: FormValue;
 | 
					 | 
				
			||||||
  $emit: (event: string, ...args: any[]) => void;
 | 
					 | 
				
			||||||
  keyProp?: string;
 | 
					 | 
				
			||||||
  parentValues?: FormValue;
 | 
					 | 
				
			||||||
  setField: (prop: string, field: any) => void;
 | 
					 | 
				
			||||||
  getField: (prop: string) => any;
 | 
					 | 
				
			||||||
  deleteField: (prop: string) => any;
 | 
					 | 
				
			||||||
  $messageBox: TMagicMessageBox;
 | 
					 | 
				
			||||||
  $message: TMagicMessage;
 | 
					 | 
				
			||||||
  [key: string]: any;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 排序配置
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface SortProp {
 | 
					 | 
				
			||||||
  /** 跟该值排序 */
 | 
					 | 
				
			||||||
  prop: string;
 | 
					 | 
				
			||||||
  order: 'ascending' | 'descending';
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface FormItem {
 | 
					 | 
				
			||||||
  /** vnode的key值,默认是遍历数组时的index */
 | 
					 | 
				
			||||||
  __key?: string | number;
 | 
					 | 
				
			||||||
  /** 表单域标签的的宽度,例如 '50px'。支持 auto。 */
 | 
					 | 
				
			||||||
  labelWidth?: string;
 | 
					 | 
				
			||||||
  /** label 标签的title属性 */
 | 
					 | 
				
			||||||
  labelTitle?: string;
 | 
					 | 
				
			||||||
  className?: string;
 | 
					 | 
				
			||||||
  /** 表单组件类型 */
 | 
					 | 
				
			||||||
  type?: string | TypeFunction;
 | 
					 | 
				
			||||||
  /** 字段名 */
 | 
					 | 
				
			||||||
  name?: string | number;
 | 
					 | 
				
			||||||
  /** 额外的提示信息,和 help 类似,当提示文案同时出现时,可以使用这个。 */
 | 
					 | 
				
			||||||
  extra?: string | FilterFunction<string>;
 | 
					 | 
				
			||||||
  /** 配置提示信息 */
 | 
					 | 
				
			||||||
  tooltip?: string | FilterFunction<string>;
 | 
					 | 
				
			||||||
  /** 是否置灰 */
 | 
					 | 
				
			||||||
  disabled?: boolean | FilterFunction;
 | 
					 | 
				
			||||||
  /** 使用表单中的值作为key,例如配置了text,则使用model.text作为key */
 | 
					 | 
				
			||||||
  key?: string;
 | 
					 | 
				
			||||||
  /** 是否显示 */
 | 
					 | 
				
			||||||
  display?: boolean | 'expand' | FilterFunction<boolean | 'expand'>;
 | 
					 | 
				
			||||||
  /** 值发生改变时调用的方法 */
 | 
					 | 
				
			||||||
  onChange?: OnChangeHandler;
 | 
					 | 
				
			||||||
  /** label 标签的文本 */
 | 
					 | 
				
			||||||
  text?: string | FilterFunction<string>;
 | 
					 | 
				
			||||||
  /** 右侧感叹号 */
 | 
					 | 
				
			||||||
  tip?: string;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  filter?: 'number' | OnChangeHandler;
 | 
					 | 
				
			||||||
  /** 是否去除首尾空格 */
 | 
					 | 
				
			||||||
  trim?: boolean;
 | 
					 | 
				
			||||||
  /** 默认值 */
 | 
					 | 
				
			||||||
  defaultValue?: any | DefaultValueFunction;
 | 
					 | 
				
			||||||
  /** 表单验证规则 */
 | 
					 | 
				
			||||||
  rules?: Rule[];
 | 
					 | 
				
			||||||
  extensible?: boolean;
 | 
					 | 
				
			||||||
  dynamicKey?: string;
 | 
					 | 
				
			||||||
  /** 是否需要显示`展开更多配置` */
 | 
					 | 
				
			||||||
  expand?: boolean;
 | 
					 | 
				
			||||||
  [key: string]: any;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface ContainerCommonConfig {
 | 
					 | 
				
			||||||
  items: FormConfig;
 | 
					 | 
				
			||||||
  onInitValue?: (
 | 
					 | 
				
			||||||
    mForm: FormState | undefined,
 | 
					 | 
				
			||||||
    data: {
 | 
					 | 
				
			||||||
      formValue: FormValue;
 | 
					 | 
				
			||||||
      initValue: FormValue;
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  ) => FormValue;
 | 
					 | 
				
			||||||
  extensible?: boolean;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface Rule {
 | 
					 | 
				
			||||||
  message?: string;
 | 
					 | 
				
			||||||
  /** 系统提供的验证器类型。有:string,number,boolean,method,regexp,integer,float,array,object,enum,date,url,hex,email,any */
 | 
					 | 
				
			||||||
  type?: string;
 | 
					 | 
				
			||||||
  /** 是否必填 */
 | 
					 | 
				
			||||||
  required?: boolean;
 | 
					 | 
				
			||||||
  trigger?: string;
 | 
					 | 
				
			||||||
  /** 自定义验证器 */
 | 
					 | 
				
			||||||
  validator?: (
 | 
					 | 
				
			||||||
    options: {
 | 
					 | 
				
			||||||
      rule: string;
 | 
					 | 
				
			||||||
      value: any;
 | 
					 | 
				
			||||||
      callback: Function;
 | 
					 | 
				
			||||||
      source: Object;
 | 
					 | 
				
			||||||
      options: {
 | 
					 | 
				
			||||||
        messages: string;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    data: {
 | 
					 | 
				
			||||||
      /** 表单的初始值 */
 | 
					 | 
				
			||||||
      values: FormValue;
 | 
					 | 
				
			||||||
      /** 当前作用域下的值 */
 | 
					 | 
				
			||||||
      model: FormValue;
 | 
					 | 
				
			||||||
      parent: FormValue;
 | 
					 | 
				
			||||||
      /** 整个表单的值 */
 | 
					 | 
				
			||||||
      formValue: FormValue;
 | 
					 | 
				
			||||||
      prop: string;
 | 
					 | 
				
			||||||
      config: any;
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    mForm: FormState | undefined,
 | 
					 | 
				
			||||||
  ) => void;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface Input {
 | 
					 | 
				
			||||||
  /** 输入框没有内容时显示的文案 */
 | 
					 | 
				
			||||||
  placeholder?: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export type TypeFunction = (
 | 
					 | 
				
			||||||
  mForm: FormState | undefined,
 | 
					 | 
				
			||||||
  data: {
 | 
					 | 
				
			||||||
    model: FormValue;
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
) => string;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export type FilterFunction<T = boolean> = (
 | 
					 | 
				
			||||||
  mForm: FormState | undefined,
 | 
					 | 
				
			||||||
  data: {
 | 
					 | 
				
			||||||
    model: FormValue;
 | 
					 | 
				
			||||||
    values: FormValue;
 | 
					 | 
				
			||||||
    parent?: FormValue;
 | 
					 | 
				
			||||||
    formValue: FormValue;
 | 
					 | 
				
			||||||
    prop: string;
 | 
					 | 
				
			||||||
    config: any;
 | 
					 | 
				
			||||||
    index?: number;
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
) => T;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface OnChangeHandlerData {
 | 
					 | 
				
			||||||
  model: FormValue;
 | 
					 | 
				
			||||||
  values?: FormValue;
 | 
					 | 
				
			||||||
  parent?: FormValue;
 | 
					 | 
				
			||||||
  formValue?: FormValue;
 | 
					 | 
				
			||||||
  config: any;
 | 
					 | 
				
			||||||
  prop: string;
 | 
					 | 
				
			||||||
  changeRecords: ChangeRecord[];
 | 
					 | 
				
			||||||
  setModel: (prop: string, value: any) => void;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export type OnChangeHandler = (mForm: FormState | undefined, value: any, data: OnChangeHandlerData) => any;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type DefaultValueFunction = (mForm: FormState | undefined) => any;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 下拉选择器选项配置
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface SelectConfigOption {
 | 
					 | 
				
			||||||
  /** 选项的标签 */
 | 
					 | 
				
			||||||
  text: string | SelectOptionTextFunction;
 | 
					 | 
				
			||||||
  /** 选项的值 */
 | 
					 | 
				
			||||||
  value: any | SelectOptionValueFunction;
 | 
					 | 
				
			||||||
  /** 是否禁用该选项 */
 | 
					 | 
				
			||||||
  disabled?: boolean;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface SelectOption {
 | 
					 | 
				
			||||||
  /** 选项的标签 */
 | 
					 | 
				
			||||||
  text: string;
 | 
					 | 
				
			||||||
  /** 选项的值 */
 | 
					 | 
				
			||||||
  value: any;
 | 
					 | 
				
			||||||
  /** 是否禁用该选项 */
 | 
					 | 
				
			||||||
  disabled?: boolean;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 下拉选择器分组选项配置
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface SelectConfigGroupOption {
 | 
					 | 
				
			||||||
  /** 分组的组名 */
 | 
					 | 
				
			||||||
  label: string;
 | 
					 | 
				
			||||||
  /** 是否禁用该选项组 */
 | 
					 | 
				
			||||||
  disabled: boolean;
 | 
					 | 
				
			||||||
  options: {
 | 
					 | 
				
			||||||
    /** 选项的标签 */
 | 
					 | 
				
			||||||
    label: string | SelectOptionTextFunction;
 | 
					 | 
				
			||||||
    /** 选项的值 */
 | 
					 | 
				
			||||||
    value: any | SelectOptionValueFunction;
 | 
					 | 
				
			||||||
    /** 是否禁用该选项 */
 | 
					 | 
				
			||||||
    disabled?: boolean;
 | 
					 | 
				
			||||||
  }[];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface SelectGroupOption {
 | 
					 | 
				
			||||||
  /** 分组的组名 */
 | 
					 | 
				
			||||||
  label: string;
 | 
					 | 
				
			||||||
  /** 是否禁用该选项组 */
 | 
					 | 
				
			||||||
  disabled: boolean;
 | 
					 | 
				
			||||||
  options: {
 | 
					 | 
				
			||||||
    /** 选项的标签 */
 | 
					 | 
				
			||||||
    label?: string;
 | 
					 | 
				
			||||||
    text?: string;
 | 
					 | 
				
			||||||
    /** 选项的值 */
 | 
					 | 
				
			||||||
    value: any;
 | 
					 | 
				
			||||||
    /** 是否禁用该选项 */
 | 
					 | 
				
			||||||
    disabled?: boolean;
 | 
					 | 
				
			||||||
  }[];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type SelectOptionFunction = (
 | 
					 | 
				
			||||||
  mForm: FormState | undefined,
 | 
					 | 
				
			||||||
  data: {
 | 
					 | 
				
			||||||
    model: any;
 | 
					 | 
				
			||||||
    prop?: string;
 | 
					 | 
				
			||||||
    formValues: any;
 | 
					 | 
				
			||||||
    formValue: any;
 | 
					 | 
				
			||||||
    config: any;
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
) => SelectOption[] | SelectGroupOption[];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type RemoteSelectOptionBodyFunction = (
 | 
					 | 
				
			||||||
  mForm: FormState | undefined,
 | 
					 | 
				
			||||||
  data: {
 | 
					 | 
				
			||||||
    model: any;
 | 
					 | 
				
			||||||
    formValue: any;
 | 
					 | 
				
			||||||
    formValues: any;
 | 
					 | 
				
			||||||
    config: any;
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
) => Record<string, any>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type RemoteSelectOptionAfterRequestFunction = (
 | 
					 | 
				
			||||||
  mForm: FormState | undefined,
 | 
					 | 
				
			||||||
  res: any,
 | 
					 | 
				
			||||||
  data: {
 | 
					 | 
				
			||||||
    model: any;
 | 
					 | 
				
			||||||
    formValue: any;
 | 
					 | 
				
			||||||
    formValues: any;
 | 
					 | 
				
			||||||
    config: any;
 | 
					 | 
				
			||||||
    prop: string;
 | 
					 | 
				
			||||||
    postOptions: Record<string, any>;
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
) => any;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type RemoteSelectOptionBeforeRequestFunction = (
 | 
					 | 
				
			||||||
  mForm: FormState | undefined,
 | 
					 | 
				
			||||||
  postOptions: Record<string, any>,
 | 
					 | 
				
			||||||
  data: {
 | 
					 | 
				
			||||||
    model: any;
 | 
					 | 
				
			||||||
    formValue: any;
 | 
					 | 
				
			||||||
    formValues: any;
 | 
					 | 
				
			||||||
    config: any;
 | 
					 | 
				
			||||||
    prop: string;
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
) => Record<string, any>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type RemoteSelectOptionItemFunction = (optionsData: Record<string, any>) => SelectOption[] | SelectGroupOption[];
 | 
					 | 
				
			||||||
type SelectOptionValueFunction = (item: Record<string, any>) => any;
 | 
					 | 
				
			||||||
type SelectOptionTextFunction = (item: Record<string, any>) => string;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface CascaderOption {
 | 
					 | 
				
			||||||
  /** 指定选项的值为选项对象的某个属性值 */
 | 
					 | 
				
			||||||
  value: any;
 | 
					 | 
				
			||||||
  /** 指定选项标签为选项对象的某个属性值 */
 | 
					 | 
				
			||||||
  label: string;
 | 
					 | 
				
			||||||
  /** 指定选项的子选项为选项对象的某个属性值 */
 | 
					 | 
				
			||||||
  children?: CascaderOption[];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 日期范围
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface DaterangeConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'daterange';
 | 
					 | 
				
			||||||
  defaultTime?: Date[];
 | 
					 | 
				
			||||||
  names?: string[];
 | 
					 | 
				
			||||||
  valueFormat?: string;
 | 
					 | 
				
			||||||
  dateFormat?: string;
 | 
					 | 
				
			||||||
  timeFormat?: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * html编辑器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface HtmlField extends FormItem {
 | 
					 | 
				
			||||||
  type: 'html';
 | 
					 | 
				
			||||||
  /** 是否异步加载编辑的内容 */
 | 
					 | 
				
			||||||
  asyncLoad?: {
 | 
					 | 
				
			||||||
    name: string | number;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/** 展示文本,不可编辑 */
 | 
					 | 
				
			||||||
export interface DisplayConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'display';
 | 
					 | 
				
			||||||
  initValue?: string | number | boolean;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/** 文本输入框 */
 | 
					 | 
				
			||||||
export interface TextConfig extends FormItem, Input {
 | 
					 | 
				
			||||||
  type?: 'text';
 | 
					 | 
				
			||||||
  tooltip?: string;
 | 
					 | 
				
			||||||
  /** 后置元素,一般为标签或按钮 */
 | 
					 | 
				
			||||||
  append?:
 | 
					 | 
				
			||||||
    | string
 | 
					 | 
				
			||||||
    | {
 | 
					 | 
				
			||||||
        text: string;
 | 
					 | 
				
			||||||
        value?: 0 | 1;
 | 
					 | 
				
			||||||
        type: 'button';
 | 
					 | 
				
			||||||
        handler?: (
 | 
					 | 
				
			||||||
          mForm: FormState | undefined,
 | 
					 | 
				
			||||||
          data: {
 | 
					 | 
				
			||||||
            model: any;
 | 
					 | 
				
			||||||
            values: any;
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
        ) => void;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 文本域
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface TextareaConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'textarea';
 | 
					 | 
				
			||||||
  placeholder?: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 计数器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface NumberConfig extends FormItem {
 | 
					 | 
				
			||||||
  type?: 'number';
 | 
					 | 
				
			||||||
  tooltip?: string;
 | 
					 | 
				
			||||||
  min?: number;
 | 
					 | 
				
			||||||
  max?: number;
 | 
					 | 
				
			||||||
  step?: number;
 | 
					 | 
				
			||||||
  placeholder?: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 数值范围
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface NumberRangeConfig extends FormItem {
 | 
					 | 
				
			||||||
  type?: 'number-range';
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 隐藏域
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface HiddenConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'hidden';
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 日期选择器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface DateConfig extends FormItem, Input {
 | 
					 | 
				
			||||||
  type: 'date';
 | 
					 | 
				
			||||||
  format?: 'YYYY-MM-dd HH:mm:ss' | string;
 | 
					 | 
				
			||||||
  valueFormat?: 'YYYY-MM-dd HH:mm:ss' | string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 日期时间选择器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface DateTimeConfig extends FormItem, Input {
 | 
					 | 
				
			||||||
  type: 'datetime';
 | 
					 | 
				
			||||||
  defaultTime?: Date[];
 | 
					 | 
				
			||||||
  format?: 'YYYY-MM-dd HH:mm:ss' | string;
 | 
					 | 
				
			||||||
  valueFormat?: 'YYYY-MM-dd HH:mm:ss' | string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 时间选择器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface TimeConfig extends FormItem, Input {
 | 
					 | 
				
			||||||
  type: 'time';
 | 
					 | 
				
			||||||
  format?: 'HH:mm:ss' | string;
 | 
					 | 
				
			||||||
  valueFormat?: 'HH:mm:ss' | string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 单个多选框
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface CheckboxConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'checkbox';
 | 
					 | 
				
			||||||
  activeValue?: number | string;
 | 
					 | 
				
			||||||
  inactiveValue?: number | string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 开关
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface SwitchConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'switch';
 | 
					 | 
				
			||||||
  activeValue?: boolean | number | string;
 | 
					 | 
				
			||||||
  inactiveValue?: boolean | number | string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 单选框
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface RadioGroupConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'radio-group';
 | 
					 | 
				
			||||||
  childType?: 'default' | 'button';
 | 
					 | 
				
			||||||
  options: {
 | 
					 | 
				
			||||||
    value: string | number | boolean;
 | 
					 | 
				
			||||||
    text: string;
 | 
					 | 
				
			||||||
    icon?: any;
 | 
					 | 
				
			||||||
    tooltip?: string;
 | 
					 | 
				
			||||||
  }[];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 颜色选择器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface ColorPickConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'colorPicker';
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface CheckboxGroupOption {
 | 
					 | 
				
			||||||
  value: any;
 | 
					 | 
				
			||||||
  text: string;
 | 
					 | 
				
			||||||
  disabled?: boolean;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 多选框组
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface CheckboxGroupConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'checkbox-group';
 | 
					 | 
				
			||||||
  options: CheckboxGroupOption[] | FilterFunction<CheckboxGroupOption[]>;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 下拉选择器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface SelectConfig extends FormItem, Input {
 | 
					 | 
				
			||||||
  type: 'select';
 | 
					 | 
				
			||||||
  clearable?: boolean;
 | 
					 | 
				
			||||||
  multiple?: boolean;
 | 
					 | 
				
			||||||
  valueKey?: string;
 | 
					 | 
				
			||||||
  allowCreate?: boolean;
 | 
					 | 
				
			||||||
  filterable?: boolean;
 | 
					 | 
				
			||||||
  group?: boolean;
 | 
					 | 
				
			||||||
  options?: SelectConfigOption[] | SelectConfigGroupOption[] | SelectOptionFunction;
 | 
					 | 
				
			||||||
  remote?: true;
 | 
					 | 
				
			||||||
  option?: {
 | 
					 | 
				
			||||||
    url: string | ((mForm: FormState | undefined, data: { model: any; formValue: any }) => string);
 | 
					 | 
				
			||||||
    initUrl?: string | ((mForm: FormState | undefined, data: { model: any; formValue: any }) => string);
 | 
					 | 
				
			||||||
    method?: 'jsonp' | string;
 | 
					 | 
				
			||||||
    cache?: boolean;
 | 
					 | 
				
			||||||
    timeout?: number;
 | 
					 | 
				
			||||||
    mode?: string;
 | 
					 | 
				
			||||||
    headers?: {
 | 
					 | 
				
			||||||
      [key: string]: string;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    json?: false | boolean;
 | 
					 | 
				
			||||||
    body?: Record<string, any> | RemoteSelectOptionBodyFunction;
 | 
					 | 
				
			||||||
    initBody?: Record<string, any> | RemoteSelectOptionBodyFunction;
 | 
					 | 
				
			||||||
    jsonpCallback?: 'callback' | string;
 | 
					 | 
				
			||||||
    afterRequest?: RemoteSelectOptionAfterRequestFunction;
 | 
					 | 
				
			||||||
    afterInitRequest?: RemoteSelectOptionAfterRequestFunction;
 | 
					 | 
				
			||||||
    beforeRequest?: RemoteSelectOptionBeforeRequestFunction;
 | 
					 | 
				
			||||||
    beforeInitRequest?: RemoteSelectOptionBeforeRequestFunction;
 | 
					 | 
				
			||||||
    root?: string;
 | 
					 | 
				
			||||||
    totalKey?: string;
 | 
					 | 
				
			||||||
    initRoot?: string;
 | 
					 | 
				
			||||||
    item?: RemoteSelectOptionItemFunction;
 | 
					 | 
				
			||||||
    value?: string | SelectOptionValueFunction;
 | 
					 | 
				
			||||||
    text?: string | SelectOptionTextFunction;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 链接
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface LinkConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'link';
 | 
					 | 
				
			||||||
  href?: string | ((model: Record<string, any>) => string);
 | 
					 | 
				
			||||||
  css?: {
 | 
					 | 
				
			||||||
    [key: string]: string | number;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  disabledCss?: {
 | 
					 | 
				
			||||||
    [key: string]: string | number;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  formTitle?: string;
 | 
					 | 
				
			||||||
  formWidth?: number | string;
 | 
					 | 
				
			||||||
  displayText?:
 | 
					 | 
				
			||||||
    | ((
 | 
					 | 
				
			||||||
        mForm: FormState | undefined,
 | 
					 | 
				
			||||||
        data: {
 | 
					 | 
				
			||||||
          model: Record<any, any>;
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      ) => string)
 | 
					 | 
				
			||||||
    | string;
 | 
					 | 
				
			||||||
  form:
 | 
					 | 
				
			||||||
    | FormConfig
 | 
					 | 
				
			||||||
    | ((
 | 
					 | 
				
			||||||
        mForm: FormState | undefined,
 | 
					 | 
				
			||||||
        data: {
 | 
					 | 
				
			||||||
          model: Record<any, any>;
 | 
					 | 
				
			||||||
          values: Record<any, any>;
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      ) => FormConfig);
 | 
					 | 
				
			||||||
  fullscreen?: boolean;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 级联选择器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface CascaderConfig extends FormItem, Input {
 | 
					 | 
				
			||||||
  type: 'cascader';
 | 
					 | 
				
			||||||
  remote?: boolean;
 | 
					 | 
				
			||||||
  /** 在选中节点改变时,是否返回由该节点所在的各级菜单的值所组成的数组,若设置 false,则只返回该节点的值,默认 true */
 | 
					 | 
				
			||||||
  emitPath?: boolean;
 | 
					 | 
				
			||||||
  /** 是否多选,默认 false */
 | 
					 | 
				
			||||||
  multiple?: boolean;
 | 
					 | 
				
			||||||
  /** 是否严格的遵守父子节点不互相关联,默认 false */
 | 
					 | 
				
			||||||
  checkStrictly?: boolean | FilterFunction<boolean>;
 | 
					 | 
				
			||||||
  /** 弹出内容的自定义类名 */
 | 
					 | 
				
			||||||
  popperClass?: string;
 | 
					 | 
				
			||||||
  /** 合并成字符串时的分隔符 */
 | 
					 | 
				
			||||||
  valueSeparator?: string | FilterFunction<string>;
 | 
					 | 
				
			||||||
  options?:
 | 
					 | 
				
			||||||
    | ((
 | 
					 | 
				
			||||||
        mForm: FormState | undefined,
 | 
					 | 
				
			||||||
        data: {
 | 
					 | 
				
			||||||
          model: Record<any, any>;
 | 
					 | 
				
			||||||
          prop: string;
 | 
					 | 
				
			||||||
          formValue: Record<any, any>;
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      ) => CascaderOption[])
 | 
					 | 
				
			||||||
    | CascaderOption[];
 | 
					 | 
				
			||||||
  option?: {
 | 
					 | 
				
			||||||
    url: string;
 | 
					 | 
				
			||||||
    cache?: boolean;
 | 
					 | 
				
			||||||
    timeout?: number;
 | 
					 | 
				
			||||||
    body?: Record<string, any> | RemoteSelectOptionBodyFunction;
 | 
					 | 
				
			||||||
    root: 'string';
 | 
					 | 
				
			||||||
    item: (optionsData: Record<string, any>) => CascaderOption[];
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface DynamicFieldConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'dynamic-field';
 | 
					 | 
				
			||||||
  returnFields: (
 | 
					 | 
				
			||||||
    config: DynamicFieldConfig,
 | 
					 | 
				
			||||||
    model: Record<any, any>,
 | 
					 | 
				
			||||||
    request: Object,
 | 
					 | 
				
			||||||
  ) => {
 | 
					 | 
				
			||||||
    name: string;
 | 
					 | 
				
			||||||
    label: string;
 | 
					 | 
				
			||||||
    defaultValue: string;
 | 
					 | 
				
			||||||
  }[];
 | 
					 | 
				
			||||||
  dynamicKey: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 分组容器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface RowConfig extends FormItem, ContainerCommonConfig {
 | 
					 | 
				
			||||||
  type: 'row';
 | 
					 | 
				
			||||||
  span: number;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 标签页容器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface TabPaneConfig {
 | 
					 | 
				
			||||||
  status?: string;
 | 
					 | 
				
			||||||
  title: string;
 | 
					 | 
				
			||||||
  lazy?: boolean;
 | 
					 | 
				
			||||||
  labelWidth?: string;
 | 
					 | 
				
			||||||
  items: FormConfig;
 | 
					 | 
				
			||||||
  onTabClick?: (mForm: FormState | undefined, tab: any, data: any) => void;
 | 
					 | 
				
			||||||
  [key: string]: any;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface TabConfig extends FormItem, ContainerCommonConfig {
 | 
					 | 
				
			||||||
  type: 'tab' | 'dynamic-tab';
 | 
					 | 
				
			||||||
  tabType?: string;
 | 
					 | 
				
			||||||
  editable?: boolean;
 | 
					 | 
				
			||||||
  dynamic?: boolean;
 | 
					 | 
				
			||||||
  tabPosition?: 'top' | 'right' | 'bottom' | 'left';
 | 
					 | 
				
			||||||
  items: TabPaneConfig[];
 | 
					 | 
				
			||||||
  onChange?: (mForm: FormState | undefined, data: any) => void;
 | 
					 | 
				
			||||||
  onTabAdd?: (mForm: FormState | undefined, data: any) => void;
 | 
					 | 
				
			||||||
  onTabRemove?: (mForm: FormState | undefined, tabName: string, data: any) => void;
 | 
					 | 
				
			||||||
  onTabClick?: (mForm: FormState | undefined, tab: any, data: any) => void;
 | 
					 | 
				
			||||||
  activeChange?: (mForm: FormState | undefined, tabName: string, data: any) => void;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 分组
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface FieldsetConfig extends FormItem, ContainerCommonConfig {
 | 
					 | 
				
			||||||
  type: 'fieldset';
 | 
					 | 
				
			||||||
  checkbox?: boolean;
 | 
					 | 
				
			||||||
  expand?: boolean;
 | 
					 | 
				
			||||||
  legend?: string;
 | 
					 | 
				
			||||||
  schematic?: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 面板容器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface PanelConfig extends FormItem, ContainerCommonConfig {
 | 
					 | 
				
			||||||
  type: 'panel';
 | 
					 | 
				
			||||||
  expand?: boolean;
 | 
					 | 
				
			||||||
  title?: string;
 | 
					 | 
				
			||||||
  schematic?: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface TableColumnConfig extends FormItem {
 | 
					 | 
				
			||||||
  name?: string;
 | 
					 | 
				
			||||||
  label: string;
 | 
					 | 
				
			||||||
  width?: string | number;
 | 
					 | 
				
			||||||
  sortable?: boolean;
 | 
					 | 
				
			||||||
  [key: string]: any;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 表格容器
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
export interface TableConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'table' | 'groupList' | 'group-list';
 | 
					 | 
				
			||||||
  items: TableColumnConfig[];
 | 
					 | 
				
			||||||
  tableItems?: TableColumnConfig[];
 | 
					 | 
				
			||||||
  groupItems?: TableColumnConfig[];
 | 
					 | 
				
			||||||
  enableToggleMode?: boolean;
 | 
					 | 
				
			||||||
  /** 最大行数 */
 | 
					 | 
				
			||||||
  max?: number;
 | 
					 | 
				
			||||||
  /** 最大高度 */
 | 
					 | 
				
			||||||
  maxHeight?: number | string;
 | 
					 | 
				
			||||||
  border?: boolean;
 | 
					 | 
				
			||||||
  /** 显示行号 */
 | 
					 | 
				
			||||||
  showIndex?: boolean;
 | 
					 | 
				
			||||||
  /** 操作栏宽度 */
 | 
					 | 
				
			||||||
  operateColWidth?: number | string;
 | 
					 | 
				
			||||||
  pagination?: boolean;
 | 
					 | 
				
			||||||
  enum?: any[];
 | 
					 | 
				
			||||||
  /** 是否显示添加按钮 */
 | 
					 | 
				
			||||||
  addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
 | 
					 | 
				
			||||||
  /** 是否显示删除按钮 */
 | 
					 | 
				
			||||||
  delete?: (model: any, index: number, values: any) => boolean | boolean;
 | 
					 | 
				
			||||||
  copyable?: (model: any, data: any) => boolean | boolean;
 | 
					 | 
				
			||||||
  /** 是否显示导入按钮 */
 | 
					 | 
				
			||||||
  importable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
 | 
					 | 
				
			||||||
  /** 是否显示checkbox */
 | 
					 | 
				
			||||||
  selection?: (mForm: FormState | undefined, data: any) => boolean | boolean | 'single';
 | 
					 | 
				
			||||||
  /** 新增的默认行 */
 | 
					 | 
				
			||||||
  defaultAdd?: (mForm: FormState | undefined, data: any) => any;
 | 
					 | 
				
			||||||
  onSelect?: (mForm: FormState | undefined, data: any) => any;
 | 
					 | 
				
			||||||
  defautSort?: SortProp;
 | 
					 | 
				
			||||||
  defaultSort?: SortProp;
 | 
					 | 
				
			||||||
  dropSort?: boolean;
 | 
					 | 
				
			||||||
  /** 是否显示全屏按钮 */
 | 
					 | 
				
			||||||
  enableFullscreen?: boolean;
 | 
					 | 
				
			||||||
  fixed?: boolean;
 | 
					 | 
				
			||||||
  itemExtra?: string | FilterFunction<string>;
 | 
					 | 
				
			||||||
  rowKey?: string;
 | 
					 | 
				
			||||||
  /** table 新增行时前置回调 */
 | 
					 | 
				
			||||||
  beforeAddRow?: (mForm: FormState | undefined, data: any) => boolean;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface GroupListConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'table' | 'groupList' | 'group-list';
 | 
					 | 
				
			||||||
  span?: number;
 | 
					 | 
				
			||||||
  enableToggleMode?: boolean;
 | 
					 | 
				
			||||||
  items: FormConfig;
 | 
					 | 
				
			||||||
  groupItems?: FormConfig;
 | 
					 | 
				
			||||||
  tableItems?: FormConfig;
 | 
					 | 
				
			||||||
  titleKey?: string;
 | 
					 | 
				
			||||||
  titlePrefix?: string;
 | 
					 | 
				
			||||||
  title?: string | FilterFunction<string>;
 | 
					 | 
				
			||||||
  itemExtra?: string | FilterFunction<string>;
 | 
					 | 
				
			||||||
  expandAll?: boolean;
 | 
					 | 
				
			||||||
  addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
 | 
					 | 
				
			||||||
  defaultAdd?: (mForm: FormState | undefined, data: any) => any;
 | 
					 | 
				
			||||||
  delete?: (model: any, index: number | string | symbol, values: any) => boolean | boolean;
 | 
					 | 
				
			||||||
  copyable?: FilterFunction<boolean>;
 | 
					 | 
				
			||||||
  movable?: (
 | 
					 | 
				
			||||||
    mForm: FormState | undefined,
 | 
					 | 
				
			||||||
    index: number | string | symbol,
 | 
					 | 
				
			||||||
    model: any,
 | 
					 | 
				
			||||||
    groupModel: any,
 | 
					 | 
				
			||||||
  ) => boolean | boolean;
 | 
					 | 
				
			||||||
  moveSpecifyLocation?: boolean;
 | 
					 | 
				
			||||||
  [key: string]: any;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
interface StepItemConfig extends FormItem, ContainerCommonConfig {
 | 
					 | 
				
			||||||
  title: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface StepConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'step';
 | 
					 | 
				
			||||||
  /** 每个 step 的间距,不填写将自适应间距。支持百分比。 */
 | 
					 | 
				
			||||||
  space?: string | number;
 | 
					 | 
				
			||||||
  items: StepItemConfig[];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface ComponentConfig extends FormItem {
 | 
					 | 
				
			||||||
  type: 'component';
 | 
					 | 
				
			||||||
  id: string;
 | 
					 | 
				
			||||||
  extend: any;
 | 
					 | 
				
			||||||
  display: any;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export type ChildConfig =
 | 
					 | 
				
			||||||
  | FormItem
 | 
					 | 
				
			||||||
  | TabConfig
 | 
					 | 
				
			||||||
  | RowConfig
 | 
					 | 
				
			||||||
  | FieldsetConfig
 | 
					 | 
				
			||||||
  | PanelConfig
 | 
					 | 
				
			||||||
  | TableConfig
 | 
					 | 
				
			||||||
  | GroupListConfig
 | 
					 | 
				
			||||||
  | StepConfig
 | 
					 | 
				
			||||||
  | DisplayConfig
 | 
					 | 
				
			||||||
  | TextConfig
 | 
					 | 
				
			||||||
  | HiddenConfig
 | 
					 | 
				
			||||||
  | LinkConfig
 | 
					 | 
				
			||||||
  | DaterangeConfig
 | 
					 | 
				
			||||||
  | SelectConfig
 | 
					 | 
				
			||||||
  | CascaderConfig
 | 
					 | 
				
			||||||
  | HtmlField
 | 
					 | 
				
			||||||
  | DateConfig
 | 
					 | 
				
			||||||
  | ColorPickConfig
 | 
					 | 
				
			||||||
  | TimeConfig
 | 
					 | 
				
			||||||
  | DateTimeConfig
 | 
					 | 
				
			||||||
  | CheckboxConfig
 | 
					 | 
				
			||||||
  | SwitchConfig
 | 
					 | 
				
			||||||
  | RadioGroupConfig
 | 
					 | 
				
			||||||
  | TextareaConfig
 | 
					 | 
				
			||||||
  | DynamicFieldConfig
 | 
					 | 
				
			||||||
  | ComponentConfig;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export type FormConfig = ChildConfig[];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export type FormValue = Record<string | number, any>;
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -18,9 +18,6 @@
 | 
				
			|||||||
    "types",
 | 
					    "types",
 | 
				
			||||||
    "src"
 | 
					    "src"
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "scripts": {
 | 
					 | 
				
			||||||
    "build": "vite build"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "engines": {
 | 
					  "engines": {
 | 
				
			||||||
    "node": ">=18"
 | 
					    "node": ">=18"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -64,6 +64,7 @@ export default defineConfig({
 | 
				
			|||||||
      { find: /^@tmagic\/core/, replacement: path.join(__dirname, '../packages/core/src/index.ts') },
 | 
					      { find: /^@tmagic\/core/, replacement: path.join(__dirname, '../packages/core/src/index.ts') },
 | 
				
			||||||
      { find: /^@editor/, replacement: path.join(__dirname, '../packages/editor/src/') },
 | 
					      { find: /^@editor/, replacement: path.join(__dirname, '../packages/editor/src/') },
 | 
				
			||||||
      { find: /^@tmagic\/editor/, replacement: path.join(__dirname, '../packages/editor/src/index.ts') },
 | 
					      { find: /^@tmagic\/editor/, replacement: path.join(__dirname, '../packages/editor/src/index.ts') },
 | 
				
			||||||
 | 
					      { find: /^@tmagic\/form-schema/, replacement: path.join(__dirname, '../packages/form-schema/src/index.ts') },
 | 
				
			||||||
      { find: /^@tmagic\/schema/, replacement: path.join(__dirname, '../packages/schema/src/index.ts') },
 | 
					      { find: /^@tmagic\/schema/, replacement: path.join(__dirname, '../packages/schema/src/index.ts') },
 | 
				
			||||||
      { find: /^@tmagic\/form/, replacement: path.join(__dirname, '../packages/form/src/index.ts') },
 | 
					      { find: /^@tmagic\/form/, replacement: path.join(__dirname, '../packages/form/src/index.ts') },
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										72
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										72
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							@ -387,6 +387,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/design':
 | 
					      '@tmagic/design':
 | 
				
			||||||
        specifier: workspace:*
 | 
					        specifier: workspace:*
 | 
				
			||||||
        version: link:../design
 | 
					        version: link:../design
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:*
 | 
				
			||||||
 | 
					        version: link:../form-schema
 | 
				
			||||||
      '@tmagic/utils':
 | 
					      '@tmagic/utils':
 | 
				
			||||||
        specifier: workspace:*
 | 
					        specifier: workspace:*
 | 
				
			||||||
        version: link:../utils
 | 
					        version: link:../utils
 | 
				
			||||||
@ -416,6 +419,15 @@ importers:
 | 
				
			|||||||
        specifier: ^2.4.6
 | 
					        specifier: ^2.4.6
 | 
				
			||||||
        version: 2.4.6
 | 
					        version: 2.4.6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  packages/form-schema:
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@tmagic/schema':
 | 
				
			||||||
 | 
					        specifier: workspace:*
 | 
				
			||||||
 | 
					        version: link:../schema
 | 
				
			||||||
 | 
					      typescript:
 | 
				
			||||||
 | 
					        specifier: '*'
 | 
				
			||||||
 | 
					        version: 5.8.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  packages/schema:
 | 
					  packages/schema:
 | 
				
			||||||
    dependencies:
 | 
					    dependencies:
 | 
				
			||||||
      typescript:
 | 
					      typescript:
 | 
				
			||||||
@ -665,6 +677,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/react-runtime-help':
 | 
					      '@tmagic/react-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/react-runtime-help
 | 
					        version: link:../../runtime/react-runtime-help
 | 
				
			||||||
@ -690,6 +705,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/react-runtime-help':
 | 
					      '@tmagic/react-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/react-runtime-help
 | 
					        version: link:../../runtime/react-runtime-help
 | 
				
			||||||
@ -715,6 +733,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/react-runtime-help':
 | 
					      '@tmagic/react-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/react-runtime-help
 | 
					        version: link:../../runtime/react-runtime-help
 | 
				
			||||||
@ -740,6 +761,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/react-runtime-help':
 | 
					      '@tmagic/react-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/react-runtime-help
 | 
					        version: link:../../runtime/react-runtime-help
 | 
				
			||||||
@ -765,6 +789,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/react-runtime-help':
 | 
					      '@tmagic/react-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/react-runtime-help
 | 
					        version: link:../../runtime/react-runtime-help
 | 
				
			||||||
@ -790,6 +817,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/react-runtime-help':
 | 
					      '@tmagic/react-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/react-runtime-help
 | 
					        version: link:../../runtime/react-runtime-help
 | 
				
			||||||
@ -815,6 +845,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/react-runtime-help':
 | 
					      '@tmagic/react-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/react-runtime-help
 | 
					        version: link:../../runtime/react-runtime-help
 | 
				
			||||||
@ -840,6 +873,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/react-runtime-help':
 | 
					      '@tmagic/react-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/react-runtime-help
 | 
					        version: link:../../runtime/react-runtime-help
 | 
				
			||||||
@ -865,6 +901,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/react-runtime-help':
 | 
					      '@tmagic/react-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/react-runtime-help
 | 
					        version: link:../../runtime/react-runtime-help
 | 
				
			||||||
@ -896,6 +935,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/react-runtime-help':
 | 
					      '@tmagic/react-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/react-runtime-help
 | 
					        version: link:../../runtime/react-runtime-help
 | 
				
			||||||
@ -1139,6 +1181,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/vue-runtime-help':
 | 
					      '@tmagic/vue-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/vue-runtime-help
 | 
					        version: link:../../runtime/vue-runtime-help
 | 
				
			||||||
@ -1160,6 +1205,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/vue-runtime-help':
 | 
					      '@tmagic/vue-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/vue-runtime-help
 | 
					        version: link:../../runtime/vue-runtime-help
 | 
				
			||||||
@ -1181,6 +1229,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/vue-runtime-help':
 | 
					      '@tmagic/vue-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/vue-runtime-help
 | 
					        version: link:../../runtime/vue-runtime-help
 | 
				
			||||||
@ -1202,6 +1253,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/vue-runtime-help':
 | 
					      '@tmagic/vue-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/vue-runtime-help
 | 
					        version: link:../../runtime/vue-runtime-help
 | 
				
			||||||
@ -1223,6 +1277,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/vue-runtime-help':
 | 
					      '@tmagic/vue-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/vue-runtime-help
 | 
					        version: link:../../runtime/vue-runtime-help
 | 
				
			||||||
@ -1238,6 +1295,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/vue-runtime-help':
 | 
					      '@tmagic/vue-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/vue-runtime-help
 | 
					        version: link:../../runtime/vue-runtime-help
 | 
				
			||||||
@ -1253,6 +1313,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/vue-runtime-help':
 | 
					      '@tmagic/vue-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/vue-runtime-help
 | 
					        version: link:../../runtime/vue-runtime-help
 | 
				
			||||||
@ -1268,6 +1331,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/vue-runtime-help':
 | 
					      '@tmagic/vue-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/vue-runtime-help
 | 
					        version: link:../../runtime/vue-runtime-help
 | 
				
			||||||
@ -1283,6 +1349,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/vue-runtime-help':
 | 
					      '@tmagic/vue-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/vue-runtime-help
 | 
					        version: link:../../runtime/vue-runtime-help
 | 
				
			||||||
@ -1311,6 +1380,9 @@ importers:
 | 
				
			|||||||
      '@tmagic/core':
 | 
					      '@tmagic/core':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../packages/core
 | 
					        version: link:../../packages/core
 | 
				
			||||||
 | 
					      '@tmagic/form-schema':
 | 
				
			||||||
 | 
					        specifier: workspace:^
 | 
				
			||||||
 | 
					        version: link:../../packages/form-schema
 | 
				
			||||||
      '@tmagic/vue-runtime-help':
 | 
					      '@tmagic/vue-runtime-help':
 | 
				
			||||||
        specifier: workspace:^
 | 
					        specifier: workspace:^
 | 
				
			||||||
        version: link:../../runtime/vue-runtime-help
 | 
					        version: link:../../runtime/vue-runtime-help
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,9 @@
 | 
				
			|||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/core": "workspace:^",
 | 
					    "@tmagic/core": "workspace:^",
 | 
				
			||||||
    "@tmagic/react-runtime-help": "workspace:^",
 | 
					    "@tmagic/react-runtime-help": "workspace:^",
 | 
				
			||||||
 | 
				
			|||||||
@ -16,10 +16,12 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    text: '文本',
 | 
					    text: '文本',
 | 
				
			||||||
    name: 'text',
 | 
					    name: 'text',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,9 @@
 | 
				
			|||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/core": "workspace:^",
 | 
					    "@tmagic/core": "workspace:^",
 | 
				
			||||||
    "@tmagic/react-runtime-help": "workspace:^",
 | 
					    "@tmagic/react-runtime-help": "workspace:^",
 | 
				
			||||||
 | 
				
			|||||||
@ -17,8 +17,9 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { getElById } from '@tmagic/core';
 | 
					import { getElById } from '@tmagic/core';
 | 
				
			||||||
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'layout',
 | 
					    name: 'layout',
 | 
				
			||||||
    text: '容器布局',
 | 
					    text: '容器布局',
 | 
				
			||||||
@ -40,4 +41,4 @@ export default [
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,9 @@
 | 
				
			|||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/core": "workspace:^",
 | 
					    "@tmagic/core": "workspace:^",
 | 
				
			||||||
    "@tmagic/react-runtime-help": "workspace:^",
 | 
					    "@tmagic/react-runtime-help": "workspace:^",
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,9 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    type: 'data-source-field-select',
 | 
					    type: 'data-source-field-select',
 | 
				
			||||||
    name: 'src',
 | 
					    name: 'src',
 | 
				
			||||||
@ -32,4 +34,4 @@ export default [
 | 
				
			|||||||
    name: 'url',
 | 
					    name: 'url',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,9 @@
 | 
				
			|||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/core": "workspace:^",
 | 
					    "@tmagic/core": "workspace:^",
 | 
				
			||||||
    "@tmagic/react-runtime-help": "workspace:^",
 | 
					    "@tmagic/react-runtime-help": "workspace:^",
 | 
				
			||||||
 | 
				
			|||||||
@ -16,8 +16,9 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, NODE_CONDS_KEY } from '@tmagic/core';
 | 
					import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, NODE_CONDS_KEY } from '@tmagic/core';
 | 
				
			||||||
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'iteratorData',
 | 
					    name: 'iteratorData',
 | 
				
			||||||
    text: '数据源数据',
 | 
					    text: '数据源数据',
 | 
				
			||||||
@ -116,4 +117,4 @@ export default [
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,9 @@
 | 
				
			|||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/core": "workspace:^",
 | 
					    "@tmagic/core": "workspace:^",
 | 
				
			||||||
    "@tmagic/react-runtime-help": "workspace:^",
 | 
					    "@tmagic/react-runtime-help": "workspace:^",
 | 
				
			||||||
 | 
				
			|||||||
@ -16,4 +16,6 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [];
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([]);
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,9 @@
 | 
				
			|||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/core": "workspace:^",
 | 
					    "@tmagic/core": "workspace:^",
 | 
				
			||||||
    "@tmagic/react-runtime-help": "workspace:^",
 | 
					    "@tmagic/react-runtime-help": "workspace:^",
 | 
				
			||||||
 | 
				
			|||||||
@ -16,10 +16,12 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'pageFragmentId',
 | 
					    name: 'pageFragmentId',
 | 
				
			||||||
    text: '页面片ID',
 | 
					    text: '页面片ID',
 | 
				
			||||||
    type: 'page-fragment-select',
 | 
					    type: 'page-fragment-select',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,9 @@
 | 
				
			|||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/core": "workspace:^",
 | 
					    "@tmagic/core": "workspace:^",
 | 
				
			||||||
    "@tmagic/react-runtime-help": "workspace:^",
 | 
					    "@tmagic/react-runtime-help": "workspace:^",
 | 
				
			||||||
 | 
				
			|||||||
@ -17,8 +17,9 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { getElById } from '@tmagic/core';
 | 
					import { getElById } from '@tmagic/core';
 | 
				
			||||||
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    text: '页面片标识',
 | 
					    text: '页面片标识',
 | 
				
			||||||
    name: 'name',
 | 
					    name: 'name',
 | 
				
			||||||
@ -49,4 +50,4 @@ export default [
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,9 @@
 | 
				
			|||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/core": "workspace:^",
 | 
					    "@tmagic/core": "workspace:^",
 | 
				
			||||||
    "@tmagic/react-runtime-help": "workspace:^",
 | 
					    "@tmagic/react-runtime-help": "workspace:^",
 | 
				
			||||||
 | 
				
			|||||||
@ -17,8 +17,9 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { getElById } from '@tmagic/core';
 | 
					import { getElById } from '@tmagic/core';
 | 
				
			||||||
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    text: '页面标识',
 | 
					    text: '页面标识',
 | 
				
			||||||
    name: 'name',
 | 
					    name: 'name',
 | 
				
			||||||
@ -51,4 +52,4 @@ export default [
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,8 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "qrcode": "^1.5.0"
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
 | 
					     "qrcode": "^1.5.0"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/core": "workspace:^",
 | 
					    "@tmagic/core": "workspace:^",
 | 
				
			||||||
 | 
				
			|||||||
@ -16,10 +16,12 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    text: '链接',
 | 
					    text: '链接',
 | 
				
			||||||
    name: 'url',
 | 
					    name: 'url',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,9 @@
 | 
				
			|||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
    "@tmagic/core": "workspace:^",
 | 
					    "@tmagic/core": "workspace:^",
 | 
				
			||||||
    "@tmagic/react-runtime-help": "workspace:^",
 | 
					    "@tmagic/react-runtime-help": "workspace:^",
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,9 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'text',
 | 
					    name: 'text',
 | 
				
			||||||
    text: '文本',
 | 
					    text: '文本',
 | 
				
			||||||
@ -27,4 +29,4 @@ export default [
 | 
				
			|||||||
    text: '多行文本',
 | 
					    text: '多行文本',
 | 
				
			||||||
    type: 'switch',
 | 
					    type: 'switch',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -9,6 +9,7 @@
 | 
				
			|||||||
    "packages/core/src",
 | 
					    "packages/core/src",
 | 
				
			||||||
    "packages/data-source/src",
 | 
					    "packages/data-source/src",
 | 
				
			||||||
    "packages/dep/src",
 | 
					    "packages/dep/src",
 | 
				
			||||||
 | 
					    "packages/form-schema/src",
 | 
				
			||||||
    "packages/schema/src",
 | 
					    "packages/schema/src",
 | 
				
			||||||
    "packages/stage/src",
 | 
					    "packages/stage/src",
 | 
				
			||||||
    "packages/utils/src",
 | 
					    "packages/utils/src",
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,7 @@
 | 
				
			|||||||
    "packages/core/src",
 | 
					    "packages/core/src",
 | 
				
			||||||
    "packages/data-source/src",
 | 
					    "packages/data-source/src",
 | 
				
			||||||
    "packages/dep/src",
 | 
					    "packages/dep/src",
 | 
				
			||||||
 | 
					    "packages/form-schema/src",
 | 
				
			||||||
    "packages/schema/src",
 | 
					    "packages/schema/src",
 | 
				
			||||||
    "packages/stage/src",
 | 
					    "packages/stage/src",
 | 
				
			||||||
    "packages/utils/src",
 | 
					    "packages/utils/src",
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
    "vue-demi": "^0.14.10"
 | 
					    "vue-demi": "^0.14.10"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,9 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'className',
 | 
					    name: 'className',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
@ -27,4 +29,4 @@ export default [
 | 
				
			|||||||
    name: 'text',
 | 
					    name: 'text',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
    "vue-demi": "^0.14.10"
 | 
					    "vue-demi": "^0.14.10"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
				
			|||||||
@ -17,8 +17,9 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { getElById } from '@tmagic/core';
 | 
					import { getElById } from '@tmagic/core';
 | 
				
			||||||
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'className',
 | 
					    name: 'className',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
@ -45,4 +46,4 @@ export default [
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
    "vue-demi": "^0.14.10"
 | 
					    "vue-demi": "^0.14.10"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,9 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'className',
 | 
					    name: 'className',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
@ -37,4 +39,4 @@ export default [
 | 
				
			|||||||
    name: 'url',
 | 
					    name: 'url',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
    "vue-demi": "^0.14.10"
 | 
					    "vue-demi": "^0.14.10"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
				
			|||||||
@ -16,8 +16,9 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, NODE_CONDS_KEY } from '@tmagic/core';
 | 
					import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, NODE_CONDS_KEY } from '@tmagic/core';
 | 
				
			||||||
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'className',
 | 
					    name: 'className',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
@ -121,4 +122,4 @@ export default [
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
    "vue-demi": "^0.14.10"
 | 
					    "vue-demi": "^0.14.10"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
				
			|||||||
@ -1 +1,3 @@
 | 
				
			|||||||
export default [];
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([]);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
    "vue-demi": "^0.14.10"
 | 
					    "vue-demi": "^0.14.10"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,9 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'className',
 | 
					    name: 'className',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
@ -27,4 +29,4 @@ export default [
 | 
				
			|||||||
    text: '页面片ID',
 | 
					    text: '页面片ID',
 | 
				
			||||||
    type: 'page-fragment-select',
 | 
					    type: 'page-fragment-select',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
    "vue-demi": "^0.14.10"
 | 
					    "vue-demi": "^0.14.10"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
				
			|||||||
@ -17,8 +17,9 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { getElById } from '@tmagic/core';
 | 
					import { getElById } from '@tmagic/core';
 | 
				
			||||||
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    text: '页面片标识',
 | 
					    text: '页面片标识',
 | 
				
			||||||
    name: 'name',
 | 
					    name: 'name',
 | 
				
			||||||
@ -49,4 +50,4 @@ export default [
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
    "vue-demi": "^0.14.10"
 | 
					    "vue-demi": "^0.14.10"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
				
			|||||||
@ -17,8 +17,9 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { getElById } from '@tmagic/core';
 | 
					import { getElById } from '@tmagic/core';
 | 
				
			||||||
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    text: '页面标识',
 | 
					    text: '页面标识',
 | 
				
			||||||
    name: 'name',
 | 
					    name: 'name',
 | 
				
			||||||
@ -79,4 +80,4 @@ export default [
 | 
				
			|||||||
    language: 'css',
 | 
					    language: 'css',
 | 
				
			||||||
    height: '500px',
 | 
					    height: '500px',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
    "qrcode": "^1.5.0",
 | 
					    "qrcode": "^1.5.0",
 | 
				
			||||||
    "vue-demi": "^0.14.10"
 | 
					    "vue-demi": "^0.14.10"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,9 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'className',
 | 
					    name: 'className',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
@ -27,4 +29,4 @@ export default [
 | 
				
			|||||||
    name: 'url',
 | 
					    name: 'url',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
					    "url": "https://github.com/Tencent/tmagic-editor.git"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@tmagic/form-schema": "workspace:^",
 | 
				
			||||||
    "vue-demi": "^0.14.10"
 | 
					    "vue-demi": "^0.14.10"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "peerDependencies": {
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,9 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default [
 | 
					import { defineFormConfig } from '@tmagic/form-schema';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineFormConfig([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: 'className',
 | 
					    name: 'className',
 | 
				
			||||||
    type: 'data-source-input',
 | 
					    type: 'data-source-input',
 | 
				
			||||||
@ -32,4 +34,4 @@ export default [
 | 
				
			|||||||
    text: '多行文本',
 | 
					    text: '多行文本',
 | 
				
			||||||
    type: 'switch',
 | 
					    type: 'switch',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user