首先dialog必须加一个v-if,防止列表页加载时会触发dialog中的发送请求
<el-dialog :title="'批量关联'" width="60%" :close-on-click-modal="false" :visible.sync="stationDialogVisible" v-if="stationDialogVisible">
在列表页点击按钮显示dialog同时,调用dialog中的判断勾选方法(省略)
下面是勾选方法
checkTable(){
let curStations1 = [];
let param = {
workcenterId:this.workCenterId,
};
//查询当前工序已绑定的工位
axios
.fetchPost(this.config.baseUrl + "base/workCenter/findStationByWorkCenter", param)
.then(curResult => {
curStations1 = curResult.data;
//查询所有工位做比较 (其实能够直接获取table的数据更好就不用发请求了,因为table已经加载了一遍数据,但是没找到方法获取只能再请求一次了……先mark下以后找到方法再改)
axios.fetchPost(
this.config.baseUrl +"base/workCenter/findStation"
).then(result => {
//循环作比较,如果绑定过的就勾选
result.data.forEach(data=>{
curStations1.forEach(curStation => {
if(data.stationId == curStation.stationId){
this.$refs.stationTable.toggleRowSelection(data,true);
}
})
})
}).catch(err => {
layerUtils.show(err.msg, "错误提示");
});
})
.catch(err => {
layerUtils.show("查询失败1");
});
}
效果如图所示