应用全局设置 
设计器从 v0.13.0 版本开始,为 Web 和 H5 平台提供了应用全局设置功能,支持配置全局 CSS、应用状态、权限控制、请求设置、路由守卫等核心功能。

一、应用全局 CSS 

全局 CSS 仅支持标准 CSS 语法,不支持 SCSS/LESS 等预处理器。配置的 CSS 会注入到所有页面。
使用示例:
css
/* 全局字体设置 */
body {
  font-family:
    -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
/* 主题色变量 */
:root {
  --primary-color: #1890ff;
}二、应用状态管理 
全局应用状态采用 Pinia 实现。应用启动后会注入名为 $store 的全局状态模块,在页面组件中可通过 this.$store 访问。

特性说明:
- 支持 Vue 响应式机制
 - 内置状态持久化能力
 - 提供模块化状态管理
 
三、权限控制 
基于 Access 插件 实现全方位的权限控制,包括:
- 接口请求自动注入 token
 - 路由访问限制
 - 页面元素权限控制
 
核心配置项 
| 参数名 | 类型 | 默认值 | 说明 | 
|---|---|---|---|
| session | boolean | false | 开启 session 模式,token 存储在 cookie 中,关闭浏览器后失效 | 
| authKey | string | Authorization | 请求头和 cookie 中使用的 token 字段名 | 
| storagePrefix | string | __VTJ_ | 本地存储 key 前缀 | 
| storageKey | string | ACCESS_STORAGE | 本地存储用户信息的 key | 
| auth | string | /#/login | 登录页面路径 (URL path,非路由名称) | 
| redirectParam | string | r | 重定向到登录页时携带当前页面 URL 的参数名 | 
| whiteList | string[]/Function | [] | 路由白名单,匹配的路由跳过权限校验 | 
| unauthorized | string[]/Function | - | 无权限访问时跳转的路由路径 | 
| unauthorizedMessage | string | 登录已失效 | 未登录时的提示信息 | 
| noPermissionMessage | string | 无权限访问 | 无权限操作时的提示信息 | 
| statusKey | string | code | API 响应状态码字段名 | 
| unauthorizedCode | number | 401 | 未登录状态码 | 
启用权限控制 
启用权限控制需至少配置:
- storageKey:浏览器存储 key
 - auth:登录页面路径
 

登录认证 
启用 Access 后,可通过 this.$access 访问权限实例:
ts
// 登录方法
this.$access.login({
  token: 'YOUR_JWT_TOKEN',
  permissions: {
    'page.edit': true,
    'user.manage': false
  },
  userInfo: {
    name: 'Admin'
  }
});
登录成功后请求头自动注入 token: 
注销登录
调用 this.$access.logout() 会清除用户信息并跳转到登录页
操作权限控制 
通过 this.$access.can(permissionCode) 控制元素权限:
vue
<template>
  <button v-if="$access.can('user.delete')">删除用户</button>
</template>
返回值说明:
true:有权限false:无权限null:权限未定义
四、应用增强 
用于注入全局插件和公共逻辑:
ts
// 全局工具方法示例
export default {
  install(app) {
    app.config.globalProperties.$utils = {
      formatDate: (date) => new Date(date).toLocaleString()
    };
  }
};
五、请求配置 
基础配置项 

完整配置接口:
ts
export interface IRequestSettings {
  /**
   * 请求数据类型
   * - form: application/x-www-form-urlencoded
   * - json: application/json
   * - data: multipart/form-data
   */
  type?: 'form' | 'json' | 'data';
  /** 是否注入自定义请求头 */
  injectHeaders?: boolean;
  /** 自定义请求头 */
  headers?:
    | RawAxiosRequestHeaders
    | ((id: string, config: AxiosRequestConfig) => RawAxiosRequestHeaders);
  /** 是否显示加载状态 */
  loading?: boolean;
  /** 自定义加载状态显示 */
  showLoading?: () => void;
  /** 自定义加载状态隐藏 */
  hideLoading?: () => void;
  /** 是否显示错误提示 */
  failMessage?: boolean;
  /** 自定义错误处理 */
  showError?: (msg: string, error: any) => void;
  /** 是否返回原始响应对象 */
  originResponse?: boolean;
  /** 是否启用成功状态校验 */
  validSuccess?: boolean;
  /** 自定义响应校验逻辑 */
  validate?: (response: AxiosResponse) => boolean;
  /** 跳过警告的请求模式 */
  skipWarn?: IRequestSkipWarn;
}请求拦截器配置 

六、路由守卫 
路由守卫用于在路由切换前后执行逻辑,典型场景包括:
- 页面访问权限校验
 - 路由切换动画控制
 - 页面数据预加载
 
