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

119 lines
2.9 KiB

  1. import http from '../../../utils/api'
  2. const baseUrl = require('../../../utils/baseUrl')
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. list: [], // 问诊列表数据
  9. loading: true, // 首次加载loading
  10. hasMore: false, // 是否还有更多数据(根据后端分页逻辑调整,本例简单置false)
  11. pageNum: 1, // 当前页码(若需要分页)
  12. pageSize: 10,
  13. total: 0,
  14. baseUrl: baseUrl || '' // 图片前缀
  15. },
  16. /**
  17. * 生命周期函数--监听页面加载
  18. */
  19. onLoad(options) {
  20. this.getTodayList()
  21. },
  22. /**
  23. * 获取今日问诊列表第一页
  24. */
  25. getTodayList() {
  26. this.setData({ loading: false })
  27. http.today({
  28. data: {
  29. pageNum: this.data.pageNum,
  30. pageSize: this.data.pageSize
  31. // 根据接口实际需要可添加其他参数
  32. },
  33. success: (res) => {
  34. console.log('今日问诊接口返回:', res)
  35. if (res && res.code === 200) {
  36. const rows = res.rows || []
  37. const total = res.total || 0
  38. // 处理图片字段可能为空字符串或null
  39. rows.forEach(item => {
  40. if (!item.images) item.images = ''
  41. })
  42. this.setData({
  43. list: rows,
  44. total: total,
  45. hasMore: rows.length < total && rows.length >= this.data.pageSize // 简单判断
  46. })
  47. } else {
  48. wx.showToast({ title: '数据加载失败', icon: 'none' })
  49. }
  50. },
  51. fail: (err) => {
  52. wx.showToast({ title: '网络错误', icon: 'none' })
  53. console.error(err)
  54. },
  55. complete: () => {
  56. this.setData({ loading: false })
  57. }
  58. })
  59. },
  60. /**
  61. * 加载更多上拉触底
  62. */
  63. loadMore() {
  64. if (!this.data.hasMore) return
  65. // 如果有分页需求,可在此累加pageNum再次请求,并将新数据concat
  66. // 当前根据接口示例无分页参数,故简单提示
  67. wx.showToast({ title: '暂无更多', icon: 'none' })
  68. },
  69. /**
  70. * 跳转详情页
  71. */
  72. // 查看详情
  73. goDetail: function (e) {
  74. console.log(e);
  75. const data = e.currentTarget.dataset.value
  76. wx.navigateTo({
  77. url: `/pagesA/pages/askingSyDetails/askingSyDetails?data=${encodeURIComponent(JSON.stringify(data))}`,
  78. });
  79. },
  80. /**
  81. * 预览图片
  82. */
  83. previewImage(e) {
  84. const { src, list } = e.currentTarget.dataset
  85. wx.previewImage({
  86. current: src, // 当前显示图片
  87. urls: list // 所有图片列表
  88. })
  89. },
  90. /**
  91. * 下拉刷新如果需要
  92. */
  93. onPullDownRefresh() {
  94. this.setData({ pageNum: 1 }, () => {
  95. this.getTodayList()
  96. wx.stopPullDownRefresh()
  97. })
  98. },
  99. /**
  100. * 用户点击右上角分享
  101. */
  102. onShareAppMessage() {
  103. return {
  104. title: '今日问诊列表',
  105. path: '/pages/consult/today/today'
  106. }
  107. }
  108. })