fix: when a table switches paging, no form parameters will be carried (#4607)
* fix: when a table switches paging, no form parameters will be carried * chore: typomaster
parent
f923f59070
commit
304b1b2efc
@ -0,0 +1,50 @@
|
|||||||
|
import type { VxeGridProps } from 'vxe-table';
|
||||||
|
|
||||||
|
import type { VxeGridApi } from './api';
|
||||||
|
|
||||||
|
import { isFunction } from '@vben/utils';
|
||||||
|
|
||||||
|
export function extendProxyOptions(
|
||||||
|
api: VxeGridApi,
|
||||||
|
options: VxeGridProps,
|
||||||
|
getFormValues: () => Record<string, any>,
|
||||||
|
) {
|
||||||
|
[
|
||||||
|
'query',
|
||||||
|
'querySuccess',
|
||||||
|
'queryError',
|
||||||
|
'queryAll',
|
||||||
|
'queryAllSuccess',
|
||||||
|
'queryAllError',
|
||||||
|
].forEach((key) => {
|
||||||
|
extendProxyOption(key, api, options, getFormValues);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function extendProxyOption(
|
||||||
|
key: string,
|
||||||
|
api: VxeGridApi,
|
||||||
|
options: VxeGridProps,
|
||||||
|
getFormValues: () => Record<string, any>,
|
||||||
|
) {
|
||||||
|
const { proxyConfig } = options;
|
||||||
|
const configFn = (proxyConfig?.ajax as any)?.[key];
|
||||||
|
if (!isFunction(configFn)) {
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
|
const wrapperFn = async (params: any, _formValues: any, ...args: any[]) => {
|
||||||
|
const formValues = getFormValues();
|
||||||
|
const data = await configFn(params, formValues, ...args);
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
api.setState({
|
||||||
|
gridOptions: {
|
||||||
|
proxyConfig: {
|
||||||
|
ajax: {
|
||||||
|
[key]: wrapperFn,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
Loading…
Reference in new issue