mixin.js 2.72 KB
import api from '../../config/api'
import NET from '../../../../utils/request'
import { funMixin } from '../../config/mixin'

export const commonMixin = {
  name: 'textComponent',
  mixins: [funMixin],
  data () {
    return {
      couponsData: []
    }
  },
  props: {
    terminal: {
      type: Number,
      default: 4
    },
    typeId: {
      type: Number,
      default: 1
    },
    shopId: {
      type: Number,
      default: 0
    },
    componentContent: {
      type: Object
    }
  },
  watch: {
    'componentContent': {
      handler(newVal, oldVal) {
        this.getData()
      },
      deep: true
    }
  },
  created() {
    this.getData()
  },
  methods: {
    getData() {
      const _ = this
      if(_.componentContent.selectedCoupon && _.componentContent.selectedCoupon.length > 0){
        let _url = ''
        if(_.typeId === 1){
          _url =`${api.getCoupons}?page=1&pageSize=99&ids=${_.componentContent.selectedCoupon}`
        } else if(_.typeId === 3) {
          _url =`${api.getShopCoupons}?page=1&pageSize=99&shopId=${_.shopId}&ids=${_.componentContent.selectedCoupon}`
        }
        const params = {
          method: 'GET',
          url: _url,
        }
        this.sendReq(params, (res) => {
          _.couponsData = res.data.list
          if(_.typeId === 1){
            _.couponsData.forEach(item=>{
              item.couponName = item.activityName
              item.effectiveStart = item.activityStartTime
              item.effectiveEnd = item.activityEndTime
            })
          }
          if(JSON.stringify(_.componentContent.couponList) !== JSON.stringify(_.couponsData)){
            _.componentContent.couponList = _.couponsData
          }
        })
      } else {
        _.couponsData = []
      }
    },
    // 领取优惠券
    receiveCoupon(item) {
      const res = uni.getStorageSync('storage_key');
      const token = res.token
      if (token) {
        var paramsData = {}
        if(this.typeId === 1){
          paramsData.couponId = item.couponId
        } else if(this.typeId === 3) {
          paramsData.shopCouponId = item.shopCouponId
          paramsData.shopId = this.shopId
        }
        NET.request(api.takeCoupon, paramsData, 'POST').then(res => {
          this.getData()
          uni.showToast({
            title:'领取成功',
            icon:"success"
          })
        }).catch(res => {
          if(res.data.code !== '200'){
            uni.showToast({
              title:res.data.message,
              icon:"none"
            })
          }
        })
      } else {
        uni.showToast({
          title:'请先登录',
          icon:"none"
        })
        uni.navigateTo({
          url:'/pages_category_page2/userModule/login'
        })
      }
    }
  }
}