You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							242 lines
						
					
					
						
							7.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							242 lines
						
					
					
						
							7.1 KiB
						
					
					
				| // package/subSystem/subSystem.js | |
| import * as echarts from '../components/ec-canvas/echarts'; | |
| import { | |
|     getSubSystemPatrolAbout | |
| } from "../../utils/getApiUrl"; | |
| import { | |
|     Request | |
| } from "../../common"; | |
| const moment = require("../../utils/moment"); | |
| 
 | |
| 
 | |
| 
 | |
| Page({ | |
|     initECharts(option) { | |
|         this.ecComponent.init((canvas, width, height, dpr) => { | |
|           const chart = echarts.init(canvas, null, { | |
|             width: width, | |
|             height: height, | |
|             devicePixelRatio: dpr, | |
|           }); | |
|           // 设置图表的配置 | |
|           chart.setOption(option); | |
|      | |
|           // 将 ECharts 实例保存在数据中 | |
|           this.chart = chart; | |
|      | |
|           // 返回 ECharts 实例 | |
|           return chart; | |
|         }); | |
|       }, | |
|     /** | |
|      * 页面的初始数据 | |
|      */ | |
|     data: { | |
|         ec: { | |
|             // lazyLoad: true, // 延迟加载 ECharts | |
|         }, | |
|         date: '', | |
|         show: true, | |
|         currentPatrolCount: 0, //当月巡检次数 | |
|         currentRepairCount: 0, //当月维修次数 | |
|         level1Count: 0, //轻微 | |
|         level2Count: 0, //中度 | |
|         level3Count: 0, //严重 | |
|         selectedDate: new Date(), // 设置默认选中的日期为当前日期 | |
|         formatter(day) { | |
| 
 | |
|             return day; | |
|         }, | |
| 
 | |
|     }, | |
| 
 | |
|     onDisplay() { | |
|         this.setData({ | |
|             show: true | |
|         }); | |
|     }, | |
|     onClose() { | |
|         this.setData({ | |
|             show: false | |
|         }); | |
|     }, | |
| 
 | |
|     onConfirm(event) { | |
|         this.setData({ | |
|             show: false, | |
|             date: this.formatDate(event.detail), | |
|         }); | |
|     }, | |
| 
 | |
|     /** | |
|      * 生命周期函数--监听页面加载 | |
|      */ | |
|     onLoad: function (options) { | |
|         const {windowHeight}=wx.getSystemInfoSync() | |
|         const pageHeight=windowHeight - 48 | |
|         const that=this | |
|         wx.showLoading({ | |
|             title: '加载中' | |
|         }) | |
|         // const that = this; | |
|         wx.setNavigationBarTitle({ | |
|             title: options.key, | |
|         }); | |
|         //加载初始化数据 | |
|         that.getSubSystemPatrolAbout(options) | |
|         //初始化图表的配置项 | |
|         // 其他渲染逻辑 | |
|         // 创建一个 Date 对象来获取当前日期 | |
|         const currentDate = new Date(); | |
|         // 获取当前年份 | |
|         const currentYear = currentDate.getFullYear(); | |
|         // 获取当前月份(注意,月份是从 0 到 11 表示,所以需要加 1) | |
|         const currentMonth = currentDate.getMonth() + 1; | |
|         // 获取当前月份的第一天和最后一天 | |
|         const nextMonth = new Date().getMonth() + 1; | |
|         const firstDay = new Date().setDate(1); | |
|         const lastDay = new Date().setMonth(nextMonth, 1) - 86400000; | |
|         // 更新数据,将年份和月份传递给 WXML 页面 | |
|         that.setData({ | |
|             currentYear: currentYear, | |
|             currentMonth: currentMonth, | |
|             lastDay: lastDay, | |
|             firstDay: firstDay, | |
|             pageHeight:pageHeight+'px' | |
|         }); | |
|         | |
| 
 | |
|         wx.hideLoading() | |
| 
 | |
|     }, | |
|     //过滤轻微,中度,重度的巡检个数 | |
|     filterLevelCount:function(list,level){ | |
|      return   list?.filter(i => { | |
|             const content = i?.points?.inspectContent | |
|             if (content) { | |
|                 for (let key in content) { | |
|                     if (content.hasOwnProperty(key)) { | |
|                         const subObject = content[key]; | |
|                         return subObject.level===level | |
|                     } | |
|                 } | |
|             } | |
|         })?.length | |
|     }, | |
|     getSubSystemPatrolAbout: function (options) { | |
|         let that = this; | |
|         //当月开始时间 | |
|         const STime = moment().startOf('month').format('YYYY-MM-DD') | |
|         //当月结束时间 | |
|         const ETime = moment().endOf('month').format('YYYY-MM-DD') | |
|         //子系统关键字 | |
|         let keywords = options.key | |
|         // keywords = '管廊' | |
|         const query = { | |
|             STime, | |
|             ETime, | |
|             keywords | |
|         } | |
|         Request.get(getSubSystemPatrolAbout(query)).then(res => { | |
|             if (res) { | |
|                 //巡查内容 | |
|                 that.setData({ | |
|                     currentRepairCount: res?.filter(i => i?.patrolRecordIssueHandles[0]?.yanshoushijian && parseInt(moment(i?.patrolRecordIssueHandles[0]?.yanshoushijian).format('YYYYMMDD')) === parseInt(moment().format('YYYYMMDD'))).length || 0, | |
|                     currentPatrolCount: res.length, | |
|                     level1Count: that.filterLevelCount(res,'轻微')||0, | |
|                     level2Count: that.filterLevelCount(res,'中度')||0, | |
|                     level3Count: that.filterLevelCount(res,'严重')||0, | |
|                     formatter:function(e){ | |
|                         res?.map(i=>{ | |
|                             if(moment(i.inspectionTime).format('YYYY-MM-DD')==moment(e.date).format('YYYY-MM-DD')){ | |
|                                 if( i.patrolRecordIssueHandles.length==0){ | |
|                                     e.bottomInfo = '.';e.className = 'greenClass' | |
|                                 }else if( i.patrolRecordIssueHandles.length&& i?.patrolRecordIssueHandles[0]?.yanshoushijian && parseInt(moment(i?.patrolRecordIssueHandles[0]?.yanshoushijian).format('YYYYMMDD')) === parseInt(moment().format('YYYYMMDD'))){ | |
|                                     e.bottomInfo = '.';e.className = 'yellowClass' | |
|                                 } | |
|                             } | |
|                         }) | |
|                         return e | |
|                     } | |
|                 }) | |
|                 that.ecComponent = that.selectComponent('#mychart-dom-pie'); | |
|                 console.log('that.level1Count',this.data.level2Count) | |
|                 var option = { | |
|                     backgroundColor: "#ffffff", | |
|                     legend: { | |
|                         bottom: 10, | |
|                         left: 'center', | |
|                     }, | |
|                     series: [{ | |
|                         label: { | |
|                             normal: { | |
|                                 fontSize: 14 | |
|                             } | |
|                         }, | |
|                         type: 'pie', | |
|                         center: ['50%', '50%'], | |
|                         radius: ['20%', '40%'], | |
|                         data:[ {name:'轻微',value:that.data.level1Count}, | |
|                         {name:'中度',value:that.data.level2Count}, | |
|                         {name:'重度',value:that.data.level3Count}] | |
|                     }] | |
|                 }; | |
|                 that.initECharts(option); | |
|                 | |
|                 wx.hideLoading() | |
|             } else { | |
|                 wx.hideLoading(); | |
|             } | |
|         }) | |
|     }, | |
|     /** | |
|      * 生命周期函数--监听页面初次渲染完成 | |
|      */ | |
| 
 | |
|     onReady() { | |
|         | |
| 
 | |
|     }, | |
| 
 | |
|     /** | |
|      * 生命周期函数--监听页面显示 | |
|      */ | |
|     onShow() { | |
| 
 | |
|     }, | |
| 
 | |
|     /** | |
|      * 生命周期函数--监听页面隐藏 | |
|      */ | |
|     onHide() { | |
| 
 | |
|     }, | |
| 
 | |
|     /** | |
|      * 生命周期函数--监听页面卸载 | |
|      */ | |
|     onUnload() { | |
| 
 | |
|     }, | |
| 
 | |
|     /** | |
|      * 页面相关事件处理函数--监听用户下拉动作 | |
|      */ | |
|     onPullDownRefresh() { | |
|         getSubSystemPatrolAbout() | |
|     }, | |
| 
 | |
|     /** | |
|      * 页面上拉触底事件的处理函数 | |
|      */ | |
|     onReachBottom() { | |
| 
 | |
|     }, | |
| 
 | |
|     /** | |
|      * 用户点击右上角分享 | |
|      */ | |
|     onShareAppMessage() { | |
| 
 | |
|     } | |
| }) |