tousujianyiList.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. Page({
  2. /**
  3. * 页面的初始数据
  4. */
  5. data: {
  6. noticeList: [
  7. {
  8. id: 1,
  9. title: '关于小区健身器材维修的建议关于小区健身器材维修的建议关于小区健身器材维修的建议',
  10. content: '建议对小区内的健身器材进行定期维护和检修',
  11. contact: '张三',
  12. phone: '13800138000',
  13. date: '2024-03-15',
  14. hasAttachment: true,
  15. attachments: [
  16. '/static_file/background.png',
  17. '/static_file/card.png'
  18. ],
  19. isReplied: true,
  20. replyTime: '2025-3-12 12:10',
  21. replyContent: '建议增加线上开票功能,线下开票太麻烦了'
  22. },
  23. {
  24. id: 2,
  25. title: '关于增设充电桩的投诉',
  26. content: '小区电动车充电设施不足,希望能够增加充电桩',
  27. contact: '李四',
  28. phone: '13900139000',
  29. date: '2024-03-14',
  30. hasAttachment: false,
  31. attachments: [],
  32. isReplied: false,
  33. replyTime: '',
  34. replyContent: ''
  35. },
  36. {
  37. id: 3,
  38. title: '物业服务态度问题反馈',
  39. content: '反映部分物业人员服务态度需要改进',
  40. contact: '王五',
  41. phone: '13700137000',
  42. date: '2024-03-13',
  43. hasAttachment: true,
  44. attachments: [
  45. '/static_file/add.png'
  46. ],
  47. isReplied: true,
  48. replyTime: '2025-3-10 09:30',
  49. replyContent: '已经对相关人员进行培训,感谢您的反馈'
  50. }
  51. ],
  52. imageList: [], // 存储图片路径的数组
  53. showCustomPreview: false, // 是否显示自定义预览
  54. currentPreviewImages: [], // 当前预览的图片数组
  55. currentPreviewIndex: 0 // 当前预览的图片索引
  56. },
  57. /**
  58. * 生命周期函数--监听页面加载
  59. */
  60. onLoad(options) {
  61. this.getNoticeList()
  62. },
  63. /**
  64. * 生命周期函数--监听页面初次渲染完成
  65. */
  66. onReady() {
  67. },
  68. /**
  69. * 生命周期函数--监听页面显示
  70. */
  71. onShow() {
  72. },
  73. /**
  74. * 生命周期函数--监听页面隐藏
  75. */
  76. onHide() {
  77. },
  78. /**
  79. * 生命周期函数--监听页面卸载
  80. */
  81. onUnload() {
  82. },
  83. /**
  84. * 页面相关事件处理函数--监听用户下拉动作
  85. */
  86. onPullDownRefresh() {
  87. },
  88. /**
  89. * 页面上拉触底事件的处理函数
  90. */
  91. onReachBottom() {
  92. },
  93. /**
  94. * 用户点击右上角分享
  95. */
  96. onShareAppMessage() {
  97. },
  98. // 获取列表数据
  99. getNoticeList() {
  100. // wx.request({
  101. // url: 'YOUR_API_URL',
  102. // success: (res) => {
  103. // this.setData({
  104. // noticeList: res.data
  105. // })
  106. // }
  107. // })
  108. },
  109. previewImage: function(e) {
  110. // 获取当前点击项的id
  111. const id = e.currentTarget.dataset.id;
  112. // 根据id找到对应的投诉建议项
  113. const item = this.data.noticeList.find(item => item.id === id);
  114. // 确保有附件
  115. if (item && item.hasAttachment && item.attachments.length > 0) {
  116. this.setData({
  117. showCustomPreview: true,
  118. currentPreviewImages: item.attachments,
  119. currentPreviewIndex: 0
  120. });
  121. } else {
  122. console.log('没有找到附件或附件为空');
  123. }
  124. },
  125. // 关闭预览
  126. closePreview: function() {
  127. this.setData({
  128. showCustomPreview: false
  129. });
  130. },
  131. // 切换预览图片
  132. changePreviewImage: function(e) {
  133. const direction = e.currentTarget.dataset.direction;
  134. let newIndex = this.data.currentPreviewIndex;
  135. if (direction === 'prev') {
  136. newIndex = newIndex > 0 ? newIndex - 1 : this.data.currentPreviewImages.length - 1;
  137. } else {
  138. newIndex = newIndex < this.data.currentPreviewImages.length - 1 ? newIndex + 1 : 0;
  139. }
  140. this.setData({
  141. currentPreviewIndex: newIndex
  142. });
  143. },
  144. // 防止点击图片内容时关闭预览
  145. preventBubble: function() {
  146. return;
  147. },
  148. // 跳转到详情页
  149. goToDetail(e) {
  150. const id = e.currentTarget.dataset.id
  151. const item = this.data.noticeList.find(item => item.id === id);
  152. if (item.isReplied) {
  153. // 如果已回复,跳转到预览页面
  154. wx.navigateTo({
  155. url: `/pages/tousujianyi/tousujianyi?id=${id}&mode=preview`
  156. })
  157. } else {
  158. // 如果未回复,跳转到普通详情页
  159. wx.navigateTo({
  160. url: `/pages/tousujianyiDetail/tousujianyiDetail?id=${id}`
  161. })
  162. }
  163. },
  164. // 跳转到表单页
  165. goToForm() {
  166. wx.navigateTo({
  167. url: '/pages/tousujianyi/tousujianyi'
  168. })
  169. },
  170. // 返回上一页
  171. goBack() {
  172. wx.navigateBack()
  173. },
  174. // 假设您从服务器获取数据的函数
  175. getDataFromServer: function() {
  176. // 示例:从服务器获取数据
  177. wx.request({
  178. url: 'your_api_url',
  179. success: (res) => {
  180. // 假设返回的数据中包含图片数组
  181. const images = res.data.images || [];
  182. this.setData({
  183. imageList: images
  184. });
  185. }
  186. });
  187. }
  188. })