Some checks failed
CI Check / check (push) Has been cancelled
- 创建统一的Modal组件,采用Apple风格设计 - 实现毛玻璃效果、圆角、动画和细边框描边 - 修复弹窗打开时背景滚动问题 - 修复分类管理中重复卡片和数组字符串显示问题 - 优化选项解析逻辑,添加去重和过滤机制
6.8 KiB
6.8 KiB
测试清单 - 模板编辑器 addToCategory 功能
📋 修改概览
1. TemplateManager.tsx - 核心逻辑修复
- ✅ 确保
addToCategory字段在字段类型改为select时被正确初始化 - ✅ 在保存模板时,确保
addToCategory始终包含在 payload 中 - ✅ 添加调试日志,便于追踪问题
2. TemplateFieldsEditor.tsx - UI 显示修复
- ✅ 确保当字段类型为
select时,"添加到分类"复选框正确显示 - ✅ 复选框状态与字段数据正确同步
3. next.config.js - 缓存控制
- ✅ 禁用静态文件缓存,强制浏览器重新加载新代码
4. app/layout.tsx - 版本检查
- ✅ 添加版本检查脚本,在页面加载时显示版本号和红色横幅
- ✅ 用于验证新代码是否已加载
🧪 测试步骤
测试 1: 验证新代码已加载
步骤:
- 打开浏览器,访问应用首页
- 打开浏览器控制台(F12)
- 检查是否有以下输出:
🚀🚀🚀 [RootLayout] 应用版本: 2025-11-23-v6-xxxxx 🚀🚀🚀 [RootLayout] 加载时间: xxxxx - 检查页面左上角是否出现红色横幅(显示版本号,5秒后消失)
预期结果:
- ✅ 控制台显示版本信息
- ✅ 页面显示红色版本横幅
- ✅ 如果看不到,说明浏览器缓存了旧代码,需要强制刷新(Ctrl+Shift+R 或 Ctrl+F5)
测试 2: 验证"添加到分类"复选框显示
步骤:
- 登录管理后台
- 进入模板管理页面(
/admin/templates) - 创建一个新模板或编辑现有模板
- 添加一个新字段,或编辑现有字段
- 将字段类型改为
select(下拉选择)
预期结果:
- ✅ 当字段类型为
select时,"添加到分类"复选框应该显示 - ✅ 复选框应该可以正常勾选/取消勾选
- ✅ 复选框状态应该正确保存
检查点:
- 打开浏览器控制台,应该看到类似日志:
[TemplateFieldsEditor] 🔍 字段 X (字段名) 是 select 类型,isSelectType=true,应该显示复选框
测试 3: 验证字段类型切换时 addToCategory 的处理
步骤:
- 在模板编辑器中,选择一个字段
- 将该字段的类型从其他类型(如
text)改为select - 观察"添加到分类"复选框是否出现
- 勾选"添加到分类"复选框
- 将字段类型改回
text(复选框应该消失) - 再次将类型改为
select
预期结果:
- ✅ 当类型改为
select时,复选框立即出现 - ✅ 如果之前勾选过,状态应该被保留
- ✅ 如果之前未勾选,默认应该是未勾选状态
检查点:
- 控制台应该看到:
[TemplateManager] ✅ 字段类型改为 select,确保 addToCategory 存在: {...}
测试 4: 验证保存时 addToCategory 包含在 payload 中
步骤:
- 创建一个新模板
- 添加一个字段,类型设为
select - 勾选"添加到分类"复选框
- 保存模板
- 打开浏览器控制台,查看网络请求
预期结果:
- ✅ 保存请求的 payload 中,该字段应该包含
addToCategory: true - ✅ 控制台应该看到详细的日志:
[TemplateManager] 🔍 处理字段 X: { key: 'xxx', type: 'select', addToCategory: true } [TemplateManager] 🔍 强制验证后 payload.fields: [...]
检查点:
- 在 Network 标签中,找到保存模板的请求
- 查看请求体,确认
fields数组中,select类型的字段都有addToCategory字段
测试 5: 验证已保存模板的加载
步骤:
- 编辑一个已保存的模板(包含
select类型字段) - 检查"添加到分类"复选框是否正确显示
- 检查复选框状态是否与保存的数据一致
预期结果:
- ✅ 复选框正确显示
- ✅ 复选框状态与数据库中的数据一致
测试 6: 验证缓存清除
步骤:
- 如果测试 1 中看不到版本横幅,执行强制刷新:
- Chrome/Edge:
Ctrl + Shift + R或Ctrl + F5 - Firefox:
Ctrl + Shift + R或Ctrl + F5 - Safari:
Cmd + Shift + R
- Chrome/Edge:
- 或者清除浏览器缓存:
- 打开开发者工具(F12)
- 右键点击刷新按钮
- 选择"清空缓存并硬性重新加载"
预期结果:
- ✅ 强制刷新后,应该能看到版本横幅和控制台日志
🔍 调试信息
全局变量检查
在浏览器控制台执行以下命令,检查组件是否已加载:
// 检查应用版本
console.log('应用版本:', window.__APP_VERSION__);
console.log('加载时间:', window.__APP_LOADED_AT__);
// 检查模板管理器是否加载
console.log('模板管理器已加载:', window.__TEMPLATE_MANAGER_LOADED__);
// 检查字段编辑器是否加载
console.log('字段编辑器已加载:', window.__TEMPLATE_FIELDS_EDITOR_LOADED__);
关键日志位置
-
TemplateManager.tsx:
[TemplateManager] updateField called:- 字段更新时[TemplateManager] ✅ 字段类型改为 select- 类型切换时[TemplateManager] 🚀 handleSave 开始执行- 保存开始时[TemplateManager] 🔍 处理字段 X- 处理每个字段时
-
TemplateFieldsEditor.tsx:
[TemplateFieldsEditor] 🚀 组件开始渲染- 组件渲染时[TemplateFieldsEditor] 🔍 字段 X 是 select 类型- 字段类型检查时[TemplateFieldsEditor] ✅ addToCategory changed- 复选框状态改变时
⚠️ 常见问题
问题 1: 看不到版本横幅
原因: 浏览器缓存了旧代码 解决: 执行强制刷新(Ctrl+Shift+R)或清除缓存
问题 2: "添加到分类"复选框不显示
原因:
- 字段类型不是
select - 组件未正确加载 解决:
- 检查字段类型是否为
select - 检查控制台是否有错误日志
- 检查
window.__TEMPLATE_FIELDS_EDITOR_LOADED__是否为true
问题 3: 保存后 addToCategory 丢失
原因: payload 构建时未包含该字段 解决:
- 检查控制台日志,查看 payload 构建过程
- 确认字段类型为
select时,addToCategory是否被正确添加
✅ 测试通过标准
所有测试通过后,应该满足:
- ✅ 版本检查脚本正常工作
- ✅ "添加到分类"复选框在
select类型字段时正确显示 - ✅ 字段类型切换时,
addToCategory状态正确处理 - ✅ 保存模板时,
addToCategory正确包含在 payload 中 - ✅ 已保存模板加载时,复选框状态正确恢复
📝 测试记录
请在测试时记录:
- 测试 1: 版本检查
- 测试 2: 复选框显示
- 测试 3: 类型切换
- 测试 4: 保存 payload
- 测试 5: 已保存模板加载
- 测试 6: 缓存清除
测试日期: _______________ 测试人员: _______________ 测试结果: _______________ 发现问题: _______________