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

日志6月28日-分析报告

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

  1. 展示学生的学期总支出情况,食堂支出情况,并查看学生食堂消费水平处于年级什么水平。
  2. 展示学生一学期前往图书馆的次数,图书借阅次数,以及两项指标相对于年级平均水平的位置。
  3. 展示学生前两学期的成绩排名,并预测当前学期成绩排名,排名数据来源于算法小组的预测。
  4. 根据学生的行为数据,成绩排名,给出委婉的建议,当学生成绩排名位于年级前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,界面设计还不够美观,在后续如果有条件应该请比较专业或者有艺术细胞的界面设计人员,目前是自己将界面设计和前端代码全包了,任务量有点大,所以导致呈现效果不够美观。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip软件工程实践案例分析+报告(微信小程序+mysql数据库+web后台管理).zip

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值