diff --git a/nezha-fronted/src/components/common/project/projectFacade.vue b/nezha-fronted/src/components/common/project/projectFacade.vue index ac817db04..9f1d30c25 100644 --- a/nezha-fronted/src/components/common/project/projectFacade.vue +++ b/nezha-fronted/src/components/common/project/projectFacade.vue @@ -15,8 +15,67 @@
-
123
-
456
+
+
+ {{projectInfo.title}} +
+
+ Id :{{projectInfo.id}} + Name :{{projectInfo.name}} +
+
+ Description :{{projectInfo.remark?projectInfo.remark:'--'}} +
+
+ + Alert state : +
{{projectInfo.alertStat[0]}} +
{{projectInfo.alertStat[1]}} +
{{projectInfo.alertStat[2]}} +
+
+
+ Module Mum :{{projectInfo.moduleMum}} +
+
+
+
+ {{alertData.title}}: + {{alertData.sssObj.total}} +
+
+
+ +
{{alertData.sssObj.pending}}
+
+
+ +
{{alertData.sssObj.stop}}
+
+
+ +
{{alertData.sssObj.other}}
+
+
+
{ + if (response.code === 200) { + this.projectInfo={...this.projectInfo,...response.data.basic,moduleMum:response.data.module.length} + this.projectInfo.loading=false; + } + }); + + //获取所有asset + this.alertData.loading=true; + setTimeout(()=>{ + this.alertData.loading=false; + },300) + }, focusInput() { let classVal=document.getElementById('queryPanel').parentElement.getAttribute("class"); classVal=classVal.replace('query-input-inactive','query-input-active'); @@ -125,21 +233,54 @@ height: 100%; } .facade-top{ - min-height: 178px; + min-height: 138px; display: flex; margin: 12px 0; - height: 16%; + height: calc(16% - 40px); + font-size: 12px; } .facade-top > div{ - height: 100%; + height: calc(100% - 40px); width: 18%; min-width: 280px; background: #FFFFFF; margin-right: 9px; + padding: 20px; + } + .facade-top-title{ + font-size: 16px; + color: #333333; + font-weight: bold; + padding: 5px 0; + } + .facade-top-left{ + display: flex; + flex-direction: column; + justify-content: space-around; } .facade-content{ flex: 1; min-height: 800px; width: 80%; } + .label{ + padding: 0 15px; + } + .special.label{ + margin-left: 30px; + } + .facade-top .facade-top-right{ + width: 12%; + min-width: 280px; + } + .facade-top-right-content{ + display: flex; + justify-content: space-around; + justify-items: center; + height: calc(100% - 30px); + align-items:center; + } + .align--center{ + text-align: center; + } diff --git a/nezha-fronted/src/components/common/project/visNetwork.vue b/nezha-fronted/src/components/common/project/visNetwork.vue index 58b635b9d..0e91ca8db 100644 --- a/nezha-fronted/src/components/common/project/visNetwork.vue +++ b/nezha-fronted/src/components/common/project/visNetwork.vue @@ -71,68 +71,7 @@ data () { return { //其他 - tableHeight: 0, - data: {}, // 该图表信息,chartItem - unit:{}, isError:false, - errorContent:'', - pageSizes:[50,100,200], - pageObj: { - pageNo: 1, - pageSize: 50, - total: 0 - }, - screenPageObj:{ - pageNo: 1, - pageSize: 50, - total: 0 - }, - storedTableData:[], - storedScreanTableData:[], - seriesItem: [], // 保存信息 - seriesItemScreen:[],//全屏数据 - images: '', - loading:Object, - items: { - metric_name: [], // 每条数据列名称 - xAxis: [], - theData: [], // series数据组 - }, - panelIdInner: '', // 看板id=panelId,原写作chart,由set_data获取 - firstLoad: true, // 是否第一次加载 - chartType: 'table', // 图表类型 - screenModal: false, - // 查询数据使用 - filter: { - start_time: '', - end_time: '', - }, - stableFilter: {}, // 保存数据使用,初始化起止时间,单图or多图等 - firstShow: false, // 默认不显示操作按钮, - caretShow:false, - dragTitleShow:false, - dropdownMenuShow:false, - divFirstShow:false, - columns: [ - { - title:'Element', - key:'element', - sortable: true - } - , { - title: '采集时间', - key: 'time', - width: 160, - render: (h, params) => h('span', bus.timeFormate(params.row.time, 'yyyy-MM-dd hh:mm:ss')), - }, { - title: '数值', - key: 'value', - width: 160, - sortable: true, - render: (h, params) => h('span', this.getNumStr(params.row.value)), - }], - searchTime: [new Date().setHours(new Date().getHours() - 1), new Date()],//全屏显示的时间 - oldSearchTime: [], nodesArray:[ { id: 1, label: "model", image: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1906469856,4113625838&fm=26&gp=0.jpg', @@ -156,236 +95,17 @@ {id: 4,from: 4, to: 6, dashes:[15,15],label:"hahah",arrows:'from;to',smooth:true, color: {color:'#1e90ff',highlight:'#1e90ff',hover:'#1e90ff',opacity:1.0}}, {id: 5,from: 1, to: 7, dashes:[15,15],label:"hahah",arrows:'from;to',smooth:true, color: {color:'#1e90ff',highlight:'#1e90ff',hover:'#1e90ff',opacity:1.0}}, ], + dragTitleShow:false, } }, methods:{ - // 其他 - filterShowData(source,pageObj){ - return source.slice((pageObj.pageNo-1)*pageObj.pageSize,pageObj.pageNo*pageObj.pageSize) - }, - startResize(e) { - let vm = this; - this.$chartResizeTool.start(vm, this.data, e); - }, - screenPageNo(val) { - this.screenPageObj.pageNo = val; - this.seriesItemScreen=this.filterShowData(this.storedScreanTableData, this.screenPageObj) - }, - screenPageSize(val) { - this.screenPageObj.pageSize = val; - this.seriesItemScreen=this.filterShowData(this.storedScreanTableData, this.screenPageObj) - }, - startLoading(area){ - if(area==='screen'){ - this.$refs['localLoadingScreen'+this.chartIndex].startLoading(); - }else { - this.$refs['localLoading'+this.chartIndex].startLoading(); - } - }, - endLoading(area){ - if(area==='screen'){ - this.$refs['localLoadingScreen'+this.chartIndex].endLoading(); - }else { - this.$refs['localLoading'+this.chartIndex].endLoading(); - } - }, - resize(chartItem) { - let deHeight = this.$chartResizeTool.titleHeight+this.$chartResizeTool.chartTableBlankHeight; - let container = document.querySelector('#chartTableDiv' + this.chartIndex + " .table-container"); - container.style.height = `calc(100% - ${deHeight*2}px)`; - this.tableHeight = `calc(100% - ${this.$refs.Pagination.$el.offsetHeight}px)`; - this.$nextTick(() => { - container.querySelector(".el-table__body-wrapper")._ps_.update(); - }); - }, - showLoad(chartItem) { - //设置高度 chart-table - this.$nextTick(() => { - this.resize(chartItem); - }); - this.startLoading(); - this.divFirstShow = true; - }, - // 重新请求数据 刷新操作-local - refreshChart() { - this.dropdownMenuShow=false; - this.startLoading(); - this.firstShow = false; - this.$emit('on-refresh-data', this.data.id); - }, - // 编辑图表 - editChart() { - this.dropdownMenuShow=false; - this.$emit('on-edit-chart-block', this.data.id); - }, - // 删除该图表 - removeChart() { - this.dropdownMenuShow=false; - this.$emit('on-remove-chart-block', this.data.id); - }, - //全屏时间条件查询 - dateChange(time) { - this.searchTime = [...time]; - this.seriesItemScreen = []; - for(let i=0;i<8;i++){ - this.seriesItemScreen.push({//表格数据 - element:'', - time: '',//采集时间 - value: '',//数值 - }); - } - this.startLoading('screen'); - this.$emit('on-search-data', this.data.id, this.searchTime); - }, - clickos() { - this.dropdownMenuShow=false; - }, - clearChart(){ - this.data = {}; - }, - duplicate(){ - this.dropdownMenuShow=false; - const param = {id:this.data.id}; - this.$post('panel/'+ this.data.panelId+'/charts/duplicate',(param)).then(response => { - if (response.code === 200) { - this.$message({ - duration: 2000, - type: 'success', - message: this.$t("tip.duplicateSuccess") - }); - this.$emit('on-duplicate-chart-block', this.data.id,response.data); - }else { - if(response.msg){ - this.$message.error(response.msg); - }else if(response.error){ - this.$message.error(response.error); - }else { - this.$message.error(response); - } - } - }); - }, - // 全屏查看 - showAllScreen() { - this.dropdownMenuShow=false; - // 初始化同步时间 - this.searchTime = []; - this.$set(this.searchTime, 0, this.oldSearchTime[0]); - this.$set(this.searchTime, 1, this.oldSearchTime[1]); - this.$refs.calendarPanel.setCustomTime(this.searchTime); - - this.seriesItemScreen = this.seriesItem; - this.screenModal = true; - if(this.$refs.topologyFull){ - setTimeout(()=>{ - this.$refs.topologyFull.resetAllNodes(); - }) - } - }, - // 设置数据, filter区分 - setData(chartItem, seriesItem, panelId, filter,area,errorMsg) { - if(errorMsg && errorMsg!==''){ - this.isError = true; - this.errorContent = errorMsg; - }else { - this.isError = false; - this.errorContent = ''; - } - if(area==='showFullScreen'){//全屏按时间查询 - this.data = chartItem; - this.unit = chartDataFormat.getUnit(this.data.unit); - this.searchTime[0] = filter.start_time;//将列表的查询时间复制给全屏的查询时间 - this.searchTime[1] = filter.end_time; - // this.seriesItemScreen = seriesItem; - this.storedScreanTableData=seriesItem; - this.storedScreanTableData=Object.assign([],this.storedScreanTableData.reverse()); - this.screenPageObj.total=this.storedScreanTableData.length; - this.seriesItemScreen=this.filterShowData(this.storedScreanTableData,this.screenPageObj); - this.endLoading('screen'); - } else{ - //设置高度 chart-table - this.divFirstShow = true; - this.$nextTick(() => { - this.resize(chartItem); - }); - this.firstShow = true; // 展示操作按键 - - this.panelIdInner = panelId; - this.data = chartItem; - this.unit = chartDataFormat.getUnit(this.data.unit); - this.storedTableData =seriesItem; - this.storedScreanTableData=seriesItem; - this.storedTableData=Object.assign([],this.storedTableData.reverse()); - this.storedScreanTableData=Object.assign([],this.storedScreanTableData.reverse()); - this.pageObj.total=this.storedTableData.length; - this.screenPageObj.total=this.storedScreanTableData.length; - this.seriesItem=this.filterShowData(this.storedTableData,this.pageObj); - this.seriesItemScreen =this.filterShowData(this.storedScreanTableData,this.screenPageObj) - if (filter) { // 保存数据,用于同步时间 - this.searchTime[0] = filter.start_time;//将列表的查询时间复制给全屏的查询时间 - this.searchTime[1] = filter.end_time; - this.oldSearchTime[0] = this.searchTime[0]; - this.oldSearchTime[1] = this.searchTime[1]; - } - this.endLoading(); - } - }, - dealLegendAlias:function(legend,expression){ - if(/\{\{.+\}\}/.test(expression)){ - let labelValue=expression.replace(/(\{\{.+?\}\})/g,function(i){ - let label=i.substr(i.indexOf('{{')+2,i.indexOf('}}')-i.indexOf('{{')-2) - let reg=new RegExp(label+'=".+?"') - let value=null; - if(reg.test(legend)){ - let find=legend.match(reg)[0]; - value=find.substr(find.indexOf('"')+1,find.lastIndexOf('"')-find.indexOf('"')-1); - } - return value?value:label; - }) - return labelValue - }else{ - return expression; - } - }, - // 获取格式 - getNumStr(num) { - if (num) { - if (num >= 1000) { - const kbNum = num / 1000; - if (kbNum >= 1000) { - const mbNum = kbNum / 1000; - if (mbNum >= 1000) { - const gbNum = mbNum / 1000; - if (gbNum >= 1000) { - const tbNum = gbNum / 1000; - if (tbNum >= 1000) { - const pbNum = tbNum / 1000; - return `${pbNum.toFixed(2)}PB`; - } - return `${tbNum.toFixed(2)}TB`; - } - return `${gbNum.toFixed(2)}GB`; - } - return `${mbNum.toFixed(2)}MB`; - } - return `${kbNum.toFixed(2)}KB`; - } - return num.toFixed(2); - } - return num; - }, // 设置拓扑图数据 setTopologyData(nodesArr,edgesArr){ this.nodesArray=nodesArr; this.edgesArray=edgesArr; }, - //退出全屏 - exitFull(){ - this.screenModal = false; - this.$refs.topology.resetAllNodes() - } }, mounted(){ diff --git a/nezha-fronted/src/components/page/project/project.vue b/nezha-fronted/src/components/page/project/project.vue index f69db5c7a..566957ac5 100644 --- a/nezha-fronted/src/components/page/project/project.vue +++ b/nezha-fronted/src/components/page/project/project.vue @@ -126,7 +126,7 @@