| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | // nova-werun/pages/home/ranking/index.jsconst Parse = getApp().Parse;const company = getApp().globalData.company;Page({    /**     * 页面的初始数据     */    data: {        //屏幕高度        statusBarHeight: 0, // 状态栏高度        screenHeight: 0, // 屏幕高度        customHeight: 0, // 自定义导航栏高度(如小程序右上角胶囊按钮)        bottomNavHeight: 0, // 底部导航栏高度        contentHeight: 0, // 可用内容高度        contentHeight2: 0,        contentpadding: 0, //顶部padding高度        //        changetitle:'today',        //本日排行        todayList:[],        myList:[]    },    /**     * 生命周期函数--监听页面加载     */    onLoad: function (options) {        // 计算        const systemInfo = wx.getSystemInfoSync();        const statusBarHeight = systemInfo.statusBarHeight || 0;        const screenHeight = systemInfo.screenHeight || 0;        const custom = wx.getMenuButtonBoundingClientRect();        const customHeight = custom.height + 10 + 2 || 0;        const bottomNavHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom || 0;        const contentpadding = (statusBarHeight + customHeight) * 750 / systemInfo.windowWidth;        const contentHeight = (screenHeight - bottomNavHeight - statusBarHeight - customHeight) * 750 / systemInfo.windowWidth;        this.setData({            statusBarHeight,            screenHeight,            customHeight,            bottomNavHeight,            contentpadding,            contentHeight        });        this.gettoday()    },    /**     * 生命周期函数--监听页面初次渲染完成     */    onReady: function () {    },    /**     * 生命周期函数--监听页面显示     */    onShow: function () {    },    /**     * 生命周期函数--监听页面隐藏     */    onHide: function () {    },    /**     * 生命周期函数--监听页面卸载     */    onUnload: function () {    },    /**     * 页面相关事件处理函数--监听用户下拉动作     */    onPullDownRefresh: function () {    },    /**     * 页面上拉触底事件的处理函数     */    onReachBottom: function () {    },    /**     * 用户点击右上角分享     */    onShareAppMessage: function () {    },    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({                todayList,                myList            });                console.log(this.data.todayList, this.data.myList);        } catch (error) {            console.error('Error fetching today\'s data:', error);        }    },})
 |