<!--
 第三方url
-->
<template>
  <div>
    <web-view
      :src="link"
      @message="getMessage"
      @error="handleError"
      @load="handleLoad"
    ></web-view>
  </div>
</template>

<script>
let forUrlAddKey = require("mayi-front-tools/forUrlAddKey").default;
let getUrlKey = require("mayi-front-tools/getUrlKey").default;
let removeUrlKey = require("mayi-front-tools/removeUrlKey").default;
import { serialize, getQueryVariable, DFSImg } from "@/utils/index";
import login from "@/api/login";
import indexApi from "@/api/index";
export default {
  data() {
    return {
      link: "",
      shareShopName: "", //分享名称
      shareLogoUrl: "", //分享图片url
      newWindowHref: "", //分享页面url
    };
  },
  async onLoad(options) {
    console.log(options, "第三方页面");
    /**
     * scene=sso 第三方需要登录的页面
     * login=1   jwt需要登录(临时方案)
     */
    if (options.scene) {
      //扫码
      let data = await this.getParams(options.scene);
      if (data.sso) {
        let link = data.link;
        if(getUrlKey(decodeURIComponent(link), "getMixId") == '1') {//第三方跳转加mixid
          link = forUrlAddKey(decodeURIComponent(link),{mixid: this.$store.state.mixid})
        }
        if (!wx.getStorageSync("sessionid")) {
          wx.redirectTo({
            url: `../login/main?scene=sso&back=${link}`,
          });
        } else {
          this.getSsoBcakUrl(decodeURIComponent(link));
        }
      }
    } else if (options.link) {
      let link = options.link;
      if(getUrlKey(decodeURIComponent(link), "getMixId") == '1') {//第三方跳转加mixid
        link = forUrlAddKey(decodeURIComponent(link),{mixid: this.$store.state.mixid})
      }
      if (getUrlKey(decodeURIComponent(link), "scene") == "sso") {
        if (!wx.getStorageSync("sessionid")) {
          wx.redirectTo({
            url: `../login/main?scene=sso&back=${link}`,
          });
        } else {
          this.getSsoBcakUrl(decodeURIComponent(link));
        }
      } else if (getUrlKey(decodeURIComponent(link), "login") != "1") {
        this.setLink(decodeURIComponent(link));
      } else {
        if (wx.getStorageSync("sessionid")) {
          this.setLink(
            forUrlAddKey(decodeURIComponent(link), {
              token: wx.getStorageSync("sessionid"),
              jwt: 1,
            })
          );
        } else {
          let url = `/pages/login/main?scene=sso&back=${link}`;
          wx.navigateTo({
            url,
          });
        }
      }
    }
  },
  async onShareAppMessage(res) {
    let url = "";
    console.log(this.newWindowHref + "this.newWindowHref");
    //分享路径
    if (this.newWindowHref) {
      url = this.newWindowHref;
    } else {
      url = res.webViewUrl;
    }
    url = removeUrlKey(url, ["token"]);
    //分享页面去掉登录态
    if (url.indexOf("sessionid") > -1) {
      url = url.split("?")[0] + "?mixid=" + this.shopId;
    }else if(url.indexOf('getMixId') > -1) {//分享链接需要带mixid
      url  = forUrlAddKey(url,{mixid: this.shopId})
    }
    this.shareUrl = url;
    console.log(this.shareUrl, "index12");
    console.log(
      `/pages/index/main?link=${encodeURIComponent(this.shareUrl)}`,
      "测试直播分享相关"
    );
    return {
      title: this.shareShopName, // 默认是小程序的名称
      path: `/pages/wxArticle/main?link=${encodeURIComponent(this.shareUrl)}`, // 默认是当前页面
      imageUrl: this.shareLogoUrl,
      success: function (res) {
        // 转发成功之后的回调
        if (res.errMsg == "shareAppMessage:ok") {
          console.log(res, "分享成功");
        }
      },
      fail: function () {
        // 转发失败之后的回调
        if (res.errMsg == "shareAppMessage:fail cancel") {
          // 用户取消转发
          console.log(res, "分享失败");
        } else if (res.errMsg == "shareAppMessage:fail") {
          // 转发失败,其中 detail message 为详细失败信息
        }
      },
      complete: function () {
        // 转发结束之后的回调(转发成不成功都会执行)
      },
    };
  },
  methods: {
    setLink(data) {
      this.link = data;
      console.log(this.link,89999999)
    },
    getSsoBcakUrl(link) {
      let op = {
        callbackUrl: link,
        email: "",
        fromAppid: "VsEOuDJqBnGNyXZJWCQS",
        // mobilephone: '15821335747',hgFTLLhgnBmeOyCkcbyv
        // toAppid: 'hgFTLLhgnBmeOyCkcbyv',
        toAppid: getUrlKey(link, "toAppid"), //道可
        wxAvatarUrl: this.$store.state.userInfo.avatarUrl,
      };
      login.getSsoBcakUrl(op).then((res) => {
        if (res.data.code == "200") {
          this.setLink(res.data.data);
        } else {
          wx.showToast({ title: res.data.msg, icon: "none" });
        }
      });
    },
    getParams(options) {
      return new Promise((resolve, reject) => {
        indexApi
          .getShareSceneRecord(options)
          .then((res) => {
            if (res.data.code == "200") {
              let scene = JSON.parse(res.data.data.scene);
              resolve(scene);
            }
          })
          .catch((err) => {});
      });
    },
    //加载成功
    handleLoad() {
      console.log("网页加载成功");
    },
    //右上角分享时触发
    getMessage(res) {
      let len = res.target.data.length - 1;
      console.log(res, "h5消息", res.target.data[len]);
      this.shareShopName = res.target.data[len].shareShopName || "";
      if (res.target.data[len].shareLogoUrl) {
        this.shareLogoUrl = DFSImg(res.target.data[len].shareLogoUrl, 500, 400);
      }
      this.newWindowHref = res.target.data[len].shareImgUrl; // + '&fromVisitorOpenId=' + wx.getStorageSync("openid")
      console.log(
        "分享信息:",
        this.shareLogoUrl,
        this.shareShopName,
        1111111,
        res
      );
    },
    handleError(data) {
      wx.showLoading({
        title: "网页加载失败 请右上角刷新",
      });
    },
  },
};
</script>