#!/bin/bash # 模型参数配置 - 快速功能验证脚本 # 用于手动验证端到端功能 echo "======================================" echo "模型参数配置 - 功能验证" echo "======================================" echo "" # 颜色定义 GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 测试计数 PASS=0 FAIL=0 # 测试函数 test_case() { local name=$1 local expected=$2 local actual=$3 if [ "$expected" == "$actual" ]; then echo -e "${GREEN}✓${NC} $name" ((PASS++)) else echo -e "${RED}✗${NC} $name" echo " 预期: $expected" echo " 实际: $actual" ((FAIL++)) fi } echo "1️⃣ 检查前端代码" echo "-------------------------------------------" # 检查文件是否存在 if [ -f "ruoyi-ui/src/views/ccdi/modelParam/index.vue" ]; then echo -e "${GREEN}✓${NC} 全局配置页面文件存在" ((PASS++)) else echo -e "${RED}✗${NC} 全局配置页面文件不存在" ((FAIL++)) fi if [ -f "ruoyi-ui/src/views/ccdiProject/components/detail/ParamConfig.vue" ]; then echo -e "${GREEN}✓${NC} 项目配置页面文件存在" ((PASS++)) else echo -e "${RED}✗${NC} 项目配置页面文件不存在" ((FAIL++)) fi # 检查API方法 if grep -q "listAllParams" ruoyi-ui/src/api/ccdi/modelParam.js; then echo -e "${GREEN}✓${NC} listAllParams API方法存在" ((PASS++)) else echo -e "${RED}✗${NC} listAllParams API方法不存在" ((FAIL++)) fi if grep -q "saveAllParams" ruoyi-ui/src/api/ccdi/modelParam.js; then echo -e "${GREEN}✓${NC} saveAllParams API方法存在" ((PASS++)) else echo -e "${RED}✗${NC} saveAllParams API方法不存在" ((FAIL++)) fi echo "" echo "2️⃣ 检查loading状态" echo "-------------------------------------------" # 检查loading变量 if grep -q "loading: false" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then echo -e "${GREEN}✓${NC} loading状态变量已定义" ((PASS++)) else echo -e "${RED}✗${NC} loading状态变量未定义" ((FAIL++)) fi # 检查v-loading指令 if grep -q "v-loading=\"loading\"" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then echo -e "${GREEN}✓${NC} v-loading指令已使用" ((PASS++)) else echo -e "${RED}✗${NC} v-loading指令未使用" ((FAIL++)) fi # 检查空状态 if grep -q "暂无参数配置数据" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then echo -e "${GREEN}✓${NC} 空状态提示已添加" ((PASS++)) else echo -e "${RED}✗${NC} 空状态提示未添加" ((FAIL++)) fi echo "" echo "3️⃣ 检查修改追踪" echo "-------------------------------------------" # 检查markAsModified方法 if grep -q "markAsModified" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then echo -e "${GREEN}✓${NC} markAsModified方法存在" ((PASS++)) else echo -e "${RED}✗${NC} markAsModified方法不存在" ((FAIL++)) fi # 检查$set使用 if grep -q "\$set" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then echo -e "${GREEN}✓${NC} 使用$set确保响应式" ((PASS++)) else echo -e "${RED}✗${NC} 未使用$set" ((FAIL++)) fi # 检查修改计数 if grep -q "modifiedCount" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then echo -e "${GREEN}✓${NC} modifiedCount计算属性存在" ((PASS++)) else echo -e "${RED}✗${NC} modifiedCount计算属性不存在" ((FAIL++)) fi echo "" echo "4️⃣ 检查保存功能" echo "-------------------------------------------" # 检查保存方法 if grep -q "handleSaveAll" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then echo -e "${GREEN}✓${NC} handleSaveAll方法存在" ((PASS++)) else echo -e "${RED}✗${NC} handleSaveAll方法不存在" ((FAIL++)) fi # 检查saving状态 if grep -q "saving: false" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then echo -e "${GREEN}✓${NC} saving状态变量已定义" ((PASS++)) else echo -e "${RED}✗${NC} saving状态变量未定义" ((FAIL++)) fi # 检查按钮loading if grep -q ":loading=\"saving\"" ruoyi-ui/src/views/ccdi/modelParam/index.vue; then echo -e "${GREEN}✓${NC} 保存按钮绑定loading状态" ((PASS++)) else echo -e "${RED}✗${NC} 保存按钮未绑定loading状态" ((FAIL++)) fi echo "" echo "5️⃣ 检查后端接口" echo "-------------------------------------------" # 检查Mapper方法 if grep -q "selectByProjectId" ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiModelParamMapper.java 2>/dev/null; then echo -e "${GREEN}✓${NC} selectByProjectId Mapper方法存在" ((PASS++)) else echo -e "${RED}✗${NC} selectByProjectId Mapper方法不存在" ((FAIL++)) fi # 检查Service方法 if grep -q "selectAllParams" ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/ICcdiModelParamService.java 2>/dev/null; then echo -e "${GREEN}✓${NC} selectAllParams Service方法存在" ((PASS++)) else echo -e "${RED}✗${NC} selectAllParams Service方法不存在" ((FAIL++)) fi # 检查Controller接口 if grep -q "listAll" ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiModelParamController.java 2>/dev/null; then echo -e "${GREEN}✓${NC} listAll Controller接口存在" ((PASS++)) else echo -e "${RED}✗${NC} listAll Controller接口不存在" ((FAIL++)) fi if grep -q "saveAll" ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiModelParamController.java 2>/dev/null; then echo -e "${GREEN}✓${NC} saveAll Controller接口存在" ((PASS++)) else echo -e "${RED}✗${NC} saveAll Controller接口不存在" ((FAIL++)) fi echo "" echo "6️⃣ 检查测试文件" echo "-------------------------------------------" # 检查测试文件 if [ -f "ruoyi-ui/tests/e2e/model-param-config.test.js" ]; then echo -e "${GREEN}✓${NC} 端到端测试文件存在" ((PASS++)) else echo -e "${RED}✗${NC} 端到端测试文件不存在" ((FAIL++)) fi # 检查测试计划 if [ -f "docs/test-plans/2026-03-09-e2e-test-plan.md" ]; then echo -e "${GREEN}✓${NC} 测试计划文档存在" ((PASS++)) else echo -e "${RED}✗${NC} 测试计划文档不存在" ((FAIL++)) fi echo "" echo "======================================" echo -e "测试结果: ${GREEN}通过 $PASS${NC} / ${RED}失败 $FAIL${NC}" echo "======================================" echo "" if [ $FAIL -eq 0 ]; then echo -e "${GREEN}✅ 所有检查项通过!${NC}" echo "" echo "📋 下一步:" echo "1. 启动后端服务: mvn spring-boot:run" echo "2. 启动前端服务: cd ruoyi-ui && npm run dev" echo "3. 访问页面: http://localhost:80/ccdi/modelParam" echo "4. 手动验证功能:" echo " - 查看loading效果" echo " - 修改参数,查看修改数量" echo " - 保存参数,查看保存状态" echo "" exit 0 else echo -e "${RED}❌ 有 $FAIL 项检查未通过${NC}" echo "" echo "请检查上述失败项并修复" exit 1 fi