Vue+element-ui+Ts封装 AProGoodsSku 创建商品属性选择

npm地址:acomponent-ui - npm 

具体操作请看文档,文档链接:AComponent-ui

适用于创建商品时属性规格组合。

 

基础用法代码

 <template>
       <div>
            <AProGoodsSku
                :goodsData="goodsData"
                @change="change">
                <template v-slot:table>
                    <el-table-column label="价格(元)" align="center" width="160">
                        <template slot-scope="scope">
                            <AProInput
                               size="mini"
                               :model.sync="scope.row.goodsPrice"
                               placeholder="请输入价格"
                               :isFormItem="false"
                               isPrice
                               clearable
                             />
                        </template>
                    </el-table-column>
                </template>
            </AProGoodsSku>
            <div style="padding-top: 20px">{{value}}</div>
            <div v-if="value.length" style="padding-top: 20px">skuid组合(pIdCombination):{{value[0].pIdCombination}}</div>
            <div v-if="value.length" style="padding-top: 20px">spu组合名(nameCombination):{{value[0].nameCombination}}</div>
            <div v-if="value.length" style="padding-top: 20px">spu组合值(valCombination):{{value[0].valCombination}}</div>
       </div>
  </template>

  <script>
    export default {
        data() {
            return {
                value: [],
                goodsData: [
                    {
                        privateSpecName: '颜色', //规格名
                        id: '1',
                        dynamicList: [
                            { name: '天蓝', value: 1 },
                            { name: '灰色', value: 2 },
                            { name: '白色', value: 3 },
                            { name: '黑色', value: 4 }
                        ] //规格值数组
                    },
                    {
                        privateSpecName: '内存', //规格名
                        id: '2',
                        dynamicList: [
                            { name: '64G', value: 10 },
                            { name: '128G', value: 12 },
                            { name: '256G', value: 13 }
                        ] //规格值数组
                    },
                    {
                        privateSpecName: '型号', //规格名
                        id: '3',
                        dynamicList: [
                            { name: 'Xs', value: 20 },
                            { name: 'XsMax', value: 21 }
                        ] //规格值数组
                    }
                ]
            }
        },
        methods: {
            change(value) {
                this.value = value
            }
        }
    }
  </script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue2中,对于element-ui组件的二次封装,可以按照以下步骤进行: 1. 需求分析:明确需要封装element-ui组件,以及需要添加的功能和配置项。 2. 创建父组件:编写父组件的template和script代码,其中template中调用封装组件,script中定义需要传递给封装组件的props属性。 3. 创建封装组件:编写封装组件的template和script代码。在template中使用element-ui组件,并根据需要进行样式和布局的调整。在script中定义props属性,接收父组件传递的值,并监听element-ui组件的事件,触发update事件给父组件。 4. 通过临时变量传递值:由于父组件传递给封装组件的props不能直接作为封装组件的v-model属性传递给element-ui组件,所以需要在封装组件中定义一个临时变量来存储值,并将该变量与element-ui组件进行绑定。 5. 完成打通:在封装组件中监听中间件,接收到element-ui组件的update事件后,再将该事件传递给父组件。 总结来说,Vue2中对于element-ui组件的二次封装,需要创建父组件和封装组件,通过props属性传递值,并在封装组件中监听element-ui组件的事件并触发update事件给父组件。同时,需要使用临时变量来传递值给element-ui组件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue3+ts+element-plus 组件的二次封装-- 页脚分页el-pagination的二次封装](https://blog.csdn.net/cs492934056/article/details/128096257)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值