seller-box.js 4.18 KB
// components/reserve/seller-box/seller-box.js
import util from '../../../utils/util';
import App from '../../../utils/api';

const {regeneratorRuntime} = global
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    seller: {
      type: Object,
      value: {},
    },
    hasStat: {
      type: Boolean,
      value: false,
    },
    hasAverage: {
      type: Boolean,
      value: true,
    },
    hasActivity: {//滚动优惠
      type: Boolean,
      value: false,
    },
    hasActivityTags: {//优惠标签
      type: Boolean,
      value: false,
    },
    hasActivityShort: {//店铺名后面的惠字
      type: Boolean,
      value: false,
    },
    hasSlogan: {
      type: Boolean,
      value: true,
    },
    hasBrand: {//店铺品牌
      type: Boolean,
      value: false,
    },
    hasActivityTese: {//店铺特色
      type: Boolean,
      value: false,
    },
    sellerStyle: {//特殊样式
      type: String,
      value: '',
    },
    hasSuggestion:{//是否有搜索目的地
      type: Boolean,
      value: false,
    },
    hasActivityRed:{//红包活动 tags
      type: Boolean,
      value: false,
    },
    hasNewActivityList:Boolean,//新的活动商家列表
    hasInSwiper:Boolean,//是否在Swiper控件内,不能使用组件电话框,只能通知页面
    hasShafa:Boolean,// 沙发按钮
    hasPtActiving:Boolean,//是否有平台活动
  },

  /**
   * 组件的初始数据
   */
  data: {},
  lifetimes: {
    attached: function () {
    },
    moved: function () {
    },
    detached: function () {
    },
  },
  observers: {
    'seller': function () {
      this.init()
    }
  },
  /**
   * 组件的方法列表
   */
  methods: {
    init() {
      let seller = this.data.seller
      seller.label_cstr=''
      seller.label_carr=[]
      if (seller && seller.label_c && seller.label_c.length > 0) {
        let label_cstr = []
        seller.label_c.forEach(l => {
          label_cstr.push(l.name)
          seller.label_carr.push({type:1,name:l.name})
        })
        seller.label_cstr = label_cstr.join(' | ')
      }
      if(seller.is_discount>0){
        seller.label_carr.unshift({type:0,name:'商家补贴'})
      }
      if(seller.isopen_md==1 && this.data.hasPtActiving){
        seller.label_carr.unshift({type:0,name:'瓜分百万'})
      }
      if(seller.label_carr.length>3){
        seller.label_carr=seller.label_carr.slice(0,3)
      }
      this.setData({
        location:getApp().location,
        se: seller,
      })
    },
    tapButton(e) {
      //console.log('tapButton',e)
      let type = util.attr(e, 'type');
      if (type == 'oncall') {
        console.log('has_online_reserve',this.data.seller.is_online_reserve,this.data.seller.is_tele)
        if(this.data.seller.is_online_reserve==1){
          let url=util.http_build_query({id:this.data.seller.id,activeTab:'reserve'},'/pages/reserve/reserve')
          if(this.data.seller.findSellerParamObj){
            let findSellerParamObj=this.data.seller.findSellerParamObj
            findSellerParamObj={
              date:findSellerParamObj.when_date,
              pnum:findSellerParamObj.several,
            }
            if(findSellerParamObj.daily>-1){
              findSellerParamObj.section=['','morning','noon','night',''][findSellerParamObj.daily]
            }
            url=util.http_build_query(findSellerParamObj,url)
          }
          if(this.data.hasShafa){
            url=util.http_build_query({
              classID:util.attr(e,'cid'),
              className:util.attr(e,'cname'),
            },url)
          }
          return wx.navigateTo({
            url:url,
          })
        }
        if(this.data.hasInSwiper){
          this.triggerEvent('event',{act:type,seller:this.data.seller})
        }else{
          this.selectComponent('#as').show(this.data.seller);
        }
      } else {
        util.toast('请打电话预订', 'none');
      }
    },
    lookLocation: function () {
      wx.openLocation({
        latitude: Number(this.data.seller.lat),
        longitude: Number(this.data.seller.long),
        scale: 17,
        address: this.data.seller.map_address,
        success: function (res) {
          console.log(res)
        }
      })
    },
  }
})