mixin.js 1.52 KB
import {
  getCoupons,
  getShopCoupons
} from '../../config/api'
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: {
    async getData() {
      const _ = this
      if(_.componentContent.selectedCoupon && _.componentContent.selectedCoupon.length > 0){
        let params = {
          page: 1,
          pageSize: 99,
          ids: `${this.componentContent.selectedCoupon}`
        }
        if(this.typeId === 1){
          const response = await getCoupons(params)
          this.successCallback(response.data)
        } else if(this.typeId === 3) {
          params.shopId = this.shopId
          const response = await getShopCoupons(params)
          this.successCallback(response.data)
        }
      } else {
        this.couponsData = []
      }
    },
    successCallback(res) {
      this.couponsData = res.data.list
      if(JSON.stringify(this.componentContent.couponList) !== JSON.stringify(this.couponsData)){
        this.componentContent.couponList = this.couponsData
      }
    }
  }
}