el-switch开关在表格中调用
效果图
注意:avue-switch在表格中用change事件可能会出现自动加载情况,用el-switch不会
1.加入el-switch标签并设置change事件
代码
off-value="false"
v-model="scope.row.status"
@change="switchChange(scope.row)" >
2.数据中的设置代码块
代码
{
label: "等级状态",
prop: "status",
slot: true,
rules: [
{
required: true,
message: "请输入等级状态",
trigger: "blur",
},
],
},
3.进入网页时自动加载区对每一行status进行处理(因为后台传值是string类型,在此需要转化成true和false,如果是boolean就不用进行此操作)
代码
onLoad(page, params = {}) {
this.loading = true;
getList(
page.currentPage,
page.pageSize,
Object.assign(params, this.query)
).then((res) => {
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
for(var i=0;i
this.data[i].status=this.data[i].status=="true"?true:false
}
this.loading = false;
});
},
4.el-switch中change事件内容
代码
switchChange(row) {
update(row)
.then((data) => {
row.status =!row.status
console.log(!row.status)
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!",
});
});
},
全部代码
:table-loading="loading"
:data="data"
:page="page"
:permission="permissionList"
:before-open="beforeOpen"
v-model="form"
@row-update="rowUpdate"
@row-save="rowSave"
@row-del="rowDel"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@on-load="onLoad"
:cell-class-name="addClass" >
size="small"
icon="el-icon-delete"
plain
v-if="permission.memberlevel_delete"
@click="handleDelete"
>删 除
off-value="false"
v-model="scope.row.status"
@change="switchChange(scope.row)"
>
下一篇: 教学反思刘晋