更新记录

0.1.0(2020-05-13)

提交插件市场


平台兼容性

阿里云 腾讯云 支付宝小程序云
×

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


这是学生健康报备系统的需求文档,适用于广大中小学生的学生属地摸查、每日健康统计。

快速体验

体验地址(请使用手机访问): xsjk.m3w.cn

项目截图:

项目规划

为快速上线,本项目分阶段进行:

  • [已完成]一期:满足单个中小学校上线发布,包含高中、初中、小学、幼儿园,这应该是一个类别的,相对简单,支持设置学校名称、班级管理、班级管理员
  • 二期:满足单个大学上线发布,区分学院、系所,可能还要涉及分校,研究生、博士等分类
  • 三期:满足区域性多校上线发布,比如:北京市中小学校健康统计

需求汇总

一期满足单个中小学校上线发布,涉及功能包括:

  • 注册登录
  • 班级管理
  • 健康上报
  • 数据查看

首页

负责人:

首页显示“xx学校学生健康报备系统”,区分登录状态,未登录时,显示登录、注册按钮。

若已登录,区分角色,首页显示不同内容。

学生/家长,首页显示两个链接:

  • 修改学生信息
  • 今日健康报备

老师,首页显示两个链接:

  • 修改个人信息
  • 查看报备数据

登录注册

负责人:邯郸-前端-秦少卫

用户类型:

  • 管理员,一期可通过数据库内置用户名、密码的方式,出厂内置
  • 老师
  • 学生
  • 学生家长

登录/注册类型:

  • 用户名/密码:全平台都支持
  • 微信登录:微信小程序支持,且微信小程序优先微信登录

账号和班级、学生是分开的,注册成功后流程:

  • 超级管理员无需注册,系统出厂内置;
  • 老师注册后,跳转绑定班级信息,后续可修改
  • 学生/家长注册后,跳转绑定学生信息,包括:年级、班级、学号、姓名等

登录成功后,判断当前账号状态,如下:

  • 超级管理员:跳转年级、班级管理界面
  • 老师:若未绑定班级信息,跳转绑定班级信息页面,否则跳转班级当日健康统计列表页面
  • 学生/家长:若未绑定学生信息,跳转绑定学生信息页面,否则跳转当日健康报备页面

管理员管理班级信息

负责人:江西-前端-Ran

超级管理员可管理学校的年级、班级,超级管理员账号、密码可通过内置数据库的方式临时处理:

  • 年级:新增、修改、删除,删除年级时,提醒会将该年级下关联的所有班级全部删除
  • 班级:新增、修改、删除,删除班级时,提醒会将该班级下所有学生及已有的健康报备数据全部删除

班级需设置该班级总共有多少学生。

学生/家长 上报健康状况

负责人:安徽-unicloud-王秀龙

统计每个学生每日的健康情况,统计项如下:

  • 统计日期,系统生成
  • 班级,系统获取
  • 学生姓名,系统获取
  • 当前健康状况:多选,可选项:良好/咳嗽/乏力/发热,多选时逗号分隔;选良好后,不能再选其他项
  • 有无接触湖北/武汉人员
  • 有无疑似症状
  • 当前所在省市
  • 今日体温,可选

每天仅可报备一次,若多次报备,则覆盖上次信息。

老师查看报备情况

负责人:南笙

统计列表,默认为当天日期,开头显式显示已上报xx人,缺xx人,列表按学号排列

老师可切换日期,查看之前的历史数据。

<!-- ### 当前所在属地统计 春节寒假期间,统计学生当前归属地,理论上只需要家长配合填写一次。 **基本信息** - 统计日期 - 学校名称 - 班级 - 学生姓名 - 性别 - 家长联系方式 - 当前学生归属地(单选项,每种归属地对应统计项不同) * 本地留守 * 异地出访(除湖北) * 异地出访(湖北) **本地留守** 若选择本地留守,需统计的信息包括: - 现住址 - 联系方式 - 目前健康状况(单选项,候选项如下) * 良好 * 发热 * 乏力 * 咳嗽 - 备注 **异地出访(除湖北)** 若选择`异地出访(除湖北)`,需统计的信息包括: - 目前所在省市(省市联动菜单) - 离开本地情况统计 * 离开本地时间 * 乘坐交通工具类别(自驾、飞机、高铁等) * 航班号/车次/其他(自驾不需填写) - 预计返回本地情况统计 * 预计返回本地时间 * 计划乘坐交通工具类别(自驾、飞机、高铁等) * 航班号/车次/其他(自驾不需填写) - 目前健康状况(单选项,候选项如下) * 良好 * 发热 * 乏力 * 咳嗽 - 备注 **异地出访(湖北)** 若选择`异地出访(湖北)`,则需统计的信息同`异地出访(除湖北)`。 单设该类型的目的是为了特殊统计湖北、武汉重灾区的情况。 -->

数据库设计

参考 db.md

每日健康统计理论上需家长每日配合提交。

空间与小程序appID设置

  • main.js中设置空间的spaceIdclientSecret
  • manifest.json中设置微信小程序的appID,否则微信端获取的code为:the code is a mock one
  • cloudfunctions-dev/src/utils/constants.js中设置AppIdAppSecretpassSecret字段,否则不能获取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

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

学生健康报备系统(以下简称软件)源码使用许可协议

2022年10月

本许可协议,是数字天堂(北京)网络技术有限公司(以下简称DCloud)对其所拥有著作权的“软件”,提供的使用许可协议。

您对“软件”的复制、使用、修改及分发受本许可协议的条款的约束,如您不接受本协议,则不能使用、复制、修改本软件。

授权许可范围

a) 授予您永久性的、全球性的、免费的、非独占的、不可撤销的本软件的源码使用许可,您可以使用这些源码制作自己的应用。

b) 您只能在DCloud产品体系内使用本软件及其源码。您不能将源码修改后运行在DCloud产品体系之外的环境,比如客户端脱离uni-app,或服务端脱离uniCloud(如涉及uniCloud)。

c) DCloud未向您授权商标使用许可。您在根据本软件源码制作自己的应用时,需以自己的名义发布软件,而不是以DCloud名义发布。

d) 本协议不构成代理关系。

DCloud的责任限制 “软件”在提供时不带任何明示或默示的担保。在任何情况下,DCloud不对任何人因使用“软件”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。

您的责任限制

a) 您需要在授权许可范围内使用软件。

b) 您在分发自己的应用时,不得侵犯DCloud商标和名誉权利。

c) 您不得进行破解、反编译、套壳等侵害DCloud知识产权的行为。您不得利用DCloud系统漏洞谋利或侵害DCloud利益,如您发现DCloud系统漏洞应第一时间通知DCloud。您不得进行攻击DCloud的服务器、网络等妨碍DCloud运营的行为。未经书面许可,您不得利用DCloud的产品进行与DCloud争夺开发者的行为。

d) 如您违反本许可协议,需承担因此给DCloud造成的损失。

本协议签订地点为中华人民共和国北京市海淀区。

根据发展,DCloud可能会对本协议进行修改。修改时,DCloud会在产品或者网页中显著的位置发布相关信息以便及时通知到用户。如果您选择继续使用本框架,即表示您同意接受这些修改。

条款结束

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问