From d0ec2fd588aac5d011355d87aad93be8427bd249 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Tue, 16 May 2023 16:44:26 +0800 Subject: [PATCH] =?UTF-8?q?chore(form):=20fields=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E8=AE=A1=E7=AE=97lastValues=20props?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/form/src/fields/Cascader.vue | 3 ++- packages/form/src/fields/Checkbox.vue | 1 + packages/form/src/fields/CheckboxGroup.vue | 1 + packages/form/src/fields/ColorPicker.vue | 1 + packages/form/src/fields/Date.vue | 1 + packages/form/src/fields/DateTime.vue | 1 + packages/form/src/fields/Daterange.vue | 1 + packages/form/src/fields/Display.vue | 1 + packages/form/src/fields/DynamicField.vue | 1 + packages/form/src/fields/Hidden.vue | 1 + packages/form/src/fields/Link.vue | 1 + packages/form/src/fields/Number.vue | 1 + packages/form/src/fields/RadioGroup.vue | 1 + packages/form/src/fields/Select.vue | 1 + packages/form/src/fields/Switch.vue | 1 + packages/form/src/fields/Text.vue | 1 + packages/form/src/fields/Textarea.vue | 1 + packages/form/src/fields/Time.vue | 1 + packages/form/src/schema.ts | 4 +++- 19 files changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/form/src/fields/Cascader.vue b/packages/form/src/fields/Cascader.vue index fdea1922..bc4399a5 100644 --- a/packages/form/src/fields/Cascader.vue +++ b/packages/form/src/fields/Cascader.vue @@ -32,6 +32,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); @@ -85,7 +86,7 @@ if (typeof props.config.options === 'function' && props.model && mForm) { watchEffect( () => (options.value = (props.config.options as Function)(mForm, { model: props.model, formValues: mForm.values })), ); -} else if (!props.config.options || !props.config.options.length || props.config.remote) { +} else if (!props.config.options?.length || props.config.remote) { Promise.resolve(setRemoteOptions()); } diff --git a/packages/form/src/fields/Checkbox.vue b/packages/form/src/fields/Checkbox.vue index c7a23dab..fc1474bf 100644 --- a/packages/form/src/fields/Checkbox.vue +++ b/packages/form/src/fields/Checkbox.vue @@ -27,6 +27,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/CheckboxGroup.vue b/packages/form/src/fields/CheckboxGroup.vue index 796caa4f..a8ae6cc0 100644 --- a/packages/form/src/fields/CheckboxGroup.vue +++ b/packages/form/src/fields/CheckboxGroup.vue @@ -29,6 +29,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/ColorPicker.vue b/packages/form/src/fields/ColorPicker.vue index c8f3047f..bc55bccf 100644 --- a/packages/form/src/fields/ColorPicker.vue +++ b/packages/form/src/fields/ColorPicker.vue @@ -23,6 +23,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/Date.vue b/packages/form/src/fields/Date.vue index 5190fd26..f134dc4c 100644 --- a/packages/form/src/fields/Date.vue +++ b/packages/form/src/fields/Date.vue @@ -27,6 +27,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/DateTime.vue b/packages/form/src/fields/DateTime.vue index 1541fa5c..51aee1c9 100644 --- a/packages/form/src/fields/DateTime.vue +++ b/packages/form/src/fields/DateTime.vue @@ -29,6 +29,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/Daterange.vue b/packages/form/src/fields/Daterange.vue index 3e64583d..1c03ddb4 100644 --- a/packages/form/src/fields/Daterange.vue +++ b/packages/form/src/fields/Daterange.vue @@ -31,6 +31,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/Display.vue b/packages/form/src/fields/Display.vue index 01d5917a..3f654b0e 100644 --- a/packages/form/src/fields/Display.vue +++ b/packages/form/src/fields/Display.vue @@ -13,6 +13,7 @@ const props = defineProps<{ values?: any; name: string; prop: string; + lastValues?: Record; }>(); if (props.config.initValue && props.model) { diff --git a/packages/form/src/fields/DynamicField.vue b/packages/form/src/fields/DynamicField.vue index 87fb7143..493d6246 100644 --- a/packages/form/src/fields/DynamicField.vue +++ b/packages/form/src/fields/DynamicField.vue @@ -40,6 +40,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/Hidden.vue b/packages/form/src/fields/Hidden.vue index 607f2c2f..231fe52b 100644 --- a/packages/form/src/fields/Hidden.vue +++ b/packages/form/src/fields/Hidden.vue @@ -13,6 +13,7 @@ const props = defineProps<{ values?: any; name: string; prop: string; + lastValues?: Record; }>(); useAddField(props.prop); diff --git a/packages/form/src/fields/Link.vue b/packages/form/src/fields/Link.vue index 5dbf901d..e6d81cd2 100644 --- a/packages/form/src/fields/Link.vue +++ b/packages/form/src/fields/Link.vue @@ -34,6 +34,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/Number.vue b/packages/form/src/fields/Number.vue index 7bf9449e..6645936c 100644 --- a/packages/form/src/fields/Number.vue +++ b/packages/form/src/fields/Number.vue @@ -32,6 +32,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change', 'input']); diff --git a/packages/form/src/fields/RadioGroup.vue b/packages/form/src/fields/RadioGroup.vue index 5a5c627f..3c1e95ef 100644 --- a/packages/form/src/fields/RadioGroup.vue +++ b/packages/form/src/fields/RadioGroup.vue @@ -25,6 +25,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/Select.vue b/packages/form/src/fields/Select.vue index d348736f..6cf88a8a 100644 --- a/packages/form/src/fields/Select.vue +++ b/packages/form/src/fields/Select.vue @@ -46,6 +46,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/Switch.vue b/packages/form/src/fields/Switch.vue index 667c66bf..7df52776 100644 --- a/packages/form/src/fields/Switch.vue +++ b/packages/form/src/fields/Switch.vue @@ -26,6 +26,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/fields/Text.vue b/packages/form/src/fields/Text.vue index 3e0a8256..59d3fa2c 100644 --- a/packages/form/src/fields/Text.vue +++ b/packages/form/src/fields/Text.vue @@ -41,6 +41,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change', 'input']); diff --git a/packages/form/src/fields/Textarea.vue b/packages/form/src/fields/Textarea.vue index 2fc7c246..29432238 100644 --- a/packages/form/src/fields/Textarea.vue +++ b/packages/form/src/fields/Textarea.vue @@ -29,6 +29,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change', 'input']); diff --git a/packages/form/src/fields/Time.vue b/packages/form/src/fields/Time.vue index ac10f0c9..0959ff45 100644 --- a/packages/form/src/fields/Time.vue +++ b/packages/form/src/fields/Time.vue @@ -25,6 +25,7 @@ const props = defineProps<{ prop: string; disabled?: boolean; size?: 'large' | 'default' | 'small'; + lastValues?: Record; }>(); const emit = defineEmits(['change']); diff --git a/packages/form/src/schema.ts b/packages/form/src/schema.ts index c70e15b0..d36f2e23 100644 --- a/packages/form/src/schema.ts +++ b/packages/form/src/schema.ts @@ -87,6 +87,7 @@ export interface FormItem { dynamicKey?: string; /** 是否需要显示`展开更多配置` */ expand?: boolean; + [key: string]: any; } export interface ContainerCommonConfig { @@ -567,6 +568,7 @@ export interface TabPaneConfig { onTabClick?: (mForm: FormState | undefined, tab: any, data: any) => void; [key: string]: any; } + export interface TabConfig extends FormItem, ContainerCommonConfig { type: 'tab' | 'dynamic-tab'; tabType?: string; @@ -718,6 +720,6 @@ export type ChildConfig = | DynamicFieldConfig | ComponentConfig; -export type FormConfig = (ChildConfig & { [key: string]: any })[]; +export type FormConfig = ChildConfig[]; export type FormValue = Record;