feat:dashboard、endpoint 图表添加时区转换,添加assetPingSwitch、系统设置调整

This commit is contained in:
wangwenrui
2020-04-09 16:14:32 +08:00
parent e53c5b8217
commit f56dec7a01
13 changed files with 77 additions and 20 deletions

View File

@@ -688,7 +688,8 @@
return element.name == item.seriesName;
})
if(i===0){
let t_date = new Date(item.data[0]);
let value=bus.computeTimezone(item.data[0]);
let t_date = new Date(value);
str += [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('-') + " "
+ [t_date.getHours(), t_date.getMinutes(),t_date.getSeconds()].join(':');
str +=`<br/>`;
@@ -813,6 +814,7 @@
intervale: 0,
rotate: 0,
formatter: function (value) {
value = bus.computeTimezone(value);
var t_date = new Date(value);
return [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('-') + "\n"
+ [t_date.getHours(), t_date.getMinutes()].join(':');

View File

@@ -302,7 +302,8 @@
return element.name == item.seriesName;
})
if(i===0){
let t_date = new Date(item.data[0]);
let value=bus.computeTimezone(item.data[0]);
let t_date = new Date(value);
str += [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('-') + " "
+ [t_date.getHours(), t_date.getMinutes(),t_date.getSeconds()].join(':');
str +=`<br/>`;
@@ -396,6 +397,7 @@
intervale: 0,
rotate: 0,
formatter: function (value) {
value = bus.computeTimezone(value);
var t_date = new Date(value);
return [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('-') + "\n"
+ [t_date.getHours(), t_date.getMinutes()].join(':');
@@ -648,7 +650,7 @@
this.showEndpoint();
},
getTime:function(size,unit){//计算时间
let now=!this.formatTime? new Date():new Date(this.formatTime);
let now=!this.formatTime? new Date(bus.computeTimezone(new Date().getTime())):new Date(this.formatTime);
if(unit){
switch (unit) {
case 'y':

View File

@@ -109,15 +109,15 @@ export function domain(rule, value, callback){
}, 100)
}
export function timezone(rule, value, callback){
export function uSize(rule, value, callback){
setTimeout(() => {
if(isNaN(Number(value))){
callback(new Error(vm.$t('validate.number')))
}else{
let timezone=Math.abs(Number(value));
if(timezone>12){
callback(new Error(vm.$t('validate.timezone')))
let num=Number(value);
if(num<0 || num > 49 ){
callback(new Error(vm.$t('validate.usize')))
}else{
callback();
}

View File

@@ -267,7 +267,7 @@ const en = {
tel:'Invalid phone number',//'不合法的电话号码'
host:'Invalid IP',//'不合法的IP'
domain:'Invalid domain',
timezone:'Must be number(-12 - 12)',
usize:'Must be number(1 - 49)',
fileSize:'文件过大',//File exceed max size.
port:'Invalid Port',
url:'Invalid URL',
@@ -603,7 +603,8 @@ const en = {
storageRetention:'Local Retention',
systemName:'System Name',
curUrl:'Current site URL',
timezone:'Timezone'
timezone:'Timezone',
defaultCabinetUsize:'Cabinet U Size'
},
email:{
email:'Email',

View File

@@ -57,7 +57,8 @@ export default {
localStorage.setItem('nz-sys-name',res.data.systemName);
localStorage.setItem('nz-sys-timezone',res.data.timezone);
localStorage.setItem('nz-sys-default-cabinet-usize',res.data.defaultCabinetUsize);
localStorage.setItem('nz-sys-man-terminal-num',res.data.maxTerminalNum);
localStorage.setItem('nz-sys-max-terminal-num',res.data.maxTerminalNum);
localStorage.setItem('nz-sys-asset-ping-switch',res.data.assetPingSwith);
this.$i18n.locale = this.lang;
bus.$emit('login');
this.$router.push({

View File

@@ -475,6 +475,7 @@
checkAllFlag: false,
checkAllHandler: false,
assetClick: false,
assetPingSwitch:localStorage.getItem('nz-sys-asset-ping-switch'),
}
},
computed: {
@@ -990,12 +991,26 @@
}
//resize时刷新左侧列表滚动条
let _this = this;
window.onresize = function() {
window.onresize = function () {
_this.$refs.leftScrollbar.update();
}
});
let localStorageTitle=localStorage.getItem("nz-tableTitle-" + localStorage.getItem("nz-username") + "-" + this.$route.path);
let localStorageTitle = localStorage.getItem("nz-tableTitle-" + localStorage.getItem("nz-username") + "-" + this.$route.path);
this.tablelable = localStorageTitle ? JSON.parse(localStorageTitle) : this.tableTitle;
// this.assetPingSwit
if (this.assetPingSwitch == 'off') {
console.log(this.assetPingSwitch)
console.log(this.tablelable)
for (let i in this.tablelable) {
let label = this.tablelable[i];
if (label.prop == 'pingStatus') {
this.tablelable.splice(i, 1);
console.log(this.tablelable)
break;
}
}
}
this.dropCol = localStorageTitle ? JSON.parse(localStorageTitle) : this.tableTitle;
},
destroyed() {

View File

@@ -45,6 +45,9 @@
<el-form-item :label="$t('config.system.basic.assetPingInterval')" prop="asset_ping_interval">
<el-input v-model.number="basic.asset_ping_interval" :disabled="basic.asset_ping_switch == 'off'"></el-input><span class="nz-input-append">s</span>
</el-form-item>
<el-form-item :label="$t('config.system.basic.defaultCabinetUsize')" prop="default_cabinet_usize">
<el-input v-model.number="basic.default_cabinet_usize" ></el-input>
</el-form-item>
<el-form-item :label="$t('config.system.basic.exporterTarget')" prop="node_exporter_target_path">
<el-input v-model="basic.node_exporter_target_path"></el-input>
</el-form-item>
@@ -160,7 +163,7 @@
</el-tab-pane>
<el-tab-pane :label="$t('config.system.reset.reset')" name="reset">
<div class="system-config-form">
<el-form :model="reset" label-width="180px" size="small" ref="resetForm" :rules="resetRules" :validate-on-rule-change="false">
<el-form :model="reset" label-width="180px" size="small" ref="resetForm" :rules="resetRules" :validate-on-rule-change="false" class="reset-form">
<el-form-item prop="type">
<!-- <el-checkbox-group v-model="reset.type">-->
<!-- <div v-for="(item,index) in resetOptions" :key="item.value+index">-->
@@ -170,7 +173,7 @@
<div class="el-checkbox-group">
<div v-for="(item,index) in resetOptions" :key="item.value+index" >
<label class="el-checkbox sys-reset-label" :for="item.value" >
<span class="el-checkbox__label" style="width: 100px;;">{{item.label}}</span>
<span class="el-checkbox__label" style="width: 100px;text-align: right;">{{item.label}}</span>
<span class="el-checkbox__input">
<input type="checkbox" name="resetType" :value="item.value" class="el-checkbox__original" aria-hidden="true" :id="item.value" @change="resetCheckBoxChange"/>
<span class="el-checkbox__inner"></span>
@@ -195,8 +198,7 @@
import {port} from '../../common/js/validate'
import {domain} from '../../common/js/validate'
import {host} from '../../common/js/validate'
import {timezone} from '../../common/js/validate'
import {integer} from '../../common/js/validate'
import {uSize} from '../../common/js/validate'
import bus from '../../../libs/bus';
export default {
@@ -213,6 +215,7 @@
system_name:'',
current_site_url:'',
timezone:'',
default_cabinet_usize:'',
},
basicRules:{
system_name:[{required:true,message:this.$t('validate.required'),trigger:'blur'},],
@@ -222,6 +225,7 @@
scrape_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
storage_local_retention:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
timezone:[{required:true,message:this.$t('validate.required'),trigger:'blur'}],
default_cabinet_usize:[{validator:positiveInteger,trigger:'blur'},{validator:uSize,trigger:'blur'}],
},
basicRules2:{
system_name:[{required:true,message:this.$t('validate.required'),trigger:'blur'},],
@@ -230,6 +234,7 @@
scrape_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
storage_local_retention:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
timezone:[{required:true,message:this.$t('validate.required'),trigger:'blur'}],
default_cabinet_usize:[{validator:positiveInteger,trigger:'blur'},{validator:uSize,trigger:'blur'}],
},
timezoneOption:[
{label:'UTC-12:00',value:'-12'},
@@ -370,6 +375,14 @@
this.resetForm(formName);
setTimeout(()=>{
this.querySetInfo(type);
if(type == 'basic'){
localStorage.setItem('nz-sys-name',this.basic.system_name);
localStorage.setItem('nz-sys-timezone',this.basic.timezone);
localStorage.setItem('nz-sys-asset-ping-switch',this.basic.asset_ping_switch);
localStorage.setItem('nz-sys-default-cabinet-usize',this.basic.default_cabinet_usize);
}else if(type == 'terminal'){
localStorage.setItem('nz-sys-max-terminal-num',this.terminal.max_terminal_num);
}
},200)
}else{
this.$message.error(response.msg);
@@ -492,7 +505,9 @@
webkit-box-shadow: unset !important;
box-shadow: unset !important;
height: 100%;
width: 100%;
border-bottom: unset;
border-left: unset;
}
.sys-reset-label .el-checkbox__original:checked + span{
background-color: orange;
@@ -501,4 +516,7 @@
-webkit-transform: rotate(45deg) scaleY(1);
transform: rotate(45deg) scaleY(1);
}
.reset-form .el-checkbox-group{
margin-left: -28px !important;
}
</style>

View File

@@ -1,5 +1,6 @@
<script>
import chartDataFormat from "../../../charts/chartDataFormat";
import bus from '../../../../libs/bus';
const commonOption={
title:{
show:false,
@@ -40,6 +41,7 @@
intervale: 0,
rotate: 0,
formatter: function (value) {
value=bus.computeTimezone(value)
var t_date = new Date(value);
return [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('-') + "\n"
+ [t_date.getHours(), t_date.getMinutes()].join(':');

View File

@@ -748,7 +748,7 @@
smooth:true, //曲线变平滑
data: [],
type:'line',
areaStyle:{}
// areaStyle:{}
}
series.data=response.data.result[0].values.map((item)=>{
return [item[0]*1000,item[1]];
@@ -957,7 +957,8 @@
let str = `<div>`;
params.forEach((item, i) => {
if(i===0){
let t_date = new Date(item.data[0]);
let value=bus.computeTimezone(item.data[0])
let t_date = new Date(value);
str += [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('-') + " "
+ [t_date.getHours(), t_date.getMinutes(),t_date.getSeconds()].join(':');
str +=`<br/>`;

View File

@@ -189,7 +189,7 @@
}
}]
},
searchTime: [new Date().setHours(new Date().getHours() - 1), new Date()],
searchTime: [new Date(bus.computeTimezone(new Date().getTime())).setHours(new Date(bus.computeTimezone(new Date().getTime())).getHours() - 1), new Date(bus.computeTimezone(new Date().getTime()))],
intervalTimer: null,
intervalList: [{
value: 0,

View File

@@ -152,6 +152,7 @@
import exportXLSX from "../../common/exportXLSX";
import loading from "../../common/loading";
import chartDataFormat from "../../charts/chartDataFormat";
import bus from '../../../libs/bus'
var vm;
export default {
@@ -390,7 +391,8 @@
return element.name == item.seriesName;
})
if(i===0){
let t_date = new Date(item.data[0]);
let value=bus.computeTimezone(item.data[0]);
let t_date = new Date(value);
str += [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('-') + " "
+ [t_date.getHours(), t_date.getMinutes(),t_date.getSeconds()].join(':');
str +=`<br/>`;
@@ -484,6 +486,7 @@
intervale: 0,
rotate: 0,
formatter: function (value) {
value = bus.computeTimezone(value);
var t_date = new Date(value);
return [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('-') + "\n"
+ [t_date.getHours(), t_date.getMinutes()].join(':');

View File

@@ -210,6 +210,18 @@ export default new Vue({
}
return num.toFixed(2);
},
computeTimezone:function(sourceTime){
let offset=localStorage.getItem('nz-sys-timezone');
if(offset&& offset != 'undefined' && offset != null){
offset=Number.parseInt(offset);
let date=new Date(sourceTime);
let localOffset=date.getTimezoneOffset()*60*1000; //默认 一分钟显示时区偏移的结果
let utcTime=sourceTime + localOffset;
return utcTime+(offset * 60*60*1000);
}else{
return sourceTime;
}
}
},
created() {
this.getDefaultDate();