mirror of
				https://github.com/pure-admin/vue-pure-admin.git
				synced 2025-11-03 13:44:47 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			210 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			210 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import type { ECharts } from "echarts";
 | 
						|
import type { TableColumns } from "@pureadmin/table";
 | 
						|
 | 
						|
/**
 | 
						|
 * 全局类型声明,无需引入直接在 `.vue` 、`.ts` 、`.tsx` 文件使用即可获得类型提示
 | 
						|
 */
 | 
						|
declare global {
 | 
						|
  /**
 | 
						|
   * 平台的名称、版本、运行所需的`node`和`pnpm`版本、依赖、最后构建时间的类型提示
 | 
						|
   */
 | 
						|
  const __APP_INFO__: {
 | 
						|
    pkg: {
 | 
						|
      name: string;
 | 
						|
      version: string;
 | 
						|
      engines: {
 | 
						|
        node: string;
 | 
						|
        pnpm: string;
 | 
						|
      };
 | 
						|
      dependencies: Recordable<string>;
 | 
						|
      devDependencies: Recordable<string>;
 | 
						|
    };
 | 
						|
    lastBuildTime: string;
 | 
						|
  };
 | 
						|
 | 
						|
  /**
 | 
						|
   * Window 的类型提示
 | 
						|
   */
 | 
						|
  interface Window {
 | 
						|
    // Global vue app instance
 | 
						|
    __APP__: App<Element>;
 | 
						|
    webkitCancelAnimationFrame: (handle: number) => void;
 | 
						|
    mozCancelAnimationFrame: (handle: number) => void;
 | 
						|
    oCancelAnimationFrame: (handle: number) => void;
 | 
						|
    msCancelAnimationFrame: (handle: number) => void;
 | 
						|
    webkitRequestAnimationFrame: (callback: FrameRequestCallback) => number;
 | 
						|
    mozRequestAnimationFrame: (callback: FrameRequestCallback) => number;
 | 
						|
    oRequestAnimationFrame: (callback: FrameRequestCallback) => number;
 | 
						|
    msRequestAnimationFrame: (callback: FrameRequestCallback) => number;
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * Document 的类型提示
 | 
						|
   */
 | 
						|
  interface Document {
 | 
						|
    webkitFullscreenElement?: Element;
 | 
						|
    mozFullScreenElement?: Element;
 | 
						|
    msFullscreenElement?: Element;
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * 打包压缩格式的类型声明
 | 
						|
   */
 | 
						|
  type ViteCompression =
 | 
						|
    | "none"
 | 
						|
    | "gzip"
 | 
						|
    | "brotli"
 | 
						|
    | "both"
 | 
						|
    | "gzip-clear"
 | 
						|
    | "brotli-clear"
 | 
						|
    | "both-clear";
 | 
						|
 | 
						|
  /**
 | 
						|
   * 全局自定义环境变量的类型声明
 | 
						|
   * @see {@link https://pure-admin.cn/pages/config/#%E5%85%B7%E4%BD%93%E9%85%8D%E7%BD%AE}
 | 
						|
   */
 | 
						|
  interface ViteEnv {
 | 
						|
    VITE_PORT: number;
 | 
						|
    VITE_PUBLIC_PATH: string;
 | 
						|
    VITE_ROUTER_HISTORY: string;
 | 
						|
    VITE_CDN: boolean;
 | 
						|
    VITE_HIDE_HOME: string;
 | 
						|
    VITE_COMPRESSION: ViteCompression;
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   *  继承 `@pureadmin/table` 的 `TableColumns` ,方便全局直接调用
 | 
						|
   */
 | 
						|
  type TableColumnList = Array<TableColumns>;
 | 
						|
 | 
						|
  /**
 | 
						|
   * 对应 `public/platform-config.json` 文件的类型声明
 | 
						|
   * @see {@link https://pure-admin.cn/pages/config/#platform-config-json}
 | 
						|
   */
 | 
						|
  interface PlatformConfigs {
 | 
						|
    Version?: string;
 | 
						|
    Title?: string;
 | 
						|
    FixedHeader?: boolean;
 | 
						|
    HiddenSideBar?: boolean;
 | 
						|
    MultiTagsCache?: boolean;
 | 
						|
    MaxTagsLevel?: number;
 | 
						|
    KeepAlive?: boolean;
 | 
						|
    Locale?: string;
 | 
						|
    Layout?: string;
 | 
						|
    Theme?: string;
 | 
						|
    DarkMode?: boolean;
 | 
						|
    OverallStyle?: string;
 | 
						|
    Grey?: boolean;
 | 
						|
    Weak?: boolean;
 | 
						|
    HideTabs?: boolean;
 | 
						|
    HideFooter?: boolean;
 | 
						|
    Stretch?: boolean | number;
 | 
						|
    SidebarStatus?: boolean;
 | 
						|
    EpThemeColor?: string;
 | 
						|
    ShowLogo?: boolean;
 | 
						|
    ShowModel?: string;
 | 
						|
    MenuArrowIconNoTransition?: boolean;
 | 
						|
    CachingAsyncRoutes?: boolean;
 | 
						|
    TooltipEffect?: Effect;
 | 
						|
    ResponsiveStorageNameSpace?: string;
 | 
						|
    MenuSearchHistory?: number;
 | 
						|
    MapConfigure?: {
 | 
						|
      amapKey?: string;
 | 
						|
      options: {
 | 
						|
        resizeEnable?: boolean;
 | 
						|
        center?: number[];
 | 
						|
        zoom?: number;
 | 
						|
      };
 | 
						|
    };
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * 与 `PlatformConfigs` 类型不同,这里是缓存到浏览器本地存储的类型声明
 | 
						|
   * @see {@link https://pure-admin.cn/pages/config/#platform-config-json}
 | 
						|
   */
 | 
						|
  interface StorageConfigs {
 | 
						|
    version?: string;
 | 
						|
    title?: string;
 | 
						|
    fixedHeader?: boolean;
 | 
						|
    hiddenSideBar?: boolean;
 | 
						|
    multiTagsCache?: boolean;
 | 
						|
    keepAlive?: boolean;
 | 
						|
    locale?: string;
 | 
						|
    layout?: string;
 | 
						|
    theme?: string;
 | 
						|
    darkMode?: boolean;
 | 
						|
    grey?: boolean;
 | 
						|
    weak?: boolean;
 | 
						|
    hideTabs?: boolean;
 | 
						|
    hideFooter?: boolean;
 | 
						|
    sidebarStatus?: boolean;
 | 
						|
    epThemeColor?: string;
 | 
						|
    themeColor?: string;
 | 
						|
    overallStyle?: string;
 | 
						|
    showLogo?: boolean;
 | 
						|
    showModel?: string;
 | 
						|
    menuSearchHistory?: number;
 | 
						|
    mapConfigure?: {
 | 
						|
      amapKey?: string;
 | 
						|
      options: {
 | 
						|
        resizeEnable?: boolean;
 | 
						|
        center?: number[];
 | 
						|
        zoom?: number;
 | 
						|
      };
 | 
						|
    };
 | 
						|
    username?: string;
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * `responsive-storage` 本地响应式 `storage` 的类型声明
 | 
						|
   */
 | 
						|
  interface ResponsiveStorage {
 | 
						|
    locale: {
 | 
						|
      locale?: string;
 | 
						|
    };
 | 
						|
    layout: {
 | 
						|
      layout?: string;
 | 
						|
      theme?: string;
 | 
						|
      darkMode?: boolean;
 | 
						|
      sidebarStatus?: boolean;
 | 
						|
      epThemeColor?: string;
 | 
						|
      themeColor?: string;
 | 
						|
      overallStyle?: string;
 | 
						|
    };
 | 
						|
    configure: {
 | 
						|
      grey?: boolean;
 | 
						|
      weak?: boolean;
 | 
						|
      hideTabs?: boolean;
 | 
						|
      hideFooter?: boolean;
 | 
						|
      showLogo?: boolean;
 | 
						|
      showModel?: string;
 | 
						|
      multiTagsCache?: boolean;
 | 
						|
      stretch?: boolean | number;
 | 
						|
    };
 | 
						|
    tags?: Array<any>;
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * 平台里所有组件实例都能访问到的全局属性对象的类型声明
 | 
						|
   */
 | 
						|
  interface GlobalPropertiesApi {
 | 
						|
    $echarts: ECharts;
 | 
						|
    $storage: ResponsiveStorage;
 | 
						|
    $config: PlatformConfigs;
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * 扩展 `Element`
 | 
						|
   */
 | 
						|
  interface Element {
 | 
						|
    // v-ripple 作用于 src/directives/ripple/index.ts 文件
 | 
						|
    _ripple?: {
 | 
						|
      enabled?: boolean;
 | 
						|
      centered?: boolean;
 | 
						|
      class?: string;
 | 
						|
      circle?: boolean;
 | 
						|
      touched?: boolean;
 | 
						|
    };
 | 
						|
  }
 | 
						|
}
 |