73 lines
1.9 KiB
Markdown
73 lines
1.9 KiB
Markdown
# PC Agent — Sport Era PC 前台
|
|
|
|
Nuxt 3 / Vue 3 PC 前台站点。**消费 `server/app/api/controller/` 的接口(与 uniapp 共享 `/api/*`)。**
|
|
|
|
## 技术栈
|
|
|
|
- **Nuxt** 3 + **Vue** 3
|
|
- **TypeScript**
|
|
- **Pinia** 状态管理
|
|
- **Tailwind CSS** / SCSS
|
|
- **Axios / ofetch** HTTP 请求
|
|
|
|
## 项目结构
|
|
|
|
```text
|
|
pc/
|
|
├── nuxt.config.ts # Nuxt 配置
|
|
├── app.vue # 根布局
|
|
├── pages/ # 文件路由
|
|
├── components/ # 公共组件
|
|
├── composables/ # 组合式函数
|
|
├── stores/ # Pinia Store
|
|
├── api/ # 接口请求模块(→ 后端 /api/*)
|
|
├── plugins/ # Nuxt 插件
|
|
├── middleware/ # 路由中间件
|
|
├── layouts/ # 页面布局
|
|
├── public/ # 静态资源
|
|
└── assets/ # 编译资源
|
|
```
|
|
|
|
## 运行命令
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
npm run generate
|
|
npm run build
|
|
```
|
|
|
|
---
|
|
|
|
## 并行协作协议
|
|
|
|
### 新功能开发时
|
|
|
|
#### Step 1: 等待或查阅后端 API 契约
|
|
|
|
查看 `server/app/api/controller/` 下的 controller,确认接口签名、请求参数和响应结构。
|
|
|
|
#### Step 2: 并行实现
|
|
|
|
```text
|
|
1. api/ 下新增或复用请求模块
|
|
2. pages/ 下新增页面(文件路由)
|
|
3. components/ 下复用或新增组件
|
|
4. stores/ 处理跨页面状态
|
|
```
|
|
|
|
#### Step 3: 构建联调
|
|
|
|
```bash
|
|
npm run generate
|
|
```
|
|
|
|
## 代码约定
|
|
|
|
- 接口请求通过 `composables` 或 `api/` 模块统一封装。
|
|
- SEO 关键页面使用 `useHead` 配置 `<title>` / `<meta>`。
|
|
- 接口 baseURL 由 `runtimeConfig` 或环境配置控制,不要写死。
|
|
- 页面级数据获取优先使用 `useAsyncData` / `useFetch`。
|
|
- 与 uniapp 共享前台接口契约,避免同一业务前台两套字段命名。
|
|
- 设计稿与页面映射维护在根目录 `设计稿映射.md`。
|