mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-11-12 12:13:51 +08:00
v2.0
This commit is contained in:
74
web/types/config.d.ts
vendored
Normal file
74
web/types/config.d.ts
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
export interface ProjectSettingState {
|
||||
//导航模式
|
||||
navMode: string;
|
||||
//导航风格
|
||||
navTheme: string;
|
||||
//顶部设置
|
||||
headerSetting: object;
|
||||
//页脚
|
||||
showFooter: boolean;
|
||||
//菜单设置
|
||||
menuSetting: object;
|
||||
//多标签
|
||||
multiTabsSetting: object;
|
||||
//面包屑
|
||||
crumbsSetting: object;
|
||||
//权限模式
|
||||
permissionMode: string;
|
||||
}
|
||||
|
||||
export interface IbodySetting {
|
||||
fixed: boolean;
|
||||
}
|
||||
|
||||
export interface IheaderSetting {
|
||||
bgColor: string;
|
||||
fixed: boolean;
|
||||
isReload: boolean;
|
||||
}
|
||||
|
||||
export interface ImenuSetting {
|
||||
minMenuWidth: number;
|
||||
menuWidth: number;
|
||||
fixed: boolean;
|
||||
mixMenu: boolean;
|
||||
collapsed: boolean;
|
||||
mobileWidth: number;
|
||||
}
|
||||
|
||||
export interface IcrumbsSetting {
|
||||
show: boolean;
|
||||
showIcon: boolean;
|
||||
}
|
||||
|
||||
export interface ImultiTabsSetting {
|
||||
bgColor: string;
|
||||
fixed: boolean;
|
||||
show: boolean;
|
||||
}
|
||||
export interface GlobConfig {
|
||||
title: string;
|
||||
apiUrl: string;
|
||||
shortName: string;
|
||||
urlPrefix?: string;
|
||||
uploadUrl?: string;
|
||||
prodMock: boolean;
|
||||
imgUrl?: string;
|
||||
}
|
||||
|
||||
export interface GlobEnvConfig {
|
||||
// 标题
|
||||
VITE_GLOB_APP_TITLE: string;
|
||||
// 接口地址
|
||||
VITE_GLOB_API_URL: string;
|
||||
// 接口前缀
|
||||
VITE_GLOB_API_URL_PREFIX?: string;
|
||||
// Project abbreviation
|
||||
VITE_GLOB_APP_SHORT_NAME: string;
|
||||
// 图片上传地址
|
||||
VITE_GLOB_UPLOAD_URL?: string;
|
||||
//图片前缀地址
|
||||
VITE_GLOB_IMG_URL?: string;
|
||||
//生产环境开启mock
|
||||
VITE_GLOB_PROD_MOCK: boolean;
|
||||
}
|
||||
102
web/types/global.d.ts
vendored
Normal file
102
web/types/global.d.ts
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
import type {
|
||||
ComponentRenderProxy,
|
||||
VNode,
|
||||
VNodeChild,
|
||||
ComponentPublicInstance,
|
||||
FunctionalComponent,
|
||||
PropType as VuePropType,
|
||||
} from 'vue';
|
||||
|
||||
declare global {
|
||||
const __APP_INFO__: {
|
||||
pkg: {
|
||||
name: string;
|
||||
version: string;
|
||||
dependencies: Recordable<string>;
|
||||
devDependencies: Recordable<string>;
|
||||
};
|
||||
lastBuildTime: string;
|
||||
};
|
||||
// declare interface Window {
|
||||
// // Global vue app instance
|
||||
// __APP__: App<Element>;
|
||||
// }
|
||||
|
||||
// vue
|
||||
declare type PropType<T> = VuePropType<T>;
|
||||
declare type VueNode = VNodeChild | JSX.Element;
|
||||
|
||||
export type Writable<T> = {
|
||||
-readonly [P in keyof T]: T[P];
|
||||
};
|
||||
|
||||
declare type Nullable<T> = T | null;
|
||||
declare type NonNullable<T> = T extends null | undefined ? never : T;
|
||||
declare type Recordable<T = any> = Record<string, T>;
|
||||
declare type ReadonlyRecordable<T = any> = {
|
||||
readonly [key: string]: T;
|
||||
};
|
||||
declare type Indexable<T = any> = {
|
||||
[key: string]: T;
|
||||
};
|
||||
declare type DeepPartial<T> = {
|
||||
[P in keyof T]?: DeepPartial<T[P]>;
|
||||
};
|
||||
declare type TimeoutHandle = ReturnType<typeof setTimeout>;
|
||||
declare type IntervalHandle = ReturnType<typeof setInterval>;
|
||||
|
||||
declare interface ChangeEvent extends Event {
|
||||
target: HTMLInputElement;
|
||||
}
|
||||
|
||||
declare interface WheelEvent {
|
||||
path?: EventTarget[];
|
||||
}
|
||||
|
||||
interface ImportMetaEnv extends ViteEnv {
|
||||
__: unknown;
|
||||
}
|
||||
|
||||
declare interface ViteEnv {
|
||||
VITE_PORT: number;
|
||||
VITE_USE_MOCK: boolean;
|
||||
VITE_PUBLIC_PATH: string;
|
||||
VITE_GLOB_APP_TITLE: string;
|
||||
VITE_GLOB_APP_SHORT_NAME: string;
|
||||
VITE_DROP_CONSOLE: boolean;
|
||||
VITE_GLOB_PROD_MOCK: boolean;
|
||||
VITE_GLOB_IMG_URL: string;
|
||||
VITE_PROXY: [string, string][];
|
||||
VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none';
|
||||
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE: boolean;
|
||||
}
|
||||
|
||||
declare function parseInt(s: string | number, radix?: number): number;
|
||||
|
||||
declare function parseFloat(string: string | number): number;
|
||||
|
||||
namespace JSX {
|
||||
// tslint:disable no-empty-interface
|
||||
type Element = VNode;
|
||||
// tslint:disable no-empty-interface
|
||||
type ElementClass = ComponentRenderProxy;
|
||||
|
||||
interface ElementAttributesProperty {
|
||||
$props: any;
|
||||
}
|
||||
|
||||
interface IntrinsicElements {
|
||||
[elem: string]: any;
|
||||
}
|
||||
|
||||
interface IntrinsicAttributes {
|
||||
[elem: string]: any;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
declare module 'vue' {
|
||||
export type JSXComponent<Props = any> =
|
||||
| { new (): ComponentPublicInstance<Props> }
|
||||
| FunctionalComponent<Props>;
|
||||
}
|
||||
28
web/types/index.d.ts
vendored
Normal file
28
web/types/index.d.ts
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
declare interface Fn<T = any, R = T> {
|
||||
(...arg: T[]): R;
|
||||
}
|
||||
|
||||
declare interface PromiseFn<T = any, R = T> {
|
||||
(...arg: T[]): Promise<R>;
|
||||
}
|
||||
|
||||
declare type RefType<T> = T | null;
|
||||
|
||||
declare type LabelValueOptions = {
|
||||
label: string;
|
||||
value: any;
|
||||
disabled: boolean;
|
||||
[key: string]: string | number | boolean;
|
||||
}[];
|
||||
|
||||
declare type EmitType = (event: string, ...args: any[]) => void;
|
||||
|
||||
declare type TargetContext = '_self' | '_blank';
|
||||
|
||||
declare interface ComponentElRef<T extends HTMLElement = HTMLDivElement> {
|
||||
$el: T;
|
||||
}
|
||||
|
||||
declare type ComponentRef<T extends HTMLElement = HTMLDivElement> = ComponentElRef<T> | null;
|
||||
|
||||
declare type ElRef<T extends HTMLElement = HTMLDivElement> = Nullable<T>;
|
||||
10
web/types/modules.d.ts
vendored
Normal file
10
web/types/modules.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
declare module '*.vue' {
|
||||
import { DefineComponent } from 'vue';
|
||||
const Component: DefineComponent<{}, {}, any>;
|
||||
export default Component;
|
||||
}
|
||||
|
||||
declare module 'virtual:*' {
|
||||
const result: any;
|
||||
export default result;
|
||||
}
|
||||
5
web/types/utils.d.ts
vendored
Normal file
5
web/types/utils.d.ts
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
import type { ComputedRef, Ref } from 'vue';
|
||||
|
||||
export type DynamicProps<T> = {
|
||||
[P in keyof T]: Ref<T[P]> | T[P] | ComputedRef<T[P]>;
|
||||
};
|
||||
Reference in New Issue
Block a user