|
|
|
---
|
|
|
|
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. 注意处理网络请求的异常情况
|