card.js 1.08 KB
Component({
  properties: {
    address: {
      type: Object,
      value: {},
      observer: '_addressChange'
    },
    frame: {
      type: Boolean,
      value: false
    }
  },
  methods: {
    _addressChange(address) {
      let frame = false;

      if (address) {
        if (address.area && address.address) {
          const length = 45;
          let areaText = `${address.area} ${address.address}`;

          if (areaText.length > length) {
            areaText = areaText.substring(0, length) + '...';
          }

          address.areaText = areaText;
          address.consignee = address.consignee || '';
          address.mobile = address.mobile || '';
        }

        if (!address.consignee && !address.area && !address.address) {
          frame = true;
        }
      }

      this.setData({
        address,
        frame
      });
    },
    chooseAddress() {
      this.triggerEvent('chooseAddress');
    },
    addAddressByLocal() {
      this.triggerEvent('addAddressByLocal');
    },
    addAddressByWechat() {
      this.triggerEvent('addAddressByWechat');
    }
  }
});