日志6月28日-学期报告界面

    技术2022-07-11  72

    日志6月28日-分析报告

    前言,学期分析报告是本项目的重点展示区间,通过对学生行为数据的分析,我们能预测学生成绩并预测学习排名,我们将会对学生一学期的行为数据进行统计分析和展示,并预测学期排名,根据学生的行为和预测成绩提出委婉适当的建议。 界面功能需求

    展示学生的学期总支出情况,食堂支出情况,并查看学生食堂消费水平处于年级什么水平。展示学生一学期前往图书馆的次数,图书借阅次数,以及两项指标相对于年级平均水平的位置。展示学生前两学期的成绩排名,并预测当前学期成绩排名,排名数据来源于算法小组的预测。根据学生的行为数据,成绩排名,给出委婉的建议,当学生成绩排名位于年级前15%我们将建议其继续保持良好习惯,当学生成绩排名位于年级后15%,我们根据其图书借阅数据,和食堂数据进行分析,并提醒其在哪方面进行加强,并培养良好的学习习惯。当排名位于中间时,为促进学生用户的学习进步,我们会给出对应的建议。

    1.界面实现

    对于学期报告,我们将采用滑动界面布局在一个界面展示长篇幅学期报告。 大体思路是利用一个boxs容器,里面装有不同类型的box-wrapper 来展示不同方面的学期报告。对boxs增添滑动和触底事件响应。来进行box-wrapper的加载。 每一个box-wrapper包裹背景图片模块,内容信息模块和保存图片模块 下面为主要的wxss代码 boxs容器,将其position设置为absolute。

    .boxs { width: 100%; height: 100%; position: absolute; }

    其中一个box-wrapper的wxss代码 要注意图片地址要使用http格式而不是本地模式。能有效节省小程序占用空间,提高空间利用率,同时避免了小程序里的一些bug(在某些组件或者容器里不能使用本地图片,必须使用http格式图片。推荐使用http.sm.sm 的图片网络地址链接生成网站。)

    .box1-wrapper{ background-image: url(https://i.loli.net/2020/06/29/5yjpkZOdzDP7QEM.jpg); padding-top: 174rpx; padding-bottom: 550rpx; background-repeat: no-repeat; background-size: 100% 80%; }

    关于保存图片模块的wxss代码

    .tips { margin-top: 50rpx; text-align: center; } .tips .saveBtn { background: #FF6666; border-radius: 30rpx; padding: 12rpx 60rpx; color: white; font-size: 28rpx; } .tips .info{ opacity: 0.8; font-size: x-small; margin-top: 25rpx; }

    学期报告的主界面布局wxml代码,只展示了其中一个box-wrapper布局。

    <view class="boxs" catchtouchmove="noneEnoughPeople"> <view bindtouchstart="handletouchtart" bindtouchmove="handletouchmove" bindtouchend="handletouchend"> <view class="box1-wrapper"> </view> <view class="box2">亲爱的同学,过去的这一学期,相信你一定过得愉快而又充实</view> <view class='box2'>这一学期,你的总支出为:</view> <view class='box3'>{{Totalcost}}</view> <view class='box2'>良好的生活习惯会更有助于你的学习,我们提倡少吃外卖</view> <view class='box2'>而这一学期,你在食堂的消费共</view> <view class='box3'>{{cafeprice}}</view> <view class='box2'>超过</view> <view class='box3'>{{cafepercente}}</view> <view class='box2'>的同学</view> <view class="tips"> <text class="saveBtn" bindtap="saveShareImg">保存图片</text> <view class="info">保存到相册可在朋友圈分享海报</view> </view>

    界面的逻辑代码和数据 该界面的巧妙设计就在于滑动界面的设计,也就是当往下滑动时,通过事件响应和位置计算,来判断界面是向上还是向下滑动,从而显示顺滑的长篇幅界面展示效果。 逻辑代码:

    noneEnoughPeople() { //禁止页面滑动的方法,可以不做任何操作,但是必须要写 }, //滑动开始的操作,记录滑动开始的位置,用于判断是向上滑动还是向下滑动 handletouchtart: function(event) { // 赋值 this.data.lastY = event.touches[0].pageY }, //滑动中,判断是向上还是向下 handletouchmove(event) { let currentY = event.touches[0].pageY; let ty = currentY - this.data.lastY; if (ty < 0) { this.setData({ text: '向上' }) } else { this.setData({ text: '向下' }) } this.data.lastY = currentY }, //滑动结束,通过判断是向上还是向下来计算页面滚动的位置 handletouchend(event) { console.log(this.data.text, this.data.page) if (this.data.text == '向上') { if (this.data.page == 1) { wx.pageScrollTo({ scrollTop: wx.getSystemInfoSync().windowHeight, duration: 500 }) this.setData({ page: 2 }) } else if (this.data.page == 2) { wx.pageScrollTo({ scrollTop: wx.getSystemInfoSync().windowHeight * 2, duration: 500 }) this.setData({ page: 3 }) } else if (this.data.page == 3) { wx.pageScrollTo({ scrollTop: wx.getSystemInfoSync().windowHeight * 3, duration: 500 }) this.setData({ page:4 }) } } else { if (this.data.page == 2) { wx.pageScrollTo({ scrollTop: 0, duration: 500 }) this.setData({ page: 1 }) } else if (this.data.page == 3) { wx.pageScrollTo({ scrollTop: wx.getSystemInfoSync().windowHeight, duration: 500 }) this.setData({ page: 2 }) } else if (this.data.page == 4) { wx.pageScrollTo({ scrollTop: wx.getSystemInfoSync().windowHeight * 2, duration: 500 }) this.setData({ page: 3 }) } } },

    数据

    data: { //消费数据,数据库获取 Totalcost: "10000",//总支出,数据库获取 cafeprice:"100",//食堂花费,数据库获取 cafeovflow: "超过",//取值为 超过或者低于,从数据库获取。 cafepercente:"64.3",//取值为百分比,数据库获取 //图书馆数据,数据库接口获取 counttimeLib:"10",//去图书馆次数 OverflowLib1:"超过",//次数 percentLib1:"90",//超过百分比,次数 countbookLib:"100",//借书次数 OverflowLib2:"超过",//借书数量 percentLib2:"90",//超过百分比,借书数量 //成绩数据,数据库接口获取 firstyearRank:"100",//第一学期排名 secondyearRank:"90",//第二学期排名 currentRank:"90",//预测的期末排名 },

    通过onshow功能接入组员提供的数据接口,在前端界面中加载数据。

    2.实现效果

    2.工作总结

    基本完成预定目标,但存在两个瑕疵

    1.数据分析不够饱满, 是因为我们小组获取到学生行为数据不够丰富,后续可以寻找更加丰富饱满的数据并进行严谨的数据分析。 2,界面设计还不够美观,在后续如果有条件应该请比较专业或者有艺术细胞的界面设计人员,目前是自己将界面设计和前端代码全包了,任务量有点大,所以导致呈现效果不够美观。

    Processed: 0.010, SQL: 9