diff --git a/nezha-fronted/src/components/charts/chart-alert-list.vue b/nezha-fronted/src/components/charts/chart-alert-list.vue index df94fdbfb..ca1a5b495 100644 --- a/nezha-fronted/src/components/charts/chart-alert-list.vue +++ b/nezha-fronted/src/components/charts/chart-alert-list.vue @@ -7,7 +7,7 @@
-
+
+ diff --git a/nezha-fronted/src/components/charts/chartPreview.vue b/nezha-fronted/src/components/charts/chartPreview.vue index 8c3ef80a0..2a7fc7eba 100644 --- a/nezha-fronted/src/components/charts/chartPreview.vue +++ b/nezha-fronted/src/components/charts/chartPreview.vue @@ -168,7 +168,7 @@
- + + + @@ -190,12 +198,14 @@ import chartDataFormat from './chartDataFormat' import { randomcolor } from '../common/js/radomcolor/randomcolor.js' import chartAlertList from './chart-alert-list' import chartConfig from '../page/dashboard/overview/chartConfig' +import diagram from '@/components/common/ChartDiagram/diagram' import moment from 'moment-timezone' export default { name: 'chartPreview', components: { loading: loading, - 'chart-alert-list': chartAlertList + 'chart-alert-list': chartAlertList, + diagram }, props: { panelId: Number, @@ -288,6 +298,8 @@ export default { chartContainerId = 'chartAlertListPreview' } else if (chartType == 'text') { chartContainerId = 'chartTextPreview' + } else if (chartType == 'diagram') { + chartContainerId = 'chartDiagramPreview' } // 设置高度 chart-table @@ -356,7 +368,7 @@ export default { // } // 后台获得数据 - if (this.chart.type !== 'url' && this.chart.type !== 'text') { + if (this.chart.type !== 'url' && this.chart.type !== 'text' && this.chart.type !== 'diagram') { this.$refs.loadingPreview.startLoading() this.getChartData() } else if (this.chart.type == 'url') { diff --git a/nezha-fronted/src/components/common/ChartDiagram/diagram.vue b/nezha-fronted/src/components/common/ChartDiagram/diagram.vue index fc1021cfc..eb884638f 100644 --- a/nezha-fronted/src/components/common/ChartDiagram/diagram.vue +++ b/nezha-fronted/src/components/common/ChartDiagram/diagram.vue @@ -340,7 +340,7 @@ import { getMetricTypeValue } from '../js/tools' import bus from '../../../libs/bus' import CanvasContextMenu from '@/components/common/project/L5/CanvasContextMenu' // 注册到画布 -registerNode('rectangleImg', myShape, myAnchors, myIconRect2, null) +registerNode('rectangleImg', myShape, myAnchors, myIconRect2, myTextRect2) registerNode('myCube', myCubec, myCubeAnchors, null, null) const canvasOptions = { diff --git a/nezha-fronted/src/components/common/nzTransfer.vue b/nezha-fronted/src/components/common/nzTransfer.vue index e26607982..8dc76ce3c 100644 --- a/nezha-fronted/src/components/common/nzTransfer.vue +++ b/nezha-fronted/src/components/common/nzTransfer.vue @@ -59,7 +59,7 @@
-
+
@@ -131,6 +131,10 @@ export default { }, tableTitle: { type: Array + }, + showError: { + type: Boolean, + default: false } }, data () { @@ -315,4 +319,7 @@ export default { .hide-row { display: none !important; } +.error{ + border-color: #F56C6C !important; +} diff --git a/nezha-fronted/src/components/common/project/L5/services/canvas.js b/nezha-fronted/src/components/common/project/L5/services/canvas.js index 4ea13a410..7be869d2a 100644 --- a/nezha-fronted/src/components/common/project/L5/services/canvas.js +++ b/nezha-fronted/src/components/common/project/L5/services/canvas.js @@ -252,6 +252,7 @@ export function myIconRect2 (node) { node.fullIconRect = node.rect } export function myTextRect2 (node) { + node.data.text = '' node.textRect = new Rect( node.rect.x + node.paddingLeft, node.rect.y + node.rect.height - 20 - node.paddingBottom, diff --git a/nezha-fronted/src/components/common/rightBox/addEndpointBox.vue b/nezha-fronted/src/components/common/rightBox/addEndpointBox.vue index 534fbe14f..1f2621d2f 100644 --- a/nezha-fronted/src/components/common/rightBox/addEndpointBox.vue +++ b/nezha-fronted/src/components/common/rightBox/addEndpointBox.vue @@ -119,7 +119,7 @@
-
+
+
{{this.$t('validate.required')}}
@@ -432,7 +433,8 @@ export default { label: 'state', disabled: false }] - } + }, + showError: false, } }, methods: { @@ -565,8 +567,11 @@ export default { } endpointList.push(endpoint) }) + if (endpointList.length === 0) { + this.showError = true + } this.$refs.addEndpoint.validate((valid) => { - if (valid) { + if (valid && !this.showError) { this.$post('monitor/endpoint', endpointList).then(response => { this.prevent_opt.save = false if (response.code === 200) { @@ -606,6 +611,7 @@ export default { }) }, addEndpoint () { + this.showError = false const arr = [] this.assetSelection.forEach(item => { if (this.endpointTableData.find(endpoint => endpoint.assetId === item.id)) { @@ -1230,4 +1236,7 @@ export default { } } } + .error{ + border-color: #F56C6C !important; + } diff --git a/nezha-fronted/src/components/common/rightBox/asset/assetBatchEditBox.vue b/nezha-fronted/src/components/common/rightBox/asset/assetBatchEditBox.vue index 3792abeba..89abc9c9e 100644 --- a/nezha-fronted/src/components/common/rightBox/asset/assetBatchEditBox.vue +++ b/nezha-fronted/src/components/common/rightBox/asset/assetBatchEditBox.vue @@ -188,18 +188,22 @@
{{$t('overall.select')}}
- - - +
+ + + +
{{this.$t('validate.required')}}
+
@@ -330,8 +334,28 @@ export default { total: 0 } }, - rules: {}, - metaData: [] + rules: { + editType: [ + { required: true, message: this.$t('validate.required'), trigger: 'change' } + ], + authProtocol: [ + { required: true, message: this.$t('validate.required'), trigger: 'change' } + ], + authUsername: [ + { required: true, message: this.$t('validate.required'), trigger: 'change' } + ], + authPin: [ + { required: true, message: this.$t('validate.required'), trigger: 'change' } + ], + authUserTip: [ + { required: true, message: this.$t('validate.required'), trigger: 'change' } + ], + authPinTip: [ + { required: true, message: this.$t('validate.required'), trigger: 'change' } + ] + }, + metaData: [], + showError: false } }, methods: { @@ -345,10 +369,17 @@ export default { }, save () { this.editData.ids = this.transfer.selectedData.map(d => d.id) - this.$put('asset/asset/bulkEdit', this.editData).then(res => { - if (res.code === 200) { - this.$message({ duration: 2000, type: 'success', message: this.$t('tip.saveSuccess') }) - this.esc(true) + if (this.editData.ids.length === 0) { + this.showError = true + } + this.$refs.assetEditForm.validate((valid) => { + if (valid && !this.showError) { + this.$put('asset/asset/bulkEdit', this.editData).then(res => { + if (res.code === 200) { + this.$message({ duration: 2000, type: 'success', message: this.$t('tip.saveSuccess') }) + this.esc(true) + } + }) } }) }, @@ -411,6 +442,7 @@ export default { this.transfer.tableData.forEach(d => { this.$set(d, 'hide', this.transfer.selectedData.some(s => s.id === d.id)) }) + this.showError = false }, removeAsset (toRemove) { this.transfer.selectedData = this.transfer.selectedData.filter(d => !toRemove.find(s => d.id === s.id)) diff --git a/nezha-fronted/src/components/common/searchInput.vue b/nezha-fronted/src/components/common/searchInput.vue index 5e583987d..b5dd5bef8 100644 --- a/nezha-fronted/src/components/common/searchInput.vue +++ b/nezha-fronted/src/components/common/searchInput.vue @@ -116,7 +116,7 @@