今天要做一个可以切换用户状态并把当前状态码保存到数据库的简单功能,试了很多次前端开关就是没办法拿到数据库中的数据,结果最后发现竟然是前端代码中要求的数据类型和后端的数据类型不一致导致的!
如图所示,最开始字段类型我定义的为int类型,用1表示启用,0表示未启用
而后在代码中发现Vue中没有办法绑定数字到开关上,只能绑定一个变量
<el-table-column label="是否启用" align="center" prop="enable" >
<template slot-scope="scope">
<el-switch
v-model="scope.row.enable.toString()"
active-color="#13ce66"
inactive-color="#ff4949"
active-value="1"
inactive-value="0"
@change="handleEnable(scope.row)">
</el-switch>
</template>
</el-table-column>
所以只能把当前表示是否启用的状态码变成字符串类型
方法:
/** 改变地区状态操作 */
handleEnable(row) {
let text = row.enable === "0" ? "启用" : "停用";
this.$modal.confirm('确认要"' + text + '""' + row.name + '"地区吗?').then(function() {
return updateEnable(row.id, row.enable);
}).then(() => {
this.$modal.msgSuccess(text + "成功");
this.open = false;
this.getList();
}).catch(()=>{});
}
终于达到了想要的效果