This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cyber-narrator-cn-ui/src/components/timeGranularity/timeMap.js

74 lines
2.3 KiB
JavaScript
Raw Normal View History

2023-10-25 18:08:59 +08:00
import { autoGranularity } from './autoGranularity'
const Second = 1
const Min = 60 * Second // seconds In 1 minute
const Hour = 60 * Min
const Day = 24 * Hour
const Week = 7 * Day
const Month = 30 * Day
const Year = 12 * Month
/*
* 驶入时间间隔 单位是S
* 输出式按键粒度 单位是S
* */
/* 通用-时间粒度step整分钟 */
function commonGranularity (durationBySeconds = 0) {
/* 增加时间粒度处理 */
if (durationBySeconds <= Hour) {
return Min // max: 60
} else if (durationBySeconds > Hour && durationBySeconds <= 3 * Hour) {
return Min * 2 // max:90
} else if (durationBySeconds > 3 * Hour && durationBySeconds <= 6 * Hour) {
return Min * 5 // max: 72
} else if (durationBySeconds > 6 * Hour && durationBySeconds <= 24 * Hour) {
return Min * 10 // max:144
} else if (durationBySeconds > Day && durationBySeconds <= 2 * Day) {
return Min * 20 // max:144
} else if (durationBySeconds > 2 * Day && durationBySeconds <= Week) {
return Hour // 168
} else if (durationBySeconds > Week && durationBySeconds <= Month) {
return Hour * 6 // 120
} else if (durationBySeconds > Month && durationBySeconds <= 3 * Month) {
return Hour * 12 // 180
} else if (durationBySeconds > 3 * Month && durationBySeconds <= Year) {
return Day * 2 // 182
}
// 默认 100个点,自动计算
return autoGranularity(durationBySeconds, {
limit: 100
})
}
/* 专用-报告的时间粒度 step整小时 */
function aiLearningGranularity (durationBySeconds = 0) {
if (durationBySeconds <= Day) {
return Hour // max: 24
} else if (durationBySeconds > Day && durationBySeconds <= 2 * Day) {
return Hour * 2 // 24
} else if (durationBySeconds > 2 * Day && durationBySeconds <= Week) {
return Hour * 6 // 28
} else if (durationBySeconds > Week && durationBySeconds <= 15 * Day) {
return Hour * 12 // 30
} else if (durationBySeconds > 15 * Day && durationBySeconds <= Month) {
return Hour * 24 // 30
}
// 预留逻辑若超过1个月默认30个点,自动计算
return autoGranularity(durationBySeconds, {
limit: 30
})
}
// 需要内置的 可以陆续在下面继续写
export default {
/* 通用-粗略的 时间粒度 */
commonGranularity,
/* 专用-知识库智能学习 时间粒度 */
aiLearningGranularity
}