fineui是帆软报表和BI产品线所使用的前端框架。
 
 
 

237 lines
5.3 KiB

type Component = any
type Dictionary<T> = { [key: string]: T }
type ErrorHandler = (err: Error) => void
export type RouterMode = "hash" | "history" | "abstract"
export type RawLocation = string | Location
export type RedirectOption = RawLocation | ((to: Route) => RawLocation)
export type NavigationGuardNext = (
to?: RawLocation | false | void,
) => void
export type NavigationGuard = (
to: Route,
from: Route,
next: NavigationGuardNext,
) => any
interface _History {
current: Route;
}
export declare class VueRouter {
constructor(options?: Obj)
mode: RouterMode;
currentRoute: Route;
history: _History;
beforeEach(guard: NavigationGuard): Function
beforeResolve(guard: NavigationGuard): Function
afterEach(hook: (to: Route, from: Route) => any): Function
push(location: RawLocation): Promise<Route>
replace(location: RawLocation): Promise<Route>
push(
location: RawLocation,
onComplete?: Function,
onAbort?: ErrorHandler,
): void
replace(
location: RawLocation,
onComplete?: Function,
onAbort?: ErrorHandler,
): void
go(n: number): void
back(): void
forward(): void
match(raw: RawLocation, current?: Route, redirectedFrom?: Location): Route
getMatchedComponents(to?: RawLocation | Route): Component[]
onReady(cb: Function, errorCb?: ErrorHandler): void
onError(cb: ErrorHandler): void
addRoutes(routes: RouteConfig[]): void
addRoute(parent: string, route: RouteConfig): void
addRoute(route: RouteConfig): void
getRoutes(): RouteRecordPublic[]
resolve(
to: RawLocation,
current?: Route,
append?: boolean,
): {
location: Location
route: Route
href: string
// backwards compat
normalizedTo: Location
resolved: Route
}
}
type RoutePropsFunction = (route: Route) => Object
interface _RouteConfigBase {
path: string;
name?: string;
children?: RouteConfig[];
redirect?: RedirectOption;
alias?: string | string[];
meta?: RouteMeta;
beforeEnter?: NavigationGuard;
caseSensitive?: boolean;
pathToRegexpOptions?: PathToRegexpOptions;
}
interface RouteConfigSingleView extends _RouteConfigBase {
component?: Component;
props?: boolean | Object | RoutePropsFunction;
}
interface RouteConfigMultipleViews extends _RouteConfigBase {
components?: Dictionary<Component>;
props?: Dictionary<boolean | Object | RoutePropsFunction>;
}
type RouteConfig = RouteConfigSingleView | RouteConfigMultipleViews
interface PathToRegexpOptions {
sensitive?: boolean;
strict?: boolean;
end?: boolean;
}
interface _RouteConfigBase {
path: string;
name?: string;
children?: RouteConfig[];
redirect?: RedirectOption;
alias?: string | string[];
meta?: RouteMeta;
beforeEnter?: NavigationGuard;
caseSensitive?: boolean;
pathToRegexpOptions?: PathToRegexpOptions;
}
interface RouteRecord {
path: string;
regex: RegExp;
components: Dictionary<Component>;
name?: string;
parent?: RouteRecord;
redirect?: RedirectOption;
matchAs?: string;
meta: RouteMeta;
beforeEnter?: (
route: Route,
redirect: (location: RawLocation) => void,
next: () => void,
) => any;
props:
| boolean
| Object
| RoutePropsFunction
| Dictionary<boolean | Object | RoutePropsFunction>;
}
interface RouteRecordPublic {
path: string;
components: Dictionary<Component>;
name?: string;
redirect?: RedirectOption;
meta: any;
beforeEnter?: (
route: Route,
redirect: (location: RawLocation) => void,
next: () => void,
) => any;
props:
| boolean
| Object
| RoutePropsFunction
| Dictionary<boolean | Object | RoutePropsFunction>;
}
interface Location {
name?: string;
path?: string;
hash?: string;
query?: Dictionary<string | (string | null)[] | null | undefined>;
params?: Dictionary<string>;
append?: boolean;
replace?: boolean;
}
interface Route {
path: string;
name?: string | null;
hash: string;
query: Dictionary<string | (string | null)[]>;
params: Dictionary<string>;
fullPath: string;
matched: RouteRecord[];
redirectedFrom?: string;
meta?: RouteMeta;
}
interface RouteMeta extends Record<string | number | symbol, any> {
}
export declare class Router {
constructor(op: { [key: string]: any });
static $router: VueRouter;
route(route: string, callback: Function): this;
route(route: string, name: string, callback?: Function): this;
execute(callback?: Function, args?: any[]): void;
navigate(fragment: string, options?: { [key: string]: any } | boolean): this;
}
export declare class History {
atRoot(): boolean;
getSearch(): string;
getHash(window?: Window): string;
getPath(): string;
getFragment(fragment?: string): string;
start(op?: { [key: string]: any }): void;
stop(): void;
route(route: string, callback: Function): void;
checkRoute(route: string): { route: string, callback: Function };
unRoute(route: string): void;
checkUrl(e?: Event): void;
loadUrl(fragment: string): boolean;
navigate(fragment: string, options?: { [key: string]: any } | boolean): void;
}