import request from '~/api/request'; Page({ /** * 页面的初始数据 */ data: { newTime: '', timeType: 2, list: [], page: 1, pageSize: 21, loading: false, noMore: false, hasMore: true }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { const now = new Date() const year = now.getFullYear() const month = now.getMonth() + 1 const day = now.getDate() const hours = now.getHours() const minutes = now.getMinutes() const seconds = now.getSeconds() const formattedTime = `${year}年${month.toString().padStart(2, '0')}月${day.toString().padStart(2, '0')}日` this.setData({ newTime: formattedTime }) }, async getList(isLoadMore = false){ if (this.data.loading || (!isLoadMore && !this.data.hasMore)) { return } this.setData({ loading: true }) try { const res = await request('patient/medicine_records', 'GET', { time_type: this.data.timeType, status: 0, page: this.data.page, page_size: this.data.pageSize }) const arr = res.list.map(item => { item.detail = JSON.parse(item.detail) return item }) // 按照 medicine_date 字段将数组分组为二维数组 const groupedArr = [] const dateGroups = {} for (const item of arr) { const date = item.medicine_date || 'unknown' if (!dateGroups[date]) { dateGroups[date] = { medicine_date: date, dayList: [] } } dateGroups[date].dayList.push(item) } // 将分组后的数据转换为数组 for (const date in dateGroups) { groupedArr.push(dateGroups[date]) } // 判断是否还有更多数据 const hasMore = arr.length === this.data.pageSize if (isLoadMore) { // 加载更多时,合并数据 this.setData({ list: [...this.data.list, ...groupedArr], page: this.data.page + 1, hasMore: hasMore, noMore: !hasMore }) } else { // 首次加载或切换时间类型时,重置数据 this.setData({ list: groupedArr, page: 2, hasMore: hasMore, noMore: !hasMore }) } } catch (error) { console.error('获取数据失败:', error) wx.showToast({ title: '获取数据失败', icon: 'none' }) } finally { this.setData({ loading: false }) } }, // 滚动到底部加载更多 onLoadMore() { if (this.data.hasMore && !this.data.loading) { this.getList(true) } }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { this.getList() }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { }, changeBtn(e) { if(this.data.timeType != e.target.dataset.index){ this.setData({ timeType: e.target.dataset.index, page: 1, hasMore: true, noMore: false }) this.getList() } } })