diff --git a/nezha-fronted/src/assets/css/components/common/project/meta2dProps.scss b/nezha-fronted/src/assets/css/components/common/project/meta2dProps.scss index 56dce5e6b..a83e6b97b 100644 --- a/nezha-fronted/src/assets/css/components/common/project/meta2dProps.scss +++ b/nezha-fronted/src/assets/css/components/common/project/meta2dProps.scss @@ -104,6 +104,7 @@ display: flex; justify-content: space-between; padding: 3px 10px; + cursor: pointer; .nz-icon-shuru { display: none; } @@ -171,66 +172,6 @@ box-sizing: border-box; border-radius: 2px; } - .image-select-box { - text-align: center; - width: 225px; - z-index: 1; - padding: 0px 0px 0px 0px; - position: absolute; - top: 26px; - background: $--background-color-empty; - border: 1px solid $--border-color-light; - border-radius: 4px; - left: 0; - .el-card { - border: none; - } - .el-card__body { - padding: 0; - } - .el-collapse-item { - margin-bottom: 2px; - } - .image-box-item { - flex-direction: column; - align-items: center; - display: inline-block; - position: relative; - width: 47px; - height: 47px; - margin: 0; - padding: 8px; - box-sizing: border-box; - border: 1px solid transparent; - .image-src{ - width: 31px; - height: 31px; - } - .image-text { - width: 100%; - height: 20px; - line-height: 20px; - font-size: 12px; - text-align: center; - } - .delIcon{ - position: absolute; - right: 0; - top: -5px; - display: none; - } - } - .image-box-item:hover { - border-color: $--color-primary; - .delIcon { - display: inline-block; - color: $--color-primary; - } - } - .upload-pic-box{ - width: 100%; - } - } } .nz-color { .vc-input__input { @@ -257,3 +198,165 @@ margin-left: 10px; } } +.image-select-box { + text-align: center; + width: 225px; + z-index: 1; + padding: 0px 0px 0px 0px; + background: $--background-color-empty; + border: none; + box-shadow: unset !important; + border-radius: 4px; + left: 0; + .el-card { + border: none; + box-shadow: unset !important; + } + .el-card__body { + padding: 0 10px; + } + .el-collapse-item { + margin-bottom: 2px; + } + .nz-collapse-header { + display: flex; + width: 100%; + height: 32px; + line-height: 32px; + background: #FFFFFF; + box-sizing: border-box; + padding: 0 0 0 8px; + .nz-collapse-header-content { + width: calc(100% - 130px); + flex-shrink: 0; + text-align: left; + } + .nz-icon-caret-right { + display: inline-block; + width: 30px; + flex-shrink: 0; + height: 100%; + line-height: 32px; + } + .nz-icon-caret-right { + color: #BEBEBE; + transition: all 0.3s; + } + .title-delete { + display: none; + width: 100px; + flex-shrink: 0; + text-align: right; + } + .title-all { + display: inline-block; + width: 100px; + flex-shrink: 0; + text-align: right; + } + } + .nz-collapse-header:hover,.nz-collapse-header.is-active { + background: #F6F6F6; + color: $--color-primary; + .nz-icon-caret-right { + color: #BEBEBE; + } + .title-delete { + display: inline-block; + } + .title-all { + display: none; + } + } + .nz-collapse-header:hover { + background: #FFFFFF; + } + .nz-collapse-body { + padding: 5px; + box-sizing: border-box; + text-align: left; + } + .image-box-item { + flex-direction: column; + align-items: center; + display: inline-block; + position: relative; + text-align: center; + width: 90px; + height: 90px; + margin: 5px; + padding: 10px; + box-sizing: border-box; + border: 1px solid transparent; + .image-src{ + width: 50px; + height: 50px; + } + .image-text { + width: 100%; + height: 20px; + line-height: 20px; + font-size: 12px; + text-align: center; + } + .delIcon{ + position: absolute; + right: 4px; + top: -1px; + display: none; + } + } + .image-box-item.is-select { + border-color: $--border-select-color; + .delIcon { + display: inline-block; + color: $--color-primary; + } + } + .image-box-item:hover { + border-color: $--border-select-color; + .delIcon { + display: inline-block; + color: $--color-primary; + } + } + .rotate90 { + display:inline-block; + transform: rotate(90deg); + } +} +.nz-select-img-dialog-footer { + display: flex; + justify-content: space-between; + .el-icon-plus { + color: $--color-primary; + margin-right: 5px; + } +} +.nz-new-dialog{ + .el-dialog__header{ + padding: 16px 20px; + .el-dialog__title{ + font-size: 14px; + font-weight: 600; + } + border-bottom: 1px solid $--border-color-light; + } + .el-dialog__body{ + padding: 0; + } + .el-dialog__footer{ + border-top: 1px solid $--border-color-light; + padding: 13px 20px; + margin-top: 0; + } +} +.is-fullscreen.nz-new-dialog.meta2d-preview { + overflow: hidden; + .el-dialog__body{ + flex: 1; + .meta2d-project { + height: 100%; + } + } +} diff --git a/nezha-fronted/src/components/common/js/common.js b/nezha-fronted/src/components/common/js/common.js index 2742f9a3a..4404318db 100644 --- a/nezha-fronted/src/components/common/js/common.js +++ b/nezha-fronted/src/components/common/js/common.js @@ -48,6 +48,15 @@ export function setTopology (key, value) { delete topologyCache[`topology${key}`] } } +export function clearTopology () { + Object.keys(topologyCache).forEach(key => { + if (topologyCache[`topology${key}`]) { + topologyCache[`topology${key}`].destroy() + topologyCache[`topology${key}`] = null + delete topologyCache[`topology${key}`] + } + }) +} export function clearTopologyCache () { topologyCache = {} diff --git a/nezha-fronted/src/components/common/mixin/beforeMeta2d.js b/nezha-fronted/src/components/common/mixin/beforeMeta2d.js index da2e0404d..4062f49aa 100644 --- a/nezha-fronted/src/components/common/mixin/beforeMeta2d.js +++ b/nezha-fronted/src/components/common/mixin/beforeMeta2d.js @@ -19,6 +19,7 @@ export default { reload () { if (this.currentProject.id) { this.$get('monitor/project/topo', { projectId: this.currentProject.id }).then(res => { + if (res.data && res.data.topo) { this.topoData = res.data.topo || {} if (res.data.topo.topo) { diff --git a/nezha-fronted/src/components/common/project/meta2d/js/meta2dMain.js b/nezha-fronted/src/components/common/project/meta2d/js/meta2dMain.js index e65d90663..84b67230c 100644 --- a/nezha-fronted/src/components/common/project/meta2d/js/meta2dMain.js +++ b/nezha-fronted/src/components/common/project/meta2d/js/meta2dMain.js @@ -132,9 +132,11 @@ export default { const startTime = endTime - 60 * this.params.timeType * 1000 this.getQueryValues(this.querysArray, startTime, endTime).then((arr) => { this.clacTopoData(this.topoData, arr).then((data) => { + console.log(data) this.getModule() - getTopology(this.meta2dId).resize() + console.log(this.meta2dId, getTopology(this.meta2dId)) getTopology(this.meta2dId).open(data) + getTopology(this.meta2dId).resize() getTopology(this.meta2dId).centerView() getTopology(this.meta2dId).lock(1) this.getNodesArr() diff --git a/nezha-fronted/src/components/common/project/meta2d/js/topoUtil.js b/nezha-fronted/src/components/common/project/meta2d/js/topoUtil.js index d2a759c3f..d570dd837 100644 --- a/nezha-fronted/src/components/common/project/meta2d/js/topoUtil.js +++ b/nezha-fronted/src/components/common/project/meta2d/js/topoUtil.js @@ -10,6 +10,10 @@ export default { getTopology(id).centerView() }, initEdit (id) { + const endTime = new Date().getTime() + const startTime = endTime - 60 * this.params.timeType * 1000 + const elements = getTopology(id).data().elements + this.getQueryValues(elements, startTime, endTime) bus.$emit('changeSelectPens', []) getTopology(id).inactive() getTopology(id).lock(0) diff --git a/nezha-fronted/src/components/common/project/meta2d/meta2dCanvas.vue b/nezha-fronted/src/components/common/project/meta2d/meta2dCanvas.vue index 02a04f74e..ecad32144 100644 --- a/nezha-fronted/src/components/common/project/meta2d/meta2dCanvas.vue +++ b/nezha-fronted/src/components/common/project/meta2d/meta2dCanvas.vue @@ -95,10 +95,10 @@
diff --git a/nezha-fronted/src/components/common/project/meta2d/meta2dHeader.vue b/nezha-fronted/src/components/common/project/meta2d/meta2dHeader.vue index 4c28328e6..dad9ec28d 100644 --- a/nezha-fronted/src/components/common/project/meta2d/meta2dHeader.vue +++ b/nezha-fronted/src/components/common/project/meta2d/meta2dHeader.vue @@ -3,7 +3,7 @@
{{project && project.name}}
@@ -27,16 +27,16 @@
- - + + + + +
+ {{ $t('overall.uploadCustomPicture') }} + + + + + + + - + diff --git a/nezha-fronted/src/components/page/monitor/project/project.vue b/nezha-fronted/src/components/page/monitor/project/project.vue index a5ea2d3cd..e265e965d 100644 --- a/nezha-fronted/src/components/page/monitor/project/project.vue +++ b/nezha-fronted/src/components/page/monitor/project/project.vue @@ -38,6 +38,28 @@ ref="editEndpointBox"> + +
+ +
+
@@ -46,6 +68,7 @@ import bus from '@/libs/bus' import topologyL5 from '@/components/common/project/topologyL5' import meta2dMain from '@/components/common/project/meta2d/meta2dMain' import beforeMeta2d from '@/components/common/mixin/beforeMeta2d' +import { clearTopology } from '@/components/common/js/common' export default { name: 'project2', @@ -62,6 +85,13 @@ export default { addEndpoint: { show: false }, editEndpoint: { show: false } }, + isPreview: { + show: false, + topoData: {}, + querysArray: {}, + currentProject: {}, + params: {}, + }, /* 二级页面相关 */ bottomBox: { endpoint: {}, // asset详情 @@ -556,6 +586,9 @@ export default { bus.$on('alert-message-change', () => { this.getEndpointTableData() }) + bus.$on('showMeta2dPreview', (params) => { + this.isPreview = params + }) }, messageStyle (e) { if (e.column.label == 'Alerts' || e.column.label == this.$t('overall.alert')) { @@ -668,6 +701,8 @@ export default { bus.$off('module-list-change') bus.$off('endpoint-list-change') bus.$off('alert-message-change') + bus.$off('showMeta2dPreview') + clearTopology() if (this.scrollbarWrap) { this.scrollbarWrap.removeEventListener('scroll', bus.debounce) }