2025-12-11 16:41:29 +08:00
2025-12-11 16:41:29 +08:00

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/Ofile-saverJSON 导出/图片保存)、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.tszustand 状态与导入/导出/截图逻辑
  • src/utils/image.ts:图片读取与正方形裁剪工具

后续扩展建议

  • 增加分级色板选择/校验、移动端触控细节优化
  • 为导入/导出增加 schema 校验与版本控制
  • 增补单元测试(拖拽数据迁移、导入合并、色彩循环等)
Description
No description provided
Readme 240 KiB
Languages
Shell 59.6%
TypeScript 37.6%
CSS 1.1%
HTML 0.8%
JavaScript 0.7%
Other 0.2%