a4b11c5d6a194ea1c41f0c290acbffaa65d1e377
TierMaster 动态内容分级工具
React + Vite + @dnd-kit 实现的动态分级榜单,支持自定义层级、跨容器拖拽、批量图片/文本添加、配置导入导出与长图截图。UI 采用深色沉浸式风格,底部待分类池吸底展示。
快速开始
make init安装依赖make dev启动本地开发(默认 5173 端口)make lint运行 ESLintmake test运行 Vitest(当前为占位,可按需补充用例)make build构建产物
技术栈与规范
- 前端框架:React + TypeScript + Vite
- 拖拽:
@dnd-kit/core+@dnd-kit/sortable - 状态管理:
zustand - 样式:Tailwind CSS,自定义深色主题色板,字体使用 Space Grotesk
- I/O:
file-saver(JSON 导出/图片保存)、html2canvas(长图截图) - 规范:
.editorconfig统一缩进与行宽;ESLint + Prettier 校验;行宽上限 100;推荐使用npm run lint自检
主要功能
- 层级管理:添加/重命名/改色、清空、删除(含物品回收池),拖拽重排层级顺序
- 物品管理:批量图片上传(自动裁剪为正方形)、文本卡片创建、删除
- 拖拽交互:跨层级/池子拖拽,行内排序,拖拽高亮反馈
- 数据导入导出:JSON 结构与
docs/需求文档.md定义兼容 - 长图保存:忽略底部操作栏,可下载当前榜单图片
数据结构
TierConfig(导入导出):
tiers:{ id, label, color }[]items:{ id, type: 'text'|'image', content, tierId }[]itemOrder:Record<containerId, string[]>维护容器内排序;pool代表待分类池
目录
src/App.tsx:页面布局、顶部工具栏、交互入口src/components/:Tier 行、物品卡片、底部池子等 UIsrc/state/useTierStore.ts:zustand 状态与导入/导出/截图逻辑src/utils/image.ts:图片读取与正方形裁剪工具
后续扩展建议
- 增加分级色板选择/校验、移动端触控细节优化
- 为导入/导出增加 schema 校验与版本控制
- 增补单元测试(拖拽数据迁移、导入合并、色彩循环等)
Description
Languages
Shell
59.6%
TypeScript
37.6%
CSS
1.1%
HTML
0.8%
JavaScript
0.7%
Other
0.2%