index.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. // index.js
  2. // const db=wx.cloud.database()
  3. // import { models, db, getTempFileURLs } from '../../utils/cloudbase.js'
  4. import { getDB, getModels, getCommand, getTempFileURLs } from '../../utils/cloudbase.js'
  5. const app = getApp();
  6. Page({
  7. data: {
  8. carousellist: [],
  9. homepage_8: '',
  10. homepage_9: '',
  11. souimg: '',
  12. },
  13. onShow() {
  14. if (typeof this.getTabBar === 'function' && this.getTabBar()) {
  15. this.getTabBar().setSelected(0); // 首页索引是0
  16. }
  17. // 获取轮播图数据
  18. this.getBanner();
  19. },
  20. async onLoad() {
  21. // // 声明新的 cloud 实例
  22. // var c1 = new wx.cloud.Cloud({
  23. // // 资源方 小程序A的 AppID
  24. // resourceAppid: 'wx1ee76fb4846f8901',
  25. // // 资源方 小程序A的 的云开发环境ID
  26. // resourceEnv: 'honghgaier-5guiffgcf17a2eea',
  27. // })
  28. // await c1.init()
  29. // 获取图片
  30. const fileIDs = [
  31. 'cloud://honghgaier-5guiffgcf17a2eea.686f-honghgaier-5guiffgcf17a2eea-1373037829/images/homepage/homepage_8.png',
  32. 'cloud://honghgaier-5guiffgcf17a2eea.686f-honghgaier-5guiffgcf17a2eea-1373037829/images/homepage/homepage_9.png',
  33. 'cloud://honghgaier-5guiffgcf17a2eea.686f-honghgaier-5guiffgcf17a2eea-1373037829/images/icon/sou.png',
  34. ];
  35. const fileList = await getTempFileURLs(fileIDs)
  36. this.setData({
  37. homepage_8: fileList[0].tempFileURL,
  38. homepage_9: fileList[1].tempFileURL,
  39. souimg: fileList[2].tempFileURL,
  40. })
  41. // c1.getTempFileURL({
  42. // fileList: fileIDs,
  43. // success: res => {
  44. // console.log('getTempFileURL结果', res.fileList);
  45. // this.setData({
  46. // homepage_8: res.fileList[0].tempFileURL,
  47. // homepage_9: res.fileList[1].tempFileURL,
  48. // souimg: res.fileList[2].tempFileURL,
  49. // });
  50. // },
  51. // fail: err => {
  52. // console.error('getTempFileURL失败', err);
  53. // }
  54. // });
  55. },
  56. // 轮播数据
  57. async getBanner() {
  58. const db = await getDB()
  59. const models = await getModels()
  60. const _ = await getCommand()
  61. const { data } = await models.banner.list({
  62. filter: {
  63. where: {
  64. position: 0
  65. }
  66. },
  67. // envType: pre 体验环境, prod 正式环境
  68. envType: "prod",
  69. });
  70. let recordsdata = data.records || []
  71. // 假设 banner 数据里有 fileID 或 cloudPath 字段
  72. const fileIDs = recordsdata.map(item => item.url) // 或 item.fileID
  73. const tempFiles = await getTempFileURLs(fileIDs)
  74. // 给 records 添加可直接渲染的 url
  75. recordsdata = recordsdata.map((item, index) => ({
  76. ...item,
  77. url: tempFiles[index].tempFileURL
  78. }))
  79. // 返回查询到的数据
  80. this.setData({
  81. carousellist: recordsdata
  82. })
  83. },
  84. // 页面跳转 二级页面
  85. selectGroupOption(e) {
  86. const isLoggedIn = app.checkLoginStatus(); // 检查是否登录
  87. if (!isLoggedIn) return; // 未登录已跳转,不继续
  88. const option = e.currentTarget.dataset.option;
  89. let url = '';
  90. switch (option) {
  91. case 'dahome':
  92. url = '/subpackages/dahome/dahome';
  93. break;
  94. case 'imghome':
  95. url = '/subpackages/imghome/imghome';
  96. break;
  97. default:
  98. return;
  99. }
  100. wx.navigateTo({
  101. url: url
  102. });
  103. },
  104. // 搜索框跳转
  105. goSearchPage() {
  106. wx.navigateTo({
  107. url: '/subpackages/dahome/dahome?autofocus=1'
  108. });
  109. },
  110. // 上传轮播图 存储轮播图图片地址 和展示位置 后续需要存一个上传的图片名字
  111. // async getData() {
  112. // try {
  113. // // 上传文件到云存储
  114. // const uploadRes = await wx.cloud.uploadFile({
  115. // cloudPath: "imgs/banner/carousel_3.jpg", // 上传至云端的路径
  116. // filePath: "image/imgs/carousel_3.jpg" // 小程序临时文件路径
  117. // });
  118. // // 获取上传文件的 fileID
  119. // const fileID = uploadRes.fileID;
  120. // console.log("文件 ID:", fileID);
  121. // // 将文件路径存入 banner 表
  122. // const { data } = await models.banner.create({
  123. // data: {
  124. // remark: "", // 备注
  125. // position: 4, // 展示位置
  126. // describe: "", // 描述
  127. // url: fileID, // 路径
  128. // },
  129. // envType: "prod", // 正式环境
  130. // });
  131. // // 返回创建的数据 id
  132. // console.log("创建的数据:", data);
  133. // } catch (error) {
  134. // console.error("操作失败:", error);
  135. // wx.showToast({
  136. // title: '操作失败,请稍后再试',
  137. // icon: 'none',
  138. // });
  139. // }
  140. // }
  141. // async
  142. // async getData() {
  143. // wx.cloud
  144. // .uploadFile({
  145. // cloudPath: "imgs/banner/carousel_1.jpg", // 上传至云端的路径
  146. // filePath: "image/imgs/carousel_1.jpg" // 小程序临时文件路径,需结合小程序相关 API 获取
  147. // })
  148. // .then((res) => {
  149. // // 返回文件 ID
  150. // const fileID = res.fileID;
  151. // console.log("文件 ID:", fileID);
  152. // // 下载文件
  153. // wx.cloud.downloadFile({
  154. // fileID: fileID,
  155. // })
  156. // .then((res) => {
  157. // const tempFilePath = res.tempFilePath;
  158. // console.log("临时文件路径:", tempFilePath);
  159. // // 获取文件大小
  160. // wx.getFileInfo({
  161. // filePath: tempFilePath,
  162. // })
  163. // .then((info) => {
  164. // console.log("文件大小:", info.size, "字节");
  165. // const fileSizeInBytes = info.size; // 文件大小(字节)
  166. // const fileSizeInMB = fileSizeInBytes / (1024 * 1024); // 转换为 MB
  167. // console.log("文件大小:", fileSizeInMB.toFixed(2), "MB");
  168. // })
  169. // .catch((err) => {
  170. // console.error("获取文件大小失败:", err);
  171. // });
  172. // })
  173. // .catch((err) => {
  174. // console.error("文件下载失败:", err);
  175. // });
  176. // });
  177. // const { data } = await models.login.list({
  178. // filter: {
  179. // where: {}
  180. // },
  181. // pageSize: 10, // 分页大小,建议指定,如需设置为其它值,需要和 pageNumber 配合使用,两者同时指定才会生效
  182. // pageNumber: 1, // 第几页
  183. // getCount: true, // 开启用来获取总数
  184. // // envType: pre 体验环境, prod 正式环境
  185. // envType: "prod",
  186. // });
  187. // // 返回查询到的数据列表 records 和 总数 total
  188. // console.log(data);
  189. // const { data } = await models.file_manage.get({
  190. // filter: {
  191. // where: {
  192. // $and: [
  193. // {
  194. // _id: {
  195. // $eq: 'BT7HKJ5Z2Y', // 推荐传入_id数据标识进行操作
  196. // },
  197. // },
  198. // ]
  199. // }
  200. // },
  201. // // envType: pre 体验环境, prod 正式环境
  202. // envType: "prod",
  203. // });
  204. // // 返回创建的数据 id
  205. // console.log(data);
  206. // { id: "7d8ff72c665eb6c30243b6313aa8539e"}
  207. // db.collection("homelist").get().then(res => {
  208. // console.log(res);
  209. // }).catch(err => {
  210. // console.log(err);
  211. // })
  212. // },
  213. // 退款
  214. // async tuikuan() {
  215. // wx.cloud.callFunction({
  216. // // 云函数名称
  217. // name: 'wxpayFunctions',
  218. // data: {
  219. // // 调用云函数中的申请退款方法
  220. // type: 'wxpay_refund',
  221. // // 业务其他参数...
  222. // // 推荐用 transaction_id,如果没有就用 out_trade_no
  223. // // transaction_id: this.data.transactionId,
  224. // // out_trade_no: this.data.outTradeNo,
  225. // transaction_id: '4200002828202509037486438814', // 微信支付订单号
  226. // out_refund_no: 'refund_' + Date.now(),
  227. // amount: {
  228. // refund: 5, // 退款金额
  229. // total: 5, // 原来订单金额
  230. // currency: 'CNY', //退款币种
  231. // // from: {
  232. // // account: '', // 出资账户类型
  233. // // amount: '', // 出资金额
  234. // // }
  235. // }
  236. // },
  237. // success: (res) => {
  238. // console.log('申请退款结果: ', res);
  239. // },
  240. // });
  241. // },
  242. })