- 新增API密钥创建表单界面 - 实现API密钥名称输入验证 - 添加表单提交和取消功能 - 集成密钥管理弹窗组件 - 支持密钥信息的双向数据绑定 - 添加表单校验规则和错误提示 - 实现密钥创建成功后的消息通知 - 提供密钥管理模块的基础架构支持
3.6 KiB
3.6 KiB
后端配置管理说明
概述
本项目实现了与小程序端一致的配置管理机制,后端管理端现在也支持优先使用后台配置的API地址。
核心文件
src/store/modules/config.ts- 配置状态管理模块src/composables/useConfig.ts- 配置初始化组合式函数src/views/system/config-demo.vue- 配置演示页面src/utils/request.ts- 更新后的请求工具,支持API地址优先级
功能特性
1. API地址优先级
- 优先使用后台配置的API地址(存储在config中的ApiUrl字段)
- 如果未配置,则回退使用本地配置的API_BASE_URL
2. 配置存储
- 使用Pinia进行状态管理
- 同时存储在localStorage中,支持持久化
- 提供获取、设置、刷新、清除配置的方法
3. 自动初始化
- 应用启动时自动加载配置
- 支持从缓存中快速恢复配置
使用方法
在组件中使用配置store
import { useConfigStore } from '@/store/modules/config';
export default defineComponent({
setup() {
const configStore = useConfigStore();
// 获取配置
const config = configStore.config;
// 获取API地址
const apiUrl = configStore.getApiUrl;
// 获取网站名称
const siteName = configStore.getSiteName;
// 刷新配置
const refreshConfig = async () => {
try {
await configStore.refetchConfig();
} catch (error) {
console.error('刷新配置失败:', error);
}
};
return {
config,
apiUrl,
siteName,
refreshConfig
};
}
});
在组合式API中使用
import { useConfigStore } from '@/store/modules/config';
export default defineComponent({
setup() {
const configStore = useConfigStore();
// 监听配置变化
watch(() => configStore.config, (newConfig) => {
console.log('配置已更新:', newConfig);
});
return {};
}
});
在请求工具中使用
请求工具会自动优先使用配置中的API地址:
// src/utils/request.ts
const getBaseUrl = (): string => {
// 尝试从配置store获取后台配置的API地址
try {
const configStore = useConfigStore();
if (configStore.config && configStore.config.ApiUrl) {
return configStore.config.ApiUrl;
}
// 回退到localStorage
const configStr = localStorage.getItem('config');
if (configStr) {
const config = typeof configStr === 'string' ? JSON.parse(configStr) : configStr;
if (config && config.ApiUrl) {
return config.ApiUrl;
}
}
} catch (error) {
console.warn('获取后台配置API地址失败:', error);
}
// 最后回退到本地配置
return API_BASE_URL;
};
配置字段说明
配置对象包含以下字段:
siteName- 网站名称siteLogo- 网站Logodomain- 域名icpNo- ICP备案号copyright- 版权信息loginBgImg- 登录背景图address- 联系地址tel- 联系电话kefu2- 客服2kefu1- 客服1email- 邮箱loginTitle- 登录标题sysLogo- 系统LogoApiUrl- API地址(新增)theme- 主题(新增)
菜单配置
配置演示页面已添加到系统管理菜单中:
- 路径:
/system/config-demo - 组件:
/src/views/system/config-demo.vue - 图标:
ExperimentOutlined
注意事项
- 配置数据会自动存储在localStorage中,键名为
config - 主题配置会存储在localStorage中,键名为
user_theme - 如果需要自定义配置字段,需要更新
src/api/cms/cmsWebsiteField/model/index.ts中的Config接口定义