list.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. const app = getApp()
  2. import * as echarts from '../../../commpents/ec-canvas/echarts'
  3. Page({
  4. data: {
  5. frameStyle: { useTop: true, name: '学校学习情况', leftArrow: true, useBar: false },
  6. },
  7. // 返回
  8. back(e) {
  9. wx.navigateBack({ delta: 1 })
  10. },
  11. /**
  12. * 生命周期函数--监听页面加载
  13. */
  14. onLoad: function (options) {
  15. },
  16. // 监听用户是否登录
  17. watchLogin: async function () {
  18. const that = this;
  19. wx.getStorage({
  20. key: 'user',
  21. success: async res => {
  22. that.setData({
  23. ec: {
  24. onInit: that.initChart
  25. }
  26. })
  27. // 模拟请求
  28. var times = setTimeout(function () {
  29. console.log("模拟请求")
  30. // 数据
  31. that.data.schooldata = ['学校1', '学校2', '学校3', '学校4'];
  32. that.data.xdata = ['2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021', '2022'];
  33. that.data.data1 = [230, 150, 178, 70, 178, 340, 133, 118, 136, 165, 130, 178, 340];
  34. that.data.data2 = [112, 150, 151, 135, 170, 130, 200, 112, 150, 151, 135, 170, 130];
  35. clearTimeout(times);
  36. }, 1000)
  37. },
  38. fail: async res => {
  39. wx.redirectTo({ url: '/pages/index/index' })
  40. }
  41. })
  42. },
  43. // 折线图
  44. initChart(canvas, width, height, dpr) {
  45. let that = this;
  46. // 由于请求数据有延迟所以写一个时间函数,当数据存在的时候再执行绘制
  47. var times = setInterval(function () {
  48. var xdata = that.data.xdata;
  49. var schooldata = that.data.schooldata;
  50. var data1 = that.data.data1;
  51. var data2 = that.data.data2;
  52. if (xdata && data1 && data2 && schooldata) {
  53. clearInterval(times)
  54. const chart = echarts.init(canvas, null, {
  55. width: width,
  56. height: height,
  57. devicePixelRatio: dpr // new
  58. });
  59. canvas.setChart(chart);
  60. var option = {
  61. tooltip: {
  62. trigger: 'axis'
  63. },
  64. legend: {
  65. data: schooldata
  66. },
  67. grid: {
  68. left: '3%',
  69. right: '4%',
  70. bottom: '3%',
  71. containLabel: true
  72. },
  73. xAxis: {
  74. type: 'category',
  75. boundaryGap: false,
  76. data: xdata
  77. },
  78. yAxis: {
  79. type: 'value'
  80. },
  81. series: [
  82. {
  83. name: schooldata[0],
  84. type: 'line',
  85. stack: 'Total',
  86. data: data1
  87. },
  88. {
  89. name: schooldata[1],
  90. type: 'line',
  91. stack: 'Total',
  92. data: data2
  93. },
  94. {
  95. name: schooldata[2],
  96. type: 'line',
  97. stack: 'Total',
  98. data: data1
  99. },
  100. {
  101. name: schooldata[3],
  102. type: 'line',
  103. stack: 'Total',
  104. data: data2
  105. },
  106. {
  107. name: schooldata[4],
  108. type: 'line',
  109. stack: 'Total',
  110. data: data1
  111. }
  112. ]
  113. };
  114. chart.setOption(option, true);
  115. return chart;
  116. }
  117. }, 100)
  118. },
  119. /**
  120. * 生命周期函数--监听页面初次渲染完成
  121. */
  122. onReady: function () { },
  123. /**
  124. * 生命周期函数--监听页面显示
  125. */
  126. onShow: function () {
  127. const that = this;
  128. // 监听用户是否登录
  129. that.watchLogin();
  130. },
  131. /**
  132. * 页面上拉触底事件的处理函数
  133. */
  134. /**
  135. * 生命周期函数--监听页面隐藏
  136. */
  137. onHide: function () {
  138. },
  139. /**
  140. * 生命周期函数--监听页面卸载
  141. */
  142. onUnload: function () {
  143. },
  144. /**
  145. * 页面相关事件处理函数--监听用户下拉动作
  146. */
  147. onPullDownRefresh: function () {
  148. },
  149. /**
  150. * 用户点击右上角分享
  151. */
  152. onShareAppMessage: function (res) {
  153. },
  154. })