index.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. // index.js
  2. Page({
  3. data: {
  4. showTip: false,
  5. powerList: [
  6. {
  7. title: '云托管',
  8. tip: '不限语言的全托管容器服务',
  9. showItem: false,
  10. item: [
  11. {
  12. type: 'cloudbaserun',
  13. title: '云托管调用',
  14. },
  15. ],
  16. },
  17. {
  18. title: '云函数',
  19. tip: '安全、免鉴权运行业务代码',
  20. showItem: false,
  21. item: [
  22. {
  23. type: 'getOpenId',
  24. title: '获取OpenId',
  25. },
  26. {
  27. type: 'getMiniProgramCode',
  28. title: '生成小程序码',
  29. },
  30. ],
  31. },
  32. {
  33. title: '数据库',
  34. tip: '安全稳定的文档型数据库',
  35. showItem: false,
  36. item: [
  37. {
  38. type: 'createCollection',
  39. title: '创建集合',
  40. },
  41. {
  42. type: 'selectRecord',
  43. title: '增删改查记录',
  44. },
  45. // {
  46. // title: '聚合操作',
  47. // page: 'sumRecord',
  48. // },
  49. ],
  50. },
  51. {
  52. title: '云存储',
  53. tip: '自带CDN加速文件存储',
  54. showItem: false,
  55. item: [
  56. {
  57. type: 'uploadFile',
  58. title: '上传文件',
  59. },
  60. ],
  61. },
  62. // {
  63. // type: 'singleTemplate',
  64. // title: '云模板',
  65. // tip: '基于页面模板,快速配置、搭建小程序页面',
  66. // tag: 'new',
  67. // },
  68. // {
  69. // type: 'cloudBackend',
  70. // title: '云后台',
  71. // tip: '开箱即用的小程序后台管理系统',
  72. // },
  73. {
  74. title: '拓展能力-AI',
  75. tip: '云开发 AI 拓展能力',
  76. showItem: false,
  77. item: [
  78. {
  79. type: 'model-guide',
  80. title: '大模型对话指引'
  81. },
  82. ],
  83. },
  84. ],
  85. haveCreateCollection: false,
  86. title: "",
  87. content: ""
  88. },
  89. onClickPowerInfo(e) {
  90. const app = getApp()
  91. if(!app.globalData.env) {
  92. wx.showModal({
  93. title: '提示',
  94. content: '请在 `miniprogram/app.js` 中正确配置 `env` 参数'
  95. })
  96. return
  97. }
  98. console.log("click e", e)
  99. const index = e.currentTarget.dataset.index;
  100. const powerList = this.data.powerList;
  101. const selectedItem = powerList[index];
  102. console.log("selectedItem", selectedItem)
  103. if (selectedItem.link) {
  104. wx.navigateTo({
  105. url: `../web/index?url=${selectedItem.link}&title=${selectedItem.title}`,
  106. });
  107. } else if (selectedItem.type) {
  108. console.log("selectedItem", selectedItem)
  109. wx.navigateTo({
  110. url: `/pages/example/index?envId=${this.data.selectedEnv?.envId}&type=${selectedItem.type}`,
  111. });
  112. } else if (selectedItem.page) {
  113. wx.navigateTo({
  114. url: `/pages/${selectedItem.page}/index`,
  115. });
  116. } else if (
  117. selectedItem.title === '数据库' &&
  118. !this.data.haveCreateCollection
  119. ) {
  120. this.onClickDatabase(powerList,selectedItem);
  121. } else {
  122. selectedItem.showItem = !selectedItem.showItem;
  123. this.setData({
  124. powerList,
  125. });
  126. }
  127. },
  128. jumpPage(e) {
  129. const { type, page } = e.currentTarget.dataset;
  130. console.log("jump page", type, page)
  131. if (type) {
  132. wx.navigateTo({
  133. url: `/pages/example/index?envId=${this.data.selectedEnv?.envId}&type=${type}`,
  134. });
  135. } else {
  136. wx.navigateTo({
  137. url: `/pages/${page}/index?envId=${this.data.selectedEnv?.envId}`,
  138. });
  139. }
  140. },
  141. onClickDatabase(powerList,selectedItem) {
  142. wx.showLoading({
  143. title: '',
  144. });
  145. wx.cloud
  146. .callFunction({
  147. name: 'quickstartFunctions',
  148. data: {
  149. type: 'createCollection',
  150. },
  151. })
  152. .then((resp) => {
  153. if (resp.result.success) {
  154. this.setData({
  155. haveCreateCollection: true,
  156. });
  157. }
  158. selectedItem.showItem = !selectedItem.showItem;
  159. this.setData({
  160. powerList,
  161. });
  162. wx.hideLoading();
  163. })
  164. .catch((e) => {
  165. wx.hideLoading();
  166. const { errCode, errMsg } = e
  167. if (errMsg.includes('Environment not found')) {
  168. this.setData({
  169. showTip: true,
  170. title: "云开发环境未找到",
  171. content: "如果已经开通云开发,请检查环境ID与 `miniprogram/app.js` 中的 `env` 参数是否一致。"
  172. });
  173. return
  174. }
  175. if (errMsg.includes('FunctionName parameter could not be found')) {
  176. this.setData({
  177. showTip: true,
  178. title: "请上传云函数",
  179. content: "在'cloudfunctions/quickstartFunctions'目录右键,选择【上传并部署-云端安装依赖】,等待云函数上传完成后重试。"
  180. });
  181. return
  182. }
  183. });
  184. },
  185. });