dahome.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  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. xiaziimg: '',
  12. showimg: '',
  13. xialaimg: '',
  14. pageNumber: 1,
  15. pageSize: 10,
  16. hasMore: true, // 是否还有更多数据
  17. isLoading: false, // 防止多次触发
  18. searchText: '', // 搜索关键词
  19. inputFocus: false,
  20. // goods_9: '',
  21. },
  22. onLoad(options) {
  23. // 存储 options 到 this 中
  24. this.options = options;
  25. if (options.autofocus === '1') {
  26. // 延迟设置 focus,让页面完成渲染
  27. setTimeout(() => {
  28. this.setData({
  29. inputFocus: true
  30. });
  31. }, 300); // 300ms 通常足够
  32. }
  33. // 列表数据
  34. this.getdatalist()
  35. // 获取图片
  36. const fileIDs = [
  37. 'cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/images/icon/sou.png',
  38. 'cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/images/icon/xiazi.png',
  39. 'cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/images/icon/show_1.png',
  40. 'cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/images/icon/xiala.png',
  41. // 'cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/images/goods/goods_9.jpg'
  42. ];
  43. // 并发下载多个 fileID
  44. Promise.all(
  45. fileIDs.map(fileID => wx.cloud.downloadFile({ fileID }))
  46. ).then(results => {
  47. // 每个 result 对应一个下载结果
  48. const tempFilePaths = results.map(r => r.tempFilePath);
  49. console.log('全部下载成功:', tempFilePaths);
  50. this.setData({
  51. souimg: tempFilePaths[0],
  52. xiaziimg: tempFilePaths[1],
  53. showimg: tempFilePaths[2],
  54. xialaimg: tempFilePaths[3],
  55. // goods_9: tempFilePaths[4],
  56. });
  57. }).catch(err => {
  58. console.error('有文件下载失败:', err);
  59. });
  60. },
  61. onReachBottom() {
  62. // 上拉触底事件的处理函数
  63. this.loadMore();
  64. },
  65. loadMore() {
  66. // 加载更多数据的逻辑
  67. console.log('加载更多');
  68. this.getdatalist(true);
  69. },
  70. // 输入即搜索
  71. onSearchInput(e) {
  72. const searchText = e.detail.value;
  73. this.setData({
  74. searchText,
  75. pageNumber: 1,
  76. items: [],
  77. hasMore: true,
  78. isLoading: false
  79. });
  80. this.getdatalist(false);
  81. },
  82. // 列表数据
  83. async getdatalist(isLoadMore = false) {
  84. const { pageNumber, pageSize, selectedLevelIndex, selectedTypeIndex, searchText } = this.data;
  85. // 构造过滤条件
  86. const whereFilter = {
  87. tag_id: 'BULYBZSEY8',
  88. level: Number(selectedTypeIndex) + 1,
  89. dan: Number(selectedLevelIndex),
  90. };
  91. // 添加模糊搜索
  92. if (searchText.trim()) {
  93. whereFilter.name = {
  94. $regex_ci: searchText
  95. };
  96. }
  97. try {
  98. const { data } = await models.file_manage.list({
  99. filter: {
  100. where: whereFilter
  101. },
  102. pageSize,
  103. pageNumber,
  104. getCount: true,
  105. envType: "prod",
  106. });
  107. const collectList = data.records || [];
  108. this.setData({
  109. items: isLoadMore ? this.data.items.concat(collectList) : collectList,
  110. pageNumber: pageNumber + 1,
  111. hasMore: collectList.length === pageSize,
  112. isLoading: false
  113. });
  114. } catch (err) {
  115. console.error('数据获取失败:', err);
  116. }
  117. },
  118. handleLevelChange(e) {
  119. const index = Number(e.detail.value);
  120. this.setData({
  121. selectedLevelIndex: index,
  122. pageNumber: 1, // 重置分页,从第一页查
  123. hasMore: true,
  124. isLoading: false,
  125. items: [] // 可选:清空旧数据避免闪烁
  126. });
  127. this.getdatalist(false)
  128. },
  129. handleTypeChange(e) {
  130. const index = Number(e.detail.value);
  131. this.setData({
  132. selectedTypeIndex: index,
  133. pageNumber: 1, // 重置分页,从第一页查
  134. hasMore: true,
  135. isLoading: false,
  136. items: [] // 可选:清空旧数据避免闪烁
  137. });
  138. this.getdatalist(false)
  139. },
  140. goToGoodsList(event) {
  141. // 获取绑定的数据
  142. const item = event.currentTarget.dataset.item;
  143. // 将数据转换为 JSON 字符串并传递
  144. const itemStr = encodeURIComponent(JSON.stringify(item));
  145. wx.navigateTo({
  146. url: `/subpackages/details/details?item=${itemStr}`
  147. });
  148. }
  149. // // 新增数据 async
  150. // async dianji() {
  151. // const { data } = await models.file_manage.create({
  152. // data: {
  153. // level: 1, // 级别
  154. // range: ['大班'], // 适用范围
  155. // remark: "文本", // 备注
  156. // type: 0, // 文件类型
  157. // url: ['cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/123123.mp4'], // 路径
  158. // download_count: 1, // 下载人数
  159. // dan: 1, // 段位
  160. // cover: "cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/未命名的设计.png", // 封面
  161. // size: "123.12KB", // 文件大小
  162. // name: "动手动脑图库5", // 文件名
  163. // tag_id: "BULYF5VJ9W", // 标签id
  164. // publisher: "李老师", // 发布者
  165. // describe: "文本", // 描述
  166. // },
  167. // // envType: pre 体验环境, prod 正式环境
  168. // envType: "prod",
  169. // });
  170. // // 返回创建的数据 id
  171. // console.log(data);
  172. // },
  173. })