first commit

This commit is contained in:
xujiang
2025-12-11 16:41:29 +08:00
commit a4b11c5d6a

42
README.md Normal file
View File

@ -0,0 +1,42 @@
# TierMaster 动态内容分级工具
React + Vite + @dnd-kit 实现的动态分级榜单,支持自定义层级、跨容器拖拽、批量图片/文本添加、配置导入导出与长图截图。UI 采用深色沉浸式风格,底部待分类池吸底展示。
## 快速开始
- `make init` 安装依赖
- `make dev` 启动本地开发(默认 5173 端口)
- `make lint` 运行 ESLint
- `make 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 行、物品卡片、底部池子等 UI
- `src/state/useTierStore.ts`zustand 状态与导入/导出/截图逻辑
- `src/utils/image.ts`:图片读取与正方形裁剪工具
## 后续扩展建议
- 增加分级色板选择/校验、移动端触控细节优化
- 为导入/导出增加 schema 校验与版本控制
- 增补单元测试(拖拽数据迁移、导入合并、色彩循环等)