index.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. // pages/index/index.js
  2. const app = getApp()
  3. const util = require("../../utils/util")
  4. const urlDef = require("../../utils/urls")
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. array: ['艾克斯郎校区1', '艾克斯郎校区2', '艾克斯郎校区3', '艾克斯郎校区4'],
  11. objectArray: [
  12. {
  13. id: 0,
  14. name: '艾克斯郎校区1'
  15. },
  16. {
  17. id: 1,
  18. name: '艾克斯郎校区2'
  19. },
  20. {
  21. id: 2,
  22. name: '艾克斯郎校区3'
  23. },
  24. {
  25. id: 3,
  26. name: '艾克斯郎校区4'
  27. }
  28. ],
  29. index: 0,
  30. stuList: [
  31. { id: 0 },
  32. { id: 1 }
  33. ],
  34. curStu: 0,
  35. classList: [
  36. { img: '/images/kc.png', title: '今日课程', num: '1' },
  37. { img: '/images/jtzy.png', title: '今日作业', num: '6' },
  38. { img: '/images/cq.png', title: '出勤率', num: '100%' },
  39. ],
  40. appList: [
  41. { img: '/images/kb.png', title: '我的课表' },
  42. { img: '/images/zy.png', title: '提交作业' },
  43. { img: '/images/dp.png', title: '课堂点评' },
  44. { img: '/images/zj.png', title: '成长足迹' },
  45. { img: '/images/qj.png', title: '请假' },
  46. { img: '/images/bk.png', title: '补课' },
  47. { img: '/images/jk.png', title: '加课' },
  48. { img: '/images/dk.png', title: '调课' },
  49. ],
  50. bannerList: [],
  51. userList: []
  52. },
  53. //切换身份
  54. changeStu: function (e) {
  55. let sid = e.currentTarget.dataset.id;
  56. console.log('切换用户 : ' + sid);
  57. if (this.data.curStu == sid) {
  58. return;
  59. }
  60. this.setData({
  61. curStu: sid
  62. })
  63. },
  64. //切换校区
  65. bindPickerChange: function (e) {
  66. this.setData({
  67. index: e.detail.value
  68. })
  69. },
  70. /**
  71. * 生命周期函数--监听页面加载
  72. */
  73. onLoad: function (options) {
  74. this.loadIndexData();
  75. },
  76. /**
  77. * 生命周期函数--监听页面初次渲染完成
  78. */
  79. onReady: function () {
  80. },
  81. /**
  82. * 生命周期函数--监听页面显示
  83. */
  84. onShow: function () {
  85. },
  86. /**
  87. * 生命周期函数--监听页面隐藏
  88. */
  89. onHide: function () {
  90. },
  91. /**
  92. * 生命周期函数--监听页面卸载
  93. */
  94. onUnload: function () {
  95. },
  96. /**
  97. * 页面相关事件处理函数--监听用户下拉动作
  98. */
  99. onPullDownRefresh: function () {
  100. },
  101. /**
  102. * 页面上拉触底事件的处理函数
  103. */
  104. onReachBottom: function () {
  105. },
  106. /**
  107. * 用户点击右上角分享
  108. */
  109. onShareAppMessage: function () {
  110. },
  111. loadIndexData: function () {
  112. const urls = urlDef.urls;
  113. //获取登录用户数据, 并加载首页数据
  114. util.apiPost(urls.get_cur_user, {}).then(rs => {
  115. console.log(JSON.stringify(rs));
  116. let curUser = rs.attr;
  117. curUser.studentId = curUser.personId; // 新增studentId属性
  118. let otherUsers = rs.attr.others.filter(o => { return o.studentId != curUser.studentId });
  119. curUser.others = [];// 清除 others 属性
  120. console.log('其他用户 : ' + JSON.stringify(otherUsers));
  121. this.setData({ 'curStu': curUser.studentId });
  122. let userList = [curUser].concat(otherUsers);
  123. userList.map(o => {
  124. if (o.imageUrl && o.imageUrl.length > 0) {
  125. o.imageUrl = urls.oss_file + 'image/'+ o.imageUrl;
  126. } else {
  127. o.imageUrl = '/images/head.png';
  128. }
  129. })
  130. this.setData({ 'userList': userList });
  131. console.log('userList ' + JSON.stringify(this.data.userList));
  132. let personId = rs.attr.personId;
  133. let orgId = rs.attr.orgId;
  134. let today = util.curTime().substring(0, 10).replace(/\//g, '-');
  135. // banner 图片
  136. util.apiPost(urls.get_advert, { '&q.use': 1, 'q.orgId': orgId, 'q.exceptStatus': 2 }).then(r => {
  137. // console.log('banner : ' + JSON.stringify(r));
  138. this.setData({ 'bannerList': r });
  139. });
  140. // 今日课程
  141. util.apiPost(urls.leave_get_classes_date, { 'q.studentId': personId, 'q.attenceDate': today }).then(r => {
  142. // console.log('今日课程 : ' + JSON.stringify(r));
  143. this.setData({ 'classList[0].num': (r ? r.length : 0) });
  144. })
  145. // 作业未提交
  146. util.apiPost(urls.my_homework, { 'q.studentId': personId, 'q.status': 0 }).then(r => {
  147. // console.log('作业未提交 : ' + JSON.stringify(r));
  148. this.setData({ 'classList[1].num': (r ? r.length : 0) });
  149. });
  150. // 出勤率
  151. util.apiPost(urls.get_attendance_rate, { 'q.studentId': personId }).then(r => {
  152. console.log('出勤率 : ' + JSON.stringify(r));
  153. let attendRate = 0, alreadyCount = 0, shouldCount = 0;
  154. if (r != null) {
  155. r.forEach(it => {
  156. if (it.isAttend === '1') {
  157. alreadyCount = it.num;
  158. } else if (it.isAttend === '0') {
  159. shouldCount = it.num;
  160. }
  161. });
  162. }
  163. let t = (alreadyCount + shouldCount);
  164. if (t > 0) {
  165. attendRate = alreadyCount * 100 / t;
  166. }
  167. console.log(attendRate)
  168. this.setData({ 'classList[2].num': attendRate.toFixed(2) + '%' });
  169. })
  170. });
  171. }
  172. })