diff --git a/hg-monitor-web-base/src/main/resources/static/src/controller/commonDetail.js b/hg-monitor-web-base/src/main/resources/static/src/controller/commonDetail.js index 27d6325..b1b9568 100644 --- a/hg-monitor-web-base/src/main/resources/static/src/controller/commonDetail.js +++ b/hg-monitor-web-base/src/main/resources/static/src/controller/commonDetail.js @@ -52,24 +52,6 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele arr.map(item=>{ statusKpiList.push(item.kpiId) }) - /*let idArr=[]; - let idStr=''; - if(id.indexOf(',')!=-1){ - idArr=id.split(','); - idStr=idArr[0]; - }else{ - idStr=id; - } - let isKpi=false; - arr.map(item=>{ - if(idStr==item.kpiId){ - isKpi=true; - } - }) - if(isKpi){ - let menuboxStr = '<li type="link-status-kpi"><i class="layui-icon"></i>状态指标</li>'; - $("#detail_menubox_id ul").append(menuboxStr) - }*/ } else { // layer.msg('状态指标获取失败!', {icon: 2}); } @@ -181,9 +163,6 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele } titleStr = valueStr; } - /* var tips = '<a class="detail_row_menu hide">\n' + - '<img style="width: 17px;height: 17px;" src="/src/style/img/icon_row_menu.png">\n' + - '</a>'*/ var tips = '<a class="detail_row_menu hide" data-statusf='+statusF+' data-id='+v.id+' data-flag='+v.flag+ ' data-name='+v.name+' data-kpiname='+v.name+' data-iswarning=1 data-ident=1' + ' data-trend=0 data-unit="" data-hidem="hidem" data-nature="true" ' + @@ -295,9 +274,6 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele kpiIdList += ar.id + ","; } //start lsq 更改下探图标的属性值 2022-06-08 - /* var tips = '<a class="detail_row_menu hide">\n' + - '<img style="width: 17px;height: 17px;" src="/src/style/img/icon_row_menu.png">\n' + - '</a>'*/ var tips = '<a class="detail_row_menu hide" data-statusf='+statusF+' data-id='+v.id+' data-flag='+v.flag+ ' data-name='+v.name+' data-kpiname='+v.name+' data-iswarning=1 data-ident=1' + ' data-trend=0 data-unit="" data-hidem="hidem" data-nature="true" ' + @@ -1923,6 +1899,9 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele */ renderTable: function (tableId, page, resId, kpiId, title, flagPrifix, sortBy, order, size,colWidth) { var editFlag = localStorage.getItem("editFlag");//是否编辑状态 + //start lsq 状态信息的状态也增加下探 202-06-08 + let statusF=false;//是否为状态信息 + //end lsq 2022-06-08 if (!size) { size = 5; } @@ -2045,9 +2024,14 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele // } // // // End Wang 2021/11/18 15:03 查询字典编辑指标,判断编辑状态 - + //start lsq 判断当前kpiId是否在状态指标数据列表中 2022-06-08 + let status=statusKpiList.indexOf(d[v.id].kpiId); + if(status!=-1){ + statusF=true; + } + //end lsq 2022-06-08 //拼接表空间名称、文件系统名称等等,如果是性能指标或者趋势指标,则可以下探 徐毫杰还原 - if (value.kpiIdent == '1' || value.isWarning == '1') { + if (value.kpiIdent == '1' || value.isWarning == '1' || status!=-1) { var chbox = ''; if (editFlag && editFlag == "true" && value.kpiIdent == '1') { chbox = '<input lay-filter="kpicheckboxfilter" type="checkbox" lay-skin="primary" name="identKpiCheckbox" ' + @@ -2055,7 +2039,7 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele } return chbox + '<a class="link showlinechart_' + tableId + '" style="padding-left:5px;' + resStyle + '" ' + 'data-isWarning="' + value.isWarning + '" data-ident="' + value.kpiIdent + '"' + 'data-trend="' + value.isTrend + '" data-id="' + v.id + '" data-kpiname="' + kpiname + '" data-name="' + v.name + '" data-flag="' + value.flag + '">' + value.kpiValue + '</a>' + - '<a class="detail_row_menu hide" data-isWarning="' + value.isWarning + '" data-ident="' + value.kpiIdent + '" data-trend="' + value.isTrend + '" ' + + '<a class="detail_row_menu hide" data-statusf='+statusF+' data-isWarning="' + value.isWarning + '" data-ident="' + value.kpiIdent + '" data-trend="' + value.isTrend + '" ' + 'data-id="' + v.id + '" data-kpiname="' + kpiname + '" data-name="' + v.name + '" data-flag="' + value.flag + '"' + 'data-canca="' + value.canCA + '" data-incaing="' + value.inCAing + '" data-restype="' + resType + '"' + '>' + @@ -2455,6 +2439,9 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele * @param resId */ renderActiveAlarms: function (tableId, resId) { + //start lsq 状态信息的状态也增加下探 202-06-08 + let statusF=false;//是否为状态信息 + //end lsq 2022-06-08 $('#'+tableId).prev().text('实时告警Top5') var alarmlist = table.render({ elem: '#' + tableId @@ -2493,11 +2480,25 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele , { field: 'kpiName', title: '指标名称', align: 'center', width: '20%', templet: function (d) { + //start lsq 判断当前kpiId是否在状态指标数据列表中 2022-06-08 + let status=statusKpiList.indexOf(d.kpiId); + if(status!=-1){ + statusF=true; + } + //end lsq 2022-06-08 var kpiName = d.kpiName == 'TYPE'?'ERRPT':d.kpiName; + let chbox=''; + if(status!=-1){ + chbox='<a class="detail_row_menu hide" data-one="1" data-statusf='+statusF+' data-isWarning="' + d.isWarning + '" data-ident="' + d.kpiIdent + '" data-trend="' + d.isTrend + '" ' + + 'data-id="' + d.kpiId + '" data-kpiname="' + d.kpiName + '" data-name="' + d.name + '" data-flag="' + d.flag + '"' + + 'data-canca="' + d.canCA + '" data-incaing="' + d.inCAing + '" data-restype="' + d.resType + '"' + + '>' + + '<img style="width: 20px;height: 20px;" src="/src/style/img/icon_row_menu.png"></a>';; + } if (d.kpiIdent != 1 && d.isWarning != 1) { - return '<div>' + kpiName + '</div>'; + return '<div>' + kpiName + chbox+'</div>'; } - return '<div><span data-ident="'+d.kpiIdent+'" data-warning="'+d.isWarning+'" data-resid="' + d.resId + '" data-flag="' + d.flag + '" data-kpi="' + d.kpiId + '" data-name="' + kpiName + '" data-warn-zbmc="' + d.id + '" class="layui-table-link">' + kpiName + '</span></div>'; + return '<div><span data-ident="'+d.kpiIdent+'" data-warning="'+d.isWarning+'" data-resid="' + d.resId + '" data-flag="' + d.flag + '" data-kpi="' + d.kpiId + '" data-name="' + kpiName + '" data-warn-zbmc="' + d.id + '" class="layui-table-link">' + kpiName +chbox+ '</span></div>'; } } , {field: 'updateTime', title: '告警时间', align: 'center', width: '15%'} @@ -2549,6 +2550,17 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele '<input type="radio" name="noticeFlag" value="true" title="是"> 是' + '<input type="radio" name="noticeFlag" value="false" title="否" checked="" style="margin-left: 20px;"> 否</div> '); }); + //start lsq 添加状态指标下探 2022-06-09 + $("[lay-id='"+tableId+"']").find(".layui-table-cell").hover(function () { + var $that = $(this) + var $btn = $that.find(".detail_row_menu"); + if ($btn.length > 0) { + $(".layui-card-body").find(".detail_row_menu:not(.hide)").addClass("hide") + $btn.removeClass("hide"); + } + }) + filterSuppressMonitor(resId); + //end lsq 2022-06-09 } }); if($('.layui-show').find(".detail-left-panel").length == 0){ @@ -4159,7 +4171,7 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele } //end lsq 2022-05-19 //监听过滤压制等事件 - function filterSuppressMonitor(resId){ + function filterSuppressMonitor(resId,isStatusMenubox){ //菜单按钮点击事件 $("a.detail_row_menu").off("click").on("click",function (e) { $("#detail_menubox_id").remove(); @@ -4170,28 +4182,35 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele var nature = $menu.data('nature'); //lsq 状态信息无其他下探 2022-06-08 var statusF = $menu.data('statusf'); + var one = $menu.data('one'); var menubox = '<div class="detail_menubox" id="detail_menubox_id" style="color:#666;"><ul>'; - if (!nature) { - menubox += - '<li type="w"><i class="layui-icon"></i>告警设置</li>' + - '<li type="s"><i class="layui-icon"></i>过滤单指标</li>'; - } - if (!hideM) { - menubox += '<li type="m"><i class="layui-icon"></i>过滤多指标</li>'; - } - if (!nature) { - menubox += '<li type="t"><i class="layui-icon"></i>性能趋势</li>'; - } - // if(!statusF){ + //lsq 只有状态指标下探的标识 + if(one==1){ + menubox+=''; + }else{ + if (!nature) { + menubox += + '<li type="w"><i class="layui-icon"></i>告警设置</li>' + + '<li type="s"><i class="layui-icon"></i>过滤单指标</li>'; + } + if (!hideM) { + menubox += '<li type="m"><i class="layui-icon"></i>过滤多指标</li>'; + } + if (!nature) { + menubox += '<li type="t"><i class="layui-icon"></i>性能趋势</li>'; + } + // if(!statusF){ menubox += '<li type="n"><i class="layui-icon"></i>压制次数</li>'; - // } - if (canCA) { - if (inCAing) { - menubox += '<li type="ca-cancel"><i class="layui-icon"></i>取消容量预测</li>'; - } else { - menubox += '<li type="ca-add"><i class="layui-icon"></i>纳入容量预测</li>'; + // } + if (canCA) { + if (inCAing) { + menubox += '<li type="ca-cancel"><i class="layui-icon"></i>取消容量预测</li>'; + } else { + menubox += '<li type="ca-add"><i class="layui-icon"></i>纳入容量预测</li>'; + } } } + //lsq 增加连接状态指标 2022-05-19 // menubox += '<li type="link-status-kpi"><i class="layui-icon"></i>状态指标</li>'; diff --git a/hg-monitor-web-base/src/main/resources/static/src/controller/userIndex.js b/hg-monitor-web-base/src/main/resources/static/src/controller/userIndex.js index 8204b38..e803af9 100644 --- a/hg-monitor-web-base/src/main/resources/static/src/controller/userIndex.js +++ b/hg-monitor-web-base/src/main/resources/static/src/controller/userIndex.js @@ -1121,44 +1121,31 @@ layui.define(['table', 'form', 'admin', 'layer', 'upload', 'common', 'sessions', }) }, yes: function(index, layero){ - //获取表格中的数据 - var $showTypeSelect= $('#res_user_table').next().find('.user_showType'); - var resIds=""; - //start 用户资源授权保存失败,先注释掉, 2022-06-08 - /* $.each($showTypeSelect,function (i,v) { - var redis = $(this).attr("data-resId"); - var showType = $(this).val(); - var username = $(this).attr("data-username"); - resIds+=(username+'##'+redis+'##'+showType+','); - }); - */ - var ids = []; - var data = table.checkStatus('res_user_table').data; - if (data && data.length > 0) { - $.each(data, function (i, obj) { - var redis = obj.resId; - var showType = obj.showType?obj.showType:''; - var username = usernames[0]; - resIds+=(username+'##'+redis+'##'+showType+','); - }); - } - //end lsq 2022-06-08 - if(resIds.length>0){ - resIds[resIds.length-1]=resIds[resIds.length-1].substring(0,resIds[resIds.length-1].length-1); - } - //保存数据到资源用户表中 - admin.req({ - url:common.domainName + '/api-web/sysUserToResType/resourceSave' - , data:{ - ids:resIds - } - }).done(function (res) { - if(res.success){ - layer.msg('保存成功!', {icon: 1, time: 3000}); - }else{ - layer.msg('保存失败!', {icon: 7, time: 3000}); - } - }); + // //获取表格中的数据 + // var $showTypeSelect= $('#res_user_table').next().find('.user_showType'); + // var resIds=""; + // $.each($showTypeSelect,function (i,v) { + // var redis = $(this).attr("data-resId"); + // var showType = $(this).val(); + // var username = $(this).attr("data-username"); + // resIds+=(username+'##'+redis+'##'+showType+','); + // }); + // if(resIds.length>0){ + // resIds[resIds.length-1]=resIds[resIds.length-1].substring(0,resIds[resIds.length-1].length-1); + // } + // //保存数据到资源用户表中 + // admin.req({ + // url:common.domainName + '/api-web/sysUserToResType/resourceSave' + // , data:{ + // ids:resIds + // } + // }).done(function (res) { + // if(res.success){ + // layer.msg('保存成功!', {icon: 1, time: 3000}); + // }else{ + // layer.msg('保存失败!', {icon: 7, time: 3000}); + // } + // }); layer.close(index); //如果设定了yes回调,需进行手工关闭 } }); diff --git a/hg-monitor-web-base/src/main/resources/static/src/views/baseconfig/user/index.html b/hg-monitor-web-base/src/main/resources/static/src/views/baseconfig/user/index.html index 5e08667..6c54843 100644 --- a/hg-monitor-web-base/src/main/resources/static/src/views/baseconfig/user/index.html +++ b/hg-monitor-web-base/src/main/resources/static/src/views/baseconfig/user/index.html @@ -25,7 +25,7 @@ <select class="form-control input-sm" name="enabled" lay-filter="enabled"> <option value="">=状态=</option> <option value="1">正常</option> - <option value="0">禁用</option> + <option value="0">冻结</option> </select> </div> </div> @@ -137,4 +137,4 @@ fn(params); }); }; -</script> \ No newline at end of file +</script> diff --git a/hg-monitor-web-base/src/main/resources/static/vue3/src/views/batchChangeLeaders/index.html b/hg-monitor-web-base/src/main/resources/static/vue3/src/views/batchChangeLeaders/index.html index 11bd400..14afba2 100644 --- a/hg-monitor-web-base/src/main/resources/static/vue3/src/views/batchChangeLeaders/index.html +++ b/hg-monitor-web-base/src/main/resources/static/vue3/src/views/batchChangeLeaders/index.html @@ -3,51 +3,13 @@ <el-col :span="22"> <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> <el-tab-pane v-for="(item,index) in tabData" :key="index" :label="item.ddicName" :name="item.ddicCode"> - - <!--<div class="table-container" v-if="item.ddicCode=='resourcePer'"> - - <ResourcePer></ResourcePer> - </div> - <div class="table-container" v-else-if="item.ddicCode=='resourceLeader'"> - <ResourceLeader></ResourceLeader> - </div> - <div class="table-container" v-else-if="item.ddicCode=='resourceTypePer'"> - <ResourceTypePer></ResourceTypePer> - </div> - <div class="table-container" v-else-if="item.ddicCode=='bizPer'"> - <BizPer></BizPer> - </div> - <div class="table-container" v-else-if="item.ddicCode=='bizLeader'"> - <BizLeader></BizLeader> - </div> - <div class="table-container" v-else-if="item.ddicCode=='alarmSubPer'"> - <AlarmSubPer></AlarmSubPer> - </div> - <div class="table-container" v-else-if="item.ddicCode=='rolePer'"> - <RolePer></RolePer> - </div> - <div class="table-container" v-else-if="item.ddicCode=='topoPer'"> - <TopoPer></TopoPer> - </div> - <div class="table-container" v-else-if="item.ddicCode=='autoPatrolPortPer'"> - <AutoPatrolPortPer></AutoPatrolPortPer> - </div> - <div class="table-container" v-else-if="item.ddicCode=='fileManagePer'"> - <FileManagePer></FileManagePer> - </div> - <div class="table-container" v-else>暂无数据</div>--> </el-tab-pane> - - </el-tabs> - </el-col> <el-col :span="2"> <div style="padding:0 10px 6px;border-bottom: 2px solid var(--el-border-color-light);"> <el-button type="primary" @click="exportClick()" size="small" style="margin-left: 6px">导出</el-button> - </div> - </el-col> </el-row> <el-row> @@ -68,15 +30,13 @@ </el-row> <el-row v-if="isAll==0"> <el-col :span="24" class="table-height"> -<!-- <span style="margin-right:6px;"><el-button type="primary" @click="clickAll">全部</el-button></span>--> <el-select v-model="selectModel" placeholder="请选择需要导出的页签" multiple style="width:80%" clearable - filterable - > + filterable> <el-option v-for="item in tabData" :key="item.ddicCode" diff --git a/hg-monitor-web-base/src/main/resources/static/vue3/src/views/connectScatter/index.html b/hg-monitor-web-base/src/main/resources/static/vue3/src/views/connectScatter/index.html index a6c2c16..e3a1e0a 100644 --- a/hg-monitor-web-base/src/main/resources/static/vue3/src/views/connectScatter/index.html +++ b/hg-monitor-web-base/src/main/resources/static/vue3/src/views/connectScatter/index.html @@ -3,33 +3,38 @@ <div class="pie-detail-content"> <el-row class="detail-content-title"> <el-col :span="8"></el-col> - <el-col :span="16" class="pie-flex-end"> - <div class="pie-date-range"> -<!-- <cm-date-range-influx v-if="dateType=='custom'" :keys="keys" @callbackinflux="getInfluxOption" @callbacksure="getOptionData" @callbacktime="callbacktime" @callbackrate="callbackrate"></cm-date-range-influx>--> - </div> + <el-col :span="16" class="pie-flex-end" style="justify-content: flex-end;"> <div class="line-filter pie-line-filter"> <div class="linechartfrequency line-filter-content"> <div v-if="dateType!='custom'" @click="changeInterval('oneDay')" :class="['line-filter-item', {'active':dateType=='oneDay'}]" data-value="oneDay" >近24小时</div> - <div v-if="dateType!='custom'" @click="changeInterval('week')" :class="['line-filter-item', {'active':dateType=='week'}]" data-value="week">一周</div> - <div v-if="dateType!='custom'" @click="changeInterval('month')" :class="['line-filter-item', {'active':dateType=='month'}]" data-value="month">一月</div> -<!-- <div v-if="dateType!='custom'" @click="changeInterval('YEAR')" :class="['line-filter-item', {'active':dateType=='YEAR'}]" data-value="YEAR">一年</div>--> -<!-- <div v-if="dateType!='custom'" @click="changeInterval('custom')" :class="['line-filter-item', {'active':dateType=='custom'}]" data-value="custom">自定义</div>--> -<!-- <div v-if="dateType=='custom'" @click="changeInterval('DAY')" :class="['line-filter-item', {'active':dateType=='custom'}]" data-value="custom">返 回</div>--> + <el-date-picker + v-model="customDate" + type="date" + placeholder="请选择日期" + size="small" + format="YYYY-MM-DD" + value-format="YYYY-MM-DD" + style="margin-left:6px;" + /> + <el-time-picker + v-model="customTime" + is-range + range-separator="-" + start-placeholder="开始时间" + end-placeholder="结束时间" + size="small" + format="HH:mm:ss" + value-format="HH:mm:ss" + style="margin-left:6px;" + /> + <el-button style="margin-left:6px;" type="primary" size="small" @click="search"> 查询</el-button> </div> </div> - </el-col> - </el-row> <el-row class="detail-content"> - <el-col :span="24" class="detail_linechart"> + <el-col :span="24" class="detail_linechart" style="height:550px !important;"> <LineChart :optionData="optionData" v-if="optionData"></LineChart> - -<!-- <div class="detail_linechart" id="indentKpiLineChart"></div>--> - <!-- <div class="detail_linechart" id="warningKpiLineChart" style="margin-top:35px;"></div>--> - <!-- <div class="detail_linechart" id="line-tingyun-trendKpiLineChart" style="margin-top:35px;"></div>--> - - </el-col> </el-row> </div> diff --git a/hg-monitor-web-base/src/main/resources/static/vue3/src/views/connectScatter/index.js b/hg-monitor-web-base/src/main/resources/static/vue3/src/views/connectScatter/index.js index 55c859c..2e6f9ef 100644 --- a/hg-monitor-web-base/src/main/resources/static/vue3/src/views/connectScatter/index.js +++ b/hg-monitor-web-base/src/main/resources/static/vue3/src/views/connectScatter/index.js @@ -12,6 +12,8 @@ export default { setup(props, {attrs, slots, emit}) { const {proxy} = Vue.getCurrentInstance(); let dateType=Vue.ref('oneDay'); + let customDate=Vue.ref('');//选择日期 + let customTime=Vue.ref([]);//时间范围 let optionData=Vue.ref(''); //series接口无数据时默认数据 let seriesData = Vue.ref([{ @@ -111,6 +113,8 @@ export default { ]) const changeInterval=(val)=>{ + customDate.value=''; + customTime.value=[]; dateType.value=val; if(val=='custom'){ }else{ @@ -138,8 +142,15 @@ export default { idStr=kpiId; } kpiName.value = params.name;//指标名称 + let startTime=''; + let endTime=''; + if(customTime.value && customTime.value.length>0){ + startTime=customTime.value[0]; + endTime=customTime.value[1]; + } let url = '/api-web/scatter/getByResId?dateType=' + dateType.value + - '&resId=' + resourceId + '&kpiId=' + idStr + '&resType=' + resType; + '&resId=' + resourceId + '&kpiId=' + idStr + '&resType=' + resType+'&customDate='+customDate.value+ + '&startTime=' +startTime +'&endTime=' + endTime; proxy.$http.get(url, {},function (res){ kpiUnit.value = (!res.data || res.data.kpiUnit == null) ? "" : res.data.kpiUnit; if (res.data && res.data.length == 0) { @@ -251,7 +262,18 @@ export default { boundaryGap: ['10%', '10%'], axisLabel: { interval:59,//label无间隔 - formatter: '{value} 时' + // formatter: '{value} 时' + formatter: function (param) { + let newParamsName=''; + let arr=param?param.split(":"):[]; + if(arr[0]){ + let strFirst=arr[0].substring(0,1); + let strSecond=arr[0].substring(1); + strFirst=strFirst.replace('0', ""); + newParamsName=strFirst + strSecond+' 时'; + } + return newParamsName + } }, axisLine: { @@ -356,6 +378,18 @@ export default { } YAxisData.value=arr1; } + //查询自定义时间段的数据 + let search=()=>{ + if(!customDate.value){ + proxy.$global.showMsg('请选择日期','warning'); + return; + } + if(!customTime.value || customTime.value.length==0){ + proxy.$global.showMsg('请选择时间范围','warning'); + return; + } + getLineChart(); + } // 挂载完 Vue.onMounted(() => { getYAxisData(); @@ -376,7 +410,10 @@ export default { kpiName, optionDataInit, getLineChart, - changeInterval + changeInterval, + customDate, + customTime, + search } } }