zjdz-hooks
Version:
Vue3的实用Hooks集合
114 lines (102 loc) • 2.88 kB
TypeScript
import * as vue from 'vue';
import { Ref } from 'vue';
export { useRequest, useRequestProvider } from 'vue-request';
declare type Value = string | number | Date;
interface Options {
format?: string;
method?: 'format' | 'millisecond' | 'second' | 'minute' | 'hour' | 'date' | 'day' | 'month' | 'year';
methodParam?: number;
}
declare function useDate(value?: Value | undefined, options?: Options): {
readonly data: any;
refresh: (refreshValue?: Value) => void;
};
/**
* 处理防抖值
* @param value
* @param delay
* @returns
*/
declare const useDebounce: <T>(value: Ref<T>, delay?: number | undefined) => Ref<T>;
declare type Fn = (...[]: any[]) => any;
/**
* 处理防抖函数
* @param fn
* @param delay
* @returns
*/
declare const useDebounceFn: (fn: Fn, delay?: number | undefined) => {
run: () => void;
};
/**
* 处理防抖值
* @param value
* @param delay
* @returns
*/
declare const useThrottle: <T>(value: Ref<T>, delay?: number | undefined) => Ref<T>;
/**
* 处理节流函数
* @param fn
* @param delay
* @returns
*/
declare const useThrottleFn: (fn: Fn, delay?: number | undefined) => {
run: () => void;
};
interface Actions {
toggle: () => void;
setTrue: () => void;
setFalse: () => void;
}
declare function useBoolean(value?: boolean): [Ref<boolean>, Actions];
declare function useModalFn(): {
editId: vue.Ref<any>;
visible: vue.Ref<boolean>;
openModal: (id: any) => void;
closeModal: () => void;
onCancel: (fn: Function) => Promise<void>;
onOk: (fn: Function) => Promise<void>;
};
interface OptionsType extends PageType {
listKey?: string;
pageSizeKey?: string;
pageNumSendKey?: string;
totalKey?: string;
requestList: Function;
defaultParams?: object;
doFirstLoad?: boolean;
}
interface PageType {
pageNum: number;
pageSize: number;
}
declare const usePagination: (options: OptionsType) => {
pageNum: vue.Ref<number>;
pageSize: vue.Ref<number>;
total: vue.Ref<number>;
onCurrentChange: (page: number) => void;
onSizeChange: (size: number) => void;
fetchData: () => void;
pageDatas: vue.Ref<{
loading: boolean;
data: any;
}>;
};
interface UseFormTableOptionsType extends OptionsType {
formRef: Ref;
}
declare function useFormTable(options: UseFormTableOptionsType): {
pageNum: Ref<number>;
pageSize: Ref<number>;
total: Ref<number>;
reset: () => void;
onCurrentChange: (page: number) => void;
onSizeChange: (size: number) => void;
fetchData: () => void;
pageDatas: Ref<{
loading: boolean;
data: any;
}>;
};
export { useBoolean, useDate, useDebounce, useDebounceFn, useFormTable, useModalFn, usePagination, useThrottle, useThrottleFn };