小程序部分说明
报告部分
基诊报告使用雷达图和柱状图,这两部分组件通过 Echarts 引入,
目前将雷达图隐藏,如需要将渲染雷达图的function调用即可。
在进行报告页跳转的时候,将处理后的报告信息、学期信息等传递到全局变量中(app.globalData)。
练习列表页-寒暑假活动页
活动页背景图是一张图片根据需要替换即可,重点关注“打卡部分的大图滚动”,
由于小程序注册的是个人开发者所以需要将图片放到线上然后再通过data中的imgSrc引用,
其他部分不需要修改。
活动页的路径及修改图片地址的地方见下图:
hot.png 微信截图_20210225102159.png
练习列表页的题包是根据技能、题组数同步加载的,所以也会同步返回,好处是在显示上比较整齐
但是会延长加载的时间,如需改成异步则去掉async函数即可。
筛选部分同错题列表页一致,在绑定用户后根据报告的反馈显示弱项微技能,
如果未绑定则会读取skillData.js中的数据显示全部技能和微技能。
【注】对于高诊用户语言知识运用部分请求时要使用S6而不是基诊用户的S3;
在文字显示上也会变为“语法”而不是“语言知识运用”。
练习页
练习页是通过组件的形式引入的,同Echarts的方式一致,目录见下图:
要将组件的component属性设置为true,在需要引入的组件中通过usingComponents写入要引入组件的目录地址即可使用外部组件。
练习页的数据均通过后台引入,部分嵌套层级较深需要注意层级。一些数据的处理函数是通过
小程序自身的wxs语法处理的,统一放在pages/tools/answerStatus.wxs文件中,其中包括对作答正误
的展示、多选题的样式、题目数量类型、筛选页的图标等等。
在wxml文件中通过wxs标签的形式引入wxs后缀文件,处理速度比原生js要快,但需要通过模块化的方式
输出,具体可参考answerStatus.wxs文件的部分写法。
像作答逻辑、判断正误等在代码中都可查看,关键部分也添加了注释。
云数据库部分
微信截图_20210225110029.png云数据库主要用来存储作答结果和作答状态,其中exercises存储作答结果,_openid在添加数据库时会自动添加,_id是每条数据的唯一标识(在查询时也是通过_id),每条结果仅存储一个作答结果字段,在题目切换时会调用云数据库取到作答结果。
finishes2存储作答状态,其中包括三个字段,分别是作答状态(已完成、未完成)、作答结果、各部分得分。不同于exercises一条作答结果是一条记录,每个用户的所有作答状态、作答结果都会添加到一起以便减少读取时间,所以每个用户的记录会很长。
_id依然是每条的唯一标识,用户名+技能+微技能+组号构成作答状态的键值,2表示“已完成”,
1表示“进行中”且只有这两个作答状态。
用户名+技能+微技能+组号+Result构成作答结果的键名,作答结果用来判断用户是否作答完成并且在
清除小程序缓存时会回显到页面上作为用户的作答结果,数组的长度不会超过7。
用户名+技能+微技能+组号+exercise构成作答正误题目数的键名,作答正误题目数是一个对象,
包括正确数、错误数和得分。
云数据库的查询比较麻烦,目前的做法是导出成json然后再查询,同样也可以json的形式导入数据,注意在导入时最好将'冲突处理方式'选择为Upsert,避免重复数据的出现。目前云数据库使用的是基础版1免费款,存储空间为5G,数据库2G/月,后续空间不足时需要购买。目前的云开发权限貌似只有我自己,后续需要的话可以在“权限设置”中添加。
网友评论