在项目里用到了datav的 dv-scroll-board 轮播表 开发一个报警轮播。因为接口要频繁去调用,写了个定时器一秒调用一次。但是发现这样视图没有更新。检查了一会发现从接口获取值有问题。在每次调用方法的时候重新赋值一下就OK。
tableData方法是用来处理轮播表的数据格式,我这里对我的报警状态列做了一个颜色处理。也可以在这里调整字体大小格式等。
getWarningMessage()
.then((res) => {
if (res) {
let resData = res.data;
console.log(resData);
resData = resData.slice(0, 12);
let headerList = [
{ file: 'lineName' },
{ file: 'alarmTime' },
{ file: 'alarmMessage' },
{ file: 'alarmStatus' }
];
this.warningInfoConfig.data = this.tableData(headerList, resData);
//接口返回值有变,但是页面不会刷新,重新赋值一下就OK。
this.warningInfoConfig = { ...this.warningInfoConfig };
console.log(this.warningInfoConfig.data);
} else {
console.error('报错',res.message);
}
})
.catch((err) => {
console.error('报错',err);
});
//用来处理轮播表的样式跳转
tableData(headerList, resData) {
let list = [];
// console.log(resData);
resData.forEach((resItem) => {
let item = '';
let arr = [];
let classNa = '';
headerList.forEach((currentVal, index) => {
if (Object.keys(resItem).includes(currentVal.file)) {
if (currentVal.file == 'alarmStatus') {
if (resItem.alarmStatus == '处理中') {
classNa = 'colorRed';
}
if (resItem.alarmStatus == '已处理') {
classNa = 'colorBlue';
}
item = `<i class='fs-26 fw-b ${classNa}'>${resItem[currentVal.file]}</i>`;
} else {
item = `<span class='fs-26 ${classNa}'>${resItem[currentVal.file]</span>`;
}
}
arr.push(item);
});
list.push(arr);
});
return list;
},
标签:console,轮播,resItem,resData,视图,let,file,Data
From: https://blog.csdn.net/weixin_48286737/article/details/139448792