horizListFlex.vue 2.59 KB
<template>
	<div class="horiz-list-flex-box" v-if="lists && lists.length">
        <slot name="title-box"></slot>
		<div class="container-box">
            <div class="item-box" v-for="(item, index) in lists" :key="index">

                <!--
                    com=1:goodsItem_1组件,pid:1、3,固定不滚动;2、4,滚动
                        事件:
                            @jump:整个点击跳转事件
                            @addCart:右下角加入购物车按钮事件,已阻止事件冒泡

                    com=2:goodsItem_2组件,pid: 1,带标题,不显示附加信息;2、不带标题,显示附加信息
                        事件:
                            @jump:整个点击跳转事件

                    com=3:goodsItem_3组件,无pid参数
                        事件:
                            @jump:整个点击跳转事件
                            @primary:右下角红色主按钮点击事件,已阻止事件冒泡
                    -->

                <!-- 商品展示样式 1 -->
                <goods-item-1 v-if="com == '1'" @jump="jump" @addCart="addCart"
                    :item="item"
                    :pid="pid">
                </goods-item-1>

                <!-- 商品展示样式 2 -->
                <goods-item-2 v-if="com == '2'" @jump="jump"
                    :item="item"
                    :pid="pid">

                    <!-- 左上角角标icon -->
                    <flag-left-top slot="flag" v-if="flags && flags[index]"
                        :flag="flags[index]">
                    </flag-left-top>
                </goods-item-2>

                <!-- 商品展示样式 3 -->
                <goods-item-3 v-if="com == '3'" @jump="jump" @primary="primary"
                    :item="item">
                </goods-item-3>
            </div>
        </div>
	</div>
</template>

<script>
    // 引入组件
    import goodsItem1 from "@/components/goodsItem_1/goodsItem_1";
	import goodsItem2 from "@/components/goodsItem_2/goodsItem_2";
	import goodsItem3 from "@/components/goodsItem_3/goodsItem_3";
	import flagLeftTop from "@/components/flagLeftTop/flagLeftTop";

    export default {
        data: function () {
            return {

            }
        },
        props: ["lists", "com", "pid", "flags"],
        components: {
			goodsItem1,
			goodsItem2,
            goodsItem3,
            flagLeftTop
        }
    }
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style rel="stylesheet/less" lang="less" scoped>
    @import './horizListFlex';
</style>