/*
 * @Descripttion: HJ
 * @Company: 思宏科技
 * @version: v1.0
 * @Author: HJ
 * @Date: 2021-03-23 15:56:46
 * @LastEditors: HJ
 * @LastEditTime: 2021-06-07 18:22:45
 */
const { bus } = getApp();
const componentOptions = {
  // 组件选项
  options: {
    multipleSlots: true,
  },
  externalClasses: ["custom-class"],
  properties: {
    value: {
      type: Object,
      value: {},
      observer(v) {
        if (v) this.initData(v);
      },
    },
    direction: {
      type: String,
      value: "horizontal",
      observer(v) {
        this.setData({
          isHorizontal: v === "horizontal",
        });
      },
    },
    extraInfo: {
      type: Object,
      value: {},
    },
    needBtn: {
      type: Boolean,
      value: false,
    },
    isInPublic: {
      type: Boolean,
      value: false,
    },
  },
  // 组件数据
  data: {
    isPageHidden: false, // 页面是否处于隐藏状态
    // 菜品的UUID
    dishKey: "",
    // 菜品数据
    dishData: {},
    // 购买信息
    buyInfo: {
      number: 0,
    },
    // 是否不允许点击
    disabled: false,
    // 是否横向展示
    isHorizontal: true,
    // 图片是否展示
    imgShow: false,
    // 优惠的价格
    diffPrice: 0,
  },
  // 组件方法
  methods: {
    init() {},
    // 计算菜品数据
    initData(dishData) {
      const { price, discount } = dishData;
      const diffPrice = price - discount;
      this.setData({
        dishData,
        diffPrice: diffPrice.toFixed(2),
      });
    },
    // 点击菜品获取详情
    clickItem() {},
  },
  // 组件生命周期
  lifetimes: {
    attached() {
      this.init();
    },
  },
  // 页面生命周期
  pageLifetimes: {
    // 页面被展示
    show() {
      const { isPageHidden } = this.data;

      // show事件发生前，页面不是处于隐藏状态时
      if (!isPageHidden) {
        return;
      }

      // 重新执行定时器等操作
    },
    // 页面被隐藏
    hide() {
      this.setData({
        isPageHidden: true,
      });

      // 清除定时器等操作
    },
  },
};

Component(componentOptions);
