| .. | ||
| .hbuilderx | ||
| common | ||
| components | ||
| node_modules | ||
| packageForm/pages | ||
| packageQuery/pages | ||
| packageUser/pages | ||
| pages | ||
| static | ||
| uni_modules | ||
| utils | ||
| App.vue | ||
| babel.config.js | ||
| database.sql | ||
| element.js | ||
| index.html | ||
| main.js | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| pages.json | ||
| README | ||
| README.md | ||
| TEST_GUIDE.md | ||
| uni.scss | ||
农村人口登记系统
项目简介
这是一个基于uni-app + Spring Boot的农村人口登记系统,支持多平台部署(H5、小程序、APP)。
技术栈
- 前端: uni-app + Vue2 + uView UI
- 后端: Spring Boot + JPA + MySQL
- 数据库: MySQL 8.0+
功能特性
- ✅ 用户登录认证
- ✅ 完整的户主信息登记表单
- ✅ 家庭成员信息管理
- ✅ 手写签名功能(支持图片保存)
- ✅ 单选/多选字段支持
- ✅ 表单验证
- ✅ 数据暂存功能
- ✅ 记录查询和统计
- ✅ 数据导出(Excel)
- ✅ 响应式设计,支持多平台
快速开始
1. 数据库配置
-- 执行 database.sql 创建数据库和表
mysql -u root -p < database.sql
2. 后端启动
# 进入backend目录
cd backend
# 修改 application.yml 中的数据库配置
# 启动Spring Boot应用
mvn spring-boot:run
3. 前端启动
# 安装依赖
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字段
注意事项
- 确保MySQL服务已启动
- 修改
backend/src/main/resources/application.yml中的数据库连接信息 - 前端API地址默认为
http://localhost:8080,请根据实际情况修改 - 签名图片较大,建议配置适当的文件上传限制
- 默认管理员账号:admin/admin123,user1/user123,user2/user123
开发环境
- Node.js 14+
- Java 8+
- MySQL 8.0+
- Maven 3.6+
许可证
MIT License