tav-ui
Version:
38 lines (37 loc) • 1.65 kB
TypeScript
import { type Ref, type WritableComputedRef } from 'vue';
import { type ReturnOf } from '../utils';
import { type UseDisableReturn, type UseLoadingReturn } from './';
export interface UseRequestHandleApiDefaultOptions<T, K> {
apiParams: T;
api?: (params: T) => Promise<{
data: K;
[k: string]: any;
}>;
/** 返回 true 继续执行;返回 T 代表修改后的 apiparams,用其继续执行;返回其他则退出请求*/
beforeApi?: (params: T) => Promise<T | boolean>;
afterApi?: (params: K) => Promise<any>;
catchError?: (params: K) => Promise<any>;
/** 是否将参数全部转换为 formdata */
transformApiParamsToFormData?: {
fileFiledName?: string;
filterNames?: string[];
};
/** 成功提示 */
successMessage?: (...args: any[]) => string;
/** 失败提示 */
failureMessage?: (...args: any[]) => string;
/** 只用 success 判断接口成功,默认使用 success + data */
useSuccessPassRes?: boolean;
callback?: () => void;
responseDataType?: 'object' | 'array';
}
export declare function useRequest(options: {
setLoading: UseLoadingReturn['setLoading'];
setDisable: UseDisableReturn['setDisable'];
loading?: WritableComputedRef<Ref<boolean>>;
}): {
result: import("vue").ComputedRef<any>;
error: import("vue").ComputedRef<string>;
handleApi: <O extends Record<string, any>, T extends Record<string, any>, K extends Record<string, any> | Record<string, any>[]>(options: O & UseRequestHandleApiDefaultOptions<T, K>) => Promise<void>;
};
export declare type UseRequestReturn = ReturnOf<typeof useRequest>;