diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue index 9352d276..5eb91f78 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue @@ -115,7 +115,18 @@ function getDuration(warningTime) { return `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`; } - +function getDurationEndTime(warningTime,endTime){ + const momentStartTime = moment(warningTime, 'YYYY-MM-DD HH:mm:ss'); + const momentEndTime = moment(endTime, 'YYYY-MM-DD HH:mm:ss'); + const duration = moment.duration(momentEndTime.diff(momentStartTime)); + const hours = Math.floor(duration.asHours()); + const minutes = Math.floor(duration.minutes()); // 使用 .minutes() 直接获取分钟数 + const seconds = Math.floor(duration.seconds()); // 使用 .seconds() 直接获取秒数 + // 注意:这里不再需要 Math.abs(),因为时间差可以是负数(表示结束时间在开始时间之前) + // 如果你总是想要正数的时间差,可以添加 Math.abs() 到小时、分钟和秒的计算中 + return `${padZero(Math.abs(hours))}:${padZero(Math.abs(minutes))}:${padZero(Math.abs(seconds))}`; + // 如果不需要绝对值,则去掉 Math.abs() 调用 +} function padZero(num) { num = num.toString(); while (num.length < 2) { @@ -191,8 +202,11 @@ export default { let _data = _.cloneDeep(this.formData) _data.direction=DirectionTypes[_data.direction] _data.roadName = '济菏高速' - _data.duration = getDuration(_data.warningTime); - + if(_data.warningState==4&&_data.endTime!=null&&_data.endTime!=''&&_data.warningTime!=null){ + _data.duration =getDurationEndTime(_data.warningTime,_data.endTime) + }else{ + _data.duration = getDuration(_data.warningTime); + } if(_data.lane){ _data.lane =_data.lane.toString().split(",") || [] } else if(_data.lang){