与牧同行-小程序用户端
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.
 

120 lines
2.9 KiB

import http from '../../../utils/api'
const baseUrl = require('../../../utils/baseUrl')
Page({
/**
* 页面的初始数据
*/
data: {
list: [], // 问诊列表数据
loading: true, // 首次加载loading
hasMore: false, // 是否还有更多数据(根据后端分页逻辑调整,本例简单置false)
pageNum: 1, // 当前页码(若需要分页)
pageSize: 10,
total: 0,
baseUrl: baseUrl || '' // 图片前缀
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.getTodayList()
},
/**
* 获取今日问诊列表(第一页)
*/
getTodayList() {
this.setData({ loading: false })
http.today({
data: {
pageNum: this.data.pageNum,
pageSize: this.data.pageSize
// 根据接口实际需要可添加其他参数
},
success: (res) => {
console.log('今日问诊接口返回:', res)
if (res && res.code === 200) {
const rows = res.rows || []
const total = res.total || 0
// 处理图片字段可能为空字符串或null
rows.forEach(item => {
if (!item.images) item.images = ''
})
this.setData({
list: rows,
total: total,
hasMore: rows.length < total && rows.length >= this.data.pageSize // 简单判断
})
} else {
wx.showToast({ title: '数据加载失败', icon: 'none' })
}
},
fail: (err) => {
wx.showToast({ title: '网络错误', icon: 'none' })
console.error(err)
},
complete: () => {
this.setData({ loading: false })
}
})
},
/**
* 加载更多(上拉触底)
*/
loadMore() {
if (!this.data.hasMore) return
// 如果有分页需求,可在此累加pageNum再次请求,并将新数据concat
// 当前根据接口示例无分页参数,故简单提示
wx.showToast({ title: '暂无更多', icon: 'none' })
},
/**
* 跳转详情页
*/
// 查看详情
goDetail: function (e) {
console.log(e);
const data = e.currentTarget.dataset.value
wx.navigateTo({
url: `/pagesA/pages/askingSyDetails/askingSyDetails?data=${encodeURIComponent(JSON.stringify(data))}`,
});
},
/**
* 预览图片
*/
previewImage(e) {
const { src, list } = e.currentTarget.dataset
wx.previewImage({
current: src, // 当前显示图片
urls: list // 所有图片列表
})
},
/**
* 下拉刷新(如果需要)
*/
onPullDownRefresh() {
this.setData({ pageNum: 1 }, () => {
this.getTodayList()
wx.stopPullDownRefresh()
})
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
return {
title: '今日问诊列表',
path: '/pages/consult/today/today'
}
}
})