5fb269cc0a
- 保存先写本地缓存,登录后可选云端同步;退出登录不再因文件操作跳转登录 - 修复 Layui 遮罩残留、design2 保存后线条、toast 被 finally 提前关闭 - 保存过程恢复 loading spinner;成功提示 2.5 秒 - 云端 payload 瘦身与体积超限提示;后端 schema 迁移与 FileService 容错 Co-authored-by: Cursor <cursoragent@cursor.com>
49 lines
2.1 KiB
Markdown
49 lines
2.1 KiB
Markdown
# SoonDesign
|
||
|
||
卡片/光盘设计工具:Electron 桌面端 + Web 端 + PHP 后端。
|
||
|
||
## 目录
|
||
|
||
| 目录 | 说明 |
|
||
|---|---|
|
||
| [frontend-electron/](frontend-electron/) | 桌面程序 |
|
||
| [frontend-web/](frontend-web/) | Web 前端 |
|
||
| [backend-web/](backend-web/) | PHP API(含 `database/schema.sql`) |
|
||
| [docker/](docker/) | 本地 Docker 编排(非生产部署) |
|
||
|
||
## 本地开发
|
||
|
||
需 [Docker Desktop](https://www.docker.com/products/docker-desktop/)。本地只需运行:
|
||
|
||
```bat
|
||
scripts\start.bat
|
||
```
|
||
|
||
脚本会自动:同步 `local.js` / `local.php`、启动 Docker 容器、等待 API。改 `docker/.env` 端口后重新运行即可。停止:`docker compose -p soondesign -f docker/docker-compose.yml down`
|
||
|
||
| 服务 | 默认地址 |
|
||
|------|----------|
|
||
| Web | http://localhost:8100/pages/index.web.html |
|
||
| Admin 登录 | http://localhost:8100/pages/admin/login.html |
|
||
| Admin 后台 | http://localhost:8100/pages/admin/index.html |
|
||
| Electron 静态 | http://localhost:8101/pages/index.html |
|
||
| API | http://localhost:8102/health |
|
||
|
||
端口在 `docker/.env` 修改(默认 8100/8101/8102)。测试管理员:`admin@local.test` / `admin123`(仅 `role=admin` 可进入管理后台)。
|
||
|
||
管理后台模块:概览、用户(详情/启停)、订单筛选、套餐、系统设置、审计日志、支付密钥上传。
|
||
|
||
桌面窗口(可选):`cd frontend-electron && npm install && npm start`
|
||
|
||
## 生产部署
|
||
|
||
- Web 根目录:`frontend-web/`
|
||
- PHP 根目录:`backend-web/public/`
|
||
- 数据库:在 `backend-web` 目录执行 `mysql ... < database/schema.sql`;已有库 `php scripts/migrate-schema.php`
|
||
- 后端:`backend-web/config/local.php.example` → `local.php`
|
||
- 前端 API:`frontend-web/config/local.js`(生产配置,勿覆盖)
|
||
|
||
支付与 notify 说明见 [docs/PAYMENT.md](docs/PAYMENT.md)。列表分页契约见 [docs/API-PAGINATION.md](docs/API-PAGINATION.md)。
|
||
|
||
`frontend-electron/js/design1-back.js`、`design2-back.js` 等为历史参考快照,页面勿引用;功能对齐请以当前 `frontend-web` / `frontend-electron` 为准。
|