# CLAUDE.md
此文件为 Claude Code (claude.ai/code) 在此代码库中工作时提供指导。
## 项目概述
**msmg-uni** 是一个基于 UniApp 框架构建的微信小程序移动应用,使用 Vue 3 + TypeScript + Vite + Unocss + uview-plus 技术栈。
## 编码风格
1. 尽可能使用if return 代替 if else
2. 代码结构清晰,关键地方需要中文注释
3. 使用单引号替代双引号
4. 函数参数尽量使用解构赋值
5. 行结尾禁止添加分号
## 开发命令
### 开发环境
- `npm run dev:mp-weixin` - 微信小程序开发
### 生产构建
- `npm run build:mp-weixin` - 构建微信小程序
### 类型检查
- `npm run type-check` - 运行 TypeScript 类型检查
## 架构设计
### 核心目录结构
```
src/
├── @api/ # API 层和服务定义
├── @layout/ # 布局组件 (PageTitle, RootView)
├── components/ # 可复用的 Vue 组件
├── common/ # 全局工具函数和常量
├── hooks/ # Vue 3 组合式函数
├── pages/ # 应用页面
├── stores/ # Pinia 状态管理
├── static/ # 静态资源
├── utils/ # 工具函数
├── App.vue # 根应用组件
├── main.ts # 应用入口文件
├── pages.json # UniApp 页面配置
└── manifest.json # 平台特定应用配置
```
### 技术栈
- **框架**: UniApp 3.x + Vue 3 组合式 API
- **语言**: TypeScript 4.9+
- **构建工具**: Vite 5.2.8
- **状态管理**: Pinia 2.0.36
- **UI 库**: uview-plus 3.6.17
- **样式**: UnoCSS + SCSS
- **HTTP**: 自定义工具 + 拦截器
- **国际化**: vue-i18n
- **图标**: unocss icons tabler图标,使用i-tabler-* 引入图标
### 核心模式
**状态管理**
- 使用 `/src/stores/` 中的 Pinia stores
- 主题 store 支持明暗模式切换
- 响应式状态的组合模式
**API 层**
- API 定义在 `/src/@api/` 中,使用 `.api.ts` 后缀
- `/src/utils/http.ts` 中的 HTTP 工具处理:
- 请求/响应日志
- `/types/` 中的 TypeScript DTO/VO 模式
**组件开发**
- 使用 Vue 3 组合式 API 和 `
```
### 页面结构
根组件为
### HTTP 请求
使用配置的 HTTP 工具:
```typescript
import { http } from '@/utils/http'
```
### 状态管理
创建带 TypeScript 的 Pinia stores:
```typescript
import { defineStore } from 'pinia'
export const useExampleStore = defineStore('example', {
state: () => ({
// 响应式状态
}),
actions: {
// 操作方法
}
})
```
## 构建配置
### Vite 配置
- UnoCSS 集成与微信小程序预设
- SCSS 预处理
- Vue JSX 支持
- 配置路径别名
### UnoCSS 配置
- 配置自定义主题颜色
- Tabler 图标集成
- 微信小程序兼容性
- 定义的实用快捷方式
### TypeScript 配置
- Vue 3 TypeScript 支持
- UniApp 类型定义
- 清理导入的路径映射
- 启用严格模式
## API 文档查询
### Context7 集成
可以使用 Context7 查询相关技术栈的最新 API 文档:
### 查询建议
- 在开发过程中遇到 API 使用问题时,优先使用 Context7 查询最新文档
- 可以指定 topic 参数来查询特定主题,例如:`topic="composition-api"`
- 对于具体的组件或功能,可以直接查询相关主题:`topic="u-button"`、`topic="router"`