card.js 1.35 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');
        }
    }
});