diff --git a/packages/form/src/fields/Select.vue b/packages/form/src/fields/Select.vue index ecd64a63..6a8a51c1 100644 --- a/packages/form/src/fields/Select.vue +++ b/packages/form/src/fields/Select.vue @@ -191,6 +191,9 @@ const getOptions = async () => { postOptions = option.beforeRequest(mForm, postOptions, { model: props.model, formValue: mForm?.values, + formValues: mForm?.values, + prop: props.prop, + config: props.config, }); } @@ -206,6 +209,7 @@ const getOptions = async () => { formValue: mForm?.values, formValues: mForm?.values, config: props.config, + prop: props.prop, postOptions, }); } @@ -315,6 +319,9 @@ const getInitOption = async () => { postOptions = option.beforeInitRequest(mForm, postOptions, { model: props.model, formValue: mForm?.values, + formValues: mForm?.values, + config: props.config, + prop: props.prop, }); } @@ -331,6 +338,7 @@ const getInitOption = async () => { formValue: mForm?.values, formValues: mForm?.values, config: props.config, + prop: props.prop, postOptions, }); } diff --git a/packages/form/src/schema.ts b/packages/form/src/schema.ts index f1b74ee5..52ec2aec 100644 --- a/packages/form/src/schema.ts +++ b/packages/form/src/schema.ts @@ -279,7 +279,7 @@ type RemoteSelectOptionBodyFunction = ( }, ) => Record; -type RemoteSelectOptionRequestFunction = ( +type RemoteSelectOptionAfterRequestFunction = ( mForm: FormState | undefined, res: any, data: { @@ -287,10 +287,23 @@ type RemoteSelectOptionRequestFunction = ( formValue: any; formValues: any; config: any; + prop: string; postOptions: Record; }, ) => any; +type RemoteSelectOptionBeforeRequestFunction = ( + mForm: FormState | undefined, + postOptions: Record, + data: { + model: any; + formValue: any; + formValues: any; + config: any; + prop: string; + }, +) => Record; + type RemoteSelectOptionItemFunction = (optionsData: Record) => SelectOption[] | SelectGroupOption[]; type SelectOptionValueFunction = (item: Record) => any; type SelectOptionTextFunction = (item: Record) => string; @@ -496,14 +509,10 @@ export interface SelectConfig extends FormItem, Input { body?: Record | RemoteSelectOptionBodyFunction; initBody?: Record | RemoteSelectOptionBodyFunction; jsonpCallback?: 'callback' | string; - afterRequest?: RemoteSelectOptionRequestFunction; - afterInitRequest?: RemoteSelectOptionRequestFunction; - beforeRequest?: (mForm: FormState | undefined, postOptions: Record, data: any) => Record; - beforeInitRequest?: ( - mForm: FormState | undefined, - postOptions: Record, - data: any, - ) => Record; + afterRequest?: RemoteSelectOptionAfterRequestFunction; + afterInitRequest?: RemoteSelectOptionAfterRequestFunction; + beforeRequest?: RemoteSelectOptionBeforeRequestFunction; + beforeInitRequest?: RemoteSelectOptionBeforeRequestFunction; root?: string; totalKey?: string; initRoot?: string;