移动端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

120 lines
3.8 KiB

---
description:
globs:
alwaysApply: false
---
# 智慧生态小程序项目指南
## 项目概述
这是一个基于 uni-app 开发的跨平台应用,支持微信小程序和移动端 APP。项目采用 Vue 2.x 技术栈,后端使用 RuoYi 框架。
## 技术栈
- **前端框架**: uni-app (Vue 2.x)
- **状态管理**: Vuex
- **后端框架**: RuoYi
- **加密库**: crypto-js
- **支持平台**: 微信小程序、Android/iOS APP、H5
## 项目结构
### 核心文件
- [main.js](mdc:main.js) - 应用入口文件
- [App.vue](mdc:App.vue) - 根组件
- [manifest.json](mdc:manifest.json) - 应用配置文件
- [pages.json](mdc:pages.json) - 页面路由配置
- [config.js](mdc:config.js) - 全局配置(API 地址等)
### 目录结构
```
├── api/ # API 接口模块
│ ├── system/ # 系统管理接口
│ ├── task/ # 任务管理接口
│ ├── enterprise/ # 企业管理接口
│ ├── inspections/ # 检查管理接口
│ └── login.js # 登录接口
├── components/ # 公共组件
├── pages/ # 主包页面
│ ├── index.vue # 首页
│ ├── login.vue # 登录页
│ ├── task.vue # 任务页
│ ├── owner.vue # 业主页
│ └── enterprise.vue # 企业页
├── sub/ # 分包目录(优化小程序体积)
│ ├── task/ # 任务模块分包
│ ├── owner/ # 业主模块分包
│ ├── enterprise/ # 企业模块分包
│ └── inspection/ # 检查模块分包
├── store/ # Vuex 状态管理
│ ├── index.js # Store 入口
│ ├── getters.js # 全局 getters
│ └── modules/ # 状态模块
├── utils/ # 工具函数
│ ├── request.js # 请求封装
│ ├── auth.js # 认证相关
│ ├── permission.js # 权限控制
│ └── storage.js # 本地存储
└── static/ # 静态资源
```
## 开发规范
### API 调用规范
1. 所有 API 请求都应通过 `utils/request.js` 封装的方法
2. API 模块按功能领域组织在 `api/` 目录下
3. 使用统一的错误处理机制
### 路由权限控制
- 使用 [permission.js](mdc:permission.js) 进行路由拦截
- 白名单页面定义在 `whiteList` 数组中
- 未登录用户自动跳转到登录页
### 状态管理规范
1. 全局状态使用 Vuex 管理
2. 模块化组织 store,每个业务模块独立管理
3. 通过 getters 暴露需要的状态
### 组件开发规范
1. 公共组件放在 `components/` 目录
2. 页面组件放在 `pages/` 或 `sub/` 目录
3. 组件命名使用 PascalCase
4. 组件文件名与组件名保持一致
### 样式规范
- 使用 [uni.scss](mdc:uni.scss) 定义的全局样式变量
- 支持 scss 预处理器
- 遵循 uni-app 的样式编写规范
## 配置说明
### 环境配置
在 [config.js](mdc:config.js) 中配置:
- `baseUrl`: API 服务器地址
- `baseApi`: API 基础路径
- `appInfo`: 应用基本信息
### 小程序配置
在 [manifest.json](mdc:manifest.json) 中的 `mp-weixin` 节点配置:
- `appid`: 小程序 AppID
- `permission`: 权限申请说明
- `requiredPrivateInfos`: 隐私接口声明
## 常用功能模块
### 登录认证
- 登录接口: `api/login.js`
- Token 管理: `utils/auth.js`
- 权限验证: `utils/permission.js`
### 文件上传
- 上传工具: `utils/upload.js`
- 支持图片、文件上传到服务器
### 数据字典
- 字典工具: `utils/dict.js`
- 统一管理下拉选项等枚举数据
## 注意事项
1. 开发时注意区分平台差异,使用条件编译
2. 小程序有包大小限制,合理使用分包
3. 遵循 uni-app 的生命周期和 API 使用规范
4. 注意处理网络请求的异常情况