You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
store_node/miniprogram/pages/index/index.js

188 lines
4.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// index.js
Page({
data: {
showTip: false,
powerList: [
{
title: '云托管',
tip: '不限语言的全托管容器服务',
showItem: false,
item: [
{
type: 'cloudbaserun',
title: '云托管调用',
},
],
},
{
title: '云函数',
tip: '安全、免鉴权运行业务代码',
showItem: false,
item: [
{
type: 'getOpenId',
title: '获取OpenId',
},
{
type: 'getMiniProgramCode',
title: '生成小程序码',
},
],
},
{
title: '数据库',
tip: '安全稳定的文档型数据库',
showItem: false,
item: [
{
type: 'createCollection',
title: '创建集合',
},
{
type: 'selectRecord',
title: '增删改查记录',
},
// {
// title: '聚合操作',
// page: 'sumRecord',
// },
],
},
{
title: '云存储',
tip: '自带CDN加速文件存储',
showItem: false,
item: [
{
type: 'uploadFile',
title: '上传文件',
},
],
},
// {
// type: 'singleTemplate',
// title: '云模板',
// tip: '基于页面模板,快速配置、搭建小程序页面',
// tag: 'new',
// },
// {
// type: 'cloudBackend',
// title: '云后台',
// tip: '开箱即用的小程序后台管理系统',
// },
{
title: '拓展能力-AI',
tip: '云开发 AI 拓展能力',
showItem: false,
item: [
{
type: 'model-guide',
title: '大模型对话指引'
},
],
},
],
haveCreateCollection: false,
title: "",
content: ""
},
onClickPowerInfo(e) {
const app = getApp()
if(!app.globalData.env) {
wx.showModal({
title: '提示',
content: '请在 `miniprogram/app.js` 中正确配置 `env` 参数'
})
return
}
console.log("click e", e)
const index = e.currentTarget.dataset.index;
const powerList = this.data.powerList;
const selectedItem = powerList[index];
console.log("selectedItem", selectedItem)
if (selectedItem.link) {
wx.navigateTo({
url: `../web/index?url=${selectedItem.link}&title=${selectedItem.title}`,
});
} else if (selectedItem.type) {
console.log("selectedItem", selectedItem)
wx.navigateTo({
url: `/pages/example/index?envId=${this.data.selectedEnv?.envId}&type=${selectedItem.type}`,
});
} else if (selectedItem.page) {
wx.navigateTo({
url: `/pages/${selectedItem.page}/index`,
});
} else if (
selectedItem.title === '数据库' &&
!this.data.haveCreateCollection
) {
this.onClickDatabase(powerList,selectedItem);
} else {
selectedItem.showItem = !selectedItem.showItem;
this.setData({
powerList,
});
}
},
jumpPage(e) {
const { type, page } = e.currentTarget.dataset;
console.log("jump page", type, page)
if (type) {
wx.navigateTo({
url: `/pages/example/index?envId=${this.data.selectedEnv?.envId}&type=${type}`,
});
} else {
wx.navigateTo({
url: `/pages/${page}/index?envId=${this.data.selectedEnv?.envId}`,
});
}
},
onClickDatabase(powerList,selectedItem) {
wx.showLoading({
title: '',
});
wx.cloud
.callFunction({
name: 'quickstartFunctions',
data: {
type: 'createCollection',
},
})
.then((resp) => {
if (resp.result.success) {
this.setData({
haveCreateCollection: true,
});
}
selectedItem.showItem = !selectedItem.showItem;
this.setData({
powerList,
});
wx.hideLoading();
})
.catch((e) => {
wx.hideLoading();
const { errCode, errMsg } = e
if (errMsg.includes('Environment not found')) {
this.setData({
showTip: true,
title: "云开发环境未找到",
content: "如果已经开通云开发请检查环境ID与 `miniprogram/app.js` 中的 `env` 参数是否一致。"
});
return
}
if (errMsg.includes('FunctionName parameter could not be found')) {
this.setData({
showTip: true,
title: "请上传云函数",
content: "在'cloudfunctions/quickstartFunctions'目录右键,选择【上传并部署-云端安装依赖】,等待云函数上传完成后重试。"
});
return
}
});
},
});