做项目时遇到了个问题,要求把时间重叠的每个阶段都提示出来 但是发现$message的提示框不仅都重合在一起 并且数据内容只是最后一次循环出来的信息如下图
- 首先解决样式重合问题 这里我就用的是简单粗暴的方法加个定时器 这样重合问题就可以解决
- 其次是提示内容只是最后一次循环里的数据,这里我使用的是自执行函数(也是学以致用上了)
代码如下
let overlap = false // 轮转时间重叠
for (let i = 1; i < begin.length; i++) {
let a = begin[i]; // 开始时间
let b = over[i - 1] // 上一阶段的结束时间
;((a,b) => {
if (a <= b) {
overlap = true
var t = setTimeout(() => {
this.$message.error(`轮转阶段${i + 1}和轮转阶段${i}的时间冲突`);
clearTimeout(t)
}, 10)
}
})(a,b)
}
if (overlap) return
成功解决