element ui中el-switch使用(亲测有效)

需求说明
1、根据后台传值动态显示开关(0为关,1为开)
2、对开关进行操作时请求后台,需要传两个参数:id,goodsRecommend

需求描述
我先说我的需求,我想在列表的每一条添加多个
个开关,可以改当前一条数据的状态,并发送到服务端,并根据服务端返回的结果局部刷新当前页数据

期望结果
状态是后端返回给我的状态,分别是0和1,我先点击switch发送给后端这条数据的id,然后修改这一条数据的状态,而不是重新拿这个列表,如果后端返回失败的情况这个switch不做改变

 

解决方法
Swich默认是boolean类型,而后台传值 为number类型,这个时候我们想用number来取代boolean类型;

<template slot-scope="{row}">
 推荐:{{row.goodsRecommend}}
<el-switch
 @change="updateGoodsRecommendBy(row)"
 v-model="row.goodsRecommend"
 active-color="#13ce66"
 inactive-color="#ff4949"
 active-value="1"
 inactive-value="0">
 </el-switch>
</template>

请注意以面的写法,active-value和inactive-value的值分别是字符串的1和2,如果你赋值为数字类型的 1 或 2是无法正常工作的,若赋值为数值类型,需这样写:(在后面加上: 就可以了)

<template slot-scope="{row}">
 推荐:{{row.goodsRecommend}}
<el-switch
 @change="updateGoodsRecommendBy(row)"
 v-model="row.goodsRecommend"
 active-color="#13ce66"
 inactive-color="#ff4949"
 :active-value="1"
 :inactive-value="0">
 </el-switch>
</template>

我们使用绑定的方式,同时@change可以传值$event就是switch的当条信息值,scope.row为参数,还可以再添加index表示当前列表的序号
@change 也可以绑定的是当前需要调用的 接口、
接口里面也要改一下、

 updateGoodsRecommendBy(row){
                console.log(row,'row')
                const params={
                    adminId:5,
                    goodsId:row.goodsId,
                    goodsRecommend:Number(row.goodsRecommend),

                }
                // return
                updateGoodsRecommendBy(params).then(res => {
                    if (res != null && res.code ==0) {
                        this.$message({
                            message:"成功1",
                            type:"success"
                        })

                    }else {

                    }
                })
            },


改变状态是要注意返回的状态根据状态来选择相应的写法

这样就可以了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值