Merge branch 'codeCheck' of https://git.mesalab.cn/nezha/nezha-fronted into codeCheck

This commit is contained in:
zhangyu
2020-11-18 11:26:00 +08:00
9 changed files with 175 additions and 7 deletions

View File

@@ -4,6 +4,7 @@
* type:自定义参数用于区分是y轴调用还是tooltip调用,以设置不同精度 type =1 y轴调用 type=2 tooltip调用 * type:自定义参数用于区分是y轴调用还是tooltip调用,以设置不同精度 type =1 y轴调用 type=2 tooltip调用
* */ * */
import {parse} from "echarts/extension-src/dataTool/gexf"; import {parse} from "echarts/extension-src/dataTool/gexf";
import bus from "../../libs/bus"
function none(value, index){ function none(value, index){
return value; return value;
@@ -412,6 +413,12 @@ function timeCompute(value,unit,dot=0){
} }
} }
function timeFormat34(value) {
return bus.timeFormate(value, "yyyy-MM-dd hh:mm:ss");
}
function timeFormat35(value) {
return bus.timeFormate(value, "MM/dd/yyyy h:mm:ss a");
}
//unit转化配置信息 //unit转化配置信息
/* /*
* value:传递给数据库的值 * value:传递给数据库的值
@@ -615,7 +622,23 @@ let unitOptions=[
ascii:7, ascii:7,
}, },
] ]
}//Time end },//Time end
{
value:'Date&Time',
label: 'Date & Time',
children: [
{
value:34,
compute: timeFormat34,
label:'YYYY-MM-DD HH:mm:ss',
},
{
value:35,
compute: timeFormat35,
label:'MM/DD/YYYY h:mm:ss a',
}
]
}
] ]
let units=[]; let units=[];
window.onload=function(){ window.onload=function(){

View File

@@ -567,7 +567,31 @@
}, },
promQueryParamConvert(obj){ promQueryParamConvert(obj){
let result="(" + obj.alertRule.expr + ")"; let r = "(" + obj.alertRule.expr + ")";
if (Object.keys(obj.labels).length > 0) {
r += " and " + function(){
let group = "(group({";
let by = " by (";
for (let k in obj.labels) {
if (k != 'alertname' && k != 'severity') {
group += k;
group += "=";
group += ("'" + obj.labels[k] + "',");
by += k;
by += ","
}
}
group = group.substring(0, group.length-1);
group += "})";
by = by.substring(0, by.length-1);
by += ")";
return group + by + ")";
}();
}
return r;
/*let result="(" + obj.alertRule.expr + ")";
if(obj.labels){ if(obj.labels){
if(obj.labels.alertname){ if(obj.labels.alertname){
delete obj.labels.alertname; delete obj.labels.alertname;
@@ -591,7 +615,7 @@
return q; return q;
}() + ")"; }() + ")";
} }
return result; return result;*/
}, },
//asset弹框控制 //asset弹框控制
tabControl(data) { tabControl(data) {

View File

@@ -108,7 +108,7 @@
</el-submenu> </el-submenu>
<el-submenu index="5" popper-class="nz-submenu"> <el-submenu index="5" popper-class="nz-submenu">
<template slot="title"> <template slot="title">
<div @click="jumpTo('/account')" :class ="route == '/account' || route == '/promServer' || route == '/dc' || route == '/model' || route == '/mib' || route == '/system' || route == '/terminallog' || route == '/operationlog' ? 'menu-active' : ''">{{$t('overall.config')}}</div> <div @click="jumpTo('/account')" :class ="route == '/account' || route == '/promServer' || route == '/dc' || route == '/model' || route == '/mib' || route == '/system' || route == '/terminallog' || route == '/operationlog' || route == '/about' ? 'menu-active' : ''">{{$t('overall.config')}}</div>
</template> </template>
<el-menu-item index="5-0"> <el-menu-item index="5-0">
<div @click="jumpTo('/account')" :class="{'menu-item-active' :(route == '/account' )}">{{$t('config.account.account')}}</div> <div @click="jumpTo('/account')" :class="{'menu-item-active' :(route == '/account' )}">{{$t('config.account.account')}}</div>
@@ -134,6 +134,9 @@
<el-menu-item index="5-7"> <el-menu-item index="5-7">
<div @click="jumpTo('/operationlog')" :class="{'menu-item-active' :(route == '/operationlog' )}">{{$t('config.operationlog.operationlog')}}</div> <div @click="jumpTo('/operationlog')" :class="{'menu-item-active' :(route == '/operationlog' )}">{{$t('config.operationlog.operationlog')}}</div>
</el-menu-item> </el-menu-item>
<el-menu-item index="5-8">
<div @click="jumpTo('/about')" :class="{'menu-item-active' :(route == '/about' )}">{{$t('overall.about')}}</div>
</el-menu-item>
</el-submenu> </el-submenu>
<el-submenu index="6" popper-class="nz-submenu"> <el-submenu index="6" popper-class="nz-submenu">
<template slot="title"> <template slot="title">

View File

@@ -12,6 +12,7 @@ export const staticMenus = {
{route: '/system', name: i18n.t('config.system.system')}, {route: '/system', name: i18n.t('config.system.system')},
{route: '/terminallog', name: i18n.t('config.terminallog.terminallog')}, {route: '/terminallog', name: i18n.t('config.terminallog.terminallog')},
{route: '/operationlog', name: i18n.t('config.operationlog.operationlog')}, {route: '/operationlog', name: i18n.t('config.operationlog.operationlog')},
{route: '/about', name: i18n.t('overall.about')},
], ],
}, },
alerts: { alerts: {

View File

@@ -13,7 +13,7 @@ const cn = {
esc: "取消", esc: "取消",
cancel: "取消", cancel: "取消",
save: "保存", save: "保存",
preivew: "预览", preview: "预览",
download: "下载", download: "下载",
upload: "上传", upload: "上传",
search: "搜索", search: "搜索",
@@ -26,6 +26,8 @@ const cn = {
clearAll: "清空", clearAll: "清空",
clear: "清除", clear: "清除",
name: "名称", name: "名称",
version: "版本",
components: "组件",
cover: "覆盖", cover: "覆盖",
signOut: "登出", signOut: "登出",
select: "选择", select: "选择",
@@ -34,6 +36,7 @@ const cn = {
all: "全选", all: "全选",
value: "值", value: "值",
other: "其他", other: "其他",
about: '关于',
query: "查询", query: "查询",
back: "返回", back: "返回",
unavailable: "不可用", unavailable: "不可用",
@@ -48,7 +51,6 @@ const cn = {
createDatacenter: "新增数据中心", createDatacenter: "新增数据中心",
active: "活跃", active: "活跃",
type: "类别", type: "类别",
preview: "预览",
detail: "详细信息", detail: "详细信息",
changePwd: "修改密码", changePwd: "修改密码",
createCabinet: "创建机柜", createCabinet: "创建机柜",

View File

@@ -31,6 +31,8 @@ const en = {
remark: "Description", remark: "Description",
clear: 'Clear', //"清除" clear: 'Clear', //"清除"
name: 'Name', //'名称' name: 'Name', //'名称'
version: "Version", //版本
components: "Components", //组件
cover: 'Override', //'覆盖' cover: 'Override', //'覆盖'
signOut: 'Logout',//'登出' signOut: 'Logout',//'登出'
select: 'Select',//'选择' select: 'Select',//'选择'
@@ -39,6 +41,7 @@ const en = {
all: 'All',//'全选' all: 'All',//'全选'
value: 'Value', value: 'Value',
other: 'Others',//"其他" other: 'Others',//"其他"
about: 'About',//关于
detail: 'Detail', //详情 detail: 'Detail', //详情
query: 'Query', //查询 query: 'Query', //查询
back: 'Back', //返回 back: 'Back', //返回

View File

@@ -0,0 +1,106 @@
<template>
<div class="about">
<div class="app-header">
<div class="header-logo"><img width="70" height="70" src="../../../assets/img/logo1-2.png"></div>
<div class="header-title">
<div class="app-name">{{version.nezha.name}}</div>
<div class="app-version"><span class="about-label">{{$t("overall.version")}}&nbsp;&nbsp;&nbsp;</span><span>{{version.nezha.version}}</span></div>
</div>
</div>
<div class="app-component">
<div class="component-title">{{$t("overall.components")}}</div>
<div class="component-content">
<div class="app-component-row" v-for="(item, index) in version.components" :key="index">
<div class="component-name">{{item.name}}</div>
<div class="component-version">{{item.version}}</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "about",
data() {
return {
version: {}
}
},
methods: {
getVersion() {
this.$get("/about").then(response => {
this.version = response.data;
});
}
},
mounted() {
this.getVersion();
},
}
</script>
<style scoped lang="scss">
.about {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
.about-label {
color: #999;
}
.app-header {
display: flex;
width: 325px;
.header-logo {
font-size: 0;
background-color: rgba(0, 0, 0, 0.9);
border-radius: 2px;
}
.header-title {
padding-left: 20px;
display: flex;
flex-direction: column;
justify-content: space-between;
.app-name {
font-weight: bold;
font-size: 18px;
line-height: 50px;
}
.app-version {
font-size: 12px;
}
}
}
.app-component {
width: 325px;
margin-top: 35px;
.component-title {
color: #999;
height: 30px;
font-size: 12px;
line-height: 30px;
border-bottom: 1px solid #999;
}
.component-content {
padding-top: 8px;
}
.app-component-row {
line-height: 28px;
display: flex;
color: #333;
font-size: 14px;
justify-content: space-between;
}
}
}
</style>

View File

@@ -100,10 +100,11 @@ export default new Vue({
const o = { const o = {
'M+': time.getMonth() + 1, // 月份 'M+': time.getMonth() + 1, // 月份
'd+': time.getDate(), // 日 'd+': time.getDate(), // 日
'h+': time.getHours(), // 小时 'hh': time.getHours(), // 小时
'm+': time.getMinutes(), // 分 'm+': time.getMinutes(), // 分
's+': time.getSeconds(), // 秒 's+': time.getSeconds(), // 秒
'q+': Math.floor((time.getMonth() + 3) / 3), // 季度 'q+': Math.floor((time.getMonth() + 3) / 3), // 季度
'a': time.getHours() > 12 ? "pm" : "am",
S: time.getMilliseconds(), // 毫秒 S: time.getMilliseconds(), // 毫秒
w: week, w: week,
}; };
@@ -116,6 +117,7 @@ export default new Vue({
(o[k]) : ((`00${o[k]}`).substr((`${o[k]}`).length))); (o[k]) : ((`00${o[k]}`).substr((`${o[k]}`).length)));
} }
}); });
fm = fm.replace("h", time.getHours() > 12 ? time.getHours()-12 : time.getHours());
return fm; return fm;
}, },
// 格式化tag为字符串表达式 // 格式化tag为字符串表达式

View File

@@ -84,6 +84,10 @@ export default new Router({
path: '/operationlog', path: '/operationlog',
component: resolve => require(['../components/page/config/operationlog.vue'], resolve), component: resolve => require(['../components/page/config/operationlog.vue'], resolve),
}, },
{
path: '/about',
component: resolve => require(['../components/page/config/about.vue'], resolve),
},
{ {
path: '/mib', path: '/mib',
component: resolve => require(['../components/page/config/mib.vue'], resolve), component: resolve => require(['../components/page/config/mib.vue'], resolve),