1.先设计页面
<!--pages/teachers/teachers.wxml--> <view class='contenter'> <view id='contenter'>任课教师列表</view> </view> <view class='content' id='content' wx:for="{{teachers}}" bindtap='selectTeacher' data-teacherid="{{item.teacherid}}"> <view class='top'> <view class='left'> <image src='../../images/1.jpg'></image> </view> <view class='right'> <view class='name'>姓名:{{item.teachername}}</view> <view class='teach'>任课:{{item.course}}</view> </view> </view> </view>
// pages/teachers/teachers.js Page({ /** * 页面的初始数据 */ data: { //页面变量的存放位置 teachers:null }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.setData({teachers:'张三'}); // var that=this; var url ='调用接口'; let self=this; // //读取缓存 // var student=wx.getStorageSync('student'); // //console.log(student); var classid='100000-1603'; console.log(classid); wx.request({ url: url, data:{ classid : classid }, header:{ 'content-type': 'application/json' }, success:(res)=>{ console.log(res.data) this.setData({teachers:res.data}) } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, //选中教师 selectTeacher: function(e){ var teacherid =e.currentTarget.dataset.teacherid; wx.navigateTo({ url: '../testpaper/testpaper?teacherid='+teacherid, }) } })
/* pages/teachers/teachers.wxss */ .contenter{ width: 100%; height: 120rpx; border: solid 1rpx #ecf8c6; background-color: #2d5371; text-align: center; } #contenter{ margin-top: 17rpx; } #content{ background-color:#ebeef0; } .top{ width: 90%; height: 270rpx; /* border: 2rpx solid #ccc; */ margin: 5rpx; } .left{ width: 200rpx; height: 200rpx; border: 2rpx solid #ccc; margin-top: 20rpx; margin-left: 20rpx; float: left; } .right{ width: 400rpx; height: 200rpx; /* border: 2rpx solid #ccc; */ margin-top: 50rpx; margin-left: 20rpx; float: left; } navigator{ margin-right: 40rpx; margin-top: 30rpx; float: left; width: 150rpx; height: 80rpx; line-height: 80rpx; text-align: center; border: 2rpx solid #ccc; background-color: #ecf8c6; border-radius: 10rpx; } .name{ color: #6aa5d2; } .teach{ color: #666; } image{ width: 197rpx; height: 197rpx; }
2.页面显示
3.获取教师所带的班课
onLoad: function (options) { this.setData({teachers:'张三'}); // var that=this; var url ='调用接口'; let self=this; // //读取缓存 // var student=wx.getStorageSync('student'); // //console.log(student); var classid='100000-1603'; console.log(classid); wx.request({ url: url, data:{ classid : classid }, header:{ 'content-type': 'application/json' }, success:(res)=>{ console.log(res.data) this.setData({teachers:res.data}) } }) },
4.在教室所在班课里面进行评教
评教页面设计展示
<view class='pj'> <view class='top'> <view class='left'> <view class='tet1'>{{teacher.name}}</view> <view class='tet2'>{{teacher.sex}} {{teacher.zhicheng}}</view> </view> <view class='right'> <image src='../../images/1.jpg' style='width:200rpx;height:97px;'></image> </view> </view> <!-- 85 --> <view wx:for="{{testpaper}}"> <view class='content1'> <view class='type'> <text class='text1'>{{item.type}}</text> </view> <view class='time'> <text class='text2'>{{item.start}}至{{item.end}}</text> </view> </view> <view class='content2'> <text class='text3'>{{item.name}}</text> <navigator open-type="navigate" url="../paperdetails/paperdetails?id={{item.id}}">评教</navigator> </view> </view> </view>
// pages/testpaper/testpaper.js Page({ /** * 页面的初始数据 */ data: { testpaper:null, teacher:null }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { console.log(options); var url = "https://www.lishuming.top/pj/index.php/student/api/testpaper"; //读取缓存 var teacherid = options.teacherid; wx.request({ url: url, //仅为示例,并非真实的接口地址 data: { teacherid: teacherid }, header: { 'content-type': 'application/json' // 默认值 }, success: (res) => { console.log(res.data); this.setData({ testpaper: res.data.testpaper, teacher: res.data.teacher }); } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })
5.这里面最重要的就是数据缓存的读取
每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)可以对本地缓存进行设置、获取和清理。同一个微信用户,同一个小程序 storage 上限为 10MB。localStorage 以用户维度隔离,同一台设备上,A 用户无法读取到 B 用户的数据。
wx.setStorage(OBJECT)
将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。
参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
key | String | 是 | 本地缓存中的指定的 key |
data | Object/String | 是 | 需要存储的内容 |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
wx.setStorageSync(KEY,DATA)
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
key | String | 是 | 本地缓存中的指定的 key |
data | Object/String | 是 | 需要存储的内容 |