const wxCharts = require('../../../utils/wxcharts.js'); const util = require('../../../utils/util.js'); const api = require('../../../utils/api.js'); const app = getApp() let ringChart = null; Page({ /** * 页面的初始数据 */ data: { userInfo: '', totalInfo: '', startDate: '', endDate: '', listCollege: '', listDept: '', userArray: [ [], [] ], value: [0, 0], state: '', type: 1, listTitle: '无进出记录人员', list: [] }, getCurrentDate: function(e) { let date = new Date(); let year = date.getFullYear(); let month = date.getMonth() + 1; let day = date.getDate(); month = month < 10 ? "0" + month : month; day = day < 10 ? "0" + day : day; date = year + '-' + month + '-' + day this.setData({ startDate: date, endDate: date }) }, bindStartDateChange: function(e) { this.setData({ startDate: e.detail.value }) this.getStatisticsInfo(); this.qiehuan(this.data.type); }, bindendDateChange: function(e) { this.setData({ endDate: e.detail.value }) this.getStatisticsInfo(); this.qiehuan(this.data.type); }, getCollegeInfo: function(e) { const that = this; util.httpRequest(api.getDeptInfo, { companyId: that.data.userInfo.companyId, level: 1 }, 'post').then(res => { let arrayCollege = []; if (res.data.length >= 1) { for (let i = 0; i < res.data.length; i++) { arrayCollege.push(res.data[i].deptName) if (i == res.data.length - 1) { let userArray = that.data.userArray; userArray[0] = arrayCollege; that.setData({ userArray: userArray, listCollege: res.data }) that.getDeptInfo(); } } } }) }, getDeptInfo: function(e) { const that = this; util.httpRequest(api.getDeptInfo, { companyId: that.data.userInfo.companyId, parentId: that.data.listCollege[that.data.value[0]].deptId }, 'post').then(res => { let arrayDept = []; if (res.data.length >= 1) { for (let i = 0; i < res.data.length; i++) { arrayDept.push(res.data[i].deptName) if (i == res.data.length - 1) { let userArray = that.data.userArray userArray[1] = arrayDept that.setData({ userArray: userArray, listDept: res.data }) that.getStatisticsInfo(); that.qiehuan(that.data.type); } } } else { that.getStatisticsInfo(); that.qiehuan(that.data.type); let userArray = that.data.userArray; userArray[1] = arrayDept that.setData({ userArray: userArray, listDept: '', list: '' }) } }) }, bindUserChange: function(e) { }, columnChange: function(e) { const that = this; let value = that.data.value if (e.detail.column == 0) { value[1] = 0 } value[e.detail.column] = e.detail.value that.setData({ value: value }) if (e.detail.column == 0) { that.setData({ listDept: '', list: '' }) that.getDeptInfo() } else if (e.detail.column == 1) { that.getStatisticsInfo(); that.qiehuan(that.data.type) } }, getChart: function(e) { const that = this; let unAccessCountP = (that.data.totalInfo.unAccessCount / that.data.totalInfo.total).toFixed(2)*100; let outP = (that.data.totalInfo.out / that.data.totalInfo.total).toFixed(2)*100; let inP = (that.data.totalInfo.in / that.data.totalInfo.total).toFixed(2)*100; let laterInP = (that.data.totalInfo.laterIn / that.data.totalInfo.total).toFixed(2)*100; let unInP = (that.data.totalInfo.unIn / that.data.totalInfo.total).toFixed(2)*100; let unOutP = (that.data.totalInfo.unOut / that.data.totalInfo.total).toFixed(2)*100; that.setData({ 'totalInfo.unAccessCountP': unAccessCountP }) if (that.data.totalInfo.total == 0) { ringChart = new wxCharts({ animation: true, canvasId: 'ringCanvas', type: 'ring', extra: { ringWidth: 10, pie: { offsetAngle: -40 } }, title: { name: '归勤率', color: '#333', fontSize: 15 }, subtitle: { name: '100%', color: '#6282f4', fontSize: 18 }, series: [{ name: '已归宿舍人员', data: 1, stroke: false, color: '#7792f5' }, ], disablePieStroke: true, width: 160, height: 160, dataLabel: false, legend: false, background: '#fff', padding: 0 }); ringChart.addEventListener('renderComplete', () => { console.log('renderComplete'); }); setTimeout(() => { ringChart.stopAnimation(); }, 500); } else { ringChart = new wxCharts({ animation: true, canvasId: 'ringCanvas', type: 'ring', extra: { ringWidth: 10, pie: { offsetAngle: -40 } }, title: { name: '归勤率', color: '#333', fontSize: 15 }, subtitle: { name: that.data.totalInfo.attendance * 100 + '%', color: '#6282f4', fontSize: 18 }, series: [{ name: '无进出记录人员', data: that.data.totalInfo.unAccessCount / that.data.totalInfo.total, stroke: false, color: '#ed5c68' }, { name: '已出宿舍人员', data: that.data.totalInfo.out / that.data.totalInfo.total, stroke: false, color: '#f5a786' }, { name: '已归宿舍人员', data: that.data.totalInfo.in / that.data.totalInfo.total, stroke: false, color: '#7792f5' }, { name: '晚归宿舍人员', data: that.data.totalInfo.laterIn / that.data.totalInfo.total, stroke: false, color: '#79bef4' }, { name: '未归宿舍人员', data: that.data.totalInfo.unIn / that.data.totalInfo.total, stroke: false, color: '#5be0c1' }, { name: '未出宿舍人员', data: that.data.totalInfo.unOut / that.data.totalInfo.total, stroke: false, color: '#ac91f7' }], disablePieStroke: true, width: 160, height: 160, dataLabel: false, legend: false, background: '#fff', padding: 0 }); ringChart.addEventListener('renderComplete', () => { console.log('renderComplete'); }); setTimeout(() => { ringChart.stopAnimation(); }, 500); } }, touchHandler: function(e) { console.log(ringChart.getCurrentDataIndex(e)); }, getStatisticsInfo: function(e) { const that = this; let deptId; if (that.data.listDept != '') { deptId = that.data.listDept[that.data.value[1]].deptId } else { deptId = that.data.listCollege[that.data.value[0]].deptId } util.httpRequest(api.getStatisticsInfo, { start: that.data.startDate, end: that.data.endDate, deptId: deptId }, 'post').then(res => { that.setData({ totalInfo: res.data.data }) that.getChart(); }) }, getUnInInfo: function(e) { const that = this; let deptId; if (that.data.listDept != '') { deptId = that.data.listDept[that.data.value[1]].deptId } else { deptId = that.data.listCollege[that.data.value[0]].deptId } util.httpRequest(api.getUnInInfo, { start: that.data.startDate, end: that.data.endDate, page: 1, rows: 20, deptId: deptId }, 'post').then(res => { that.setData({ list: res.data.data.data }) }) }, getOutAndInInfo: function(e) { const that = this; let deptId; if (that.data.listDept != '') { deptId = that.data.listDept[that.data.value[1]].deptId } else { deptId = that.data.listCollege[that.data.value[0]].deptId } util.httpRequest(api.getOutAndInInfo, { startDate: that.data.startDate, endDate: that.data.endDate, page: 1, rows: 20, deptId: deptId, state: that.data.state }, 'post').then(res => { that.setData({ list: res.data.data.data }) }) }, getUnOut: function(e) { const that = this; let deptId; if (that.data.listDept != '') { deptId = that.data.listDept[that.data.value[1]].deptId } else { deptId = that.data.listCollege[that.data.value[0]].deptId } util.httpRequest(api.getUnOut, { start: that.data.startDate, end: that.data.endDate, page: 1, rows: 20, deptId: deptId }, 'post').then(res => { that.setData({ list: res.data.data.data }) }) }, getLateIn: function(e) { const that = this; let deptId; if (that.data.listDept != '') { deptId = that.data.listDept[that.data.value[1]].deptId } else { deptId = that.data.listCollege[that.data.value[0]].deptId } util.httpRequest(api.getLateIn, { start: that.data.startDate, end: that.data.endDate, page: 1, rows: 20, deptId: deptId }, 'post').then(res => { that.setData({ list: res.data.data.data }) }) }, getInUnOut: function(e) { const that = this; let deptId; if (that.data.listDept != '') { deptId = that.data.listDept[that.data.value[1]].deptId } else { deptId = that.data.listCollege[that.data.value[0]].deptId } util.httpRequest(api.getInUnOunt, { start: that.data.startDate, end: that.data.endDate, page: 1, rows: 20, deptId: deptId }, 'post').then(res => { that.setData({ list: res.data.data.data }) }) }, qiehuan: function(e) { const that = this; let type = e.currentTarget ? e.currentTarget.dataset.type : e; let state = e.currentTarget ? e.currentTarget.dataset.state : that.data.state; if (type == 1) { that.setData({ listTitle: '无进出记录人员', type: 1 }) that.getUnOut(); } else if (type == 2) { that.setData({ listTitle: '已出宿舍人员', type: 2, state: state }) that.getOutAndInInfo(); } else if (type == 3) { that.setData({ listTitle: '已归宿舍人员', type: 3, state: state }) that.getOutAndInInfo(); } else if (type == 4) { that.setData({ listTitle: '晚归宿舍人员', type: 4 }) that.getLateIn(); } else if (type == 5) { that.setData({ listTitle: '未归宿舍人员', type: 5 }) that.getUnInInfo(); } else if (type == 6) { that.setData({ listTitle: '未出宿舍人员', type: 6 }) that.getInUnOut(); } }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { const that = this; that.getCurrentDate(); that.data.userInfo = wx.getStorageSync('user'); that.getCollegeInfo(); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function() { }, /** * 生命周期函数--监听页面显示 */ onShow: function() { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function() { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function() { } })