Skip to content

Latest commit

 

History

History
287 lines (220 loc) · 7.73 KB

File metadata and controls

287 lines (220 loc) · 7.73 KB

配置验证顶部提示修复总结

📋 问题描述

用户反馈

最上面这里,如果不是"必须配置"有问题不要显示红色,其它的显示黄色。

具体问题

  1. 配置验证顶部提示,只要有 MongoDB 警告就显示红色错误
  2. 用户希望只有必需配置有问题时才显示红色
  3. 推荐配置(如 DeepSeek、百炼、Tushare)缺失时应显示黄色警告

🔧 修改内容

1. 后端修改(app/routers/system_config.py

修改点 1:总体验证结果计算逻辑(第 243-277 行)

修改前

# 总体验证结果
"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 配置警告(推荐配置)不影响总体验证结果

2. 前端修改(frontend/src/components/ConfigValidator.vue

修改点 1:顶部提示拆分为三种状态(第 22-67 行)

修改前

<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>

效果

  • 🔴 必需配置错误 → 红色「配置验证失败」
  • 🟡 推荐配置警告 → 黄色「配置验证通过(有推荐配置未设置)」
  • 🟢 所有配置正常 → 绿色「配置验证通过」

修改点 2:添加计算属性(第 276-345 行)

新增代码

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 配置警告

🎯 验证效果

场景 1:必需配置缺失

状态

  • MongoDB 主机未配置
  • Redis 主机未配置

显示效果

  • 🔴 顶部显示红色「配置验证失败」
  • 提示:"缺少 2 个必需配置"

场景 2:推荐配置缺失

状态

  • 必需配置(MongoDB、Redis、JWT)已配置
  • 推荐配置(DeepSeek、百炼、Tushare)未配置

显示效果

  • 🟡 顶部显示黄色「配置验证通过(有推荐配置未设置)」
  • 提示:"缺少 3 个推荐配置"
  • 提示:"3 个 MongoDB 配置警告"

场景 3:所有配置正常

状态

  • 必需配置已配置
  • 推荐配置已配置

显示效果

  • 🟢 顶部显示绿色「配置验证通过」
  • 提示:"所有配置已正确设置"

📝 配置分类

必需配置(红色错误)

配置项 环境变量 说明
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

🧪 测试步骤

步骤 1:重启后端服务

# 停止当前后端服务(Ctrl+C)
# 重新启动
.\.venv\Scripts\python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

步骤 2:访问配置验证页面

  1. 打开浏览器,访问前端页面
  2. 进入"设置 → 配置验证"
  3. 点击"验证配置"按钮

步骤 3:验证显示效果

测试场景 A:必需配置缺失

  1. 临时修改 .env 文件,注释掉 MONGODB_HOST
  2. 重启后端服务
  3. 点击"验证配置"
  4. ✅ 应显示红色「配置验证失败」

测试场景 B:推荐配置缺失

  1. 确保必需配置已设置
  2. 注释掉 .env 中的 DEEPSEEK_API_KEY
  3. 在 MongoDB 中清空百炼的 API Key
  4. 重启后端服务
  5. 点击"验证配置"
  6. ✅ 应显示黄色「配置验证通过(有推荐配置未设置)」

测试场景 C:所有配置正常

  1. 确保所有配置已设置
  2. 重启后端服务
  3. 点击"验证配置"
  4. ✅ 应显示绿色「配置验证通过」

📊 提交信息

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
  • ⏳ 等待用户测试验证

🔗 相关文档