diff --git a/README.md b/README.md index defff31..dc712e6 100644 --- a/README.md +++ b/README.md @@ -18,40 +18,62 @@ - Django REST Framework - SQLite - Pillow (图像处理) +- django-cors-headers ### 前端 - Vue.js 3.x -- Fabric.js 6.x (Canvas图形库) +- Fabric.js 7.x (Canvas 图形库) - Pinia (状态管理) -- Element Plus (UI组件库) +- Element Plus (UI 组件库) - Vite (构建工具) +- Sass (CSS 预处理) ## 项目结构 ``` -poker-design-system/ -├── backend/ # Django后端 -│ ├── poker_api/ # Django项目配置 +game-cards-poker-design/ +├── backend/ # Django 后端 +│ ├── poker_api/ # Django 项目配置 +│ │ ├── settings.py +│ │ ├── urls.py +│ │ └── wsgi.py │ ├── apps/ -│ │ ├── projects/ # 项目管理 +│ │ ├── projects/ # 项目管理 & 素材管理 +│ │ │ ├── management/commands/init_system.py # 初始化命令 +│ │ │ ├── models.py +│ │ │ ├── views.py +│ │ │ └── serializers.py │ │ ├── templates/ # 模板管理 │ │ └── exports/ # 导出服务 -│ ├── media/ # 上传的素材文件 -│ ├── db.sqlite3 # SQLite数据库 +│ ├── media/ # 上传的素材文件 (projects/, export/) +│ ├── manage.py +│ ├── db.sqlite3 # SQLite 数据库 │ └── requirements.txt │ -├── frontend/ # Vue前端 +├── frontend/ # Vue 前端 │ ├── src/ -│ │ ├── components/ # Vue组件 +│ │ ├── components/ # Vue 组件 +│ │ │ ├── AssetPanel.vue # 素材面板 +│ │ │ ├── DesignPanel.vue # 设计面板 +│ │ │ └── AssetUploadDialog.vue │ │ ├── views/ # 页面视图 -│ │ ├── stores/ # Pinia状态管理 -│ │ ├── api/ # Django API调用 -│ │ └── utils/ # 工具函数 +│ │ │ ├── Home.vue +│ │ │ ├── Editor.vue +│ │ │ └── Test.vue +│ │ ├── stores/ # Pinia 状态管理 +│ │ │ └── projectStore.js +│ │ ├── api/ # 后端 API 调用 +│ │ ├── utils/ # 工具函数 +│ │ │ ├── cardLayout.js +│ │ │ ├── cardRenderer.js +│ │ │ └── symmetry.js +│ │ ├── router/ +│ │ └── App.vue │ ├── public/ +│ ├── vite.config.js │ └── package.json │ └── docs/ - └── specs/ # 设计规格文档 ``` ## 快速开始 @@ -62,6 +84,7 @@ poker-design-system/ cd backend pip install -r requirements.txt python manage.py migrate +python manage.py init_system # 初始化示例模板和项目 python manage.py runserver ``` @@ -134,22 +157,54 @@ npm run dev ### 项目管理 -- `GET /api/projects/` - 获取所有项目 -- `POST /api/projects/` - 创建新项目 -- `GET /api/projects/{id}/` - 获取项目详情 -- `PUT /api/projects/{id}/` - 更新项目 -- `DELETE /api/projects/{id}/` - 删除项目 +| 方法 | 路径 | 说明 | +|------|------|------| +| GET | `/api/projects/` | 获取所有项目 | +| POST | `/api/projects/` | 创建新项目 | +| GET | `/api/projects/{id}/` | 获取项目详情 | +| PUT | `/api/projects/{id}/` | 更新项目 | +| DELETE | `/api/projects/{id}/` | 删除项目 | +| POST | `/api/projects/{id}/design/` | 保存设计配置 | ### 素材管理 -- `GET /api/projects/{id}/assets/` - 获取项目素材 -- `POST /api/projects/{id}/assets/` - 上传素材 -- `DELETE /api/projects/{id}/assets/{asset_id}/` - 删除素材 +| 方法 | 路径 | 说明 | +|------|------|------| +| GET | `/api/projects/{id}/assets/` | 获取项目素材列表 | +| POST | `/api/projects/{id}/assets/` | 上传素材 | +| GET | `/api/projects/{id}/assets/{asset_id}/` | 获取素材详情 | +| DELETE | `/api/projects/{id}/assets/{asset_id}/` | 删除素材 | + +### 模板管理 + +| 方法 | 路径 | 说明 | +|------|------|------| +| GET | `/api/templates/` | 获取模板列表 | ### 导出服务 -- `POST /api/projects/{id}/export/` - 批量导出 -- `GET /api/projects/{id}/export/{card_key}/` - 导出单张牌 +| 方法 | 路径 | 说明 | +|------|------|------| +| POST | `/api/projects/{id}/export/` | 批量导出整副牌 | +| GET | `/api/projects/{id}/export/{card_key}/` | 导出单张牌 | + +## 管理命令 + +### 初始化系统 + +```bash +python manage.py init_system +``` + +创建 4 种预设模板(经典、现代、卡通、复古)和一个示例项目。 + +## 前端路由 + +| 路径 | 页面 | 说明 | +|------|------|------| +| `/` | Home | 项目列表首页 | +| `/editor/:projectId?` | Editor | 设计编辑器(可选项目ID) | +| `/test` | Test | 测试/预览页面 | ## 开发计划