fix: 修改 alertRule evalLog 时间错误的问题
This commit is contained in:
@@ -98,35 +98,11 @@ export default {
|
|||||||
if (this.obj) {
|
if (this.obj) {
|
||||||
this.$set(this.searchLabel, 'id', this.obj.id)
|
this.$set(this.searchLabel, 'id', this.obj.id)
|
||||||
}
|
}
|
||||||
this.$get(this.url, { ...this.searchLabel, ...this.searchCheckBox }).then(response => {
|
this.$get('alert/rule/' + this.obj.id + '/evalLog').then(response => {
|
||||||
this.tools.loading = false
|
this.tools.loading = false
|
||||||
this.nowTime = this.utcTimeToTimezoneStr(response.time)
|
this.nowTime = this.utcTimeToTimezoneStr(response.time)
|
||||||
// response = {
|
|
||||||
// code: 200,
|
|
||||||
// msg: 'success',
|
|
||||||
// data: {
|
|
||||||
// list: [{
|
|
||||||
// ruleId: 1,
|
|
||||||
// state: 200,
|
|
||||||
// msg: 'success',
|
|
||||||
// stts: 1634215095277,
|
|
||||||
// etts: 1634215095377
|
|
||||||
// }, {
|
|
||||||
// ruleId: 1,
|
|
||||||
// state: 201,
|
|
||||||
// msg: 'success',
|
|
||||||
// stts: 1634215095477,
|
|
||||||
// etts: 1634215095577
|
|
||||||
// }
|
|
||||||
// ]
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
for (let i = 0; i < response.data.list.length; i++) {
|
this.tableData = response.data
|
||||||
response.data.list[i].status = response.data.list[i].status + ''
|
|
||||||
}
|
|
||||||
this.tableData = response.data.list
|
|
||||||
this.pageObj.total = response.data.total
|
|
||||||
if (!this.scrollbarWrap) {
|
if (!this.scrollbarWrap) {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.scrollbarWrap = this.$refs.dataTable.$refs.dataTable.bodyWrapper
|
this.scrollbarWrap = this.$refs.dataTable.$refs.dataTable.bodyWrapper
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
<el-checkbox-group v-model="selectValue[item.key]">
|
<el-checkbox-group v-model="selectValue[item.key]">
|
||||||
<el-dropdown-item v-for="(item3,index3) in item.children" :key="index3" :title="item3.name" class="nz-dropdown-menu__item-hover">
|
<el-dropdown-item v-for="(item3,index3) in item.children" :key="index3" :title="item3.name" class="nz-dropdown-menu__item-hover">
|
||||||
<el-checkbox :label="item3.id">{{item3.name}}</el-checkbox>
|
<el-checkbox :label="item3.id">{{item3.name}}</el-checkbox>
|
||||||
<span class="right-box-select-num">{{item3.num}}</span>
|
<span class="right-box-select-num">{{item3.num || 0}}</span>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
<!-- <span :title="item3.name" class="children-title-name"> {{item3.name}}</span>-->
|
<!-- <span :title="item3.name" class="children-title-name"> {{item3.name}}</span>-->
|
||||||
<div v-for="(item4,index4) in item3.children" :key="index4" class="el-dropdown-menu__item nz-dropdown-menu__item-hover">
|
<div v-for="(item4,index4) in item3.children" :key="index4" class="el-dropdown-menu__item nz-dropdown-menu__item-hover">
|
||||||
<el-checkbox :label="item3.id+'-'+item4.id" :title="item3.name+'/'+item4.name">{{item3.name+'/'+item4.name}}</el-checkbox>
|
<el-checkbox :label="item3.id+'-'+item4.id" :title="item3.name+'/'+item4.name">{{item3.name+'/'+item4.name}}</el-checkbox>
|
||||||
<span class="right-box-select-num">{{item4.num}}</span>
|
<span class="right-box-select-num">{{item4.num || 0}}</span>
|
||||||
</div>
|
</div>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
<span :title="item3.name" class="children-title-name"> {{item3.name}}</span>
|
<span :title="item3.name" class="children-title-name"> {{item3.name}}</span>
|
||||||
<div :key="index4" v-for="(item4,index4) in item3.children" class="el-dropdown-menu__item nz-dropdown-menu__item-hover">
|
<div :key="index4" v-for="(item4,index4) in item3.children" class="el-dropdown-menu__item nz-dropdown-menu__item-hover">
|
||||||
<el-checkbox :label="item3.id+'-'+item4.id" :title="item4.name" :a="item3.id+'-'+item4.id">{{item4.name}}</el-checkbox>
|
<el-checkbox :label="item3.id+'-'+item4.id" :title="item4.name" :a="item3.id+'-'+item4.id">{{item4.name}}</el-checkbox>
|
||||||
<span class="right-box-select-num">{{item4.num}}</span>
|
<span class="right-box-select-num">{{item4.num || 0}}</span>
|
||||||
</div>
|
</div>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
|
|||||||
@@ -294,6 +294,15 @@ export function stringTimeParseToUnix (stringTime) {
|
|||||||
time = time + localOffset - offset * 60 * 60 * 1000
|
time = time + localOffset - offset * 60 * 60 * 1000
|
||||||
return parseInt(time / 1000)
|
return parseInt(time / 1000)
|
||||||
}
|
}
|
||||||
|
export function stringTimeParseToUnixMs (stringTime) {
|
||||||
|
let time = new Date(stringTime).getTime()
|
||||||
|
let offset = localStorage.getItem('nz-sys-timezone')
|
||||||
|
offset = moment.tz(offset).format('Z')
|
||||||
|
offset = Number.parseInt(offset)
|
||||||
|
const localOffset = new Date().getTimezoneOffset() * 60 * 1000 * -1 // 默认 一分钟显示时区偏移的结果
|
||||||
|
time = time + localOffset - offset * 60 * 60 * 1000
|
||||||
|
return parseInt(time)
|
||||||
|
}
|
||||||
export function getTime (size, unit) { // 计算时间
|
export function getTime (size, unit) { // 计算时间
|
||||||
const now = new Date(bus.computeTimezone(new Date().getTime()))
|
const now = new Date(bus.computeTimezone(new Date().getTime()))
|
||||||
if (unit) {
|
if (unit) {
|
||||||
@@ -361,6 +370,28 @@ export function calcDurationByStringTimeB (startTime, endTime) {
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
export function calcDurationByStringTimeMs (startTime, endTime) {
|
||||||
|
let durationSecond = stringTimeParseToUnixMs(endTime) - stringTimeParseToUnixMs(startTime)
|
||||||
|
let result = ''
|
||||||
|
if (durationSecond < 1000) {
|
||||||
|
result = `${durationSecond % 1000}ms`
|
||||||
|
return result
|
||||||
|
} else {
|
||||||
|
durationSecond = durationSecond / 1000
|
||||||
|
}
|
||||||
|
result = `${durationSecond % 60}s`
|
||||||
|
if (durationSecond >= 60 * 60 * 24) {
|
||||||
|
result = `${(Math.floor(durationSecond / 3600)) % 24}h`
|
||||||
|
result = `${Math.floor(durationSecond / (60 * 60 * 24))}d ${result}`
|
||||||
|
} else if (durationSecond >= 60 * 60) {
|
||||||
|
result = `${(Math.floor(durationSecond / 60)) % 60}m`
|
||||||
|
result = `${Math.floor(durationSecond / (60 * 60))}h ${result}`
|
||||||
|
} else if (durationSecond >= 60) {
|
||||||
|
result = `${(Math.floor(durationSecond / 60)) % 60}m ${result}`
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
export function unixTimeParseToString (unixTime, fmt = 'yyyy-MM-dd hh:mm:ss') {
|
export function unixTimeParseToString (unixTime, fmt = 'yyyy-MM-dd hh:mm:ss') {
|
||||||
const date = new Date(unixTime * 1000)
|
const date = new Date(unixTime * 1000)
|
||||||
const o = {
|
const o = {
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ export function nzNumber (rule, value, callback) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function noSpecialChar (rule, value, callback) {
|
export function noSpecialChar (rule, value, callback) {
|
||||||
const charReg = /^[\u4e00-\u9fa5a-z0-9A-Z-_.]+$/
|
const charReg = /[\u0000-\uFFFF]/
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (charReg.test(value)) {
|
if (charReg.test(value)) {
|
||||||
callback()
|
callback()
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
>
|
>
|
||||||
<template slot-scope="{ node, data }">
|
<template slot-scope="{ node, data }">
|
||||||
<span>{{ data.name }}</span>
|
<span>{{ data.name }}</span>
|
||||||
<span class="search-content-num">({{data.num}})</span>
|
<span class="search-content-num">({{data.num || 0 }})</span>
|
||||||
</template>
|
</template>
|
||||||
</el-cascader>
|
</el-cascader>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<div :class="{'active-icon green-bg':scope.row.state == 200,'active-icon red-bg':scope.row.state != 200}" style="position: relative">
|
<div :class="{'active-icon green-bg':scope.row.state == 200,'active-icon red-bg':scope.row.state != 200}" style="position: relative">
|
||||||
</div>
|
</div>
|
||||||
|
<span>{{scope.row.state == 200?'Ok':'Error'}}</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="item.prop === 'duration'">
|
<template v-else-if="item.prop === 'duration'">
|
||||||
@@ -73,7 +74,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import table from '@/components/common/mixin/table'
|
import table from '@/components/common/mixin/table'
|
||||||
import { calcDurationByStringTimeB } from '@/components/common/js/tools'
|
import { calcDurationByStringTimeMs } from '@/components/common/js/tools'
|
||||||
export default {
|
export default {
|
||||||
name: 'alertRuleTable',
|
name: 'alertRuleTable',
|
||||||
mixins: [table],
|
mixins: [table],
|
||||||
@@ -113,9 +114,9 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
getDuration (record) {
|
getDuration (record) {
|
||||||
if (record.etts) {
|
if (record.etts) {
|
||||||
return calcDurationByStringTimeB(record.stts, record.etts)
|
return calcDurationByStringTimeMs(record.stts, record.etts)
|
||||||
}
|
}
|
||||||
return calcDurationByStringTimeB(record.stts, this.utcTimeToTimezoneStr(this.nowTime))
|
return calcDurationByStringTimeMs(record.stts, this.utcTimeToTimezoneStr(this.nowTime))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user