index.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. import $ from './../../utils/Tool';
  2. import router from './../../utils/router';
  3. import {
  4. getPropertyData
  5. } from "../../requests/api";
  6. Page({
  7. /**
  8. * 页面的初始数据
  9. */
  10. data: {
  11. envLevel:{
  12. temperature:[
  13. {name:"偏冷",value:"22-24°C",min:22,active:true},
  14. {name:"舒适",value:"24-26°C",min:24},
  15. {name:"",value:"26-28°C",min:26,active:true},
  16. {name:"偏热",value:"28-30°C",min:28},
  17. {name:"",value:"30-32°C",min:30,active:true},
  18. ],
  19. humidity:[
  20. {name:"",value:"0-35%",min:0,active:true},
  21. {name:"",value:"35-45%",min:35},
  22. {name:"适宜",value:"45-55%",min:45},
  23. {name:"",value:"55-65%",min:55,active:true},
  24. {name:"",value:"65-95%",min:65,active:true},
  25. {name:"",value:"95-100%",min:95,active:true},
  26. ],
  27. co2:[
  28. {name:"",value:"0-450ppm",min:0},
  29. {name:"合理范围",value:"450-700ppm",min:450},
  30. {name:"",value:"700-1000ppm",min:700,active:true},
  31. {name:"",value:"1000-2500ppm",min:1000,active:true},
  32. {name:"",value:"2500-5000ppm",min:2500,active:true}
  33. ],
  34. pm25:[
  35. {name:"优",value:"0~35μg/m³",min:0,active:true},
  36. {name:"良",value:"35~75μg/m³",min:35,active:true},
  37. {name:"轻度污染",value:"75~115μg/m³",min:75,active:true},
  38. {name:"中度污染",value:"115~150μg/m³",min:115,active:true},
  39. {name:"重度污染",value:"150~250μg/m³",min:150,active:true},
  40. {name:"严重污染",value:"大于250μg/m³及以上",min:250,active:true},
  41. ],
  42. hcho:[
  43. {name:"",value:"0-0.05mg/m³",min:0},
  44. {name:"合理范围",value:"0.05-0.08mg/m³",min:0.05},
  45. {name:"",value:"0.08-0.1mg/m³",min:0.08,active:true},
  46. {name:"",value:"0.1-0.15mg/m³",min:0.1,active:true},
  47. {name:"",value:"0.15-0.2mg/m³",min:0.15,active:true}
  48. ],
  49. },
  50. paramName:'',
  51. envType:'',
  52. localName:'',
  53. envValue:"",
  54. tableHight:null,
  55. pointerTop:0,
  56. funcid:"",
  57. spaceId:"",
  58. projectId:"",
  59. tragetChart:[]
  60. },
  61. goBack(){
  62. router.pop()
  63. },
  64. async getChartDate(){
  65. let data={
  66. projectId:this.data.projectId,
  67. spaceId:this.data.spaceId,
  68. funcid:this.data.funcid
  69. }
  70. $.loading();
  71. let res = await getPropertyData(data);
  72. $.hideLoading();
  73. if(!res){
  74. throw "网络错误";
  75. }
  76. let {avg,propertyData,dayTarget}=res;
  77. this.initChartdate(propertyData,dayTarget);
  78. let levelList=[];
  79. this.data.envLevel[this.data.envType].forEach(item=>{
  80. levelList.push(item.min)
  81. })
  82. levelList.push(Number(avg))
  83. let valueIndex = levelList.sort((a,b)=>{return a-b}).findIndex(item=>item===avg);
  84. valueIndex = valueIndex<0?0:valueIndex;
  85. this.setData({pointerTop:38*valueIndex});
  86. },
  87. initChartdate(propertyData,dayTarget){
  88. if(!Array.isArray(propertyData)||!Array.isArray(dayTarget)){
  89. return ;
  90. }
  91. // 目标 { time: "1951",release:0, sales: 38,标准区间: [ 25, 45 ] },
  92. let baseArr=propertyData&&propertyData.slice(1) || [];
  93. let tragetChart = [];
  94. (baseArr.length>1)&&baseArr.forEach(item=>{
  95. item[1] = item[1]=="-9999"?null:item[1];
  96. });
  97. if(baseArr.length===dayTarget.length){
  98. dayTarget.forEach((item,index)=>{
  99. let time ='';
  100. item.time&&(time = item.time.slice(0,2)+':'+item.time.slice(2,4));
  101. let minarea = Number(item[`${this.data.envType}Min`].toFixed(1));
  102. let maxarea = Number(item[`${this.data.envType}Max`].toFixed(1));
  103. let initObj={
  104. time:time,
  105. release:index,
  106. sales:baseArr[index][1],
  107. 标准区间:[minarea,maxarea],
  108. }
  109. tragetChart.push(initObj);
  110. })
  111. }
  112. this.setData({tragetChart})
  113. },
  114. /**
  115. * 生命周期函数--监听页面加载
  116. */
  117. onLoad: function (options) {
  118. options = JSON.parse(decodeURIComponent(JSON.stringify(options)))
  119. let {param,name,localname,spaceid,funcid,projectid} = options
  120. this.setData({paramName:name,envType:param,localName:localname,spaceId:spaceid,funcid,projectId:projectid})
  121. let that= this;
  122. wx.createSelectorQuery().select('.param_list').boundingClientRect(function(rect){
  123. that.setData({'tableHight':rect.height})
  124. }).exec()
  125. this.getChartDate();
  126. },
  127. })