更新记录
0.1.0(2020-05-13) 下载此版本
提交插件市场
平台兼容性
阿里云 | 腾讯云 | 支付宝云 |
---|---|---|
√ | √ | × |
云函数类插件通用教程
使用云函数类插件的前提是:使用HBuilderX 2.9+
这是学生健康报备系统的需求文档,适用于广大中小学生的学生属地摸查、每日健康统计。
快速体验
体验地址(请使用手机访问): xsjk.m3w.cn
项目截图:
项目规划
为快速上线,本项目分阶段进行:
- [已完成]一期:满足单个中小学校上线发布,包含高中、初中、小学、幼儿园,这应该是一个类别的,相对简单,支持设置学校名称、班级管理、班级管理员
- 二期:满足单个大学上线发布,区分学院、系所,可能还要涉及分校,研究生、博士等分类
- 三期:满足区域性多校上线发布,比如:北京市中小学校健康统计
需求汇总
一期满足单个中小学校上线发布,涉及功能包括:
- 注册登录
- 班级管理
- 健康上报
- 数据查看
首页
负责人:
首页显示“xx学校学生健康报备系统”,区分登录状态,未登录时,显示登录、注册按钮。
若已登录,区分角色,首页显示不同内容。
学生/家长,首页显示两个链接:
- 修改学生信息
- 今日健康报备
老师,首页显示两个链接:
- 修改个人信息
- 查看报备数据
登录注册
负责人:邯郸-前端-秦少卫
用户类型:
- 管理员,一期可通过数据库内置用户名、密码的方式,出厂内置
- 老师
- 学生
- 学生家长
登录/注册类型:
- 用户名/密码:全平台都支持
- 微信登录:微信小程序支持,且微信小程序优先微信登录
账号和班级、学生是分开的,注册成功后流程:
- 超级管理员无需注册,系统出厂内置;
- 老师注册后,跳转绑定班级信息,后续可修改
- 学生/家长注册后,跳转绑定学生信息,包括:年级、班级、学号、姓名等
登录成功后,判断当前账号状态,如下:
- 超级管理员:跳转年级、班级管理界面
- 老师:若未绑定班级信息,跳转绑定班级信息页面,否则跳转班级当日健康统计列表页面
- 学生/家长:若未绑定学生信息,跳转绑定学生信息页面,否则跳转当日健康报备页面
管理员管理班级信息
负责人:江西-前端-Ran
超级管理员可管理学校的年级、班级,超级管理员账号、密码可通过内置数据库的方式临时处理:
- 年级:新增、修改、删除,删除年级时,提醒会将该年级下关联的所有班级全部删除
- 班级:新增、修改、删除,删除班级时,提醒会将该班级下所有学生及已有的健康报备数据全部删除
班级需设置该班级总共有多少学生。
学生/家长 上报健康状况
负责人:安徽-unicloud-王秀龙
统计每个学生每日的健康情况,统计项如下:
- 统计日期,系统生成
- 班级,系统获取
- 学生姓名,系统获取
- 当前健康状况:多选,可选项:良好/咳嗽/乏力/发热,多选时逗号分隔;选良好后,不能再选其他项
- 有无接触
湖北/武汉
人员 - 有无疑似症状
- 当前所在省市
- 今日体温,可选
每天仅可报备一次,若多次报备,则覆盖上次信息。
老师查看报备情况
负责人:南笙
统计列表,默认为当天日期,开头显式显示已上报xx人,缺xx人,列表按学号排列
老师可切换日期,查看之前的历史数据。
<!-- ### 当前所在属地统计 春节寒假期间,统计学生当前归属地,理论上只需要家长配合填写一次。 **基本信息** - 统计日期 - 学校名称 - 班级 - 学生姓名 - 性别 - 家长联系方式 - 当前学生归属地(单选项,每种归属地对应统计项不同) * 本地留守 * 异地出访(除湖北) * 异地出访(湖北) **本地留守** 若选择本地留守,需统计的信息包括: - 现住址 - 联系方式 - 目前健康状况(单选项,候选项如下) * 良好 * 发热 * 乏力 * 咳嗽 - 备注 **异地出访(除湖北)** 若选择`异地出访(除湖北)`,需统计的信息包括: - 目前所在省市(省市联动菜单) - 离开本地情况统计 * 离开本地时间 * 乘坐交通工具类别(自驾、飞机、高铁等) * 航班号/车次/其他(自驾不需填写) - 预计返回本地情况统计 * 预计返回本地时间 * 计划乘坐交通工具类别(自驾、飞机、高铁等) * 航班号/车次/其他(自驾不需填写) - 目前健康状况(单选项,候选项如下) * 良好 * 发热 * 乏力 * 咳嗽 - 备注 **异地出访(湖北)** 若选择`异地出访(湖北)`,则需统计的信息同`异地出访(除湖北)`。 单设该类型的目的是为了特殊统计湖北、武汉重灾区的情况。 -->数据库设计
参考 db.md
每日健康统计理论上需家长每日配合提交。
空间与小程序appID设置
- 在
main.js
中设置空间的spaceId
、clientSecret
; - 在
manifest.json
中设置微信小程序的appID
,否则微信端获取的code为:the code is a mock one
; - 在
cloudfunctions-dev/src/utils/constants.js
中设置AppId
、AppSecret
、passSecret
字段,否则不能获取openid
;
token获取详情
获取用户信息需要根据token获取,方法如下,成功后,res.data
为详细信息,res.data.userType
为用户类型,
userType
的值为数字,对应信息如下。
- 0:老师
- 1:学生
- 2:家长
- 3:管理员
validateToken() {
uni.showLoading({
title: '加载中...'
});
uniCloud.callFunction({
name: 'validateToken',
data: {
token: uni.getStorageSync('token')
}
}).then((res) => {
uni.hideLoading()
uni.showModal({
content: res.result.msg,
showCancel: false
})
}).catch((err) => {
uni.hideLoading()
uni.showModal({
content: '请求云函数发生错误,' + err.message,
showCancel: false
})
})
},
项目运行和部署说明
-
本项目需要HBuilderX 2.5.8(Alpha版)以上版本才能运行。
-
项目需要注册和开通uniCloud ,因阿里云审核要求,需要实名认证。
-
拉取项目源码后,对
cloudfunctions
目录点右键,选择你的服务空间。如果没有服务空间,需要创建,创建时会引导登录和注册uniCloud。 -
配好服务空间后,请根据项目下的db.md文件,在你的云数据库中创建相应的表。具体方式是对
cloudfunctions
目录点右键,打开uniCloud web控制台,在里面的云数据库界面点击"新建表",表名里把db.md涉及的表名都创建一遍。 -
对每个云函数(文件夹)点右键,"上传并部署"到你的服务空间中。
-
修改
manifest.json
中的DCloud_AppID
为自己的。 -
最后,可以运行了。如果是win版,可以直接运行在内置浏览器。如果是mac版,内置浏览器也有跨域问题,需要运行到小程序模拟器或app中,或者给mac的外部浏览器安装跨域插件。
关于源码的二次开发
本项目基于木兰宽松许可证,代码可自由使用和更改。
- 项目前端基于uni-app框架开发,它是一个通过vue.js编写所有平台应用的多端框架。你需要了解uni-app以便于更深度的定制。uni-app的文档详见:https://uniapp.dcloud.io/README
- 项目后端基于uniCloud,它是一个基于js的云开发模式,与微信、支付宝小程序的云开发类似,但可以跨端使用。它基于serverless模型,优势众多。建议开发者通读一遍uniCloud的介绍和快速上手,以方便做二次开发。uniCloud的文档详见:https://uniapp.dcloud.io/uniCloud/README