从后台循环遍历获取多选框的值,点击修改后在传到后台
1、Vue页面代码
<div style="float:right;height: 55%;width:90%;padding-left: 1%;">
<el-table :data="tableData" border style="width: 95%;margin-left: 0%" height="300">
<!--<el-table :data="tableData" style="width: 100%">-->
<el-table-column prop="ywdm" label="代码" width="180">
</el-table-column>
<el-table-column prop="xtmc" label="系统代码" width="180">
</el-table-column>
<el-table-column prop="ywmc" label="业务名称" width="180">
</el-table-column>
<el-table-column label="短信" width="80">
<template slot-scope="scope">
<el-checkbox v-model="dxArray[scope.$index]" @change="switchChangeDx(scope)"></el-checkbox>
</template>
</el-table-column>
<el-table-column label="微信" width="80">
<template slot-scope="scope">
<el-checkbox v-model="wxArray[scope.$index]" @change="switchChangeWx(scope)"></el-checkbox>
</template>
</el-table-column>
<el-table-column label="电子邮件" width="80">
<template slot-scope="scope">
<el-checkbox v-model="emailArray[scope.$index]" @change="switchChangeEmail(scope)"></el-checkbox>
</template>
</el-table-column>
</el-table>
</div>
2、js
methods: {
doAxios: function () {
//后台获取 发送配置信息
axios({
method: 'post',
url:'/dxglpt/wtcjclLists',
//url: 'http://192.168.100.163:8082/dxglpt/getFspz',
}).then((response) => {
this.tableData = response.data.data;
let useData = this.tableData;
this.saveOldDataList = JSON.parse(JSON.stringify(this.tableData));//后台获取到的值赋值给saveOldDataList ,修改的时候判断哪一个复选框是否改变
let array_ = [];
let wxArray_ = [];
let emailArray_ = [];
for (var i = 0; i < useData.length; i++) {
array_[i] = useData[i].sfdx === "1" ? true : false;
wxArray_[i] = useData[i].sfwx === "1" ? true : false;
emailArray_[i] = useData[i].sfemail === "1" ? true : false;
}
this.dxArray = array_;
this.wxArray = wxArray_;
this.emailArray = emailArray_;
}).catch(function (error) {
// console.log(error);
this.$message.error("系统错误,请联系开发人员!");
})
},
switchChangeDx(scope) {
if (this.dxArray[scope.$index] === false) {
this.tableData[scope.$index].sfdx = 0;
this.flag = 0;
} else {
this.tableData[scope.$index].sfdx = 1;
this.flag = 0;
}
},
switchChangeWx(scope) {
if (this.wxArray[scope.$index] === false) {
this.tableData[scope.$index].sfwx = 0;
this.flag = 0;
} else {
this.tableData[scope.$index].sfwx = 1;
this.flag = 0;
}
},
switchChangeEmail(scope) {
if(this.emailArray[scope.$index]===false){
this.tableData[scope.$index].sfemail=0;
this.flag =0;
}else{
this.tableData[scope.$index].sfemail=1;
this.flag =0;
}
},
//提交修改信息
submitForm() {
//发送配置信息修改
let dxarray_ = [];
for (let i = 0; i < this.tableData.length; i++) {
if ( (this.saveOldDataList[i].sfdx !== String(this.tableData[i].sfdx))
|| (this.saveOldDataList[i].sfwx !== String(this.tableData[i].sfwx)
|| (this.saveOldDataList[i].sfemail !== String(this.tableData[i].sfemail)))) {
dxarray_.push(this.tableData[i]);
}
}
let fspzStr ={"fspz":dxarray_} ;
axios({
method: 'post',
url: 'http://192.168.100.163:8082/dxglpt/editFspz',
params: {
jsonStr: JSON.stringify(fspzStr)
}
}).then((response) => {
if (response.data.flg === 'success') {
this.$message({
message: '发送配置信息修改成功',
type: 'success',
duration: 2000
});
} else {
this.$message({
message: '发送配置修改失败',
type: 'error',
duration: 5000
});
}
}).catch((error) =>{
this.$message.error("系统错误,请联系开发人员!");
})
}
},
mounted: function () {
this.doAxios();
}
3、mock.js 假数据(此处没有代码列)
Mock.mock(/wtcjclLists/, 'post', {
"data":[
{
xtmc:'1账务系统',
ywmc:'1账务系统-手动发送',
sfdx:'1',
sfwx:'0',
sfemail:'1',
},
{
xtmc:'2财务系统',
ywmc:'2财务系统-手动发送',
sfdx:'1',
sfwx:'0',
sfemail:'1',
},
{
xtmc:'3财务系统',
ywmc:'3财务系统-手动发送',
sfdx:'0',
sfwx:'1',
sfemail:'1',
},
{
xtmc:'4财务系统',
ywmc:'4财务系统-手动发送',
sfdx:'1',
sfwx:'0',
sfemail:'0',
},
]
})
4、截图显示