import newhost from "/host.js";
import locales from "/utils/language.js";
var QQMapWX = require('/mymap/qqmap-wx-jssdk.min.js');
var qqmapsdk;
var yzFirstlogin = 1;
var yzValidate_page = 1;
let livePlayer = null;
try {
  livePlayer = requirePlugin("live-player-plugin");
} catch (error) {
  
}

var loginTap = false;
// var loginTap = false;
App({
  data: {
    // wx_token: ''
    host: newhost.host,
    uniacid: newhost.uniacid,
    basic_info: {},
    validate_page: {},
    front_accept_message_id: "wx446c12387876992d", //后屏幕小程序appdid
    front_mini_programs_id: "wxf90477356b51ec91",
    accept_message_id: "wxa0ecf1f5513abab3", //前屏幕小程序appdid
    mini_programs_id: "wxf90477356b51ec91",
    clearlogin: null,

    login_type: 1, //1无请求，2正在请求 状态锁
    login_fun_list: [] // 需要登录后再请求的接口队列
  },
  onLaunch(options) {
    let that = this;
    wx.getSystemInfo({
      success: (res) => {
        this.globalData.statusBarHeight = res.statusBarHeight;
        this.globalData.navBarHeight = 44 + res.statusBarHeight;
      },
    });
    this._getLanguage(locales);

    //删除首次模板信息
    try {
      //  每次关闭要清除存储
      wx.removeStorageSync("tempIndex");
      wx.removeStorageSync("iPhoneBottom");
      wx.removeStorageSync("deliverId");
    } catch (e) {
      // Do something when catch error
    }

    //记录首次进入小程序页面
    try {
      if (options.query) {
        console.log(options, 'options1');
        this.seyzredirect(options.path, options.query);
        // 抽取成seyzredirect方法
        // let query = options.query;
        // //参数多时通过&拼接url的参数
        // var urlWithArgs = options.path + "?";
        // for (var key in query) {
        //   var value = query[key];
        //   urlWithArgs += key + "=" + value + "&";
        // }
        // urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1);
        // wx.setStorageSync("yz_redirect", `${urlWithArgs}`);
        if (options.query.store_alone_id) {
          // 如果有store_alone_id,进入门店独立模块
          this.globalData.STORE_ID = options.query.store_alone_id;
          this.globalData.store_alone_temp = 1;
        }
        if (options.query.dyID) {
          //deliverId 获取链接上的参数，自提点id
          this.setDeliver(options);
        }
      } else {
        // wx.setStorageSync("yz_redirect", options.path);
        this.seyzredirect(options.path);
      }

    } catch (e) {
      console.log(e);
    }
    //隐藏底部菜单栏
    // wx.hideTabBar({})

    // try {
    // 	wx.removeStorageSync('withdraw_status')
    // } catch (e) {
    // 	// Do something when catch error
    // }
    if (options.query.mid) {
      this._setMid(options.query.mid);
    }
    if (options.query && options.query.scene) {
      let scene = decodeURIComponent(options.query.scene);
      if (scene) {
        let info_arr = [];
        info_arr = scene.split(',');
        for (let i = 0; i < info_arr.length; i++) {
          let chil_arr = [];
          chil_arr = info_arr[i].split('=');
          if (chil_arr[0] == 'mid') {
            this._setMid(chil_arr[1]);
          }
        }
      }
    }
    this.gotochecklogin(options);
    this.getSystemInfo();
    try {
      //获取青蛙相关信息
      wxfaceapp.checkWxFacePayOsInfo({
        success(res) {
          console.log("1111111::::::", res.screenInfo);
          if (res.screenInfo == "back-screen") {
            wxfaceapp.onRemoteMessage(function (resdata) {
              if (resdata.content) {
                let content = JSON.parse(resdata.content);
                if (content.redirectType) {
                  if (content.redirectType == "succeededPayment") {
                    wx.redirectTo({
                      url: "/packageC/frogpro/succeededPayment/succeededPayment?money=" + content.money,
                    });
                  } else if (content.redirectType == "login") {
                    wx.redirectTo({
                      url: "/packageC/frogpro/backScreenlogin/backScreenlogin",
                    });
                  } else if (content.redirectType == "lose") {
                    wx.redirectTo({
                      url: "/packageC/frogpro/lose/lose?money=" + content.money,
                    });
                  } else if (content.redirectType == "waitingPayment") {
                    wx.redirectTo({
                      url: "/packageC/frogpro/waitingPayment/waitingPayment?money=" + content.money,
                    });
                  }
                }
              }
            });
            that.startLogin();
          }
        },
        fail(res) {},
      });
    } catch (e) {
      //TODO handle the exception
    }
    console.log(this.globalData.STORE_ID, 'STORE_ID=============>>>>>>>>>>');
    this.overShare();

    wx.setInnerAudioOption({
      obeyMuteSwitch: false,
      // 解决小程序createInnerAudioContext()音频播放iOS端真机调试没有声音问题
      success: function (res) {
        console.log("开启静音模式下播放音乐的功能");
      },

      fail: function (err) {
        console.log("静音设置失败");
      },
    });

  },
  /**
   * url 请求地址
   * data 请求的参数
   * success 成功的回调
   * fail 失败的回调
   * complete 结束的回调函数（调用成功、失败都会执行）
   */
  _getNetWork: function (_ObjData) {
    return this._Request(_ObjData, 'GET');
  },
  /**
   * url 请求地址
   * success 成功的回调
   * fail 失败的回调
   * complete 结束的回调函数（调用成功、失败都会执行）
   */
  _postNetWork: function (_ObjData) {
    return this._Request(_ObjData, 'POST');
  },

  _Request(obj, method) {
    return new Promise((resolve, reject) => {
      obj.resolve = resolve;
      obj.reject = reject;
      obj.method = method;
      //1就发起第一次请求，2加入队列数组
      if (this.data.login_type == 1) {
        this.toRequestNetWork(obj);
      } else {
        this.data.login_fun_list.push(obj);
      }
    });
  },

  toRequestNetWork(_ObjData) {
    var url = _ObjData.url;
    var resolve = _ObjData.resolve;
    var reject = _ObjData.reject;
    var method = _ObjData.method;
    var data = _ObjData.data || {};
    let params = _ObjData.data;
    var success = _ObjData.success;
    var fail = _ObjData.fail;
    var complete = _ObjData.complete;
    var validateBol = _ObjData.validateBol == 2 ? false : true;
    // 加载遮罩
    var showToastIn = true;
    if (typeof _ObjData.showToastIn == "boolean") {
      showToastIn = _ObjData.showToastIn;
    }

    var that = this;
    if (showToastIn) {
      wx.showNavigationBarLoading();
    }

    let _session = "";
    let _wx_token = "";
    try {
      let value = wx.getStorageSync("session");
      if (value) {
        _session = value;
      }
    } catch (e) {
      console.log(e);
    }
    try {
      let value = wx.getStorageSync("wx_token");
      if (value) {
        _wx_token = value;
      }
    } catch (e) {
      console.log(e);
    }

    if (yzFirstlogin === 0 && yzValidate_page === 1) {
      if(data.not_validate_page == '0' && data){
        //想接口不返回validate_page的参数
      }else{
        url += "&validate_page=1";
      }
    }

    if ((yzFirstlogin === 1 && url.indexOf("member.login.index") < 0 && url.indexOf("member.member.wxJsSdkConfig") < 0) || url.indexOf("finance.income-page.index") >= 0) {
      url += "&basic_info=1&validate_page=1";
    }

    if (method === 'GET' && params) {
      let paramsArray = [];
      Object.keys(params).forEach(key =>
        paramsArray.push(key + "=" + params[key])
      );
      url += "&" + paramsArray.join("&");
    }

    url += "&app_type=wechat";
    url += "&3rd_session=" + _session;

    if (this.globalData.store_alone_temp == 1) {
      // 开启门店独立模块
      url += "&store_id=" + this.globalData.STORE_ID;
    }
    console.log(method, "请求中Url:", url);

    let headers = {
      "Content-Type": "application/json",
      Accept: "application/json",
      Cookie: "PHPSESSID=" + _wx_token,
    };

    if (this.globalData.new_page_comeIn != 2) {
      let pages = getCurrentPages();
      let view = pages[pages.length - 1];
      // 浏览足迹  new_page_comeIn == 2为页面第一个请求接口
      headers['local-url'] = view.route;
      this.globalData.new_page_comeIn = 2;
    }

    url += "&mini_version=v1.1.136";
    this.data.login_type = 2;
    wx.request({
      url: url,
      method: method,
      data: data,
      header: headers,
      timeout: 10000,
      success: (res) => {
        if (res.data.basic_info) {
          yzFirstlogin = 0;
          that.data.basic_info = res.data.basic_info;
          that.initLanguage(that.data.basic_info.lang);
          try {
            wx.setStorageSync("yz_basic_info", res.data.basic_info);

            // 判断门店独立模块是否开启
            let basic_info = res.data.basic_info;
            if (basic_info.plugin_setting && basic_info.plugin_setting.store_alone_temp && basic_info.plugin_setting.store_alone_temp.enable == 1) {
              this.globalData.store_alone_temp = 1;
              let pages = getCurrentPages(),
                view = pages[pages.length - 1]; //获取当前页面的对象
              if (!this.globalData.STORE_ID && view.route !== 'packageG/independent_store/index/index') {
                this.isHasStoreId();
                return false;
              }
            }

            this.globalData.cart_num = res.data.basic_info.globalParameter ? res.data.basic_info.globalParameter.cart_num : '';
            if (res.data.basic_info.home && res.data.basic_info.home.mailInfo && res.data.basic_info.home.mailInfo) {
              // 积分名称
              wx.setStorageSync('integral', res.data.basic_info.home.mailInfo.credit1 || '积分');
            }
          } catch (e) {
            console.log("yz_basic_info存储出错", e);
          }
          try {
            if (res.data.basic_info.home.plugin.new_member_prize && res.data.basic_info.home.plugin.new_member_prize.prize && res.data.basic_info.home.plugin.new_member_prize.prize.length != 0) {
              console.log("storage_newAward存储====");
              wx.setStorageSync("storage_newAward", res.data.basic_info.home.plugin.new_member_prize);
            }
          } catch (e) {
            console.log("storage_newAward存储出错", e);
          }
        }

        if (validateBol && res.data.validate_page) {
          that.getInvite(res.data.validate_page);
        }

        if (res.data.result == 0 && res.data.msg === "请登录") {
          that.login_state(_ObjData, "get");
          return;
        }
        if (res.data.result == 2) {
          wx.removeStorage({
            key: "session",
            success: function (res) {
              console.log(res.data);
            },
          });
          wx.removeStorage({
            key: "openid",
            success: function (res) {
              console.log(res.data);
            },
          });
          wx.removeStorage({
            key: "wx_token",
            success: function (res) {
              console.log(res.data);
            },
          });
          wx.removeStorage({
            key: "userInfo",
            success: function (res) {
              that._getNetWork(_ObjData);
            },
          });
        } else {
          // wx.hideToast()
          wx.hideNavigationBarLoading();
          success && success(res);
          resolve(res);
          this.data.login_type = 1;
          if (this.data.login_fun_list.length > 0) {
            let obj = this.data.login_fun_list.shift();
            this.toRequestNetWork(obj);
            // console.log(obj,"-------------------------------------------------success")
          }
        }
      },
      fail: (res) => {
        this.data.login_type = 1;
        if (fail && typeof fail === "function") {
          fail(res);
        }
        reject(res);
        wx.showToast({
          title: "数据获取失败！",
          icon: "loading",
          duration: 2000,
          mask: true,
        });
        console.log("数据获取失败:", url, res);
      },
      complete: (res) => {
        if (complete && typeof complete === "function") {
          complete(res);
        }
      },
    });
  },
  /*青蛙pro信息*/
  requestFrogproServerData(url, method, data) {
    return new Promise(function (resolve, reject) {
      wx.request({
        url: url,
        data: data,
        header: {
          "Content-Type": "application/json",
          Accept: "application/json",
        },
        method: method,
        success: function (res) {
          resolve(res);
        },
        fail: function (res) {
          reject(res);
        },
      });
    });
  },
  // 青蛙小程序登录
  startLogin: function () {
    let that = this;
    that.data.clearlogin = setInterval(function () {
      wx.login({
        success: function (_json) {
          if (_json.code) {
            // 请求登录接口
            that
              .requestFrogproServerData(that.getFrogproNetAddresss("member.login.index"), "get", {
                code: _json.code,
                ver: "2",
                // info: _info
              })
              .then(function (res) {
                var _data = res.data;
                if (_data.result == 1) {
                  // 存储key
                  if (_data.data.user_info) {
                    wx.setStorageSync("nickname", _data.data.user_info.nickname);
                  }
                  if (_data.msg.session) {
                    wx.setStorageSync("session", _data.session);
                  }
                  if (_data.msg.wx_token) {
                    wx.setStorageSync("wx_token", _data.wx_token);
                  }
                  if (_data.data.store) {
                    wx.setStorageSync("storeMessage", _data.data.store);
                  }
                  let Json = {
                    wx_token: _data.msg.wx_token,
                    session: _data.msg.session,
                    store_id: _data.data.store.store_id,
                    dispatch_type_id: 2,
                    goods_id: _data.data.store.goods_id,
                    host: that.data.host,
                    uniacid: that.data.uniacid,
                  };
                  wxfaceapp.postMsg({
                    targetAppid: that.data.accept_message_id,
                    content: JSON.stringify(Json),
                    success(res) {},
                    fail(res) {},
                  });
                } else {
                  console.log("错误信息:::" + res.errMsg);
                }
                // 异步请求到的数据data
              })
              .catch(function (res) {
                console.log("错误信息:::" + res.errMsg);
              });
          } else {
            console.log("错误信息:::" + res.errMsg);
          }
        },
        fail: function (res) {
          console.log("登录失败，请求被拒绝！获取用户登录态失败！" + res);
        },
      });
    }, 600000);
  },
  getFrogproNetAddresss: function (action) {
    let wx_token = this.getWxToken();
    var url = this.data.host + "/addons/yun_shop/api.php?i=" + this.data.uniacid + "&session_id=" + wx_token + "&type=12&route=" + action;
    return url;
  },
  /*青蛙pro信息*/
  //获取设备信息
  getSystemInfo() {
    try {
      const res = wx.getSystemInfoSync();
      let model = res.model;
      if (/iPhone X/i.test(model) || /iPhone 11/i.test(model) || /iPhone 12/i.test(model) || /iPhone 13/i.test(model)) {
        try {
          wx.setStorageSync("iPhoneBottom", model);
        } catch (e) {
          console.log(e);
        }
      }
    } catch (e) {
      // Do something when catch error
    }
  },
  onShow(options) {
    // 页面出现在前台时执行
    // this.getInvite();
    yzFirstlogin = 1;
    yzValidate_page = 1;
    this.data.login_type = 1;
    this._getTemplate();
    if(options.query && options.query.custom_params) {
      this._setMid(JSON.parse(decodeURIComponent(options.query.custom_params)).mid);
    }
    const sceneList = [1007, 1008, 1014, 1044, 1045, 1046, 1047, 1048, 1049, 1073, 1154, 1155]
    // 分享卡片入口场景才调用getShareParams接口获取以下参数
    console.log(options,'onShow')
    if (livePlayer && sceneList.indexOf(options.scene) > -1) {
      livePlayer
        .getShareParams()
        .then((res) => {
          console.log('get room id', res.room_id) // 房间号
          // console.log('get openid', res.openid) // 用户openid
          // console.log('get share openid', res.share_openid) // 分享者openid，分享卡片进入场景才有
          console.log("get custom params", res.custom_params); // 开发者在跳转进入直播间页面时，页面路径上携带的自定义参数，这里传回给开发者
          this._setMid(res.custom_params.mid);
        })
        .catch((err) => {
          console.log("get share params", err);
        });
    }
    if(options.referrerInfo && options.referrerInfo.extraData) {
      this.globalData.integralOtherMiniData = options.referrerInfo.extraData || {};
    }
    if (options.query.store_alone_id) {
      // 如果有store_alone_id,进入门店独立模块
      this.globalData.STORE_ID = options.query.store_alone_id;
      this.globalData.store_alone_temp = 1;
    }
  },
  onHide() {
    // 会员的弹窗广告
    wx.removeStorageSync("firstAdvertisement");
    // 首页的弹窗广告
    wx.removeStorageSync("fullAdvertisement");
    wx.removeStorageSync("popAdvertisement");
    //装修的弹窗广告
    wx.removeStorageSync("page_idFull_screens");
    wx.removeStorageSync("page_idAdvertisings");
    // 关闭时删除Storage的地址
    wx.removeStorageSync("address-point");

    // 新装修数据
    wx.removeStorageSync("home_onUnload");
    wx.removeStorageSync("new_decorate");
  },
  seyzredirect(path, options) {
    // 设置当前链接  登录后返回
    console.log(path, options, 'options2');
    var pages = getCurrentPages(); //获取加载的页面
    var currentPage = pages[pages.length - 1]; //获取当前页面的对象
    // 优先级 options > currentPage.options  当只有path参数传入即不用options
    let optionsData = options ? options : (path ? '' : currentPage.options);
    let routeData = path ? path : currentPage.route;
    let notLogin = ['pages/login/login', 'packageA/member/editmobile/editmobile'];
    if (notLogin.indexOf(routeData) > -1) {
      return;
    }
    if (optionsData) {
      //参数多时通过&拼接url的参数
      var urlWithArgs = routeData + "?";
      for (var key in optionsData) {
        var value = optionsData[key];
        urlWithArgs += key + "=" + value + "&";
      }
      urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1);
      wx.setStorageSync("yz_redirect", `${urlWithArgs}`);
    } else {
      wx.setStorageSync("yz_redirect", routeData);
    }

    // console.log(optionsData,routeData, 'options3')
  },
  getyzredirect() {
    let yzredirect = "";
    try {
      let value = wx.getStorageSync("yz_redirect");
      if (value) {
        yzredirect = value;
      }
    } catch (e) {
      console.log(e);
    }
    return yzredirect;
  },
  globalData: {
    host: newhost.host,
    uniacid: newhost.uniacid,
    new_page_comeIn: 0,
    statusBarHeight: 0,
    screenHeight: 0,
    define_order_pay: 1, // '确认付款' => 1,这种方法定义常量不用每个js都注入
    define_order_receiv: 5, // '确认收货' => 5,这种方法定义常量不用每个js都注入
    define_order_check: 8, // '查看物流' => 8,这种方法定义常量不用每个js都注入
    define_order_cancle: 9, // '取消订单' => 9,这种方法定义常量不用每个js都注入
    define_order_comment: 10, // '评价' => 10,这种方法定义常量不用每个js都注入
    define_order_recomment: 11, // '追加评价' => 10,这种方法定义常量不用每个js都注入
    define_order_delete: 12, // '删除订单' => 10,这种方法定义常量不用每个js都注入
    define_order_refund: 13, // '退款' => 10,这种方法定义常量不用每个js都注入
    define_order_used: 14, // '确认使用' => 10,这种方法定义常量不用每个js都注入
    // uid: 0,// 推广人id
    mid: 0,
    userInfo: null,
    globaSession: null,
    // 自定义跳转方式选择值,用于区别调用跳转方法
    tabBar: {
      index: "-1",
      category: "-1",
      extension: "-1",
      cart: "-1",
      memindex: "-1",
    },
    // 腾讯地图key值
    qqmapkey: "",
    // 腾讯地图校验码
    qqmapsig: "",
    pathData: "",
    cart_num: 0, //购物车数量
    isLocationIng: false,

    // 门店独立模块
    store_alone_temp: 0,
    STORE_ID: 0,
    integralOtherMiniData: {}
  },
  _getLanguage(data) {
    wx.setStorageSync("langIndex", data);
  },
  _getTemplate() {
    // 获取动态腾讯地图key
    let urlStr = this.getNetAddresss("plugin.min-app.Frontend.Controllers.page.index");
    urlStr = urlStr + "&scope=pass";
    return new Promise((resolve, reject) => {
      wx.request({
        url: urlStr,
        method: "GET",
        header: {
          "Content-Type": "application/json",
          Accept: "application/json",
        },
        success: (resdata) => {
          let res = resdata.data;
          if (res.result === 1) {

            this.globalData.qqmapkey = res.data.qq_map_web_key;
            this.globalData.qqmapsig = res.data.qq_map_web_sign;
            try {
              // 平台协议
              wx.setStorageSync("new_agreement", {
                agreement_name: res.data.agreement_name,
                new_agreement: res.data.new_agreement
              });
            } catch (error) {
              console.log(error);
            }
            resolve();
          } else {
            this.globalData.qqmapkey = "KUBBZ-IXPCO-3ZNWD-SHC4H-O4TZH-ZSBQR";
            this.globalData.qqmapsig = "l3Fyt4WylOFiPzbBSIkjWJ1aDU6NNa4";
            resolve();
          }
        },
        fail: (res) => {
          this.globalData.qqmapkey = "KUBBZ-IXPCO-3ZNWD-SHC4H-O4TZH-ZSBQR";
          this.globalData.qqmapsig = "l3Fyt4WylOFiPzbBSIkjWJ1aDU6NNa4";
          resolve();
        }
      });
    });
  },

  _setMid: function (mid) {
    this.globalData.mid = mid;
    wx.setStorage({
      key: "mid",
      data: mid,
    });
  },
  _setshopid: function (shop_id) {
    this.globalData.shop_id = shop_id;
    wx.setStorage({
      key: "shop_id",
      data: shop_id,
    });
  },
  _setvid: function (vid) {
    this.globalData.vid = vid;
  },
  _setcircleInvitationId(circle_invitation_id) {
    console.log("设置了circle_invitation_id");
    this.globalData.circle_invitation_id = circle_invitation_id;
  },
  _setroomid: function (roomid) {
    this.globalData.roomid = roomid;
  },

  isHasStoreId() {
    let urlStr = this.getNetAddresss("plugin.store-alone-temp.frontend.home.history-store");
    this._getNetWork({
      url: urlStr,
      success: (resdata) => {
        let res = resdata.data;
        if (res.result == 1) {
          this.globalData.STORE_ID = res.data.store_id || 0;
          if (!this.globalData.STORE_ID) {
            // 没有门店id就跳转提示页
            wx.reLaunch({
              url: '/packageG/independent_store/access_tip/access_tip',
            });
          } else {
            // 有就跳首页
            wx.reLaunch({
              url: '/packageG/independent_store/index/index?store_id=' + this.globalData.STORE_ID,
            });
          }
        } else {
          wx.showToast({
            title: res.msg,
            icon: "none",
            duration: 1500,
            success: (res) => {
              setTimeout(() => {
                wx.reLaunch({
                  url: '/packageG/independent_store/access_tip/access_tip',
                });
              }, 1200);
            }
          });
        }
      }
    });
  },

  getWxToken: function () {
    var value = wx.getStorageSync("wx_token");
    if (value) {
      console.log("同步token", value);
      return value;
    } else {
      console.log("获取token失败");
    }
  },

  getNetAddresss: function (action) {
    // let wx_token = this.getWxToken();
    this.getExtJson();
    var url = this.data.host + "/addons/yun_shop/api.php?i=" + this.data.uniacid + "&type=2&route=" + action;
    // var url = 'https://dev2.yunzmall.com/addons/yun_shop/api.php?i=9&session_id=' + wx_token + '&type=2&route=' +
    // action //wx446c12387876992d
    //芸众商家
    // var url = 'https://dev3.yunzmall.com/addons/yun_shop/api.php?i=15&session_id=' + wx_token + '&type=2&route=' +
    // action //wxbe88683bd339aaf5
    // 芸众名片
    // var url = 'https://dev4.yunzmall.com/addons/yun_shop/api.php?i=9&session_id=' + wx_token + '&type=2&route=' + 'wxa0ecf1f5513abab3'
    // action //wxa0ecf1f5513abab3
    // 芸众书吧
    // var url = 'https://www.yunzmall.com/addons/yun_shop/api.php?i=10&session_id=' + wx_token + '&type=2&route=' +
    //   action//wx31002d5db09a6719
    // 芸信测试
    // var url = 'https://www.yunzmall.com/addons/yun_shop/api.php?i=11&session_id=' + wx_token + '&type=2&route=' +
    //   action//wx629d4a5e3efc0797
    // var url = 'https://dev8.yunzmall.com/addons/yun_shop/api.php?i=1&session_id=' + wx_token + '&type=2&route=' +
    // action //wx75882827b9912694
    // var url = 'https://dev15.yunzmall.com/addons/yun_shop/api.php?i=25&session_id=' + wx_token + '&type=2&route=' +
    // action //wxda9836770ac00ef7
    // 芸众测试三
    // var url = 'https://release.yunzmall.com/yun_shop/api.php?i=1&session_id=' + wx_token + '&type=2&route=' +
    // action //wx6870b3fe2e0aea53
    if (this.globalData.mid) {
      url += "&mid=" + this.globalData.mid;
    }
    if (this.globalData.vid) {
      url += "&vid=" + this.globalData.vid;
    }
    if (this.globalData.circle_invitation_id) {
      console.log("地址带上circle_invitation_id");
      url += "&circle_invitation_id=" + this.globalData.circle_invitation_id;
    }
    if (this.globalData.roomid) {
      url += "&room_id=" + this.globalData.roomid;
    }
    if (this.globalData.shop_id) {
      url += "&shop_id=" + this.globalData.shop_id;
    }
    url += "&ingress=weChatApplet";

    if (url.indexOf("member.login.index") > -1) {
      // 解决登录授权后没有新人奖（basic_info ）
      yzFirstlogin = 1;
    }
    // url += "&mid=399"
    console.log("APP____URL:::", url);
    return url;
  },
  // 时间戳差值
  getTimeDifference(Timestamp) {
    var now = Date.parse(new Date());
    // console.log("Timestamp", Timestamp);
    let time = Timestamp < 1000000000000 ? Timestamp * 1000 : Timestamp;
    // console.log(time - now);
    if (time - now > 0) {
      return time - now;
    } else if (time - now <= 0) {
      return 0;
    }
  },

  // 返回评价数组
  getEvaluate: function (num) {
    return {
      num: num,
      list: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0].slice(5 - num, 10 - num),
    };
  },
  // 判断是否是空
  _isTextEmpty: function (str) {
    if (str == null || str == "" || str == undefined) {
      return true;
    } else {
      return false;
    }
  },
  // 判断ios还是android
  isIosOrAndroid: function () {
    let u = navigator.userAgent;
    let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; // android终端
    let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios终端
    let isStr = "";
    if (isAndroid) {
      isStr = "android";
    }
    if (isiOS) {
      isStr = "ios";
    }
    return isStr;
  },
  // 判断参数传递是否为空
  setMailLanguage: function (defaultStr, languageStr) {
    let language = this._isTextEmpty(languageStr) ? defaultStr : languageStr;
    return language;
  },
  // 是否手机
  _isMoblie: function (value) {
    // return !/^1(3|5|7|8|9)[0-9]{9}$/.test(value)
    return isNaN(Number(value));
  },
  // 判断URL链接中是否有mid如果有
  _isMid: function (url, val) {
    if (url.indexOf("mid=") >= 0) {
      return this.changeUrlArg(url, "mid", val);
    } else {
      let burl = this.delQueStr(url, "mid");
      return this.changeUrlArg(burl, "mid", val);
    }
  },
  changeUrlArg: function (url, arg, val) {
    var pattern = arg + "=([^&]*)";
    var replaceText = arg + "=" + val;
    return url.match(pattern) ? url.replace(eval("/(" + arg + "=)([^&]*)/gi"), replaceText) : url.match("[?]") ? url + "&" + replaceText : url + "?" + replaceText;
  },
  // 删除参数值
  delQueStr: function (url, ref) {
    var str = "";
    if (url.indexOf("#") != -1) {
      str = url.substr(url.indexOf("#") + 1);
    } else {
      return url;
    }
    var arr = "";
    var returnurl = "";
    if (str.indexOf("&") != -1) {
      arr = str.split("&");
      for (let i = 0; i < arr.length; i++) {
        if (arr[i].split("=")[0] != ref) {
          returnurl = returnurl + arr[i].split("=")[0] + "=" + arr[i].split("=")[1] + "&";
        }
      }
      return url.substr(0, url.indexOf("?")) + "?#" + returnurl.substr(0, returnurl.length - 1);
    } else {
      arr = str.split("=");
      if (arr[0] == ref) return url.substr(0, url.indexOf("?"));
      else return url;
    }
  },
  getExtJson: function () {
    console.log("================enter extJson===============");
    var that = this;
    var extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {};
    console.log("********extConfig*********", extConfig);
    if (extConfig.host) {
      console.log("================extJson exists===============");
      that.data.host = extConfig.host;
      that.data.uniacid = extConfig.uniacid;
    } else {
      console.log("================extJson not exists===============");
      wx.getExtConfigSync({
        success: function (res) {
          console.log("================extJson11===============", res.extConfig);
          that.data.host = res.extConfig.host;
          that.data.uniacid = res.extConfig.uniacid;
        },
        fail: function (res) {
          console.log("================error.extJson11===============", res);
        },
      });
    }
  },
  //是否开启邀请页面
  getInvite(data) {
    // let that = this;
    // let urlStr = that.getNetAddresss("member.member.isValidatePage");
    // that._getNetWork({
    // 	url: urlStr,
    // 	data: {},
    // 	success: function(resdata) {
    // 		var res = resdata.data;
    // 		if (res.result == 1) {
    // 			let data = res.data;
    if (data.is_invite === 1 || data.invite_mobile === 1 || (data.real_name_auth_is_open === 1 && data.is_auth === 1)) {
      yzValidate_page = 0;
    }

    if (data.real_name_auth_is_open === 1) {
      // 判断实名插件是否开启
      if (data.is_auth !== 1 && data.real_name_auth_scene && data.real_name_auth_scene.length > 0) {
        // 是否已经实名过
        this.bind_real_name(data.real_name_auth_scene);
        return;
      }
    }

    // console.log(data.is_bind_mobile);
    if (data.is_bind_mobile !== 0) {
      this.bindMobile(data.is_bind_mobile, this.globalData.pathData);
    } else {
      if (data.is_login === 1) {
        // 登录
        if (data.is_invite !== 1) {
          // 是否填写过邀请人
          if (data.invite_page === 1) {
            //是否开启邀请页面
            wx.redirectTo({
              url: "/packageC/member/visit/Inviter/Inviter",
            });
          }
        } else {
          if (typeof data.invite_mobile != "undefined" && data.invite_mobile !== 1 && data.invite_page === 1) {
            wx.redirectTo({
              url: "/packageC/member/visit/Inviter/Inviter",
            });
          }
        }
      }
    }
    // 		}
    // 	},
    // 	fail: function(res) {
    // 		console.log(res);
    // 	}
    // });
  },
  //查看用户是否需要绑定手机号
  bindMobile(e, setpathData) {
    var pages = getCurrentPages(); //获取加载的页面
    var currentPage = pages[pages.length - 1]; //获取当前页面的对象
    let routeData = currentPage.route;
    if (e == 1) {
      //跳转绑定手机页面
      wx.reLaunch({
        url: "/packageA/member/editmobile/editmobile?fromApp=1",
      });
    } else if (e == 2) {
      if (routeData == "packageG/member_v2/member_v2") {
        wx.reLaunch({
          url: "/packageA/member/editmobile/editmobile?fromApp=2",
        });
      }
    } else if (e == 3) {
      if (routeData.indexOf("detail_v2/detail_v2") > 0) {
        wx.reLaunch({
          url: "/packageA/member/editmobile/editmobile?fromApp=1",
        });
      }
    } else if (e == 4) {
      if (routeData == "packageG/pages/member/extension/extension") {
        wx.reLaunch({
          url: "/packageA/member/editmobile/editmobile?fromApp=4",
        });
      }
    }
  },

  bind_real_name(scene) {
    // 全局1 提现申请2  发布短视频3   发布微贴4  推广中心5
    var pages = getCurrentPages(); //获取加载的页面
    var currentPage = pages[pages.length - 1]; //获取当前页面的对象
    let routeData = currentPage.route;
    if (routeData !== 'packageH/signPage/personBank/personBank') {
      wx.setStorageSync("real_name_redirect", routeData);
    }
    if (scene.indexOf('1') > -1 && routeData !== 'packageH/signPage/personBank/personBank') {
      wx.reLaunch({
        url: "/packageH/signPage/personBank/personBank?from=bindRealName",
      });
      return;
    }
    if (scene.indexOf('5') > -1) {
      // 推广中心
      if (routeData == "packageG/pages/member/extension/extension") {
        wx.reLaunch({
          url: "/packageH/signPage/personBank/personBank?from=bindRealName",
        });
      }
    }
    if (scene.indexOf('2') > -1) {
      // 提现申请
      if (routeData == "packageA/member/withdrawal/withdrawal") {
        wx.reLaunch({
          url: "/packageH/signPage/personBank/personBank?from=bindRealName",
        });
      }
    }
    if (scene.indexOf('3') > -1) {
      // 发布短视频
      if (routeData == "packageC/video_goods/videoAgreement/videoAgreement" || routeData == "packageC/video_goods/releaseVideo/releaseVideo") {
        wx.reLaunch({
          url: "/packageH/signPage/personBank/personBank?from=bindRealName",
        });
      }
    }
    if (scene.indexOf('4') > -1) {
      // 发布微贴
      if (routeData == "packageC/micro_communities/microRelease/microRelease") {
        wx.reLaunch({
          url: "/packageH/signPage/personBank/personBank?from=bindRealName",
        });
      }
    }

  },
  requestServerData(url, method, data) {
    if (url.indexOf('member.login.index') > -1) {
      console.log('登录接口');
    }
    return new Promise(function (resolve, reject) {
      wx.request({
        url: url,
        data: data,
        header: {
          "Content-Type": "application/json",
          Accept: "application/json",
        },
        method: method,
        success: function (res) {
          resolve(res);
        },
        fail: function (res) {
          reject(res);
        },
      });
    });
  },
  login_state(ObjData, requestType) {
    //调试用
    // this.seyzredirect();
    // wx.redirectTo({
    //  url: "/pages/login/login",
    // });
    // return;

    //接口返回0，并且未登录的情况处理x
    var that = this;
    wx.login({
      success: (_json) => {
        wx.showLoading({
          title: "自动登录中....",
        });
        if (_json.code) {
          // 请求登录接口查看是否有登陆过
          that
            .requestServerData(that.getNetAddresss("member.login.index"), "get", {
              code: _json.code,
              ver: "2",
            })
            .then((res) => {
              wx.hideLoading();
              var _data = res.data;
              that.data.login_type = 1;
              if (_data.result == 1) {
                if (_data.data.session) {
                  wx.setStorageSync("session", _data.data.session);
                }
                if (_data.data.user_info) {
                  wx.setStorageSync("nickname", _data.data.user_info.nickname);
                }
                wx.setStorage({
                  key: "openid",
                  data: _data.data.openid,
                });
                if (_data.data.wx_token) {
                  wx.setStorageSync("wx_token", _data.data.wx_token);
                }
                wx.setStorage({
                  key: "yz_uid",
                  data: _data.data.uid,
                });
                wx.removeStorageSync("new_decorate"); //登录之后清除首页缓存数据重新请求
                console.log("登录后", ObjData);
                if (ObjData.method == 'POST') {
                  that._postNetWork(ObjData);
                } else {
                  that._getNetWork(ObjData);
                }
              } else {
                that.seyzredirect();
                wx.showModal({
                  title: "提示",
                  content: _data.data,
                  success(res) {
                    console.log(res);
                  },
                });
                wx.redirectTo({
                  url: "/pages/login/login",
                });
              }
              // 异步请求到的数据data
            })
            .catch(function (res) {
              console.log(res);
              wx.hideLoading({
                success: (res) => {},
              });
              console.log("第三方登录失败session、wx_token获取失败" + res.errMsg);
            });
        } else {
          that.seyzredirect();
          wx.redirectTo({
            url: "/pages/login/login",
          });
        }
      },
      fail: function (res) {
        wx.hideLoading({
          success: (res) => {},
        });
        wx.showToast({
          title: "小程序需要登录，请点击右下方前往小程序体验",
          icon: "none",
          duration: 1500,
        });
        console.log("登录失败，请求被拒绝！获取用户登录态失败！" + res);
      },
    });
  },
  //初始化语言设置
  initLanguage(data) {
    // let urlStr = this.getNetAddresss("setting.get-lang-setting");
    // this._getNetWork({
    // 	url: urlStr,
    // 	data: {},
    // 	success: function(resdata) {
    // 		var res = resdata.data;
    // 		if (res.result == 1) {
    // 			let data = res.data;
    try {
      wx.setStorageSync("mailLanguage", JSON.stringify(data));
    } catch (e) {
      console.log(e);
    }
    this._getLanguage(data && data.plugin_language ? data.plugin_language : locales);
    // 		}
    // 	},
    // 	fail: function(res) {
    // 		console.log(res);
    // 	}
    // });
  },
  gotochecklogin(options) {
    let that = this;
    // let loginFlag = wx.getStorageSync('wx_token');
    // if (loginFlag) {
    that.getfirstData(options);
    // } else {
    // 无skey，作为首次登录
    // that.gotoLogin(options);
    // }
  },
  getfirstData(options) {
    this.globalData.pathData = options.path;
    // this.getInvite();
    // this.initLanguage();
  },

  // 登录 -- 没用到
  // setLoginState: function (cb) {
  //   var that = this;
  //   var _session;
  //   var _wx_token;
  //   console.log("登录中...");
  //   wx.login({
  //     success: function (_json) {
  //       console.log("login登录成功，获取用户info");
  //       wx.getSetting({
  //         success(res) {
  //           if (res.authSetting["scope.userInfo"]) {
  //             // 已经授权，可以直接调用 getUserInfo 获取头像昵称
  //             wx.getUserInfo({
  //               success: function (_info) {
  //                 console.log("code:", _json.code);
  //                 console.log("info:", _info);
  //                 if (_json.code) {
  //                   // 请求登录接口
  //                   that
  //                     .requestServerData(that.getNetAddresss("member.login.index"), "get", {
  //                       code: _json.code,
  //                       info: _info,
  //                       ver: "2",
  //                     })
  //                     .then(function (res) {
  //                       var _data = res.data;
  //                       console.log("登录接口", res);
  //                       if (_data.result == 1) {
  //                         // 存储key
  //                         try {
  //                           wx.setStorageSync("session", _data.msg.session);
  //                         } catch (e) {
  //                           console.log(e);
  //                         }
  //                         // wx.setStorage({
  //                         // 	key: 'session',
  //                         // 	data: _data.msg.session
  //                         // })
  //                         wx.setStorage({
  //                           key: "openid",
  //                           data: _data.data.openid,
  //                         });
  //
  //                         // wx.setStorage({
  //                         // 	key: 'wx_token',
  //                         // 	data: _data.msg.wx_token
  //                         // })
  //                         try {
  //                           wx.setStorageSync("wx_token", _data.msg.wx_token);
  //                         } catch (e) {
  //                           console.log(e);
  //                         }
  //                         wx.setStorage({
  //                           key: "userInfo",
  //                           data: _info,
  //                         });
  //                         wx.setStorage({
  //                           key: "yz_uid",
  //                           data: _data.msg.uid,
  //                         });
  //                         console.log("____uid", _data.msg.uid);
  //                         _session = _data.msg.session;
  //                         _wx_token = _data.msg.wx_token;
  //                         // 设置全局变量session；
  //                         console.log("key 存储成功，登录验证成功，请求数据中2");
  //                         typeof cb == "function" && cb(_session, _wx_token);
  //                       } else {
  //                         console.log(_data.msg);
  //                         wx.showModal({
  //                           title: "提示",
  //                           content: _data.msg,
  //                           success(res) {},
  //                         });
  //                         console.log("第三方登录数据错误" + res.errMsg);
  //                       }
  //                       // 异步请求到的数据data
  //                     })
  //                     .catch(function (res) {
  //                       console.log("第三方登录失败session、wx_token获取失败" + res.errMsg);
  //                     });
  //                 } else {
  //                   console.log("获取用户登录态失败！" + res.errMsg);
  //                 }
  //               },
  //               fail: function (res) {
  //                 console.log("请求被拒绝！获取用户登录态失败！获取用户info失败！" + res);
  //               },
  //             });
  //           } else {
  //             wx.redirectTo({
  //               url: "/pages/login/login",
  //             });
  //           }
  //         },
  //       });
  //     },
  //     fail: function (res) {
  //       console.log("登录失败，请求被拒绝！获取用户登录态失败！" + res);
  //     },
  //   });
  // },
  // 检测登录  -- 没用到
  // getLoginState: function (cb) {
  //   var that = this;
  //   var _session;
  //   var _wx_token;
  //   wx.checkSession({
  //     success: function () {
  //       console.log("登录状态未过期");
  //       // 读取缓存session——key
  //       wx.getStorage({
  //         key: "session",
  //         success: function (res) {
  //           console.log("读取缓存session——key存在", res.data);
  //           _session = res.data;
  //           wx.getStorage({
  //             key: "wx_token",
  //             success: function (res) {
  //               console.log("读取缓存wx_token——key存在", res.data);
  //               _wx_token = res.data;
  //               // that.wx_token = _wx_token
  //               console.log("登录验证成功，请求数据中1");
  //               typeof cb == "function" && cb(_session, _wx_token);
  //             },
  //             fail: function (res) {
  //               console.log("缓存wx_token——！！！！不存在", res);
  //               that.setLoginState(cb);
  //             },
  //           });
  //         },
  //         fail: function (res) {
  //           console.log("缓存session——！！！！不存在", res);
  //           that.setLoginState(cb);
  //         },
  //       });
  //     },
  //     fail: function (res) {
  //       // 登录态过期
  //       console.log("登录态过期", res);
  //       that.setLoginState(cb);
  //     },
  //   });
  // },

  // gotoLogin(options) {
  //   // 没有用到
  //   //接口返回0，并且未登录的情况处理
  //   var that = this;
  //   wx.login({
  //     success: function (_json) {
  //       wx.getSetting({
  //         success(res) {
  //           if (res.authSetting["scope.userInfo"]) {
  //             // 已经授权，可以直接调用 getUserInfo 获取头像昵称
  //             wx.getUserInfo({
  //               success: function (_info) {
  //                 if (_json.code) {
  //                   // 请求登录接口
  //                   that
  //                     .requestServerData(that.getNetAddresss("member.login.index"), "get", {
  //                       code: _json.code,
  //                       info: _info,
  //                       ver: "2",
  //                     })
  //                     .then(function (res) {
  //                       var _data = res.data;
  //                       if (_data.result == 1) {
  //                         // 存储key
  //                         try {
  //                           wx.setStorageSync("session", _data.msg.session);
  //                         } catch (e) {
  //                           console.log(e);
  //                         }
  //                         // wx.setStorage({
  //                         // 	key: 'session',
  //                         // 	data: _data.msg.session
  //                         // })
  //                         wx.setStorage({
  //                           key: "openid",
  //                           data: _data.data.openid,
  //                         });
  //                         try {
  //                           wx.setStorageSync("wx_token", _data.msg.wx_token);
  //                         } catch (e) {
  //                           console.log(e);
  //                         }
  //                         // wx.setStorage({
  //                         // 	key: 'wx_token',
  //                         // 	data: _data.msg.wx_token
  //                         // })
  //                         wx.setStorage({
  //                           key: "userInfo",
  //                           data: _info,
  //                         });
  //                         wx.setStorage({
  //                           key: "yz_uid",
  //                           data: _data.msg.uid,
  //                         });
  //                         that.getfirstData(options);
  //                       } else {
  //                         wx.showModal({
  //                           title: "提示",
  //                           content: _data.msg,
  //                           success(res) {},
  //                         });
  //                       }
  //                       // 异步请求到的数据data
  //                     })
  //                     .catch(function (res) {
  //                       console.log("第三方登录失败session、wx_token获取失败" + res.errMsg);
  //                     });
  //                 } else {
  //                   console.log("获取用户登录态失败！" + res.errMsg);
  //                 }
  //               },
  //               fail: function (res) {
  //                 console.log("请求被拒绝！获取用户登录态失败！获取用户info失败！" + res);
  //               },
  //             });
  //           } else {
  //             wx.redirectTo({
  //               url: "/pages/login/login",
  //             });
  //           }
  //         },
  //       });
  //     },
  //     fail: function (res) {
  //       console.log("登录失败，请求被拒绝！获取用户登录态失败！" + res);
  //     },
  //   });
  // },

  // 腾讯转百度（小程序用这个）
  qqMapTransBMap(lng, lat) {
    if (lng == null || lng == '' || lat == null || lat == '') {
      return {
        lng: Number(lng),
        lat: Number(lat)
      };
    }

    var x_pi = (Math.PI * 3000.0) / 180.0;
    var x = parseFloat(lng);
    var y = parseFloat(lat);
    var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
    var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
    let lng_out = z * Math.cos(theta) + 0.0065;
    let lat_out = z * Math.sin(theta) + 0.006;
    return {
      lng: Number(lng_out),
      lat: Number(lat_out)
    };
  },

  // 百度转腾讯（小程序用这个）
  BMapTransqqMap(lng, lat) {
    if (lng == null || lng == '' || lat == null || lat == '') {
      return {
        lng: Number(lng),
        lat: Number(lat)
      };
    }

    var x_pi = (Math.PI * 3000.0) / 180.0;
    var x = parseFloat(lng) - 0.0065;
    var y = parseFloat(lat) - 0.006;
    var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
    var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
    let lng_out = z * Math.cos(theta);
    let lat_out = z * Math.sin(theta);

    return {
      lng: Number(lng_out),
      lat: Number(lat_out)
    };
  },
  tips(msg, icon = "none", time = 2500) {
    wx.showToast({
      title: msg,
      icon,
      duration: time,
    });
    return false;
  },
  confirm(content, callBack, showCancel = true, confirmText, cancelTextL) {
    // content 弹窗内容,callBack 确认回调,showCancel = true 是否显示取消,confirmText 确认文字,cancelTextL 取消文字
    return new Promise((resolve, reject) => {
      wx.showModal({
        title: '提示',
        content: content,
        showCancel: showCancel,
        confirmText: confirmText || '确认',
        cancelTextL: cancelTextL || '取消',
        success(res) {
          if (res.confirm) {
            resolve(true);
            if (callBack) callBack(true);
          } else if (res.cancel) {
            resolve(false);
            if (callBack) callBack(false);
          }
        },
        fail: () => {
          reject(false);
        }
      });
    });
  },
  setDeliver(_options) {
    let deliverIDStorage = wx.getStorageSync('deliverId') || null; //获取当前会话是否存储了自提点id
    if (_options.query.dyID && !deliverIDStorage) {

      //添加判断sessionStorage是否已存在的目的是防止在其他页面刷新，关联的自提点又变成了链接上的，导致之前手动切换的失效
      let list = ['packageG/index/index', "packageG/newDiy/newDiy"];
      let list_2 = ["packageG/pages/category_v2/category_v2", "packageB/member/category/search_v2/search_v2"];
      if (list_2.indexOf(_options.path) > -1) {
        return false;
      } else if (list.indexOf(_options.path) > -1) {
        wx.setStorageSync("deliverId", _options.query.dyID);
        return false;
      }
      let urlStr = this.getNetAddresss("plugin.package-deliver.frontend.decorate-deliver.getNowPackageDeliver");
      urlStr = urlStr + "&deliver_id=" + _options.query.dyID;
      this._getNetWork({
        url: urlStr,
        success: (resdata) => {
          let res = resdata.data;
          if (res.result == 1) {
            wx.setStorageSync("deliverId", res.data.id);
          }
        }
      });
    }

  },
  shareTimeLine(view) {
    let hasDiyShare = null;
    let shareObject = {};
    let info_config = {}; //获取当前页面的对象
    let value = wx.getStorageSync("yz_uid");
    let mid = null;
    if (value && value != '') {
      mid = value;
    }
    if (view.onShareTimeline) {
      //是否在页面定义配置了onShareTimeline方法；
      hasDiyShare = view.onShareTimeline();
    }
    if (!hasDiyShare) {
      // 有onShareTimeline 但没有没有配置 带上mid
      shareObject.query = `?mid=${mid}`;
      return shareObject;
    } else {
      // 有onShareTimeline 有配置 检查是否有带上mid
      let oldShareFun = view.onShareTimeline; //暂存重写前的分享方法
      view.onShareTimeline = function (e) {
        info_config = oldShareFun();
        if (info_config.query) {
          if (info_config.query.indexOf('mid') > -1) {
            shareObject.query = `${info_config.query}&mid=${mid}`;
          }
          if (info_config.title) {
            shareObject.title = info_config.title;
          }
          return shareObject;
        }
      };
    }
  },
  //设置全局分享
  overShare: function () {
    let that = this;
    // 调用隐藏路由回调
    wx.onAppRoute(function (res) {
      //获取加载的页面
      let pages = getCurrentPages(),
        view = pages[pages.length - 1],
        info_config = {}, //获取当前页面的对象
        hasDiyShare = null;
      // console.log("view.onShareAppMessage=============",view)
      // 浏览足迹  页面切换时更新new_page_comeIn
      that.globalData.new_page_comeIn = 1;
      if (view) {
        try {
          // 分享朋友圈传参全局判断
          that.shareTimeLine(view);
          if (view.onShareAppMessage) {
            //是否在页面定义配置了onShareAppMessage方法；
            hasDiyShare = view.onShareAppMessage();
          }
          if (that.globalData.store_alone_temp == 1 && that.globalData.STORE_ID) {
            that.storeAloneShare(view, info_config);
          } else {
            let shareObject = {};
            let value = wx.getStorageSync("yz_uid");
            let mid = null;
            if (value && value != '') {
              mid = value;
            }
            if (hasDiyShare) {
              let oldShareFun = view.onShareAppMessage; //暂存重写前的分享方法
              view.onShareAppMessage = function (e) {
                info_config = oldShareFun();
                if (e && e.from == "button") {
                  return oldShareFun(e);
                }
                //重写分享配置
                // 判断有没有自定义分享path和定义options
                if (info_config.path) {
                  //当前页面有配置path
                  if (info_config.path.indexOf('mid') > -1) {
                    shareObject.path = info_config.path;
                  } else if (mid) {
                    //在当前页有设置其他分享参数但是没有mid
                    if (info_config.path.indexOf('?') > -1) {
                      shareObject.path = `${info_config.path}&mid=${mid}`;
                    } else {
                      shareObject.path = `${info_config.path}?mid=${mid}`;
                    }
                  }
                } else if (mid) {
                  //没有配置，默认带上mid
                  shareObject.path = `/${view.route}?mid=${mid}`;
                }
                // 供应商自提点分享传参 ====== start ==========
                let deliverIDStorage = wx.getStorageSync('deliverId') || null; //获取当前会话是否存储了自提点id
                if (deliverIDStorage) {
                  shareObject.path = `${shareObject.path}&dyID=${deliverIDStorage}`;
                }
                // 供应商自提点分享传参 ====== end ==========

                if (info_config.title) shareObject.title = info_config.title; //设置分享标题
                if (info_config.imageUrl) shareObject.imageUrl = info_config.imageUrl; //设置分享图片
                console.log("重写分享配置", shareObject);
                return shareObject;
              };
            } else {
              // 有onShareAppMessage 但没有没有配置
              shareObject.path = `/${view.route}?mid=${mid}`;
              // console.log(shareObject)
              return shareObject;
            }

          }
          // else if (!info_config) {
          //   //判断页面是否有自定义分享，为空则没配置（感觉不严谨）
          //   view.onShareAppMessage = function () {
          //     //重写分享配置
          //     let value = wx.getStorageSync("yz_uid");
          //     let mid = "";
          //     if (value) {
          //       mid = value;
          //     }
          //     return {
          //       path: `/${view.route}?mid=` + mid,
          //     };
          //   };
          // }
        } catch (error) {
          console.log("app.js报错：error:::页面" + view.route + "获取onShareAppMessage报错=============", error);
        }
      }
    });
  },
  // 门店独立模块分享
  storeAloneShare(view, info_config) {
    let value = wx.getStorageSync("yz_uid");
    let mid = "";
    if (value) {
      mid = value;
    }
    if (!info_config) {
      view.onShareAppMessage = function () {
        return {
          path: `/${view.route}?mid=${mid}&store_alone_id=${this.globalData.STORE_ID}`,
        };
      };
    } else {
      if (info_config.path) {
        // 判断有没有自定义分享path和定义options
        if (info_config.path.indexOf('?') > -1) {
          return {
            path: `/${view.route}&store_alone_id=${this.globalData.STORE_ID}`,
          };
        } else {
          return {
            path: `/${view.route}?store_alone_id=${this.globalData.STORE_ID}`,
          };
        }
      } else {
        return {
          path: `/${view.route}?mid=${mid}&store_alone_id=${this.globalData.STORE_ID}`,
        };
      }
    }
  },
  getReverseGeocoder(lat, lng) {
    let that = this;
    return new Promise(function (resolve, reject) {
      if (that.globalData.location && that.globalData.location.latitude == lat && that.globalData.location.longitude == lng) {
        console.log("当前定位位置未发生改变，取globalData里值 》》》》》》》》》》》", that.globalData.location);
        resolve(that.globalData.geocoder);
        return;
      }
      if (!that.globalData.qqmapkey) {
        reject("没有that.globalData.qqmapkey::::", that.globalData.qqmapkey);
        return;
      }
      qqmapsdk = new QQMapWX({
        key: that.globalData.qqmapkey
      });
      qqmapsdk.reverseGeocoder({
        //位置坐标，默认获取当前位置，非必须参数
        location: {
          latitude: lat,
          longitude: lng
        },
        sig: that.globalData.qqmapsig,
        success: function (res) { //成功后的回调
          let mapdata = res.result;
          that.globalData.location = {
            latitude: lat,
            longitude: lng
          };
          that.globalData.geocoder = mapdata;
          console.log("当前定位位置发生改变!!!!!!!重新reverseGeocoder()", that.globalData.location);
          resolve(mapdata);
        },
        fail: function (error) {
          wx.showToast({
            duration: 3000,
            title: error.message,
            icon: 'none'
          });
          reject("app.getReverseGeocoder()报错error::::", error);
        },
        complete: function (res) {

        }
      });
    });
  },
  getGeocoder(address) {
    let that = this;
    // 需要调用次数  没有特殊要求还是不用
    return new Promise(function (resolve, reject) {
      if (!that.globalData.qqmapkey) {
        reject("没有that.globalData.qqmapkey::::", that.globalData.qqmapkey);
        return;
      }
      qqmapsdk = new QQMapWX({
        key: that.globalData.qqmapkey
      });
      qqmapsdk.geocoder({
        //位置坐标，默认获取当前位置，非必须参数
        address: address, //地址参数，例：固定地址
        sig: that.globalData.qqmapsig,
        success: function (res) { //成功后的回调
          let mapdata = res.result;
          let point = {
            lat: mapdata.location.lat,
            lng: mapdata.location.lng
          };
          resolve(point);
        },
        fail: function (error) {
          wx.showToast({
            duration: 3000,
            title: error.message,
            icon: 'none'
          });
          reject("app.getGeocoder()报错error::::", error);
        },
        complete: function (res) {

        }
      });
    });
  },
  resetBasicInfo() {
    //重置yzFirstlogin，使下一次接口重新传参basic_info，获取basic_info数据
    yzFirstlogin = 1;
  },
  adConfig: { // 广告配置
    app_id: newhost.adBrightid||'', // 营销云平台应用ID
    domain: newhost.adBrightDomain||'', // 广告服务域名(同步骤2)
    test_id: '', // 广告位测试ID
    h5_path: '/packageI/web-view/h5View' // H5预览页面
  }
});