Switch 开关
表示两种相互对立的状态间的切换,多用于触发「开/关」。
基本用法
绑定v-model到一个Boolean类型的变量。可以使用active-color属性与inactive-color属性来设置开关的背景色。
<el-switch
v-model="value"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
<script>
export default {
data() {
return {
value: true
}
}
};
</script>
Events
事件名称 | 说明 | 回调参数 |
---|---|---|
change | switch 状态发生变化时的回调函数 | 新状态的值 |
Switch开关并没有click事件,只有一个change事件,点击Switch开关直接更改状态值。
我们可以自定义加一个click事件。
点击Switch开关,这样会执行两个事件,一个是组件自带的change事件,一个是我们自定义加的click事件。
此时我们只需要click事件,需要屏蔽change事件。所以我们要给组件加上disabled属性,屏蔽change事件。
重点:
1、在封装好的组件上使用,所以要加上.native
2、.prevent就相当于…event.preventDefault(),阻止默认行为
禁用状态
设置disabled属性,接受一个Boolean,设置true即可禁用。
<el-switch
v-model="value1"
@click.native.prevent="changeListType(scope.row)"
disabled>
</el-switch>
<el-switch
v-model="value2"
disabled>
</el-switch>
<script>
export default {
data() {
return {
value1: true,
value2: false
}
},
methods:{
changeListType (row) {
this.$confirm('此操作将修改策略状态, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$message({
type: 'success',
message: '修改成功!'
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
})
}
};
</script>
这里需要对禁用状态样式坐下调整:
.el-switch.is-disabled {
opacity: 1;
}
.el-switch.is-disabled .el-switch__core, .el-switch.is-disabled .el-switch__label {
cursor: pointer !important;;
}