var t = require("setting.js"), o = require("./utils/auth.js"), a = require("./utils/request.js"), e = require("./utils/common.js"), ut = require("./utils/util.js"); var os = t; var regeneratorRuntime = require('./utils/runtime.js'); var api = require("./api/api.js") // import { pluginGD } from './utils/ai_config/config' //公共方法和变量 App({ def_list: [ { "weappurl": "pages/index/index/index", "nav_name": "首页", "src": t.imghost + "/miniapp/images/bar/index.png", "src_sele": t.imghost + "/miniapp/images/bar/index_on.png", }, { "weappurl": "pages/goods/categoryList/categoryList", "nav_name": "分类", "src": t.imghost + "/miniapp/images/bar/fl.png", "src_sele": t.imghost + "/miniapp/images/bar/fl_on.png" }, { "weappurl": "pages/distribution/distribution", "nav_name": "分销", "src": t.imghost + "/miniapp/images/bar/fx.png", "src_sele": t.imghost + "/miniapp/images/bar/fx_on.png" }, { "weappurl": "pages/cart/cart/cart", "nav_name": "购物车", "src": t.imghost + "/miniapp/images/bar/car.png", "src_sele": t.imghost + "/miniapp/images/bar/car_on.png" }, { "weappurl": "pages/user/index/index", "nav_name": "我的", "src": t.imghost + "/miniapp/images/bar/user.png", "src_sele": t.imghost + "/miniapp/images/bar/user_on.png" } ], globalData: { cartGoodsNum: 0, //购物车总数量 isTabBar: false, isIpx: false, //适配IPhoneX url: "", setting: t, wechatUser: null, userInfo: null, config: null, //门店参数 config2: null, //门店配置 code: null, user_id: null,//1564704,// 10153869,// 6453964,//5682094,6520044,6520119 qa 4687 6519901 buy_now: null, picklist: null, //门店列表 wuliuprice: null, //物流价格表 wuliu: null, //物流公司 baddr: null, mobile: null, //记录手机 getu: null, //记录会员信息 sessionKey: null,//记录会员信息 openid: null, //记录会员信息 to_group: null, //参团传递的数据 wxapp_buy_obj: null, //微信小程序购买的Object pk_store: null, //选择的门店 first_leader: null, //分享会员ID guide_id: null, //分享导购ID windowWidth: 0, //整个窗体的宽度 room_id: null, //直播间分享的房间ID room_goods_id: null, //直播间分享的商品ID }, auth: o, request: a, onLaunch: function () { //初始化美图测肤插件 // var plugin = requirePlugin('mtSkinSdk'); // params.login_id = wx.getStorageSync('login_id') || '' // 可将登录id缓存下来,方便下次进入小程序直接获取 // plugin.setConfig(pluginGD) wx.hideTabBar(); this.initExt(); //检查更新 this.checkUpdateVersion(); var t = this.globalData.setting; //console.log(t) t.resourceUrl = t.url + "/template/mobile/rainbow"; var clientWidth = wx.getSystemInfoSync().windowWidth; var rpxR = 750 / clientWidth; var calc = wx.getSystemInfoSync().windowHeight * rpxR; this.globalData.heigth = calc; this.globalData.windowWidth = clientWidth; var app = this; if (!app.globalData.userInfo) { var user = wx.getStorageSync("userinfo"); if (user && user.user_id) { //--生成会员 -- app.promiseGet("/api/weshop/users/get/" + user.store_id + "/" + user.user_id, {}).then(res => { if (res.data.code == 0) { user = res.data.data; //-- 小程序会员被解绑了,就要清空会员 -- if (user['is_weappuser'] == 0) { user = null; app.globalData.userInfo = null; app.globalData.user_id = 0; } else { app.globalData.userInfo = user; app.globalData.user_id = user.user_id; } wx.setStorageSync("userinfo", user); } else { user = null; app.globalData.userInfo = null; app.globalData.user_id = 0; wx.setStorageSync("userinfo", null); } }) } } wx.getSystemInfo({ success: (res) => { // console.log(res) let modelmes = res ? res.model : null; //手机品牌 console.log('手机品牌', modelmes) if (modelmes && modelmes.indexOf('iPhone X') != -1) {  //XS,XR,XS MAX均可以适配,因为indexOf()会将包含'iPhone X'的字段都查出来 this.globalData.isIpx = true } }, }) var th = this; var pages = getCurrentPages(); //获取加载的页面 var currentPage = pages[pages.length - 1]; //获取当前页面的对象 if (!th.globalData.wxapp_buy_obj) { var turl = "/api/weshop/storeconfig/get/" + th.globalData.setting.stoid; th.promiseGet(turl, {}).then(res => { var o = res; if (o.data.code == 0) { th.globalData.config2 = o.data.data; //有配置成要验证过期,因为过期的小程序没有办法审核 if (th.globalData.config2 && th.globalData.config2.is_overdue) { //要开始验证,小程序有没有购买和过期 if (!currentPage || currentPage.route.indexOf('error/error') == -1 || currentPage.route.indexOf('index/index') == -1) { var tt = this.globalData.wxapp_buy_obj; if (!tt) { this.get_isbuy(function () { tt = th.globalData.wxapp_buy_obj; if (tt && tt.isout == 1) { th.promiseGet('/api/weshop/store/get/' + t.stoid, {}).then(res => { if (!th.err_going) { wx.reLaunch({ url: "/pages/error/error?msg=该商城已到期,暂停浏览1!\r\n可联系:" + res.data.data.store_tel, }); } }) } else if (tt && tt.isbuy == 0) { if (!th.err_going) { wx.reLaunch({ url: "/pages/error/error?msg=还未购买小程序", }); } } }) } } } } }) } else { var tt = th.globalData.wxapp_buy_obj; if (tt && tt.isout == 1) { th.promiseGet('/api/weshop/store/get/' + t.stoid, {}).then(res => { if (!th.err_going) { wx.reLaunch({ url: "/pages/error/error?msg=该商城已到期,暂停浏览1!\r\n可联系:" + res.data.data.store_tel, }); } }) } else if (tt && tt.isbuy == 0) { if (!th.err_going) { wx.reLaunch({ url: "/pages/error/error?msg=还未购买小程序", }); } } } //获取一下门店的基本信息 this.getConfig(); }, //---初始化第三方---- initExt: function () { var tt = t; console.log("initExt"); console.log(11); var t = wx.getExtConfigSync(), o = this.globalData.setting; console.log(t); t.appName ? (o.appName = t.appName, o.stoid = t.stoid) : tt = 1; }, //首页的第一次登录 getUserFir(t) { var s = this; if (o.isAuth()) "function" == typeof t && t(s.globalData.userInfo, s.globalData.wechatUser); else { if (!o.isAuth()) return o.wxLogin_fir(t); if (null == s.globalData.userInfo) { return o.wxLogin_fir(t); } } }, getUserInfo: function (t, n, i) { var s = this; if (o.isAuth()) "function" == typeof t && t(s.globalData.userInfo, s.globalData.wechatUser); else { if (!o.isAuth()) return o.auth(t); if (null == s.globalData.userInfo) { return o.auth(t); } /*--- a.get("/api/user/userInfo", { isShowLoading: void 0 === i || i, success: function(o) { s.globalData.userInfo = o.data.result, s.globalData.userInfo.head_pic = e.getFullUrl(s.globalData.userInfo.head_pic), "function" == typeof t && t(s.globalData.userInfo, s.globalData.wechatUser); } });--*/ } }, //----------------获取配置参数-------------------- getConfig: function (t, o) { var e = this; if (!e.globalData.setting.stoid) { t(null); return false; } if (this.globalData.config == undefined) this.globalData.config = null; this.globalData.config ? "function" == typeof t && t(this.globalData.config) : e.requestGet("/api/weshop/store/get/" + e.globalData.setting.stoid, { success: function (o) { console.log('getConfig', o); if (o.data.code == 0) { e.globalData.config = o.data.data, "function" == typeof t && t(e.globalData.config); } } }); }, //----------------获取配置参数-------------------- getConfig2: function (t, o) { var e = this; if (!e.globalData.setting.stoid) { t(null); return false; } this.globalData.config2 && !o ? "function" == typeof t && t(this.globalData.config2) : a.get("/api/weshop/storeconfig/get/" + e.globalData.setting.stoid, { success: function (o) { console.log('getConfig2'); if (o.data.code == 0) { e.globalData.config2 = o.data.data, "function" == typeof t && t(e.globalData.config2); } } }); }, //----------------获取商家开启的物流-------------------- getwuliu: function (t, o) { this.globalData.wuliu = null; var th = this, st = this.globalData.setting; //获取物流不缓存 a.get("/api/weshop/storeshipping/list", { data: { store_id: st.stoid, status: 1, pageSize: 2000 }, success: function (o) { console.log('getwuliu'); console.log(o); if (o.data.code == 0 && o.data.data && o.data.data.pageData && o.data.data.pageData.length > 0) { var arr = o.data.data.pageData; console.log(arr); arr.forEach(function (item, index) { arr[index].code = item.shipping_code; arr[index].name = item.shipping_name; }) th.globalData.wuliu = arr, "function" == typeof t && t(arr); } } }); }, //----------------获取物流价格表-------------------- getwuliuprice: function (t, o) { var e = this, th = e, st = this.globalData.setting; //获取物流不缓存 a.get("/api/weshop/shippingarea/list", { data: { store_id: st.stoid, pageSize: 2000 }, success: function (o) { console.log('getwuliuprice'); console.log(o); if (o.data.code == 0) { var arr = o.data.data.pageData; console.log(arr); if (arr.length > 0) { for (var i = 0; i < arr.length; i++) { arr[i].code = arr[i].shipping_code; if (arr[i].json_config != "" && arr[i].json_config != undefined && arr[i].json_config != null) arr[i].config = JSON.parse(arr[i].json_config); } } th.globalData.wuliuprice = o.data.data, "function" == typeof t && t(e.globalData.wuliuprice); } } }); }, //----------------设置立即购买数组-------------------- set_b_now: function (d) { this.globalData.buy_now = d; }, get_b_now: function () { return this.globalData.buy_now }, getPrevPageData: function (t) { void 0 === t && (t = 1); var o = getCurrentPages(); return o[o.length - t - 1].data; }, showLoading: function (t, o) { void 0 === o && (o = 1500), wx.showToast({ title: "加载中", icon: "loading", duration: o, mask: !0, complete: function () { "function" == typeof t && setTimeout(t, o); } }); }, showSuccess: function (t, o, a) { void 0 === a && (a = 1e3), wx.showToast({ title: t, icon: "success", duration: a, mask: !0, complete: function () { "function" == typeof o && setTimeout(o, a); } }); }, showWarning: function (t, o, a, e) { //var imghost=this.globalData.setting.imghost; !a && (a = 1500), void 0 === e && (e = !0), wx.showToast({ title: t, mask: e, duration: a, image: "/images/gt.png", complete: function () { "function" == typeof o && setTimeout(o, a); } }); }, confirmBox: function (t, o) { wx.showModal({ title: t, showCancel: !1, complete: function () { "function" == typeof o && o(); } }); }, //----------获取所有的门店------------ get_allsto(func) { var th = this; if (this.globalData.picklist != null) { "function" == typeof func && func(th.globalData.picklist); } else { th.request.get("/api/weshop/pickup/page", { data: { store_id: th.globalData.setting.stoid, pageSize: 600 }, success: function (da) { //设置门店 //th.setData({ allsto: da.data.data.pageData }); th.globalData.picklist = da.data.data.pageData; "function" == typeof func && func(th.globalData.picklist); } }) } }, //同步化,在调用的时候要await async get_isbuy(func) { var th = this var stoid = os.stoid; await this.promiseGet("/store/storemoduleendtime/page?store_id=" + stoid + "&type=5", {}).then(res => { var o = res; if (o.data.code == 0) { var ob = { isout: 0, isbuy: 1 }; var arr = o.data.data.pageData; var isbuy = 0; //----如果数组不为空---- if (arr.length > 0) { arr.forEach(function (val, ind) { if (val.is_sy == 0 && val.type == 5) { isbuy = 1; var now = ut.gettimestamp(); if (now > val.end_time) ob.isout = 1; return false; } }) } ob.isbuy = isbuy; th.globalData.wxapp_buy_obj = ob; if (func) { func(); } } }) }, //获取场景值 判断是否是单页面 is_Single_page(_this,func) { let scene = wx.getLaunchOptionsSync().scene; //--判断是否是单页面-- if(scene !== 1154){ typeof func =="function" && func.bind(_this)(); }else{ return false; } // return scene == 1154? false:true; }, //--同步化,在调用的时候要await,获取商家config-- async getConfig_ays() { if (this.globalData.config != null) return false; var th = this; await api.get_config(this.globalData.setting.stoid).then(res => { var o = res; if (o.data.code == 0) { th.globalData.config = o.data.data; } }) }, //----智能跳转,判断 非tabBar,tabBar页面的跳转---- goto: function (url) { var arr = getCurrentPages(); if (arr.length > 8) { arr.splice(0, 2); } var arr_tabbar = ["/pages/index/index/index", "/pages/goods/categoryList/categoryList", "/pages/goods/categoryList/categoryList?type=2", "/pages/goods/categoryList/categoryList?type=1", "/pages/cart/cart/cart", "/pages/user/index/index", "/pages/distribution/distribution"]; if (arr_tabbar.indexOf(url) != -1) { if (url.indexOf("categoryList?type=1") != -1) this.globalData.cat_type = 1; if (url.indexOf("categoryList?type=2") != -1) this.globalData.cat_type = 2; wx.switchTab({ url: url, }) //跳到tabbar页 } else { if (getCurrentPages().length > 9) { wx.redirectTo({ url: url, }) //跳到非tabbar页 } else { wx.navigateTo({ url: url, }) //跳到tabbar页 } } //wx.navigateTo({ url: url, }) //跳到非tabbar页 }, //显示提示,word提示内容,type 0失败,提示 1成功 my_warnning(word, type, that, width) { var warn = that.selectComponent("#warn"); //组件的id warn.open(word, type, width); return 1; }, //获取会员门店 get_user_store: function (func) { var th = this; this.getConfig2(function (conf) { //---空会员的情况--- if (!th.globalData.userInfo) { return func(null); } if (!th.globalData.pk_store) { var pick_id = 0; //先找一个会员是否有设置默认的地址 if (th.globalData.userInfo.def_pickup_id) { pick_id = th.globalData.userInfo.def_pickup_id } //查找会员的注册的地址 else if (th.globalData.userInfo.pickup_id) { //--购买门店是否默认登记门店-- if (conf.switch_list) { var t_swi = JSON.parse(conf.switch_list); if (t_swi.is_regstores) { pick_id = th.globalData.userInfo.pickup_id } } } //---如果会员没有设置默认门店,同时也没有再注册的时候选择门店-- if (pick_id == 0) return func(null); //返回门店的数量 th.get_pk_num(function (num) { //获取用户注册时候的门店,这个门店不能关闭,同时这个门店的分类不能关闭 th.request.get("/api/weshop/pickup/get/" + os.stoid + "/" + pick_id, { data: {}, success: function (res) { th.globalData.pk_store = null; if (res.data.code == 0 && res.data.data && res.data.data.isstop == 0 && res.data.data.is_pos == 1) { //--门店的数量大于10个才要关心门店的分类有没有关闭-- if (res.data.data.category_id && num > 10) { th.request.get("/api/weshop/storagecategory/get/" + os.stoid + "/" + res.data.data.category_id, { data: {}, success: function (ee) { if (ee.data.code == 0 && ee.data.data) { if (ee.data.data.is_show == 1) { th.globalData.pk_store = res.data.data; func(th.globalData.pk_store); } else { //看一下有没有显示的门店分类 getApp().request.get("/api/weshop/storagecategory/page", { data: { store_id: os.stoid, is_show: 1, pageSize: 1, }, success: function (ee) { if (ee.data.code == 0) { if (ee.data.data && ee.data.data.pageData && ee.data.data.pageData.length > 0) { func(null); } else { th.globalData.pk_store = res.data.data; func(th.globalData.pk_store); } } else { th.globalData.pk_store = res.data.data; func(th.globalData.pk_store); } } }) } } else { func(null); } } }) } else { th.globalData.pk_store = res.data.data; func(th.globalData.pk_store); } } else { func(null); } } }) }) } else { func(th.globalData.pk_store); } }) }, //-- 获取门店的数量 -- get_pk_num: function (func) { this.request.get("/api/weshop/pickup/page", { data: { page: 1, pageSize: 1, isstop: 0, store_id: os.stoid }, success: function (res) { if (res.data.code == 0) { func(res.data.data.total); //门店数量 } } }); }, //-------获取购物车数量---------- requestCardNum: function (th) { if (!this.globalData.user_id) return false; var that = this; this.request.get("/api/weshop/cart/page", { isShoeLoading: false, data: { store_id: this.globalData.setting.stoid, user_id: this.globalData.user_id, state: 0, is_gift: 0, pageSize: 300 }, success: function (e) { var num = 0; if (e.data.data && e.data.data.pageData) { for (var i = 0; i < e.data.data.pageData.length; i++) { num += e.data.data.pageData[i].goods_num; } } /*--- wx.setTabBarBadge({ //tabbar右上角添加文本 index: 2, ////tabbar下标 text: '' + num //显示的内容 });--*/ //-- 读取服务卡的数量 -- that.promiseGet("/api/weshop/cartService/page", { data: { store_id: that.globalData.setting.stoid, user_id: that.globalData.user_id, } }).then(res => { for (var i = 0; i < res.data.data.pageData.length; i++) { num += res.data.data.pageData[i].goods_num; } that.globalData.cartGoodsNum = num; th.data.up_dating = 0 th.getTabBar().setData({ cartGoodsNum: num }); }) } }); }, //------定时等待某个值,有值才进行运算-------- waitfor: function (page, key, pop_value, func) { var n = 0; if (!page.data[key]) { page.data[key] = setInterval(function () { console.log(page.data[key]); n++; if (pop_value) { clearInterval(page.data[key]); func(); } if (n > 15) clearInterval(page.data[key]); }, 1000); } }, //------定时等待某个值,有值才进行运算-------- waitfor2: function (page, key, pop_value_key, func) { var n = 0; if (!page.data[key]) { page.data[key] = setInterval(function () { console.log(page.data[key]); n++; if (page.data[pop_value_key] && Object.keys(page.data[pop_value_key]).length > 0) { clearInterval(page.data[key]); func(); } if (n > 15) { clearInterval(page.data[key]); func(); } }, 1000); } }, //清空登录时候缓存的值 onHide: function () { this.globalData.is_test = 0; this.globalData.guide_id = null; //导购清空 this.globalData.first_leader = null; //分享的会员清空 this.globalData.wuliu = null; //关闭要把物流清空 this.globalData.room_id = null; //关闭要把房间号关闭 this.globalData.room_goods_id = null; //关闭要把物流清空 this.globalData.config2 = null; //清除config2的缓存 this.globalData.config = null; //清除config的缓存 this.globalData.gr_index = 0; //商品分组的序列 this.globalData.pk_store = null; this.globalData.wxapp_buy_obj = null; this.globalData.dis_buy_obj = null; //等级卡的购买记录 this.globalData.storeFooter = null; //底部的导航 this.globalData.full_screen = null; //全屏 }, clear_word: function (word) { var str = word; let reg = /([^\u0020-\u007E\u00A0-\u00BE\u2E80-\uA4CF\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFFEF\u0080-\u009F\u2000-\u201f\u2026\u2022\u20ac\r\n])|(\s)/g, indexArr = reg.exec(str); if (str.match(reg)) { str = str.replace(reg, ''); } return str; }, getPageIndex: function (curPage) { var pagePath = curPage.route; //当前页面url if (pagePath.indexOf('/') != 0) { pagePath = '/' + pagePath; } var index = 0; if (this.globalData.custum_data) { var itemList = this.globalData.custum_data.data; itemList = JSON.parse(itemList); for (var i in itemList) { var item = itemList[i] if (pagePath.indexOf(item.weappurl) != -1) { index = i; break; } } } else { var itemList = this.def_list; for (var i in itemList) { var item = itemList[i] if (pagePath.indexOf(item.weappurl) != -1) { index = i; break; } } } return index; }, //---promise的使用get---- promiseGet: function (url, data) { if (url.indexOf("http") == -1) url = this.globalData.setting.url + url; return new Promise((resolve, reject) => { data.isShowLoading && wx.showLoading(); wx.request({ url, method: 'GET', header: { "content-type": "application/x-www-form-urlencoded" }, data: data.data, success(res) { data.isShowLoading && wx.hideLoading(); resolve(res); }, fail(err) { data.isShowLoading && wx.hideLoading(); reject(err); } }) }) }, //---promise的使用get---- requestGet: function (url, data) { if (url.indexOf("http") == -1) url = this.globalData.setting.url + url; data.isShowLoading && wx.showLoading(); wx.request({ url, method: 'GET', header: { "content-type": "application/x-www-form-urlencoded" }, data: data.data, success(res) { data.isShowLoading && wx.hideLoading(); data.success(res); }, fail(err) { data.isShowLoading && wx.hideLoading(); if (data.fail) data.fail(err); } }) }, // 判断是否登录 isLogin() { return new Promise(function (resolve, reject) { let user_info = getApp().globalData.userInfo; if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { wx.navigateTo({ url: '/pages/togoin/togoin', }) return false; } else { resolve(user_info); }; }); }, checkUpdateVersion() { //判断微信版本是否 兼容小程序更新机制API的使用 if (wx.canIUse('getUpdateManager')) { //创建 UpdateManager 实例 const updateManager = wx.getUpdateManager(); if(!updateManager) { return false; } //检测版本更新 updateManager.onCheckForUpdate(function (res) { console.log('是否获取版本'); // 请求完新版本信息的回调 if (res.hasUpdate) { //监听小程序有版本更新事件 updateManager.onUpdateReady(function () { //TODO 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 ( 此处进行了自动更新操作) updateManager.applyUpdate(); }) updateManager.onUpdateFailed(function () { // 新版本下载失败 wx.showModal({ title: '已经有新版本喽~', content: '请您删除当前小程序,到微信 “发现-小程序” 页,重新搜索打开哦~', }) }) } }) } else { //TODO 此时微信版本太低(一般而言版本都是支持的) wx.showModal({ title: '溫馨提示', content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' }) } }, });