|  | @@ -1,4 +1,6 @@
 | 
	
		
			
				|  |  |  // nova-werun/pages/home/ranking/index.js
 | 
	
		
			
				|  |  | +const Parse = getApp().Parse;
 | 
	
		
			
				|  |  | +const company = getApp().globalData.company;
 | 
	
		
			
				|  |  |  Page({
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -14,7 +16,10 @@ Page({
 | 
	
		
			
				|  |  |          contentHeight2: 0,
 | 
	
		
			
				|  |  |          contentpadding: 0, //顶部padding高度
 | 
	
		
			
				|  |  |          //
 | 
	
		
			
				|  |  | -        changetitle:'yundong'
 | 
	
		
			
				|  |  | +        changetitle:'today',
 | 
	
		
			
				|  |  | +        //本日排行
 | 
	
		
			
				|  |  | +        todayList:[],
 | 
	
		
			
				|  |  | +        myList:[]
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -39,6 +44,7 @@ Page({
 | 
	
		
			
				|  |  |              contentpadding,
 | 
	
		
			
				|  |  |              contentHeight
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | +        this.gettoday()
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -89,16 +95,72 @@ Page({
 | 
	
		
			
				|  |  |      onShareAppMessage: function () {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    change(){
 | 
	
		
			
				|  |  | -        if(this.data.changetitle=='yundong'){
 | 
	
		
			
				|  |  | -            this.setData({
 | 
	
		
			
				|  |  | -                changetitle:'zhaijia'
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -        }else{
 | 
	
		
			
				|  |  | +    change() {
 | 
	
		
			
				|  |  | +        // 使用数组来简化切换逻辑
 | 
	
		
			
				|  |  | +        const titles = ['today', 'weekdday', 'month'];
 | 
	
		
			
				|  |  | +        const currentIndex = titles.indexOf(this.data.changetitle);//获取index
 | 
	
		
			
				|  |  | +        const nextIndex = (currentIndex + 1) % titles.length; // 循环切换
 | 
	
		
			
				|  |  | +        this.setData({
 | 
	
		
			
				|  |  | +            changetitle: titles[nextIndex]
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        if(this.data.changetitle=='today'){
 | 
	
		
			
				|  |  | +            this.gettoday()
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(this.data.changetitle=='weekdday'){
 | 
	
		
			
				|  |  | +           console.log('weekdday');
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(this.data.changetitle=='month'){
 | 
	
		
			
				|  |  | +            console.log('month');
 | 
	
		
			
				|  |  | +         }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 获取本日排行
 | 
	
		
			
				|  |  | +    async gettoday() {
 | 
	
		
			
				|  |  | +        const currentUser = Parse.User.current();
 | 
	
		
			
				|  |  | +        let ActivityDataquery = new Parse.Query('ActivityData');
 | 
	
		
			
				|  |  | +        ActivityDataquery.equalTo('company', company);
 | 
	
		
			
				|  |  | +        ActivityDataquery.equalTo('type', "today");
 | 
	
		
			
				|  |  | +        ActivityDataquery.notEqualTo('isDeleted', true);
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        // 获取今天的日期
 | 
	
		
			
				|  |  | +        const today = new Date();
 | 
	
		
			
				|  |  | +        const todayStart = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // 今天的开始时间
 | 
	
		
			
				|  |  | +        const todayEnd = new Date(todayStart);
 | 
	
		
			
				|  |  | +        todayEnd.setHours(23, 59, 59, 999); // 今天的结束时间
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +        // 在查询条件中添加对 createdAt 的限制
 | 
	
		
			
				|  |  | +        ActivityDataquery.greaterThanOrEqualTo('createdAt', todayStart);
 | 
	
		
			
				|  |  | +        ActivityDataquery.lessThanOrEqualTo('createdAt', todayEnd);
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        // 根据 steps 字段进行降序排序
 | 
	
		
			
				|  |  | +        ActivityDataquery.descending('steps');
 | 
	
		
			
				|  |  | +        ActivityDataquery.include('user');
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            let P = await ActivityDataquery.find();
 | 
	
		
			
				|  |  | +            let todayList = P.map(item => item.toJSON());
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +            // 初始化 myList
 | 
	
		
			
				|  |  | +            let myList = [];
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  | +            // 找到当前用户的数据并计算排名
 | 
	
		
			
				|  |  | +            todayList.forEach((item, index) => {
 | 
	
		
			
				|  |  | +                if (item.user.objectId === currentUser.id) {
 | 
	
		
			
				|  |  | +                    myList.push({
 | 
	
		
			
				|  |  | +                        ...item, // 包含用户数据
 | 
	
		
			
				|  |  | +                        rank: index + 1 // 计算排名(index 从 0 开始,所以加 1)
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +            // 更新页面数据
 | 
	
		
			
				|  |  |              this.setData({
 | 
	
		
			
				|  |  | -                changetitle:'yundong'
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +                todayList,
 | 
	
		
			
				|  |  | +                myList
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +            console.log(this.data.todayList, this.data.myList);
 | 
	
		
			
				|  |  | +        } catch (error) {
 | 
	
		
			
				|  |  | +            console.error('Error fetching today\'s data:', error);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |  })
 |