From 4f0a4816491ffe7cbd6147b678207fe19c5724f0 Mon Sep 17 00:00:00 2001 From: wangwenrui Date: Tue, 23 Jun 2020 17:54:15 +0800 Subject: [PATCH 1/6] =?UTF-8?q?NEZ-333=20fix:alert=20list=20=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=B0=83=E6=95=B4=E5=A4=A7=E5=B0=8Fbug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/charts/chart-alert-list.vue | 2 ++ .../src/components/common/pagination.vue | 33 ++++++++++--------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/nezha-fronted/src/components/charts/chart-alert-list.vue b/nezha-fronted/src/components/charts/chart-alert-list.vue index 07470eebe..418bb5149 100644 --- a/nezha-fronted/src/components/charts/chart-alert-list.vue +++ b/nezha-fronted/src/components/charts/chart-alert-list.vue @@ -481,6 +481,8 @@ export default { immediate:true, handler(n,o){ this.data=Object.assign({},n) + this.data.resizable=true; + this.data.editable=true; } }, panelId:{ diff --git a/nezha-fronted/src/components/common/pagination.vue b/nezha-fronted/src/components/common/pagination.vue index cae6f13e8..32e43952e 100644 --- a/nezha-fronted/src/components/common/pagination.vue +++ b/nezha-fronted/src/components/common/pagination.vue @@ -1,22 +1,22 @@ @@ -182,6 +182,7 @@ export default { .pagination .el-pagination { max-height: 42px; padding-right: 0; + overflow-x: hidden; } .pagination-size-select .el-input--mini .el-input__inner{ height: 20px; From 5d4ba7632065fca4c5aa5ffb0b26790d7314dc8b Mon Sep 17 00:00:00 2001 From: wangwenrui Date: Tue, 23 Jun 2020 18:02:01 +0800 Subject: [PATCH 2/6] =?UTF-8?q?NEZ-261=20perf:explore=20=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.新增高亮提示 2.新增enter键选择提示 3.接口400导致一直loading的bug修复 --- .../page/dashboard/explore/editor.vue | 111 +++++++++++------- .../page/dashboard/explore/explore.vue | 15 +-- .../page/dashboard/explore/suggestions.vue | 1 + 3 files changed, 80 insertions(+), 47 deletions(-) diff --git a/nezha-fronted/src/components/page/dashboard/explore/editor.vue b/nezha-fronted/src/components/page/dashboard/explore/editor.vue index bbed29967..714047830 100644 --- a/nezha-fronted/src/components/page/dashboard/explore/editor.vue +++ b/nezha-fronted/src/components/page/dashboard/explore/editor.vue @@ -4,7 +4,7 @@
- +
@@ -163,9 +163,31 @@ this.matchMetric() } }, - matchFuncBody:function(){ - let functionReg=/[a-zA-Z_]\w*?\(.*\)/g + formatContent:function(){ + let punctuationReg=/[\{\}\(\)\[\]]/g; + this.formatText(punctuationReg,{'color':'#ff7941'}) + + let labelKeyReg=/[a-z_]\w*(?=\s*(=|!=|=~|!~))/g + this.formatText(labelKeyReg,{'color':'#3274d9'}) + + let labelValueReg= /"(?:\\.|[^\\"])*"/g + this.formatText(labelValueReg,{'color':'#3eb15b'}) + + let metricReg= /([A-Za-z:][\w:]*)\b(?![\(\]{=!",])/g; + this.formatText(metricReg,{'color':'#52545c'}) + + let rangeReg=/(?<=\[)\b\d+[smdwy]\b(?=\])/ig + this.formatText(rangeReg,{'color':'#9954bb'}) + + }, + formatText:function(pattern,style){ + if(pattern.test(this.content)){ + let matchs=this.globalMatch(pattern,this.content); + matchs.forEach(item=>{ + this.quill.formatText(item.index,item[0].length,style,'silent') + }) + } }, matchMetric:function(){ let metricReg=/[a-zA-Z_]\w*?\b\{.*?\}/g @@ -215,7 +237,7 @@ queryTypeInfos:function(){ this.noStyleSuggestions={}; this.$set(this.noStyleSuggestions,'metrics',this.tempStoreMetric) - this.$set(this.noStyleSuggestions,'operators',suggestions.getOperators()) + // this.$set(this.noStyleSuggestions,'operators',suggestions.getOperators()) this.$set(this.noStyleSuggestions,'functions',suggestions.getFunctions()) this.showSuggestions=this.deepClone(this.noStyleSuggestions) }, @@ -670,6 +692,7 @@ queryMetrics:function(){ if(this.metricList&&this.metricList.length>0){ this.tempStoreMetric=this.deepClone(this.metricList) + this.queryTypeInfos(); }else{ this.$get('/prom/api/v1/label/__name__/values').then(response=>{ if(response.status == 'success'){ @@ -699,10 +722,14 @@ enter:{ key:13, handler:function(range,content){ - $temp.showType=false; - $temp.quill.blur(); - $temp.$emit('on-enter') - return false; + if(!$temp.showType){ + $temp.showType=false; + $temp.quill.blur(); + $temp.$emit('on-enter') + return false; + }else{ + $temp.pickItem(); + } } } }; @@ -713,41 +740,44 @@ console.log('quill blur') }) this.quill.on('text-change',function(delta, oldDelta, source){ - console.log('delta',delta,'oldDelta',oldDelta,'source',source) - let char='',operation=''; - let oldContent=oldDelta.ops[0].insert.substring(0,oldDelta.ops[0].insert.length-1); - if(delta.ops.length==1){ - if(delta.ops[0].insert){ - char=delta.ops[0].insert - operation='insert'; - }else if(delta.ops[0].delete){ - char=oldContent; - operation='delete'; + if(source != 'silent'){ + console.log('delta',delta,'oldDelta',oldDelta,'source',source) + let char='',operation=''; + let oldContent=oldDelta.ops[0].insert.substring(0,oldDelta.ops[0].insert.length-1); + if(delta.ops.length==1){ + if(delta.ops[0].insert){ + char=delta.ops[0].insert + operation='insert'; + }else if(delta.ops[0].delete){ + char=oldContent; + operation='delete'; + }else{ + console.error('unknow operation') + } }else{ - console.error('unknow operation') + if(delta.ops[1].insert){ + char=delta.ops[1].insert + operation='insert'; + }else if(delta.ops[1].delete){ + char=oldContent.substring(delta.ops[0].retain,delta.ops[0].retain+delta.ops[1].delete); + operation='delete'; + }else{ + console.error('unknow operation') + } } - }else{ - if(delta.ops[1].insert){ - char=delta.ops[1].insert - operation='insert'; - }else if(delta.ops[1].delete){ - char=oldContent.substring(delta.ops[0].retain,delta.ops[0].retain+delta.ops[1].delete); - operation='delete'; - }else{ - console.error('unknow operation') + let promise=$temp.storeCursor(char); + if(source == 'user'){ + console.log(delta,oldDelta,oldContent) + let newContent=$temp.getContent() + promise.then(()=>{ //存储完光标后再进行后面的操作 + $temp.userChange(char,operation,newContent,oldContent) + }) } + $temp.content=$temp.getContent(); + console.log('current content-->',$temp.content) + $temp.getPosition(); + $temp.formatContent(); } - let promise=$temp.storeCursor(char); - if(source == 'user'){ - console.log(delta,oldDelta,oldContent) - let newContent=$temp.getContent() - promise.then(()=>{ //存储完光标后再进行后面的操作 - $temp.userChange(char,operation,newContent,oldContent) - }) - } - $temp.content=$temp.getContent(); - console.log('current content-->',$temp.content) - $temp.getPosition(); }) this.registerKeydown(); }, @@ -790,7 +820,7 @@ box-sizing: border-box; border: 1px solid lightgrey; height: 100%; - max-width: 66%; + /*max-width: 66%;*/ min-width: 200px; float: left; border-radius: 3px; @@ -798,6 +828,7 @@ color: #52545c; padding: 5px; background-color: white; + overflow-x: hidden; } .metric-editor-popper .metric-popper-desc{ display: inline-block; diff --git a/nezha-fronted/src/components/page/dashboard/explore/explore.vue b/nezha-fronted/src/components/page/dashboard/explore/explore.vue index eb5035377..4fd188a86 100644 --- a/nezha-fronted/src/components/page/dashboard/explore/explore.vue +++ b/nezha-fronted/src/components/page/dashboard/explore/explore.vue @@ -286,7 +286,7 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c let step=bus.getStep(this.filterTime[0],this.filterTime[1]); promqlInputIndexs.push(index); queryExpression.push(item) - requestArr.push(axios.get('/prom/api/v1/query_range?query=' + item + '&start=' + this.$stringTimeParseToUnix(this.filterTime[0]) + '&end=' + this.$stringTimeParseToUnix(this.filterTime[1]) + '&step='+step)) + requestArr.push(this.$get('/prom/api/v1/query_range?query=' + item + '&start=' + this.$stringTimeParseToUnix(this.filterTime[0]) + '&end=' + this.$stringTimeParseToUnix(this.filterTime[1]) + '&step='+step)) } }) if (requestArr.length > 0) { @@ -299,8 +299,8 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c if (res.length > 0) { res.forEach((response, index) => { let promqlIndex=promqlInputIndexs[index]; - if (response.data.status == 'success') { - let data = response.data.data.result; + if (response.data&&response.status == 'success') { + let data = response.data.result; data.forEach((result, i) => { let seriesItem = { name: '', @@ -338,7 +338,7 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c this.$refs['promql-'+promqlIndex][0].setError('') }else{ console.log(response) - this.$refs['promql-'+promqlIndex][0].setError(response.data.error) + this.$refs['promql-'+promqlIndex][0].setError(response.error) } }) @@ -360,7 +360,7 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c let requestArr = []; this.expressions.forEach((item, index) => { if (item != '') { - requestArr.push(axios.get('/prom/api/v1/query?query=' + item)) + requestArr.push(this.$get('/prom/api/v1/query?query=' + item)) } }) if (requestArr.length > 0) { @@ -372,9 +372,10 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c if (res.length > 0) { this.tableData = []; this.tableLabels = []; + console.log(111111111111111111111,res) res.forEach((response, index) => { - if (response.data.status == 'success') { - let data = response.data.data.result; + if (response.data&&response.status == 'success') { + let data = response.data.result; if (data) { data.forEach((result, i) => { let metrics = Object.assign({}, result.metric); diff --git a/nezha-fronted/src/components/page/dashboard/explore/suggestions.vue b/nezha-fronted/src/components/page/dashboard/explore/suggestions.vue index 916443ab1..8f4b1e107 100644 --- a/nezha-fronted/src/components/page/dashboard/explore/suggestions.vue +++ b/nezha-fronted/src/components/page/dashboard/explore/suggestions.vue @@ -57,6 +57,7 @@ }, ]; const funcs=[ + ...operators, { insertText: 'abs', label: 'abs', From e8634a9bdd55d9e267f9afda005a596593219f94 Mon Sep 17 00:00:00 2001 From: chenjinsong <523037378@qq.com> Date: Tue, 23 Jun 2020 18:03:47 +0800 Subject: [PATCH 3/6] =?UTF-8?q?NEZ-329=20feat:=20asset=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5accounts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nezha-fronted/src/assets/stylus/main.scss | 17 +- .../src/components/charts/chart-list.vue | 4 +- .../src/components/common/language/en.js | 6 +- .../components/common/rightBox/assetBox.vue | 170 ++++++++++++++---- .../components/common/rightBox/moduleBox.vue | 4 +- .../components/page/asset/accountConfig.vue | 134 +++++++++----- 6 files changed, 249 insertions(+), 86 deletions(-) diff --git a/nezha-fronted/src/assets/stylus/main.scss b/nezha-fronted/src/assets/stylus/main.scss index 8300d1594..d6028d3a0 100644 --- a/nezha-fronted/src/assets/stylus/main.scss +++ b/nezha-fronted/src/assets/stylus/main.scss @@ -394,6 +394,7 @@ li{ padding-bottom: 10px; color: #999; cursor: pointer; + display: inline-block; } .nz-tab-item-active { border-bottom: 3px solid $global-text-color-active; @@ -401,7 +402,16 @@ li{ cursor: default; font-weight: bold; } - +.nz-tab-item-close { + color: rgba(245, 108, 108, 0.6); + cursor: pointer; +} +.nz-tab-item-close:hover { + color: rgba(245, 108, 108, 1); +} +.nz-tab-error { + font-weight: normal; +} /* end--nz-tab组件*/ /* begin--二级页面tab*/ @@ -1071,6 +1081,11 @@ li{ .right-box-add-endpoint.right-box-add-endpoint-snmp { width: 850px; } +.snmp-form { + .el-form-item__content { + margin-left: 10px !important; + } +} /* begin--右侧弹框--顶部按钮*/ .right-box-top-btns { text-align: center; diff --git a/nezha-fronted/src/components/charts/chart-list.vue b/nezha-fronted/src/components/charts/chart-list.vue index a92f4f32a..56027fc10 100644 --- a/nezha-fronted/src/components/charts/chart-list.vue +++ b/nezha-fronted/src/components/charts/chart-list.vue @@ -28,8 +28,8 @@ z-index: 2000; } .vue-resizable-handle:after { - border-right: 2px solid #555; - border-bottom: 2px solid #555; + border-right: 2px solid #acb6bf; + border-bottom: 2px solid #acb6bf; content: ""; position: absolute; right: 3px; diff --git a/nezha-fronted/src/components/common/language/en.js b/nezha-fronted/src/components/common/language/en.js index ae7c10e2d..5c46c52c6 100644 --- a/nezha-fronted/src/components/common/language/en.js +++ b/nezha-fronted/src/components/common/language/en.js @@ -450,9 +450,9 @@ const en = { protocol:"Protocol", sshProtocol:"SSH", telnetProtocol:"Telnet", - userTip:"UserTip",//用户名提示 - passwordTip:"PasswordTip",//密码提示 - reloginPasswordTip:"Relogin",//密码提示 + userTip:"User tip",//用户名提示 + passwordTip:"Password tip",//密码提示 + reloginPasswordTip:"Relogin tip",//密码提示 userPwdIntroduce:'Please specify a user name and password so that the telenet login process can automatically log in', reLoginPwdIntroduce:'Please specify the password prompt so that the login process can run automatically', account:'User name',//'用户名' diff --git a/nezha-fronted/src/components/common/rightBox/assetBox.vue b/nezha-fronted/src/components/common/rightBox/assetBox.vue index 76348e33b..df3557463 100644 --- a/nezha-fronted/src/components/common/rightBox/assetBox.vue +++ b/nezha-fronted/src/components/common/rightBox/assetBox.vue @@ -21,7 +21,7 @@ {{tabView == false && !pageObj.id ? $t('asset.createAssetTab.title') : ''}}
- + @@ -151,7 +151,7 @@ -
+
@@ -176,22 +176,39 @@ -
{{$t('asset.createAssetTab.cli')}} - +
{{$t('config.account.account')}} +
-