diff --git a/nezha-fronted/.babelrc b/nezha-fronted/.babelrc index 3a280ba34..01be98850 100644 --- a/nezha-fronted/.babelrc +++ b/nezha-fronted/.babelrc @@ -8,5 +8,32 @@ }], "stage-2" ], - "plugins": ["transform-vue-jsx", "transform-runtime"] + "plugins": ["transform-vue-jsx", "transform-runtime"], + "env": { + "utils": { + "presets": [ + [ + "env", + { + "loose": true, + "modules": "commonjs", + "targets": { + "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] + } + } + ], + ], + "plugins": [ + ["module-resolver", { + "root": ["element-ui"], + "alias": { + "element-ui/src": "element-ui/lib" + } + }] + ] + }, + "test": { + "plugins": ["istanbul"] + } + } } diff --git a/nezha-fronted/build/webpack.base.conf.js b/nezha-fronted/build/webpack.base.conf.js index a07e68360..88adc5d03 100644 --- a/nezha-fronted/build/webpack.base.conf.js +++ b/nezha-fronted/build/webpack.base.conf.js @@ -8,8 +8,6 @@ function resolve (dir) { return path.join(__dirname, '..', dir) } - - module.exports = { context: path.resolve(__dirname, '../'), entry: { @@ -25,8 +23,8 @@ module.exports = { resolve: { extensions: ['.js', '.vue', '.json'], alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src'), + vue$: 'vue/dist/vue.esm.js', + '@': resolve('src') } }, module: { @@ -37,9 +35,22 @@ module.exports = { options: vueLoaderConfig }, { - test: /\.js$/, + test: /\.(js)$/, loader: 'babel-loader', - include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] + include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client'), resolve('node_modules/element-ui/packages/scrollbar')], + exclude: '/node_modules/', + options: { + presets: [ + ['env', { + modules: false, + targets: { + browsers: ['> 1%', 'last 2 versions', 'not ie <= 8'] + } + }], + 'stage-2' + ], + plugins: ['transform-vue-jsx', 'transform-runtime'] + } }, { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, diff --git a/nezha-fronted/package.json b/nezha-fronted/package.json index 562ee896a..9073baa7a 100644 --- a/nezha-fronted/package.json +++ b/nezha-fronted/package.json @@ -48,7 +48,7 @@ }, "devDependencies": { "autoprefixer": "^7.1.2", - "babel-core": "^6.22.1", + "babel-core": "^6.26.0", "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-loader": "^7.1.1", "babel-plugin-syntax-jsx": "^6.18.0", diff --git a/nezha-fronted/src/assets/css/common.scss b/nezha-fronted/src/assets/css/common.scss index 52ad24118..12707512b 100644 --- a/nezha-fronted/src/assets/css/common.scss +++ b/nezha-fronted/src/assets/css/common.scss @@ -85,3 +85,35 @@ .orange-bg { background-color: var(--theme-color) !important; } +.timezone-area{ + display: inline-block; + vertical-align: middle; + width: auto; + font-size: 14px; + float: left; + margin-left: 10px; + font-family: PingFangSC-Regular; + color: #333333; + line-height: 20px; + font-weight: 400; + margin-top: 3px; +} +.timezone-offset{ + display: inline-block; + vertical-align: middle; + width: auto; + font-size: 14px; + margin-right: 10px; + font-family: PingFangSC-Regular; + color: #333333; + line-height: 20px; + font-weight: 400; +} +.active-icon{ + margin-top:0px; + width:10px; + height:10px; + border-radius:50%; + display: inline-block; + margin-right: 5px; +} diff --git a/nezha-fronted/src/assets/css/common/tableCommon.scss b/nezha-fronted/src/assets/css/common/tableCommon.scss index bdbd25c5e..9d9d4f978 100644 --- a/nezha-fronted/src/assets/css/common/tableCommon.scss +++ b/nezha-fronted/src/assets/css/common/tableCommon.scss @@ -96,6 +96,8 @@ } .top-tool-btn--dropdown { position: relative; + width: auto; + min-width: 36px; } } .top-tools--sub { diff --git a/nezha-fronted/src/assets/css/theme.scss b/nezha-fronted/src/assets/css/theme.scss index a7648e7c1..2f855868c 100644 --- a/nezha-fronted/src/assets/css/theme.scss +++ b/nezha-fronted/src/assets/css/theme.scss @@ -43,7 +43,11 @@ $--warning-color: var(--theme-color); //全局警告橙色 $--suspended-color: #9e9c98; //全局停用色灰色 :export { - themeColor: $--theme-color + themeColor: $--theme-color; + dangerColor: $--danger-color; + successColor: $--success-color; + warningColor: var(--theme-color); + suspendedColor: $--suspended-color; } /* element-ui变量覆盖 */ /*$--color-primary: red; // 覆盖element-ui的主题色 diff --git a/nezha-fronted/src/assets/stylus/main.scss b/nezha-fronted/src/assets/stylus/main.scss index 3ab0311c3..336820f7f 100644 --- a/nezha-fronted/src/assets/stylus/main.scss +++ b/nezha-fronted/src/assets/stylus/main.scss @@ -1690,7 +1690,7 @@ li{ } /*列表中状态字段 的小圆点*/ .active-icon{ - margin-top:15px; + margin-top:0px; width:8px; height:8px; border-radius:50%; diff --git a/nezha-fronted/src/components/charts/chartPreview.vue b/nezha-fronted/src/components/charts/chartPreview.vue index f656ecdca..16367c439 100644 --- a/nezha-fronted/src/components/charts/chartPreview.vue +++ b/nezha-fronted/src/components/charts/chartPreview.vue @@ -60,7 +60,7 @@ + --> diff --git a/nezha-fronted/src/components/cli/webSSH.vue b/nezha-fronted/src/components/cli/webSSH.vue index fed8532d4..97a0b2d13 100644 --- a/nezha-fronted/src/components/cli/webSSH.vue +++ b/nezha-fronted/src/components/cli/webSSH.vue @@ -360,7 +360,7 @@ export default { }, customConnect: { host: '', - port: '', + port: 22, authType: 1, authUsername: '', authPin: '', @@ -377,19 +377,19 @@ export default { { title: 'Type', data: (row) => { - return row.type.name + return row.type ? row.type.name : '' } }, { title: 'Model', data: (row) => { - return row.model.name + return row.model ? row.model.name : '' } }, { title: 'Datacenter', data: (row) => { - return row.dc.name + return row.dc ? row.dc.name : '' } } ], @@ -878,9 +878,10 @@ export default { if (this.customConnect.authProtocol === 1) { this.customConnect.authUserTip = '' this.customConnect.authPinTip = '' + this.customConnect.port = 22 } else { this.customConnect.authPriKey = '' - this.customConnect.authPriKey = 1 + this.customConnect.port = 23 } }, authTypeChange () { diff --git a/nezha-fronted/src/components/common/alert/alertLabel2.vue b/nezha-fronted/src/components/common/alert/alertLabel2.vue index 654bfe8da..711687920 100644 --- a/nezha-fronted/src/components/common/alert/alertLabel2.vue +++ b/nezha-fronted/src/components/common/alert/alertLabel2.vue @@ -3,125 +3,117 @@
ID
-
{{alertLabelData?alertLabelData.id:'--'}}
+
{{alertLabelData && alertLabelData.id ? alertLabelData.id : '--'}}
SN
-
{{alertLabelData?alertLabelData.sn:'--'}}
+
{{alertLabelData && alertLabelData.sn ? alertLabelData.sn:'--'}}
-
Host
-
{{alertLabelData?alertLabelData.host:'--'}}
+
IP
+
{{alertLabelData && alertLabelData.manageIp ? alertLabelData.manageIp : '--'}}
State
-
{{alertLabelData?(alertStateStr(alertLabelData.state)):'--'}}
+
{{alertLabelData && alertLabelData.state && alertLabelData.state.name ? alertLabelData.state.name : '--'}}
Ping
-
- {{alertLabelData.pingRtt?alertLabelData.pingRtt+'ms':'--'}} +
+ {{alertLabelData && alertLabelData.pingInfo && alertLabelData.pingInfo.rtt ? alertLabelData.pingInfo.rtt + 'ms':'--'}}
Asset Type
-
{{alertLabelData?alertLabelData.assetType:'--'}}
+
{{alertLabelData && alertLabelData.type && alertLabelData.type.name ? alertLabelData.type.name:'--'}}
-
Vendor
-
{{alertLabelData?alertLabelData.vendor:'--'}}
+
Brand
+
{{alertLabelData && alertLabelData.brand && alertLabelData.brand.name ? alertLabelData.brand.name : '--'}}
Model
-
{{alertLabelData?alertLabelData.model:'--'}}
+
{{alertLabelData && alertLabelData.model && alertLabelData.model.name ? alertLabelData.model.name : '--'}}
PingLastReply
-
{{(alertLabelData&&alertLabelData.pingLastReply)?alertLabelData.pingLastReply:'--'}}
+
{{alertLabelData && alertLabelData.pingInfo && alertLabelData.pingInfo.lastUpdate ? alertLabelData.pingInfo.lastUpdate : '--'}}
Alert
- {{alertLabelData.alert + alertActiveStr()}} + {{alertLabelData && alertLabelData.alertNum ? alertLabelData.alertNum : 0 + ' ' + alertActiveStr()}}
DC
-
{{alertLabelData?alertLabelData.dataCenter:'--'}}
-
-
-
Endpoint
-
{{alertLabelData?alertLabelData.endpoint:'--'}}
-
-
-
Administrator
-
{{alertLabelData?alertLabelData.principal:'--'}}
+
{{alertLabelData && alertLabelData.dc && alertLabelData.dc.name ? alertLabelData.dc.name : '--'}}
ID
-
{{alertLabelData?alertLabelData.id:'--'}}
+
{{alertLabelData && alertLabelData.id ? alertLabelData.id : '--'}}
Name
-
{{alertLabelData?alertLabelData.name:'--'}}
+
{{alertLabelData && alertLabelData.name ? alertLabelData.name : '--'}}
Project
-
{{alertLabelData?alertLabelData.project.name:'--'}}
+
{{alertLabelData && alertLabelData.project && alertLabelData.project.name ?alertLabelData.project.name : '--'}}
Description
-
{{alertLabelData?(alertLabelData.remark?alertLabelData.remark:'-'):'--'}}
+
{{alertLabelData && alertLabelData.remark ? alertLabelData.remark : '-'}}
ID
-
{{alertLabelData?alertLabelData.id:'--'}}
+
{{alertLabelData && alertLabelData ? alertLabelData.id : '--'}}
Name
-
{{alertLabelData?alertLabelData.name:'--'}}
+
{{alertLabelData && alertLabelData ? alertLabelData.name : '--'}}
Description
-
{{alertLabelData?(alertLabelData.remark?alertLabelData.remark:'-'):'--'}}
+
{{alertLabelData && alertLabelData.remark ? alertLabelData.remark : '--'}}
ID
-
{{alertLabelData?alertLabelData.id:'--'}}
+
{{alertLabelData && alertLabelData.id ? alertLabelData.id : '--'}}
Project
-
{{alertLabelData?alertLabelData.project.name:'--'}}
+
{{alertLabelData && alertLabelData.project && alertLabelData.project.name ? alertLabelData.project.name : '--'}}
Module
-
{{alertLabelData?alertLabelData.module.name:'--'}}
+
{{alertLabelData && alertLabelData.module && alertLabelData.module.name ? alertLabelData.module.name : '--'}}
Labels
-
{{alertLabelData?alertLabelData.labels:'--'}}
+
{{alertLabelData && alertLabelData.labels ? alertLabelData.labels : '--'}}
Host
-
{{alertLabelData?alertLabelData.host:'--'}}
+
{{alertLabelData && alertLabelData.host ? alertLabelData.host : '--'}}
Port
-
{{alertLabelData?alertLabelData.port:'--'}}
+
{{alertLabelData && alertLabelData.port ? alertLabelData.port : '--'}}
Path
-
{{alertLabelData?alertLabelData.path:'--'}}
+
{{alertLabelData && alertLabelData.path ? alertLabelData.path : '--'}}
@@ -240,40 +232,40 @@ export default { init () { this.loading = true if (this.type === 'asset') { - this.$get('/asset/info?id=' + this.id).then((res) => { + this.$get('asset/asset/' + this.id).then((res) => { if (res.msg === 'success') { this.loading = false - this.alertLabelData = res.data.Basic + this.alertLabelData = res.data } else { this.$message.error(res.msg) } }) } if (this.type === 'project') { - this.$get('/project?id=' + this.id).then((res) => { + this.$get('monitor/project/' + this.id).then((res) => { if (res.msg === 'success') { this.loading = false - this.alertLabelData = res.data.list[0] + this.alertLabelData = res.data } else { this.$message.error(res.msg) } }) } if (this.type === 'module') { - this.$get('/module?id=' + this.id).then((res) => { + this.$get('monitor/module/' + this.id).then((res) => { if (res.msg === 'success') { this.loading = false - this.alertLabelData = res.data.list[0] + this.alertLabelData = res.data } else { this.$message.error(res.msg) } }) } if (this.type === 'endpoint') { - this.$get('/endpoint?id=' + this.id).then((res) => { + this.$get('monitor/endpoint/' + this.id).then((res) => { if (res.msg === 'success') { this.loading = false - this.alertLabelData = res.data.list[0] + this.alertLabelData = res.data } else { this.$message.error(res.msg) } @@ -392,13 +384,13 @@ export default { word-break: break-all; } .danger{ - background-color: #d64f40; + background-color: $--danger-color; color: white; padding: 2px 5px; border-radius: 4px; } .success{ - background-color: #50d050; + background-color: $--success-color; color: white; padding: 2px 5px; border-radius: 4px; diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/endpointQuery.vue b/nezha-fronted/src/components/common/bottomBox/tabs/endpointQuery.vue index 376c3a1df..edd8814be 100644 --- a/nezha-fronted/src/components/common/bottomBox/tabs/endpointQuery.vue +++ b/nezha-fronted/src/components/common/bottomBox/tabs/endpointQuery.vue @@ -19,7 +19,7 @@
- - +
- - +
-
+
@@ -102,6 +102,7 @@ export default { name: 'panel', data () { return { + overScroll10: false, panelLock: true, showTopBtn: false, // top按钮 visible: false, @@ -571,6 +572,7 @@ export default { const _self = this this.scrollbarWrap.addEventListener('scroll', bus.debounce(function () { _self.showTopBtn = _self.scrollbarWrap.scrollTop > 50 + _self.overScroll10 = _self.scrollbarWrap.scrollTop > 50 _self.$refs.chartList.loadChartData(_self.scrollbarWrap.scrollTop) }, 300)) }, @@ -783,6 +785,12 @@ export default { }