imghome.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. // subpackages/dahome/dahome.js
  2. import { models, db, _ } from '../../utils/cloudbase.js'
  3. Page({
  4. data: {
  5. // levelOptions: ['初级', '中级', '高级'],
  6. // selectedLevelIndex: 0,
  7. typeOptions: ['1段', '2段', '3段'],
  8. selectedTypeIndex: 0,
  9. items: [],
  10. souimg: '',
  11. xialaimg: '',
  12. pageNumber: 1,
  13. pageSize: 10,
  14. hasMore: true, // 是否还有更多数据
  15. isLoading: false, // 防止多次触发
  16. searchText: '',
  17. // goods_9: '',
  18. },
  19. onLoad() {
  20. // 列表数据
  21. this.getdatalist()
  22. // 获取图片
  23. const fileIDs = [
  24. 'cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/images/icon/sou.png',
  25. 'cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/images/icon/xiala.png',
  26. // 'cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/images/goods/goods_9.jpg'
  27. ];
  28. // 并发下载多个 fileID
  29. Promise.all(
  30. fileIDs.map(fileID => wx.cloud.downloadFile({ fileID }))
  31. ).then(results => {
  32. // 每个 result 对应一个下载结果
  33. const tempFilePaths = results.map(r => r.tempFilePath);
  34. console.log('全部下载成功:', tempFilePaths);
  35. this.setData({
  36. souimg: tempFilePaths[0],
  37. xialaimg: tempFilePaths[1],
  38. // goods_9: tempFilePaths[2],
  39. });
  40. }).catch(err => {
  41. console.error('有文件下载失败:', err);
  42. });
  43. },
  44. onReachBottom() {
  45. // 上拉触底事件的处理函数
  46. this.loadMore();
  47. },
  48. loadMore() {
  49. // 加载更多数据的逻辑
  50. console.log('加载更多');
  51. this.getdatalist(true);
  52. },
  53. // 模糊搜搜
  54. onSearchInput(e) {
  55. const searchText = e.detail.value;
  56. this.setData({
  57. searchText,
  58. pageNumber: 1,
  59. items: [],
  60. hasMore: true,
  61. isLoading: false
  62. });
  63. this.getdatalist(false);
  64. },
  65. // 列表数据
  66. async getdatalist(isLoadMore = false) {
  67. const { pageNumber, pageSize, selectedTypeIndex, searchText } = this.data;
  68. const where = {
  69. tag_id: 'BULYF5VJ9W',
  70. level: Number(selectedTypeIndex) + 1,
  71. };
  72. if (searchText.trim()) {
  73. where.name = {
  74. $regex_ci: searchText
  75. };
  76. }
  77. try {
  78. const { data } = await models.file_manage.list({
  79. filter: { where },
  80. pageSize,
  81. pageNumber,
  82. getCount: true,
  83. envType: "prod",
  84. });
  85. const collectList = data.records || [];
  86. this.setData({
  87. items: isLoadMore ? this.data.items.concat(collectList) : collectList,
  88. pageNumber: pageNumber + 1,
  89. hasMore: collectList.length === pageSize,
  90. isLoading: false
  91. });
  92. } catch (err) {
  93. console.error('获取数据失败:', err);
  94. }
  95. },
  96. goToGoodsList(event) {
  97. // 获取绑定的数据
  98. const item = event.currentTarget.dataset.item;
  99. // 将数据转换为 JSON 字符串并传递
  100. const itemStr = encodeURIComponent(JSON.stringify(item));
  101. wx.navigateTo({
  102. url: `/subpackages/detailsimg/detailsimg?item=${itemStr}`
  103. });
  104. },
  105. handleTypeChange(e) {
  106. const index = Number(e.detail.value);
  107. this.setData({
  108. selectedTypeIndex: index,
  109. pageNumber: 1, // 重置分页,从第一页查
  110. hasMore: true,
  111. isLoading: false,
  112. items: [] // 可选:清空旧数据避免闪烁
  113. });
  114. this.getdatalist(false);
  115. }
  116. })