product-link.vue 1.19 KB
<template>
    <a-link :href="href">
        <slot></slot>
    </a-link>
</template>

<script>
export default {
    name: 'ProductLink',
    data() {
        return {
            href: ''
        };
    },
    props: {
        value: [Object]
    },
    created() {
        if (this.value) {
            this.getLink(this.value);
        }
    },
    methods: {
        getLink(product) {
            let {product_id, goods_id, cn_alphabet, product_skn} = product;

            if (!goods_id) {
                goods_id = product.goods_list.length ? product.goods_list[0].goods_id : '';
            }
            let href = `/product/pro_${product_id}_${goods_id}/${cn_alphabet}.html`;

            if (this.$yoho.isYohoBuy) {
                let goParams = {
                    action: 'go.productDetail',
                    params: {
                        product_skn: product_skn
                    }
                };

                href += `?openby:yohobuy=${JSON.stringify(goParams)}`;
            }
            this.href = href;
        }
    },
    watch: {
        value(val) {
            if (val) {
                this.getLink(val);
            }
        }
    }
}
</script>

<style>

</style>