rhb-server/mes-ui/rhb-app/README.md

166 lines
4.6 KiB
Markdown
Raw Permalink Normal View History

2025-10-20 11:14:41 +08:00
# 农村人口登记系统
## 项目简介
这是一个基于uni-app + Spring Boot的农村人口登记系统支持多平台部署H5、小程序、APP
## 技术栈
- **前端**: uni-app + Vue2 + uView UI
- **后端**: Spring Boot + JPA + MySQL
- **数据库**: MySQL 8.0+
## 功能特性
- ✅ 用户登录认证
- ✅ 完整的户主信息登记表单
- ✅ 家庭成员信息管理
- ✅ 手写签名功能(支持图片保存)
- ✅ 单选/多选字段支持
- ✅ 表单验证
- ✅ 数据暂存功能
- ✅ 记录查询和统计
- ✅ 数据导出Excel
- ✅ 响应式设计,支持多平台
## 快速开始
### 1. 数据库配置
```sql
-- 执行 database.sql 创建数据库和表
mysql -u root -p < database.sql
```
### 2. 后端启动
```bash
# 进入backend目录
cd backend
# 修改 application.yml 中的数据库配置
# 启动Spring Boot应用
mvn spring-boot:run
```
### 3. 前端启动
```bash
# 安装依赖
npm install
# 运行到H5
npm run dev:h5
# 运行到微信小程序
npm run dev:mp-weixin
```
## 项目结构
```
├── pages/login/login.vue # 登录页面
├── pages/index/index.vue # 主页(功能选择)
├── pages/index/householdForm.vue # 户主信息填报页面
├── pages/query/query.vue # 结果查询页面
├── backend/ # 后端项目目录
│ ├── pom.xml # Maven配置
│ ├── src/main/java/com/rural/ # 后端源码
│ │ ├── controller/ # 控制器层
│ │ │ ├── AuthController.java # 认证控制器
│ │ │ └── HouseholdController.java # 户主控制器
│ │ ├── service/ # 业务逻辑层
│ │ │ ├── AdminUserService.java # 管理员服务
│ │ │ └── HouseholdService.java # 户主服务
│ │ ├── repository/ # 数据访问层
│ │ │ ├── AdminUserRepository.java # 管理员数据访问
│ │ │ └── HouseholdRepository.java # 户主数据访问
│ │ ├── entity/ # 实体类
│ │ │ ├── AdminUser.java # 管理员实体
│ │ │ └── Household.java # 户主实体
│ │ └── dto/ # 数据传输对象
│ │ └── HouseholdDTO.java # 户主DTO
│ └── src/main/resources/ # 配置文件
│ └── application.yml # Spring Boot配置
├── database.sql # 数据库初始化脚本
└── README.md # 项目说明文档
```
## API接口
### 认证接口
```
POST /houseapi/auth/login
Content-Type: application/json
{
"username": "admin",
"password": "admin123"
}
```
### 户主信息接口
```
# 保存户主信息
POST /houseapi/household/save
Content-Type: application/json
# 暂存户主信息
POST /houseapi/household/draft
Content-Type: application/json
# 获取暂存数据
GET /houseapi/household/draft
# 查询我的记录
GET /houseapi/household/my-list?page=1&size=20&submitStatus=1
# 获取统计信息
GET /houseapi/household/stats
```
## 功能说明
### 1. 用户登录
- 支持用户名密码登录
- 登录后获取token和用户信息
- 未登录自动跳转到登录页
### 2. 户主信息填报
- 完整的户主信息表单
- 支持手写签名
- 支持暂存功能
- 支持编辑已有记录
- 提交时自动删除相同身份证号的旧记录
### 3. 暂存功能
- 点击暂存按钮保存当前表单数据
- 下次进入填报页面时自动加载暂存数据
- 暂存数据状态为"暂存",提交后状态变为"已提交"
### 4. 结果查询
- 查看自己提交的所有记录
- 支持按状态筛选(全部/已提交/暂存)
- 支持搜索户主姓名或身份证号
- 点击记录可查看详情或编辑
### 5. 统计功能
- 显示总记录数、已提交数、暂存数
- 实时更新统计数据
## 签名功能说明
- 使用 `lime-signature` 组件实现手写签名
- 签名数据以base64格式保存
- 支持签名图片反显
- 签名数据会保存到数据库的 `signature_img` 字段
## 注意事项
1. 确保MySQL服务已启动
2. 修改 `backend/src/main/resources/application.yml` 中的数据库连接信息
3. 前端API地址默认为 `http://localhost:8080`,请根据实际情况修改
4. 签名图片较大,建议配置适当的文件上传限制
5. 默认管理员账号admin/admin123user1/user123user2/user123
## 开发环境
- Node.js 14+
- Java 8+
- MySQL 8.0+
- Maven 3.6+
## 许可证
MIT License