用户反馈:
最上面这里,如果不是"必须配置"有问题不要显示红色,其它的显示黄色。
具体问题:
- 配置验证顶部提示,只要有 MongoDB 警告就显示红色错误
- 用户希望只有必需配置有问题时才显示红色
- 推荐配置(如 DeepSeek、百炼、Tushare)缺失时应显示黄色警告
修改前:
# 总体验证结果
"success": env_result.success and len(mongodb_validation["warnings"]) == 0- 只要有 MongoDB 警告就认为验证失败
- 导致推荐配置缺失也显示红色错误
修改后:
# 🔥 修改:只有必需配置有问题时才认为验证失败
# MongoDB 配置警告(推荐配置)不影响总体验证结果
# 只有环境变量中的必需配置缺失或无效时才显示红色错误
overall_success = env_result.success
return {
"success": True,
"data": {
# ...
# 总体验证结果(只考虑必需配置)
"success": overall_success
},
"message": "配置验证完成"
}效果:
- ✅ 只考虑必需配置(MongoDB、Redis、JWT)的验证结果
- ✅ MongoDB 配置警告(推荐配置)不影响总体验证结果
修改前:
<el-alert
:title="validationResult.success ? '配置验证通过' : '配置验证失败'"
:type="validationResult.success ? 'success' : 'error'"
:closable="false"
show-icon
>
<!-- 单一提示,无法区分必需配置和推荐配置 -->
</el-alert>修改后:
<!-- 必需配置错误(红色) -->
<el-alert
v-if="!validationResult.success"
title="配置验证失败"
type="error"
:closable="false"
show-icon
>
<p v-if="envValidation?.missing_required?.length">
缺少 {{ envValidation.missing_required.length }} 个必需配置
</p>
<p v-if="envValidation?.invalid_configs?.length">
{{ envValidation.invalid_configs.length }} 个配置无效
</p>
</el-alert>
<!-- 推荐配置警告(黄色) -->
<el-alert
v-else-if="hasRecommendedWarnings"
title="配置验证通过(有推荐配置未设置)"
type="warning"
:closable="false"
show-icon
>
<p v-if="envValidation?.missing_recommended?.length">
缺少 {{ envValidation.missing_recommended.length }} 个推荐配置
</p>
<p v-if="mongodbValidation?.warnings?.length">
{{ mongodbValidation.warnings.length }} 个 MongoDB 配置警告
</p>
</el-alert>
<!-- 所有配置正常(绿色) -->
<el-alert
v-else
title="配置验证通过"
type="success"
:closable="false"
show-icon
>
<p>所有配置已正确设置</p>
</el-alert>效果:
- 🔴 必需配置错误 → 红色「配置验证失败」
- 🟡 推荐配置警告 → 黄色「配置验证通过(有推荐配置未设置)」
- 🟢 所有配置正常 → 绿色「配置验证通过」
新增代码:
import { ref, computed, onMounted } from 'vue'
// 计算属性:是否有推荐配置警告
const hasRecommendedWarnings = computed(() => {
const hasMissingRecommended = (envValidation.value?.missing_recommended?.length ?? 0) > 0
const hasMongodbWarnings = (mongodbValidation.value?.warnings?.length ?? 0) > 0
return hasMissingRecommended || hasMongodbWarnings
})效果:
- ✅ 自动判断是否有推荐配置警告
- ✅ 包括环境变量推荐配置和 MongoDB 配置警告
状态:
- MongoDB 主机未配置
- Redis 主机未配置
显示效果:
- 🔴 顶部显示红色「配置验证失败」
- 提示:"缺少 2 个必需配置"
状态:
- 必需配置(MongoDB、Redis、JWT)已配置
- 推荐配置(DeepSeek、百炼、Tushare)未配置
显示效果:
- 🟡 顶部显示黄色「配置验证通过(有推荐配置未设置)」
- 提示:"缺少 3 个推荐配置"
- 提示:"3 个 MongoDB 配置警告"
状态:
- 必需配置已配置
- 推荐配置已配置
显示效果:
- 🟢 顶部显示绿色「配置验证通过」
- 提示:"所有配置已正确设置"
| 配置项 | 环境变量 | 说明 |
|---|---|---|
| MongoDB 主机 | MONGODB_HOST |
MongoDB 数据库主机地址 |
| MongoDB 端口 | MONGODB_PORT |
MongoDB 数据库端口 |
| MongoDB 数据库 | MONGODB_DATABASE |
MongoDB 数据库名称 |
| Redis 主机 | REDIS_HOST |
Redis 缓存主机地址 |
| Redis 端口 | REDIS_PORT |
Redis 缓存端口 |
| JWT 密钥 | JWT_SECRET |
JWT 认证密钥 |
| 配置项 | 环境变量 | 说明 |
|---|---|---|
| DeepSeek API | DEEPSEEK_API_KEY |
DeepSeek 大模型 API 密钥 |
| 通义千问 API | DASHSCOPE_API_KEY |
阿里云通义千问 API 密钥 |
| Tushare Token | TUSHARE_TOKEN |
Tushare 数据源 Token |
# 停止当前后端服务(Ctrl+C)
# 重新启动
.\.venv\Scripts\python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000- 打开浏览器,访问前端页面
- 进入"设置 → 配置验证"
- 点击"验证配置"按钮
测试场景 A:必需配置缺失
- 临时修改
.env文件,注释掉MONGODB_HOST - 重启后端服务
- 点击"验证配置"
- ✅ 应显示红色「配置验证失败」
测试场景 B:推荐配置缺失
- 确保必需配置已设置
- 注释掉
.env中的DEEPSEEK_API_KEY - 在 MongoDB 中清空百炼的 API Key
- 重启后端服务
- 点击"验证配置"
- ✅ 应显示黄色「配置验证通过(有推荐配置未设置)」
测试场景 C:所有配置正常
- 确保所有配置已设置
- 重启后端服务
- 点击"验证配置"
- ✅ 应显示绿色「配置验证通过」
commit 44ba931
fix: 配置验证顶部提示区分必需配置和推荐配置
问题描述:
- 配置验证顶部提示,只要有 MongoDB 警告就显示红色错误
- 用户希望只有必需配置有问题时才显示红色,推荐配置显示黄色
修改内容:
1. 后端修改(app/routers/system_config.py):
- 修改总体验证结果计算逻辑
- 只考虑必需配置(env_result.success)
- MongoDB 配置警告(推荐配置)不影响总体验证结果
2. 前端修改(frontend/src/components/ConfigValidator.vue):
- 将顶部单一提示拆分为三种状态:
* 必需配置错误 → 红色「配置验证失败」
* 推荐配置警告 → 黄色「配置验证通过(有推荐配置未设置)」
* 所有配置正常 → 绿色「配置验证通过」
- 添加计算属性 hasRecommendedWarnings 判断是否有推荐配置警告
验证效果:
- 必需配置(MongoDB、Redis、JWT)缺失 → 红色错误
- 推荐配置(DeepSeek、百炼、Tushare)缺失 → 黄色警告
- 所有配置正常 → 绿色成功
- ✅ 后端逻辑修改完成
- ✅ 前端界面修改完成
- ✅ 代码已提交到 Git
- ⏳ 等待用户测试验证