1. 排行榜悬浮窗关闭后小按钮消失问题 - 修复面板居中模式关闭时按钮位置错误 - 保存并恢复按钮的居中状态 2. 首页tag按钮按素材数量排序 - 添加按素材数量降序排序逻辑 3. 上传弹窗输入框浅色模式文字不可见 - 添加 text-slate-900 确保浅色模式下文字可见 - 添加 placeholder 样式确保占位符正确显示
3.8 KiB
3.8 KiB
素材模板迁移指南(新版本)
面向 AI 编程平台(如 Cursor)编写,帮助快速理解“素材模板 = 素材类型”的全新架构,并指导从老版本迁移。
1. 架构变化速览
- 模板即素材类型:预制模板只保留 6 类(3DMAX、PSD、AI 工作流、视频、模特、其他),
materialType作为模板元数据存储在upload_templates.materialType字段中。 - 字段更精简:表单中不再渲染
materialType字段,通用字段统一来自STANDARD_FIELD_TEMPLATES,必填逻辑由模板控制。 - 前台上传:
components/UploadModal.tsx依据模板元数据决定素材类型,不再依赖隐藏字段。 - 同步机制:
BroadcastChannel + localStorage继续用于前后台同步启用状态,无需重新部署即可生效。
2. 迁移步骤(按顺序执行)
Step 1:数据库
- 执行 Prisma 迁移
20251124001000_add_material_type_to_templates:npx prisma migrate deploy - 如需要手动执行:
ALTER TABLE "upload_templates" ADD COLUMN "materialType" TEXT NOT NULL DEFAULT '其他'; UPDATE "upload_templates" SET "materialType" = COALESCE(NULLIF("materialType", ''), '其他');
Step 2:后端
- 确保以下 API 已更新并部署:
app/api/upload-templates/route.tsapp/api/admin/upload-templates/*app/api/templates/route.tsapp/api/material-types/route.tsapp/api/template-categories/*app/api/materials/route.ts
- 关键检查点:
- API 返回的模板对象需包含
materialType。 - 预制模板列表只包含 6 个 key。
template-categories不再引用materialType字段。
- API 返回的模板对象需包含
Step 3:前端
- 主要文件:
app/admin/_components/TemplateManager.tsxapp/admin/_components/template-manager/*components/UploadModal.tsx
- 必须确认:
- 新建/编辑模板时可选择素材类型(下拉框来自
MATERIAL_TYPE_OPTIONS)。 - 保存模板时写入
materialType字段。 - 上传弹窗根据模板的
materialType控制字段、校验与文件要求。 - 预制模板列表与文档保持一致(3DMAX、PSD、AI 工作流、视频、模特、其他)。
- 新建/编辑模板时可选择素材类型(下拉框来自
Step 4:文档与校验
- 更新
docs/素材类型模板配置记录.md(已完成)。 - 确认根目录的本指南同步提交,供 AI 工具拉取。
- 回归测试:
- 切换预制模板触发前台刷新。
- 上传不同类型素材,验证必填校验、文件校验与标签显示。
- 首页筛选(模板 + 素材类型)可用。
3. 常见问题(FAQ)
| 问题 | 说明 | 排查建议 |
|---|---|---|
模板保存后 materialType 为空 |
旧模板未手动选择类型 | 在后台编辑模板,补全素材类型后再次保存 |
| 前台上传仍出现“素材类型”字段 | 构建未更新或缓存未失效 | 清理 .next、重新构建并刷新浏览器缓存 |
/api/material-types 返回旧数据 |
未部署最新 API 或存在历史模板 | 确认路由已更新,并检查 upload_templates.materialType |
| 预制模板仍包含 CAD/C4D | enabledBuiltinTemplates 仍记录旧 key |
在数据库 system_settings.enabledBuiltinTemplates 中清理旧 key |
4. 建议的提交流程
- 开发:在本地完成所有代码改造 + 文档更新。
- 检查:
npm run lint/npm run build,确保无类型/构建错误。 - 部署:执行
deploy-new-fixed.ps1(或 CI/CD 流程),留意镜像推送日志。 - 验证:访问
/admin与/,测试 6 种模板上传路径。
如需进一步扩展素材类型,请在
BUILTIN_TEMPLATES与BUILTIN_TEMPLATE_TYPES中新增配置,并同步更新本文档与docs/素材类型模板配置记录.md。 AI 平台可直接搜索“素材模板迁移指南”获取最新步骤。*** End Patch