Files
soul-yongping/开发文档/4、前端/前端架构.md

76 lines
3.4 KiB
Markdown
Raw Normal View History

2026-02-09 15:09:29 +08:00
# 前端架构
**我是卡若。**
前端分两块:**管理端 soul-admin**(给运营/自己用)、**C 端 miniprogram**(给用户用)。目标都是稳、快、体验好。
## 1. 当前前端分工
| 项目 | 技术栈 | 说明 |
|------|--------|------|
| **soul-admin** | React 18 + Vite 6 + TypeScript + Tailwind 4 + Radix UI (Shadcn 风格) | 管理后台 SPA对接 soul-api路由与现网 /admin/* 对应 |
| **miniprogram** | 微信小程序原生 (JS/WXML/WXSS) | C 端主阵地:阅读、购买、分销、提现等 |
(原 Next.js 的 `app/view/``app/admin/` 可保留为备用或逐步下线。)
## 2. soul-admin 技术底座
- **框架**: React 18 + Vite 6构建快、热更新稳。
- **语言**: TypeScript类型与 API 字段一致camelCase
- **样式**: Tailwind CSS 4全局与组件级样式。
- **UI**: Radix UI 系Dialog、Tabs、Switch 等),类 Shadcn 用法,深色管理后台风格。
- **路由**: React Router 6路径与现网管理端一致`/dashboard``/users``/withdrawals`)。
- **请求**: 统一走 `src/api/client.ts`get/post/put/delbaseUrl 为 `VITE_API_BASE_URL`path 与 soul-api 一致;**请求体与响应字段一律 camelCase**。
## 3. soul-admin 目录结构
\`\`\`
soul-admin/src/
├── api/
│ └── client.ts # 统一请求封装baseUrl + path
├── components/
│ ├── ui/ # 通用 UI (Button, Card, Dialog, Table...)
│ └── modules/ # 业务模块 (如 UserDetailModal)
├── layouts/
│ └── AdminLayout.tsx # 管理端布局与侧栏
├── pages/ # 页面(与路由一一对应)
│ ├── login/
│ ├── dashboard/
│ ├── users/
│ ├── orders/
│ ├── distribution/
│ ├── withdrawals/
│ ├── content/
│ ├── chapters/
│ ├── settings/
│ ├── referral-settings/
│ ├── payment/
│ ├── match/
│ └── ...
├── lib/
│ └── utils.ts
├── App.tsx
└── main.tsx
\`\`\`
## 4. 小程序 (miniprogram)
- **技术**: 微信原生,`app.js` 全局、`app.request()` 封装请求baseUrl 可配置指向 soul-api。
- **页面**: 首页、阅读、个人中心、分销、提现等;与 soul-api 接口对接,**请求/响应字段已统一为 camelCase**(如 `userId``referralCode``createdAt`)。
- **登录**: 微信登录 + 手机号授权,与后端 `/api/miniprogram/login` 等对接。
## 5. API 与数据规范
- **路径**: 与现网完全一致(如 `/api/user/profile``/api/admin/withdrawals`),由 soul-api 提供。
- **字段**: 所有请求体、响应体、前端类型定义**统一小写开头驼峰camelCase**`userId``createdAt``referralCode``hasFullBook` 等。禁止对外使用 snake_case。
- **类型**: TypeScript 接口与 API 响应一一对应,便于联调与维护。
## 6. 交互与体验(通用)
- **加载**: 列表/详情加载时使用骨架屏或明确 loading 状态,避免白屏。
- **错误**: 接口失败要有提示Toast/Alert必要处可重试。
- **表单**: 提交字段与后端约定一致camelCase校验与错误信息清晰。
---
**总结**:管理端在 soul-adminReact+ViteC 端在小程序;两者都通过统一 API 封装对接 soul-api字段规范统一为 camelCase。