页面位置

在这里插入图片描述

引用位置

在这里插入图片描述

代码分析

import { defineOverridesPreferences } from '@vben/preferences';

作用
从框架里导入一个类型辅助函数,用来帮你规范地写自定义配置。


/**
 * @description 项目配置文件
 * 只需要覆盖项目中的一部分配置,不需要的配置不用覆盖,会自动使用默认配置
 * !!! 更改配置后请清空缓存,否则可能不生效
 */

注释说明

  • 这个文件是项目配置覆盖文件
  • 你只写你想改的配置,不改的自动用框架默认值
  • 改完必须清空浏览器缓存才生效

export const overridesPreferences = defineOverridesPreferences({
  // 自定义覆盖配置
  app: {
    name: import.meta.env.VITE_APP_TITLE,
  },
});

核心代码

  1. 导出一个配置对象 overridesPreferences
  2. 只覆盖了 app.name(应用名称)
  3. 值取自 .env 文件里的 VITE_APP_TITLE
    也就是你之前看到的:精简后的页面

小结

  1. preferences.ts = 项目自定义偏好配置
  2. 只覆盖一小部分配置,其他全部用框架默认
  3. 这里只做了一件事:把系统名称设置为环境变量里的标题

它和 main.ts 的关系

  • main.ts 里调用了 initPreferences
  • 初始化时会把这个文件的配置合并进去
  • 最终生效的配置 = 框架默认 + 你的自定义覆盖

你可以在这里改什么?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
也可以在app上按ctrl+B,到如下位置
在这里插入图片描述
点击 AppPreferences ,继续按ctrl+B,到这里
在这里插入图片描述
这个接口内容如下

interface AppPreferences {
  /** 权限模式 */
  accessMode: AccessModeType;
  /** 登录注册页面布局 */
  authPageLayout: AuthPageLayoutType;
  /** 检查更新轮询时间 */
  checkUpdatesInterval: number;
  /** 是否开启灰色模式 */
  colorGrayMode: boolean;
  /** 是否开启色弱模式 */
  colorWeakMode: boolean;
  /** 是否开启紧凑模式 */
  compact: boolean;
  /** 是否开启内容紧凑模式 */
  contentCompact: ContentCompactType;
  /** 内容紧凑宽度 */
  contentCompactWidth: number;
  /** 内容内边距 */
  contentPadding: number;
  /** 内容底部内边距 */
  contentPaddingBottom: number;
  /** 内容左侧内边距 */
  contentPaddingLeft: number;
  /** 内容右侧内边距 */
  contentPaddingRight: number;
  /** 内容顶部内边距 */
  contentPaddingTop: number;
  // /** 应用默认头像 */
  defaultAvatar: string;
  /** 默认首页地址 */
  defaultHomePath: string;
  // /** 开启动态标题 */
  dynamicTitle: boolean;
  /** 是否开启检查更新 */
  enableCheckUpdates: boolean;
  /** 是否显示复制偏好设置按钮 */
  enableCopyPreferences: boolean;
  /** 是否显示偏好设置 */
  enablePreferences: boolean;
  /**
   * @zh_CN 是否开启refreshToken
   */
  enableRefreshToken: boolean;
  /**
   * @zh_CN 是否开启首选项导航栏吸顶效果
   */
  enableStickyPreferencesNavigationBar: boolean;
  /** 是否移动端 */
  isMobile: boolean;
  /** 布局方式 */
  layout: LayoutType;
  /** 支持的语言 */
  locale: SupportedLanguagesType;
  /** 登录过期模式 */
  loginExpiredMode: LoginExpiredModeType;
  /** 应用名 */
  name: string;
  /** 偏好设置按钮位置 */
  preferencesButtonPosition: PreferencesButtonPositionType;
  /**
   * @zh_CN 是否开启水印
   */
  watermark: boolean;
  /**
   * @zh_CN 水印文案
   */
  watermarkContent: string;
  /** z-index */
  zIndex: number;
}

你以后可以在这里加:

  app: {
    name: import.meta.env.VITE_APP_TITLE,
    locale:'en-US',
    watermark: true,
    watermarkContent: 'this is a test'
  }

改完
在这里插入图片描述
在无痕窗口中,打开页面,你会发现页面变成英文的了。
登录后,页面加上了水印。
在这里插入图片描述
其他的,如果有需求,自行添加。


总结

这个文件超级简单,作用只有一个:用环境变量统一设置系统标题
其他所有主题、布局、颜色、菜单配置都用框架默认值。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐