/*
 * @Descripttion: HJ
 * @Company: 思宏科技
 * @version: v1.0
 * @Author: HJ
 * @Date: 2021-02-07 09:20:03
 * @LastEditors: HJ
 * @LastEditTime: 2021-07-02 16:27:16
 */
Component({
  options: {
    multipleSlots: true,
  },
  properties: {
    navbarData: {
      //navbarData   由父页面传递的数据，变量名字自命名
      type: Object,
      value: {
        showCapsule: 1,
      },
    },
    // 背景图片
    bgImg: {
      type: String,
      value: "",
    },
    // 背景颜色
    backgroundColor: {
      type: String,
      value: "",
    },
    // custom-style
    customStyle: {
      type: String,
      value: "",
    },
  },
  data: {
    // 整体的高度
    height: 84,
    // 胶囊的高度
    menuHeight: 84,
    // 首页地址
    homePageUrl: "/pages/public/public",
    // 是否为分享
    share: false,
    // 左上角是否显示返回首页的按钮
    isBackHome: false,
    // 背景是否透明
    opacity: 0,
    // 胶囊的宽度
    menuWidth: 87,
    // 距离顶部
    menuTop: 0,
  },
  methods: {
    // 判断当前页面是否需要返回首页
    computedRouter() {
      const pages = getCurrentPages();
      const { homePageUrl } = this.data;
      if (pages.length === 1) {
        const { route } = pages[0];
        this.setData({
          isBackHome: route !== homePageUrl,
        });
      }
    },
    // 初始化组件
    init(data) {
      if (data) {
        const { navBarHeight, menuHeight, menuTop, menuLeft } =
          getApp().globalData;
        this.setData({
          menuWidth: menuLeft,
          menuTop: menuTop,
          height: navBarHeight,
          menuHeight,
        });
      }
    },
    // 返回上一页面
    _navback() {
      wx.navigateBack();
    },
    //返回到首页
    _backhome() {
      wx.reLaunch({
        url: this.data.homePageUrl,
      });
    },
    // 判断背景色是否透明
    setOpacity(scrollTop, maxTop) {
      let opacity = 0;
      if (scrollTop <= maxTop) {
        opacity = scrollTop / maxTop;
      } else {
        opacity = 1;
      }
      this.setData({
        opacity: opacity,
      });
    },
  },
  // 组件生命周期
  lifetimes: {
    created() {},
    attached() {
      this.computedRouter();

      const { watch, navBarFlag } = getApp();
      navBarFlag ? watch("navBarFlag", this.init.bind(this)) : this.init(true);

      this.setData({
        // 获取是否是通过分享进入的小程序
        share: getApp().globalData.share,
      });
    },
    ready() {},
    // 组件被移动到其他页面
    moved() {
      this.computedRouter();
    },
    detached() {},
  },
});
