From 044976b7909313d226a9cfbc9dc4644f58e376d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=95=8A=E4=BF=8A?= <735878602@qq.com> Date: Sun, 25 Jul 2021 22:48:32 +0800 Subject: [PATCH] Perfect TS type detection --- src/store/modules/projectSetting.ts | 9 +-- types/config.d.ts | 96 ++++++++++++++++++----------- 2 files changed, 64 insertions(+), 41 deletions(-) diff --git a/src/store/modules/projectSetting.ts b/src/store/modules/projectSetting.ts index 65b88bb..4f0d1b5 100644 --- a/src/store/modules/projectSetting.ts +++ b/src/store/modules/projectSetting.ts @@ -1,6 +1,7 @@ import { defineStore } from 'pinia'; import { store } from '@/store'; import projectSetting from '@/settings/projectSetting'; +import type { IheaderSetting, ImenuSetting, ImultiTabsSetting, IcrumbsSetting } from '/#/config'; const { navMode, @@ -16,11 +17,11 @@ const { interface ProjectSettingState { navMode: string; //导航模式 navTheme: string; //导航风格 - headerSetting: object; //顶部设置 + headerSetting: IheaderSetting; //顶部设置 showFooter: boolean; //页脚 - menuSetting: object; //多标签 - multiTabsSetting: object; //多标签 - crumbsSetting: object; //面包屑 + menuSetting: ImenuSetting; //多标签 + multiTabsSetting: ImultiTabsSetting; //多标签 + crumbsSetting: IcrumbsSetting; //面包屑 permissionMode: string; //权限模式 } diff --git a/types/config.d.ts b/types/config.d.ts index 8e601bb..04777c4 100644 --- a/types/config.d.ts +++ b/types/config.d.ts @@ -1,45 +1,67 @@ export interface ProjectSettingState { - //导航模式 - navMode: string; - //导航风格 - navTheme: string; - //顶部设置 - headerSetting: object; - //页脚 - showFooter: boolean; - //菜单设置 - menuSetting: object; - //多标签 - multiTabsSetting: object; - //面包屑 - crumbsSetting: object; - //权限模式 - permissionMode: string; + //导航模式 + navMode: string; + //导航风格 + navTheme: string; + //顶部设置 + headerSetting: object; + //页脚 + showFooter: boolean; + //菜单设置 + menuSetting: object; + //多标签 + multiTabsSetting: object; + //面包屑 + crumbsSetting: object; + //权限模式 + permissionMode: string; } +export interface IheaderSetting { + bgColor: string; + fixed: boolean; + isReload: boolean; +} + +export interface ImenuSetting { + minMenuWidth: number; + menuWidth: number; + fixed: boolean; +} + +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; + 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; + // 标题 + 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; }