element ui中el-switch使用的坑

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

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

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

在这里插入图片描述

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

 <template slot-scope="scope">
	<el-switch v-model="state"
        active-value="1"
        inactive-value="0"
        active-color="#13ce66"
        inactive-color="#ff4949"
        @change="changeStatus($event,scope.row)"
     	inactive-value="2">
	</el-switch>
</template>

请注意以面的写法,active-value和inactive-value的值分别是字符串的12,如果你赋值为数字类型的 12是无法正常工作的,若赋值为数值类型,需这样写:

 <template slot-scope="scope">
	<el-switch v-model="state"
	  active-color="#13ce66"
      inactive-color="#ff4949"
     :active-value="1"
     :inactive-value="0"
     @change="changeStatus($event,scope.row)")>
	</el-switch>
</template>

我们使用绑定的方式,同时@change可以传值$event就是switch的当条信息值,scope.row为参数,还可以再添加index表示当前列表的序号

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

你可能感兴趣的:(element,ui,vue.js)