Files
steel_prices_service/Sale/CLAUDE.md
2026-01-06 18:00:43 +08:00

223 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SaleInfo - 钢材价格查询小程序
> 最后更新2026-01-06 15:26:54
---
## 变更记录 (Changelog)
### 2026-01-06
- 初始化项目 AI 上下文文档
- 完成全仓扫描与模块识别
- 生成架构文档与模块索引
---
## 项目愿景
**SaleInfo** 是一个专注于钢材价格查询的微信小程序,旨在为用户提供简洁、快速的钢材价格查询服务。通过集成后端 API用户可以按地区、材质、规格等多维度查询实时钢材价格数据。
### 核心功能
- 多维度价格查询(地区、材质、规格、日期)
- 价格趋势分析与统计
- 数据可视化展示
- 简洁易用的用户界面
---
## 架构总览
### 技术栈
- **前端框架**:微信小程序原生框架
- **组件框架**glass-easel
- **后端 API**RESTful API基于 Node.js + Express
- **数据格式**JSON
- **文档规范**OpenAPI 3.0
### 项目类型
微信小程序Miniprogram- 前端应用
---
## 模块结构图
```mermaid
graph TD
A["(根) SaleInfo"] --> B["pages"];
A --> C["utils"];
A --> D["配置文件"];
B --> E["index - 主页"];
B --> F["logs - 日志页"];
C --> G["util.js - 工具函数"];
D --> H["app.json - 应用配置"];
D --> I["project.config.json - 项目配置"];
D --> J["swagger.json - API文档"];
click E "#pages-index" "查看 index 页面文档"
click F "#pages-logs" "查看 logs 页面文档"
click G "#utils" "查看 utils 模块文档"
```
---
## 模块索引
| 模块路径 | 类型 | 职责 | 状态 |
|---------|------|------|------|
| `pages/index` | 页面 | 主页,展示用户信息与价格查询入口 | 模板代码,需改造 |
| `pages/logs` | 页面 | 日志记录页面 | 模板代码,可保留 |
| `utils` | 工具库 | 通用工具函数(日期格式化等) | 可用 |
| `app.js` | 入口 | 小程序应用入口,全局配置 | 需扩展 |
| `swagger.json` | 文档 | 后端 API 接口规范OpenAPI 3.0 | 完整,可直接使用 |
---
## 运行与开发
### 开发环境要求
- 微信开发者工具(最新版本)
- 小程序基础库 2.10.4 及以上
- 后端 API 服务运行在 `http://localhost:3000`
### 启动步骤
1. 使用微信开发者工具打开项目根目录
2. 确保后端 API 服务已启动
3. 点击"编译"按钮即可在模拟器中预览
### 配置说明
- **AppID**`wxc9bdf24e598789b8`(测试号)
- **服务器域名**:需在微信公众平台配置合法域名
- **API 基础路径**`http://localhost:3000/api`(开发环境)
---
## 后端 API 规范
### API 基础信息
- **文档版本**1.0.0
- **协议**OpenAPI 3.0
- **Base URL**
- 开发:`http://localhost:3000`
- 生产:`https://api.steel-prices.com`
### 主要接口
#### 1. 健康检查
- **端点**`GET /api/health`
- **说明**:检查服务是否正常运行
#### 2. 价格查询
- **按地区查询**`GET /api/prices/region?region={region}&date={date}`
- **搜索价格**`GET /api/prices/search?material={material}&page={page}`
- **获取统计**`GET /api/prices/stats?region={region}&days={days}`
- **获取趋势**`GET /api/prices/trend?region={region}&days={days}`
#### 3. 数据管理
- **导入数据**`POST /api/prices/import`
### 数据模型
详见 `swagger.json` 文件,包含以下核心模型:
- `Price`:钢材价格数据模型
- `PriceStats`:价格统计数据
- `TrendData`:趋势数据
- `Pagination`:分页信息
---
## 测试策略
### 测试覆盖范围
- **单元测试**:暂无(待补充)
- **集成测试**:暂无(待补充)
- **手动测试**:使用微信开发者工具进行功能验证
### 建议的测试工具
- 微信开发者工具自带的调试功能
- Mock 数据用于离线开发测试
---
## 编码规范
### JavaScript/TypeScript 规范
- 使用 ES6+ 语法
- 采用 2 空格缩进
- 变量命名采用驼峰命名法camelCase
- 常量命名采用全大写下划线分隔UPPER_SNAKE_CASE
### WXML/WXSS 规范
- 使用 rpx 单位适配不同屏幕
- 避免深层嵌套(不超过 3 层)
- 使用 Flex 布局进行页面排版
### 小程序最佳实践
- 合理使用 `setData`,避免频繁更新
- 图片资源使用 CDN 加速
- 网络请求添加错误处理与加载提示
---
## AI 使用指引
### 推荐的 AI 辅助开发场景
1. **UI 设计**:生成简洁的页面布局代码
2. **API 调用**:基于 `swagger.json` 生成接口调用代码
3. **数据可视化**:实现价格趋势图表展示
4. **错误处理**:添加网络异常与数据校验逻辑
### 关键文件说明
- `swagger.json`:包含完整的后端 API 定义,所有接口调用应参考此文档
- `app.json`:页面路由注册位置,新增页面需在此配置
- `utils/util.js`:通用工具函数,可扩展 API 请求封装
### 开发建议
1. 优先实现价格查询核心功能
2. UI 设计应简洁大方,突出数据展示
3. 添加加载状态与错误提示
4. 考虑添加数据缓存机制
---
## 常见问题 (FAQ)
### Q: 如何调试网络请求?
A: 在微信开发者工具中,打开"调试器" -> "Network" 面板,可查看所有网络请求详情。
### Q: 如何处理跨域问题?
A: 微信小程序不存在跨域问题,但需在微信公众平台配置合法域名。
### Q: 如何添加新页面?
A:
1.`pages` 目录下创建新页面文件夹
2. 创建页面文件(.js, .wxml, .wxss, .json
3.`app.json``pages` 数组中注册页面路径
### Q: 后端 API 如何调用?
A: 使用 `wx.request()` 方法,示例:
```javascript
wx.request({
url: 'http://localhost:3000/api/prices/region?region=昆明',
method: 'GET',
success: (res) => {
console.log(res.data)
}
})
```
---
## 相关资源
- [微信小程序官方文档](https://developers.weixin.qq.com/miniprogram/dev/framework/)
- [OpenAPI 3.0 规范](https://swagger.io/specification/)
- 项目 README查看 `README.md` 文件
---
**文档生成时间**2026-01-06 15:26:54
**扫描覆盖率**100% (18/18 文件)
**项目规模**:小型(单模块微信小程序)