// app.js /** * 新版备注: * 1. 两个流程 fare_type 0外卖 1自提 默认自提 * 2. 有会员价 * 3. 商品分规格, 有规格商品和无规格商品同时存在 * 4. 获取应用实例 一律直接用getApp() * 5. 无主动退出 * 6. 用户右上角的分享,只开首页和个人中心,其他页面都关闭 * 7. 如需在接口成功时弹出返回信息,请单独加一下toast,避免与微信的loading冲突(wx.showLoading 与wx.showToast不能同时存在) * 8. 如需当接口连续调用,共用一个loading时,请传参nextInvoke,且主动控制何时关闭loading * * **/ let myPro = require("/utils/wxRequest.js"); App({ onLaunch() { let that = this; // 拿code换openid(先放onLaunch试一段) wx.login({ success: function(res) { // console.log('获取wxcode',res) let params = { code: res.code }; myPro.wxRequest("user/mini-auth","POST",params).then(res=>{ let result = res.result; // 有token 是老用户 if(result.token){ that.globalData.token = result.token; wx.setStorage({ key: "token", data: result.token }); that.globalData.is_member = result.user.is_member; // 会员 0否 1是 that.globalData.userInfo = { nickname: result.user.nickname, thumb: result.user.thumb, phone: result.user.phone }; if(result.user.store){ that.globalData.role = 1; // 有店铺,即为门店 }; // console.log('用户',that.globalData.userInfo) // 拿用户信息(供首页使用) }else{ // 新用户 that.globalData.openid = result.openid; that.globalData.session_key = result.session_key; } }).catch(err=>{ console.log('报错信息',err); wx.showToast({ title: err, icon: "none" }) }) }, fail: function(res){ wx.showToast({ title: "微信未授权成功,请在设置中允许使用用户信息", icon: "none" }); } }); }, onShow(){ // console.log('onShow'); let that = this; // 设备信息 wx.getSystemInfo({ success(res) { // 获取系统信息 const systemInfo = wx.getSystemInfoSync(); // 胶囊按钮位置信息 const menuButtonInfo = wx.getMenuButtonBoundingClientRect(); // 胶囊位置(初始位置) that.globalData.customTop = menuButtonInfo.top; // 胶囊位置(中间位置) that.globalData.customCenter = menuButtonInfo.top + menuButtonInfo.height / 2; // 导航栏高度 = 状态栏到胶囊的间距(胶囊距上距离-状态栏高度) * 2 + 胶囊高度 + 状态栏高度 that.globalData.setBgHeight = (menuButtonInfo.top - systemInfo.statusBarHeight) * 2 + menuButtonInfo.height + systemInfo.statusBarHeight; }, }); // 定位 // that.getLocal(); }, // 验证登录 verifyLogin(callBack){ const that = this; if(!callBack){ callBack = function(){}; }; if(!that.globalData.token){ let pages = getCurrentPages(); if(pages.length > 0){ wx.setStorage({ key: 'loginCallBackPage', data: that.pageBackUrl(), success: function(){ wx.reLaunch({ url: '/pages/login/index/index' }) }, }) }; callBack(false); }else{ callBack(true); } }, // 回跳地址 pageBackUrl: function(){ let pages = getCurrentPages(); let currentPage = pages[pages.length -1]; let url= currentPage.route; let options = JSON.stringify(currentPage.options); options = options.replace(/[\{\}\"]/g,''); options = options.replace(/\:/g,'='); options = options.replace(/\,/g,'&'); url = url + '?' + options; // console.log('回跳地址',url) return url }, // 定位授权 getLocal: function (callback) { var that = this; if (callback == undefined) { callback = function () { // console.log('定位授权::::默认回调函数') } } wx.getSetting({ success(res) { if (!res.authSetting['scope.userLocation']) { // 未授权时,先授权 wx.authorize({ scope: 'scope.userLocation', success(auth) { console.log("auth:::::", auth); // 授权成功 if (auth.errMsg == 'authorize:ok') { // 用户授权成功 that.globalData.location_auth = 1; // 执行获取地理位置 that.getLocation(callback); }; }, fail(auth){ console.log("auth:::::", auth); callback(); // 用户拒绝,添加标识 that.globalData.location_auth = -1; } }) } else { // 已授权,执行获取地理位置 that.globalData.location_auth = 1; that.getLocation(callback); } }, fail(res) { that.globalData.location_auth = -1; callback(); console.log('设备信息调取失败',res); } }) }, // 执行获取地理位置 getLocation(callback) { let that = this; // 用户已经同意小程序使用定位 wx.getLocation({ type: 'wgs84', success(res) { console.log('定位成功',res); that.globalData.lat = res.latitude; that.globalData.lng = res.longitude; // console.log('地理位置:', res) // 执行回调函数 setTimeout(() => { callback(); }, 0); }, fail(res){ console.log('定位失败',res); setTimeout(() => { callback(); }, 0); } }) }, globalData: { // 测试 domain api imgUrl // 测试appid: wx3fa706377424c2c9 // domain: "http://singlestore.shanmuzhi.com", // api: "http://singlestore.shanmuzhi.com/", // imgUrl: "http://singlestore.shanmuzhi.com", domain: "https://dandianone.bjycst.top/", api: "https://dandianone.bjycst.top/", imgUrl: "https://dandianone.bjycst.top/", // 正式 wx4ee6b1b6aa3d1403 // domain: 'https://user.jinyutaoxiaoya.com/', // api: 'https://user.jinyutaoxiaoya.com/', // imgUrl: 'https://jinyu-txy.oss-cn-beijing.aliyuncs.com', location_auth: null, // 地理位置授权标识 1同意 -1拒绝 lat: 0, // 衡水市火车站 37.743955 lng: 0, // 衡水市火车站 115.691485 token: wx.getStorageSync('token') ? wx.getStorageSync('token') : '', // ceshitoken openid: null, session_key: null, role: null, // 角色 1为门店 null userInfo: null, customTop: null, // 胶囊位置 顶部 customCenter: null, // 胶囊位置 中间 setBgHeight: null, // 导航栏高度 logoTu: "/statics/img/logo.png", is_member: 0, // 是否为会员 1是 0否 store_id: 1, // 单店(约定id是1) loadingCount: 0 // 声明一个对象用于存储请求个数 }, });