127 lines
3.8 KiB
JavaScript
127 lines
3.8 KiB
JavaScript
//app.js
|
||
import config from './config/config'
|
||
App({
|
||
onLaunch: function (options) {
|
||
if (!!options.query.scene) {
|
||
wx.setStorageSync(`${config.prefix}inviteId`, options.query.scene)
|
||
}
|
||
let that = this;
|
||
that.getSystem()
|
||
// 版本更新
|
||
if (wx.canIUse('getUpdateManager')) {
|
||
const updateManager = wx.getUpdateManager()
|
||
updateManager.onCheckForUpdate(function (res) {
|
||
// 请求完新版本信息的回调
|
||
if (res.hasUpdate) {
|
||
updateManager.onUpdateReady(function () {
|
||
wx.showModal({
|
||
title: '更新提示',
|
||
content: '新版本已经准备好,是否重启应用?',
|
||
success: function (res) {
|
||
if (res.confirm) {
|
||
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
||
updateManager.applyUpdate()
|
||
}
|
||
}
|
||
})
|
||
})
|
||
updateManager.onUpdateFailed(function () {
|
||
// 新的版本下载失败
|
||
wx.showModal({
|
||
title: '已经有新版本了哟~',
|
||
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'
|
||
})
|
||
})
|
||
}
|
||
})
|
||
}
|
||
},
|
||
// 获取设备信息的方法
|
||
getSystem: function () {
|
||
var that = this;
|
||
wx.getSystemInfo({
|
||
success: function (res) {
|
||
var statusHeight = res.statusBarHeight;
|
||
that.globalData.system = {
|
||
screenHeight: res.screenHeight,
|
||
titleHeight: 45,
|
||
statusHeight: statusHeight,
|
||
pageHeight: res.windowHeight - 45 - statusHeight
|
||
}
|
||
},
|
||
})
|
||
},
|
||
globalData: {
|
||
isToken: false,
|
||
share: false, // 分享默认为false
|
||
system: null,
|
||
isOrderList: false,//如果在详情页取消订单则改为true
|
||
cartNum: 0,//商城的角标
|
||
userInfo: {},//用户个人信息
|
||
showSkeleton: true,//首页骨架屏显示关闭
|
||
temCart: {//暂存勾选的购物车商品 商城的购物车
|
||
total: 0,//勾选的总价
|
||
allCart: [],//勾选的商品
|
||
}
|
||
},
|
||
/**
|
||
* 小程序的变量全局更新
|
||
* @param { string } key 要获取的变量名
|
||
* @param { Function } method 回调函数
|
||
*/
|
||
setWatching: function (key, method) {
|
||
let obj = this.globalData;
|
||
//加个前缀生成隐藏变量,防止死循环发生
|
||
let ori = obj[key]; //obj[key]这个不能放在Object.defineProperty里
|
||
|
||
if (ori) { //处理已经声明的变量,绑定处理
|
||
method(ori);
|
||
}
|
||
Object.defineProperty(obj, key, {
|
||
configurable: true,
|
||
enumerable: true,
|
||
set: function (value) {
|
||
this['__' + key] = value;
|
||
method(value); //数据有变化的时候回调函数,实现同步功能
|
||
},
|
||
get: function () {
|
||
if (typeof this['__' + key] == 'undefined') {
|
||
if (ori) {
|
||
//这里读取数据的时候隐藏变量和 globalData设置不一样,所以要做同步处理
|
||
this['__' + key] = ori;
|
||
return ori;
|
||
} else {
|
||
return undefined;
|
||
}
|
||
} else {
|
||
return this['__' + key];
|
||
}
|
||
}
|
||
})
|
||
},
|
||
// 调用utils下的js
|
||
loadUtils: function (name) {
|
||
return require(`./utils/${name}.js`)
|
||
},
|
||
// 全局配置
|
||
loadConfig: function () {
|
||
return require("./config/config.js")
|
||
},
|
||
// 需要使用async时引入
|
||
loadAsync: function () {
|
||
const regeneratorRuntime = require("./utils/regenerator-runtime/runtime")
|
||
return regeneratorRuntime
|
||
},
|
||
// 导出接口地址
|
||
loadApi: function () {
|
||
return require("./http/api")
|
||
},
|
||
// 导出接口地址
|
||
loadHttp: function () {
|
||
return require("./http/index")
|
||
},
|
||
// 导出model模块
|
||
loadModel: function (name) {
|
||
return require(`./model/${name}`)
|
||
}
|
||
}) |