166 lines
4.6 KiB
Markdown
166 lines
4.6 KiB
Markdown
|
|
# 农村人口登记系统
|
|||
|
|
|
|||
|
|
## 项目简介
|
|||
|
|
这是一个基于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/admin123,user1/user123,user2/user123
|
|||
|
|
|
|||
|
|
## 开发环境
|
|||
|
|
- Node.js 14+
|
|||
|
|
- Java 8+
|
|||
|
|
- MySQL 8.0+
|
|||
|
|
- Maven 3.6+
|
|||
|
|
|
|||
|
|
## 许可证
|
|||
|
|
MIT License
|
|||
|
|
|