rhb-server/mes-ui/rhb-app/README.md
2025-10-20 11:14:41 +08:00

166 lines
4.6 KiB
Markdown
Raw Permalink 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.

# 农村人口登记系统
## 项目简介
这是一个基于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