Skip to content

用户偏好设置

如果希望将框架的部分应用配置项暴露给用户,让用户可以自行设置,那么可以使用用户偏好设置功能。

开启

在应用配置中设置:

ts
const globalSettings: Settings.all = {
  app: {
    enableUserPreferences: true,
  },
}
const globalSettings: Settings.all = {
  app: {
    enableUserPreferences: true,
  },
}

定制偏好设置内容

然后打开 /src/layouts/components/Preferences/index.vue 文件,你可以在文件里进一步定制用户偏好设置里的内容:

ts
const preferences = ref<Settings.all>({
  app: {
    colorScheme: settingsDefault.app.colorScheme,
    theme: settingsDefault.app.theme,
    enableProgress: settingsDefault.app.enableProgress,
  },
  ...
})
const preferences = ref<Settings.all>({
  app: {
    colorScheme: settingsDefault.app.colorScheme,
    theme: settingsDefault.app.theme,
    enableProgress: settingsDefault.app.enableProgress,
  },
  ...
})

如果仔细对比,会发现这里的配置项并不是框架的完整应用配置,这是因为有部分配置项并不适合暴露给用户,比如 app.enableUserPreferences 这个配置项就是用来控制是否开启用户偏好设置的,如果开启了用户偏好设置,那么这个配置项就不应该再暴露给用户了,否则用户就可以关闭用户偏好设置了,这样就没有意义了。再比如 app.routeBaseOn 这个配置项是用来控制路由数据来源的,修改它会直接影响代码的调整,所以也是不能暴露给用户的。

所以请勿扩展这里的配置项,你需要做的就是将不需要暴露给用户的配置项删除或注释( <template> 中的代码无需删除或注释,框架已经做了容错处理)。

处理请求

当定制好了用户偏好设置内容后,然后到 /src/api/modules/user.ts 中找到 preferences()preferencesEdit() 这两个函数,并分别修改这两个函数的请求地址。

建议

为减轻后端处理,数据会直接以 JSON 字符串进行存储,建议后端可以在用户表增加相关字段,并将字段类型设为 lonetext