评教中,当学生陆后显示需要评教的教师列表,选择评教老师,再选择是常规评教还是统一评教,进入后选择每道题目所选的选项提交后得到总分数。流程如下:

教师列表:再建一个teacher目录,分别写js和wxml:

wxml中:用wx:for循环teachers,分别取teachers中用到的数据,用{{item.name}},等显示

<view class='header'>
<text>教师列表</text>
</view><view class='tea' wx:for="{{teachers}}"  data-teacherid='{{item.teacherid}}' bindtap='selectTeacher'> <image style="width: 80px; height: 80px; margin-top:10px;" mode="{{item.mode}}" src="{{src}}"></image> <view class='section'><view class='section_one'><text>{{item.teachername}}</text></view><view class='section_two'><text>{{item.course}}</text> </view> </view>
</view> 

js中:调用teachers接口,读取学生缓存,根据classid参数,存储teachers中的数据

 

// pages/teachers/teachers.js
const app = getApp()
Page({/*** 页面的初始数据*/data: {//页面的变量存放位置teachers: null,src: '../images/9.jpg'},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {// var url = "https://www.lishuming.top/pj/index.php/student/api/teachers";var url = app.globalData.url.teachers;//读取缓存var student = wx.getStorageSync('student');// console.log(student);var classid = student.classid;// 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});}})},selectTeacher: function (e) {var teacherid = e.currentTarget.dataset.teacherid;wx.navigateTo({url: '../testpaper/testpaper?teacherid=' + teacherid,})}
})

评教方式:再建一个testpaper目录,分别写js和wxml:调用testpaper接口,

// pages/testpaper/testpaper.js
const app = getApp()
Page({/*** 页面的初始数据*/data: {src:'../images/9.jpg',teacher:null,testpaper:null},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {// var url = "https://www.lishuming.top/pj/index.php/student/api/testpaper";var url = app.globalData.url.testpaper;var teacherid = options.teacherid;// console.log(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});}})},selectTeacher: function (e) {var id = e.currentTarget.dataset.id;wx.navigateTo({url: '../paperdetails/paperdetails?id=' + id,})}
})

wxml中:循环testpaper数组,取用到的数据

<view class='nav'><view class='msg'><view class='name'>{{teacher.name}}</view><view class='job'><text>{{teacher.sex}}</text><text>{{teacher.zhicheng}}</text></view></view><view class='pic'><image style='width:80px; height:80px' mode='{{item.mode}}' src='{{src}}'></image></view>
</view><view class='content' wx:for="{{testpaper}}"><view class='content_one'><view class='all'><text class='allpj'>{{item.type}}</text><text class='time' wx:if="{{item.papertypeid==2}}">{{item.start}}至{{item.end}}</text></view><view class='title' data-id='{{item.id}}' bindtap='selectTeacher'>{{item.name}}</view> </view>
</view>

再建一个paperdetails目录写题目的js和wxml:

js中:调用paperdetails,pj接口,代码及解释如下:

// pages/paperdetails/paperdetails.js
const app = getApp()
Page({/*** 页面的初始数据*/data: {currentid:0,count:0,pj:null,testpaperid:null,paperdetails:null,teachername:null,message:'',answer:{},score:{},student:{},btn_disabled:true,show_swiper:true,show_message:false},change:function(e){console.log(e);if(e.detail.source=='touch'){this.setData({currentid:e.detail.current})}},
// 写留言
write_message:function(e){// console.log(e.detail.value);this.setData({message:e.detail.value})
},
// 到下一题next:function(e){var index = this.data.currentid;index++;if(index>=this.data.count){index=this.data.count-1;}this.setData({currentid:index});},
// 选中选项radioChange:function(e){//获取选项及对应分值  var value = e.detail.value;//选项及分数// console.log(value);var id = e.currentTarget.dataset.id;//题目id// console.log(id);var arr = value.split("#");//分割字符串// console.log(arr);var _answer = this.data.answer;//题目id对应的选项_answer[id] = arr[0];// console.log(_answer);var _score = this.data.score;//题目id及对应的选项分数_score[id] = arr[1];// console.log(_score);this.setData({answer:_answer,score: _score});var len = 0;for(var i in _answer){len++;}if(len<this.data.count){this.setData({btn_disabled:true});}else{this.setData({btn_disabled:false});}},
// 提交数据submit: function () {// console.log(this.data.answer);// console.log(this.data.score);//学生信息var _student = this.data.student;_student["no"] = wx.getStorageSync('student').no;_student["name"] = wx.getStorageSync('student').name;_student["classid"] = wx.getStorageSync('student').classid;this.setData({student:_student});// console.log(this.data.student);//计算分值var _score = 0;for(var i in this.data.score){_score += parseInt(this.data.score[i]);}// console.log(_score);
//判断分数是否低于最低分if(_score<this.data.pj.min_score && this.data.message==''){this.setData({show_swiper:false,show_message:true});return;}//pjid及testpaperidvar pjid = this.data.pj.pjid;var testpaperid = this.data.pj.testpaperid;// console.log(pjid);// console.log(testpaperid);wx.request({// url: "https://www.lishuming.top/pj/index.php/student/api/pj",url: app.globalData.url.pj,method:'POST',data:{pjid:pjid,testpaperid:testpaperid,message:this.data.message,answer:JSON.stringify(this.data.answer),student: JSON.stringify(this.data.student),score:_score},header:{'content-type':'application/x-www-form-urlencoded'},success:(res)=>{console.log(res.data);wx.showToast({title: res.data[0],icon: 'success',duration: 2000,success: function () {setTimeout(function () {wx.navigateBack({delta: 1})}, 2000)}})}})},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {// var url = "https://www.lishuming.top/pj/index.php/student/api/paperdetails";var url = app.globalData.url.paperdetails;var id = options.id;// consol.log(id);//读取缓存var no = wx.getStorageSync('student').no;wx.request({url: url,data: {// no:1635050238,no:no,id:id},header: {'content-type': 'application/json'},success: (res) => {console.log(res.data);if(res.data.error){wx.showToast({title: res.data.errormsg,icon:'none',duration:2000,success:function(){setTimeout(function(){wx.navigateBack({delta:1})}, 2000)}})}else{ this.setData({show:true,pj:res.data.pj,paperdetails: res.data.data,teachername: res.data.pj.teachername,count:res.data.data.length});}}})},
})

wxml中:

<!--pages/paperdetails/paperdetails.wxml-->
<view wx:if="{{show}}">
<view class='header'><text>被评老师:{{teachername}}</text>
</view>
<form bindsubmit='submit'><swiper  class='swr' bindchange='change' current='{{currentid}}' wx:if="{{show_swiper}}"><block wx:for="{{paperdetails}}"><swiper-item><view class='content' bindtap='next'><text>{{index+1}}.{{item.content}}</text><radio-group class="radio-group" bindchange="radioChange" data-id="{{item.id}}"><label class='rdo'><radio value='a#{{item.scorea}}'>{{item.itema}}</radio></label><label class='rdo'><radio class='rdo' value='b#{{item.scoreb}}'>{{item.itemb}}</radio></label><label class='rdo' wx:if="{{item.itemc!=''}}"><radio class='rdo' value='c#{{item.scorec}}'>{{item.itemc}}</radio></label><label class='rdo' wx:if="{{item.itemd!=''}}"><radio class='rdo' value='d#{{item.scored}}'>{{item.itemd}}</radio></label></radio-group></view></swiper-item></block></swiper><view class="message" wx:if="{{show_message}}"><textarea placeholder='请给该位老师作出评价' bindinput='write_message'></textarea></view>   <button class='btn' disabled='{{btn_disabled}}'  form-type='submit'>提交</button>
</form>
</view>


微信小程序(评教系统--教师列表,评教方式,评教问题)相关推荐

  1. 精品微信小程序在线考试系统+后台管理系统|前后分离VUE

    <微信小程序在线考试系统+后台管理系统|前后分离VUE>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统,该后台采 ...

  2. 会议室预订小程序,共享会议室小程序,微信小程序会议室预约系统毕设作品

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序会议室预约系统,前台用户使用小程序,后台管理使用基PHP+MySql的B/S架构:通过后台添加会议室信息.管理用户信息.管理预约信 ...

  3. 微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-翟东平-专题视频课程...

    微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-2445人已学习 课程介绍         微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识. 微信小 ...

  4. 视频教程-微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-微信开发

    微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试 ...

  5. java计算机毕业设计基于安卓Android/微信小程序的自来水收费系统APP

    项目介绍 网络的广泛应用给生活带来了十分的便利.所以把自来水收费管理与现在网络相结合,利用java技术建设自来水收费系统app,实现自来水收费的信息化.则对于进一步提高自来水收费管理发展,丰富自来水收 ...

  6. JAVA微信小程序浴室预约系统毕业设计 开题报告

    本文给出的java微信小程序系统毕业设计开题报告,仅供参考!(具体模板和要求按照自己学校给的要求修改) 选题目的和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序浴室预约系统,前台用户使用 ...

  7. [精品毕设]微信小程序在线考试系统+后台管理|前后分离VUE

    <微信小程序在线考试系统+后台管理系统|前后分离VUE>该项目含有源码.文档等资料.配套开发软件.软件安装教程.项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统,该后台采 ...

  8. 微信小程序在线考试系统+后台管理系统|前后分离VUE

    <微信小程序在线考试系统+后台管理系统|前后分离VUE>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统,该后台采 ...

  9. java基本微信小程序的加油站系统 uniapp 小程序

    随着网络技术的发展,当前人们的生活模式发生了巨大的变化,特别是以电子商务为代表的产业影响了人们的生活.当前,电子商务成为振兴国家经济的重要手段,电子商务为人们的生活提供了极大的便利,帮助企业降低销售成 ...

  10. JAVA微信小程序美食菜谱系统毕业设计 开题报告

    本文给出的java微信小程序系统毕业设计开题报告,仅供参考!(具体模板和要求按照自己学校给的要求修改) 选题目的和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序美食菜谱点评系统,前台用户 ...

最新文章

  1. 应对单条高频的数据修改方案
  2. python @修饰符作用
  3. python的用途实例-python中pass语句意义与作用(实例分析)
  4. WCF 第五章 控制并发调用的数量
  5. 花了几百万,创业一年学到了什么
  6. Linux字符设备与块设备的区别与比较
  7. Android之应用APN、WIFI、GPS定位小例子
  8. 谷歌cloud_通过使用Google Cloud ML大规模提供机器学习模型,我们学到了什么
  9. selenium选错弹出层的下拉框
  10. Ant Design Pro v4 is Here
  11. 计算机的开机自检是在 里完成的,计算机的开机自检是在里完成的
  12. 传输线模式<TEM TE TM EH HE>
  13. Linux搭建waf防火墙,Linux入门教程:nginx安装配置naxsi waf防火墙,nginxwaf Naxsi 不依赖...
  14. JavaScript js如何代码加密绑定域名
  15. 篱笆家装宝典之四——瓷砖
  16. Verilog实现---IEEE标准的单精度浮点乘法器
  17. 【线性代数】矩阵的零空间
  18. 2015西交C语言在线作业,西交《电机学》在线作业.doc
  19. qss 画框_PyQt5系列教程(77):QSS入门2
  20. 如何准确查询网易邮箱和微软邮箱的注册时间

热门文章

  1. 甲骨文公司(Oracle)
  2. 如何定时更改计算机的系统时间,电脑上重新加载当前校准,电脑时间怎么自动校准...
  3. HDU 5963 朋友(找规律)
  4. 控制系统Matlab仿真——校正
  5. 软件构造课程心得——软件构造实验二(Lab2)
  6. 让你【愉快上(mo)班(yu)】必不可少的十个窗口快捷键
  7. mysql中的my.cnf_在mysql中更改默认的my.cnf路径
  8. 在MAC下,使用anaconda,解决python画图时中文乱码
  9. Arthas - 阿尔萨斯 - 入门使用(Arthas插件)
  10. 关于AD导出PDF文件出现问题汇总