<template>
  <tabbarPage :index="3" @getMessage="getMessage"></tabbarPage>
</template>

<script>
import tabbarPage from "../../components/tabbarPage.vue";
import indexApi from "@/api/index.js";
import spokesman from "@/api/spokesman.js";
import { concatUrl, DFSImg } from "../../utils/index.js";
const app = getApp();
const { log } = app;
export default {
  components: {
    tabbarPage,
  },
  data() {
    return {
      pageInfo: {},
      pageData: {},
      newHref: "",
      shareShopName: "",
      shareLogoUrl: "",
      shareOrderSn: "",
      shareTid: "",
      newWindowHref: "",
    };
  },
  onLoad(options) {
    wx.showShareMenu({
      withShareTicket: true,
      menus: ["shareAppMessage", "shareTimeline"],
    });

    console.log(this.mpApp.globalData.pageList, "llll");

    this.init();

    if (options.userId || options.spokesmanRelId) {
      wx.setStorage({
        key: "becomeInfo",
        data: JSON.stringify(options),
      });
    }

    if (wx.getStorageSync("sessionid")) {
      // wx.showToast({
      //   title: JSON.stringify(wx.getStorageSync("sessionid")),
      //   icon: 'none',
      //   image: '',
      //   duration: 1500,

      // });
      //获取分销信息
      this.getSpokesmanInit(
        wx.getStorageSync("becomeInfo")
          ? JSON.parse(wx.getStorageSync("becomeInfo"))
          : ""
      );
    }
  },
  async onShareAppMessage(res) {
    log.info("onShareAppMessage", res);
    await this.getSpokesman();
    let url = "";
    log.info(this.newWindowHref + "this.newWindowHref");
    //分享路径
    if (this.newWindowHref) {
      url = this.newWindowHref;
    } else {
      url = res.webViewUrl;
    }
    //分享页面去掉登录态
    if (url.indexOf("sessionid") > -1) {
      // url = url.split("?")[0] + "?mixid=" + this.shopId;
      url = this.delParam(this.newWindowHref, "sessionid");
      url = this.delParam(url, "open_id");
    }
    //分销员推广页面 默认分享分销员中心页面
    if (url.indexOf("/personalCenter/spokesmanCenter/mine/popularize") > -1) {
      url = `${this.baseUrl}/personalCenter/spokesmanCenter?mixid=${this.shopId}`;
    }

    log.info("shareUrl---------------" + url);
    //增加分销员信息
    if (
      this.hasInvitationStatus == 1 &&
      url.indexOf("spokesmanGroupId") == -1
    ) {
      this.shareUrl = url + this.newHref;
    } else {
      this.shareUrl = url;
    }

    log.info("onShareAppMessage-shareUrl", this.shareUrl);
    log.info(
      `/pages/index/main?share=${encodeURIComponent(this.shareUrl)}`,
      "测试直播分享相关"
    );
    return {
      title: this.shareShopName, // 默认是小程序的名称
      path: `/pages/index/main?share=${encodeURIComponent(this.shareUrl)}`, // 默认是当前页面
      imageUrl: this.shareLogoUrl,
      success: function (res) {
        // 转发成功之后的回调
        if (res.errMsg == "shareAppMessage:ok") {
          log.info(res, "分享成功");
        }
      },
      fail: function () {
        // 转发失败之后的回调
        if (res.errMsg == "shareAppMessage:fail cancel") {
          // 用户取消转发
          log.info(res, "分享失败");
        } else if (res.errMsg == "shareAppMessage:fail") {
          // 转发失败,其中 detail message 为详细失败信息
        }
      },
      complete: function () {
        // 转发结束之后的回调(转发成不成功都会执行)
      },
    };
  },
  onShareTimeline(res) {
    log.info(res, "-----onShareTimeline");
  },
  methods: {
    init() {
      this.setVisible(this.mpApp.globalData.pageList, (res) => {
        this.pageInfo = res;
        this.pageData = JSON.parse(this.pageInfo.pageData);
      });
    },
    async setVisible(pageList, cb) {
      // 首页显示条件
      let pageInfo = pageList.filter((item) => item.pageCode == 1)[0];
      cb(pageInfo);
    },
    getSpokesmanInit(extConfig) {
      //绑定上下级关系
      app.fenxiaoModel.becomeRelation(extConfig).then((res) => {
        if (res) {
          wx.removeStorage({
            key: "becomeInfo",
          });
        }
      });
    },

    //右上角分享时触发
    getMessage(res) {
      let len = res.target.data.length - 1;
      log.info("右上角分享触发", res, res.target.data[len]);
      console.log("右上角分享触发", res, res.target.data[len]);
      this.shareShopName = res.target.data[len].shareShopName || "";
      this.shareLogoUrl = res.target.data[len].shareLogoUrl
        ? DFSImg(res.target.data[len].shareLogoUrl, 500, 400)
        : "";

      //分享内容中有订单信息为送礼活动
      this.shareOrderSn = res.target.data[len].orderSn;
      this.shareTid = res.target.data[len].shareTid;
      this.newWindowHref = res.target.data[len].shareImgUrl + "&verifyShare=1"; // + '&fromVisitorOpenId=' + wx.getStorageSync("openid")
      log.info(
        "getMessage-分享信息:",
        this.shareLogoUrl,
        this.shareShopName,
        1111111,
        this.newWindowHref
      );
      console.log(
        "getMessage-分享信息:",
        this.shareLogoUrl,
        this.shareShopName,
        1111111,
        this.newWindowHref
      );
      //文章详情分享埋点
      if (this.newWindowHref.indexOf("articleId") != -1) {
        var articleId = "";
        var vars = this.newWindowHref.split("&");
        for (var i = 0; i < vars.length; i++) {
          var pair = vars[i].split("=");
          log.info(pair, 2222);
          if (pair[0] == "articleId") {
            articleId = pair[1];
          }
        }
        indexApi.forward({ articleId: articleId }).then((res) => {});
      }
    },
    async getSpokesman() {
      await spokesman.getSpokesmanidByShare().then((res) => {
        log.info("onShareAppMessage-getSpokesmanidByShare", res);
        if (res.data.code == 200) {
          if (res.data.data.hasInvitationStatus == 1) {
            this.hasInvitationStatus = 1;
            this.spokesmanGroupId = res.data.data.groupId;
            this.spokesmanShopId = res.data.data.shopId;
            this.spokesmanRelId = res.data.data.spokesmanId;

            this.newHref = `&spokesmanGroupId=${this.spokesmanGroupId}&spokesmanShopId=${this.spokesmanShopId}&spokesmanRelId=${this.spokesmanRelId}`;
          } else {
            this.newHref = "";
          }
          log.info("onShareAppMessage-getSpokesmanidByShare", this.newHref);
        }
      });
    },
    delParam(oldUrl,paramKey) {
      var url = oldUrl;    //页面url
      var urlParam = oldUrl.split("?")[1];   //页面参数
      var beforeUrl = url.substr(0, url.indexOf("?"));   //页面主地址(参数之前地址)
      var nextUrl = "";

      var arr = new Array();
      if (urlParam != "") {
        var urlParamArr = urlParam.split("&"); //将参数按照&符分成数组
        for (var i = 0; i < urlParamArr.length; i++) {
          var paramArr = urlParamArr[i].split("="); //将参数键,值拆开
          //如果键雨要删除的不一致,则加入到参数中
          if (paramArr[0] != paramKey) {
            arr.push(urlParamArr[i]);
          }
        }
      }
      if (arr.length > 0) {
        nextUrl = "?" + arr.join("&");
      }
      url = beforeUrl + nextUrl;
      return url;
    },
  },
};
</script>