Authored by 王涛

Merge branch 'master-V32-XuHaoJie' into 'master'

杭州-资源视图-添加新详情页



See merge request !79
@@ -2911,6 +2911,92 @@ layui.define(['soulTable', 'commonDetail', 'common', 'laytpl', 'view', 'admin', @@ -2911,6 +2911,92 @@ layui.define(['soulTable', 'commonDetail', 'common', 'laytpl', 'view', 'admin',
2911 '#' + id, {tips: 1}); 2911 '#' + id, {tips: 1});
2912 } 2912 }
2913 2913
  2914 + },
  2915 + //详情页事件
  2916 + detailPage: function (resId,resType,editFlag,provider,name,ip,resTypeName,adminName,manageIp,collProtocol) {
  2917 + if(resType == 'NETHARDWARE_LINK'){
  2918 + return;
  2919 + }
  2920 + // 共享设备,厂商是H3C、HDS的设备不让查看详情页,没有数据
  2921 + if(resType == 'STORAGE_SHARE' && (provider == 'H3C' || provider == 'HDS')){
  2922 + return;
  2923 + }
  2924 + // 阿里云,华为云不能点击
  2925 + if(resType == 'ALI_CLOUD_PLAT' || resType == 'HUAWEI_CLOUD_PLAT'){
  2926 + return ;
  2927 + }
  2928 + var nameClickLoading = layer.load(2);
  2929 + var resName = name;
  2930 + if (name && name !== '') {
  2931 + name += '|';
  2932 + }
  2933 + if (resTypeName && resType !== 'HOST_X86SERVER') {
  2934 + name += resTypeName + '|';
  2935 + }
  2936 + if (ip) {
  2937 + if (resType === 'HOST_X86SERVER') {
  2938 + if (collProtocol && (collProtocol.split(",").length > 1 || collProtocol === 'SSH')) {
  2939 + name += '应用IP-' + ip + '|';
  2940 + }
  2941 + } else {
  2942 + name += ip + '|';
  2943 + }
  2944 + }
  2945 + if (resType === 'HOST_X86SERVER' && collProtocol && collProtocol.indexOf('SNMP') !== -1 ) {
  2946 + if (manageIp) {
  2947 + name += '管理IP-' + manageIp + '|';
  2948 + }
  2949 + }
  2950 + if (adminName) {
  2951 + name += adminName + '|';
  2952 + }
  2953 + if (name.length > 0) {
  2954 + name = name.substr(0, name.length - 1);
  2955 + }
  2956 + if (editFlag) {
  2957 + commonDetail.openDetail(resId, resType, name, editFlag, function (data) {
  2958 + $.each(data, function (i, e) {
  2959 + var obj = {};
  2960 + obj.resId = resId;
  2961 + obj.resName = resName;
  2962 + obj.kpiId = e.kpiId;
  2963 + obj.kpiName = e.kpiName;
  2964 + obj.flag = e.flag;
  2965 + obj.unit = e.unit;
  2966 + obj.name = e.name;
  2967 + obj.interval = 'DAY';
  2968 + if (e.kpiName != e.name) {
  2969 + obj.showName = e.kpiName + e.name;
  2970 + } else {
  2971 + obj.showName = e.kpiName;
  2972 + }
  2973 + tabDom(resName, obj.showName, e.name, JSON.stringify(obj))
  2974 + })
  2975 + $(".choose-tab>a").unbind("click").on("click", function () {
  2976 + $(this).parent().remove();
  2977 + })
  2978 + })
  2979 + } else {
  2980 + var pingEnable = $(this).data("pingenable"); //获取pingEnable的值 joke add 20200619
  2981 + if (pingEnable == '2') { //如果pingEnable为2,则进入ping状态详情页面
  2982 + commonDetail.openNewWin('template/detail/pingIndex', name, {'resId': resId}, false);
  2983 + } else { //否则进入监控详情页面
  2984 + commonDetail.openDetail(resId, resType, name, editFlag,null,null,null,true);
  2985 + }
  2986 + }
  2987 + layer.close(nameClickLoading);
  2988 + function tabDom(resName, kpiName, name, info) {
  2989 + //<div class="choose-tab"><span>浙江税务_出口退税_sc_134-内存使用率</span><a href="javascript:;">x</a></div>
  2990 + var html =
  2991 + '<div class="choose-tab">' +
  2992 + '<input type="hidden" name="chooseDataInfo">' +
  2993 + '<span>' + resName + '-' + kpiName + '</span>' +
  2994 + '<a href="javascript:;">x</a>' +
  2995 + '</div>'
  2996 + var $dom = $(html)
  2997 + $dom.find("input[type=hidden][name=chooseDataInfo]").val(info);
  2998 + $(".choose-resKpiInfo>.layui-card-header").append($dom);
  2999 + }
2914 } 3000 }
2915 }; 3001 };
2916 //对外暴露的接口 3002 //对外暴露的接口
@@ -2763,8 +2763,8 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele @@ -2763,8 +2763,8 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele
2763 2763
2764 }, 2764 },
2765 2765
2766 - //打开详细信息  
2767 - openDetail:function (resId,resType,title,editFlag,fn,cancelfn,type) { 2766 + //打开详细信息 旧版不传sign 新版传sign_
  2767 + openDetail:function (resId,resType,title,editFlag,fn,cancelfn,type,sign_) {
2768 resId = encodeURIComponent(resId) 2768 resId = encodeURIComponent(resId)
2769 layer.load(2); 2769 layer.load(2);
2770 if(editFlag && editFlag == true){ 2770 if(editFlag && editFlag == true){
@@ -2941,7 +2941,7 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele @@ -2941,7 +2941,7 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele
2941 layer.alert('该资源只对接TRAP告警信息!',{icon:0}); 2941 layer.alert('该资源只对接TRAP告警信息!',{icon:0});
2942 return; 2942 return;
2943 } 2943 }
2944 - obj.openNewWin(url, title, params, editFlag, fn, cancelfn, type); 2944 + obj.openNewWin(url, title, params, editFlag, fn, cancelfn, type,sign_);
2945 }, 2945 },
2946 error: function () { 2946 error: function () {
2947 layer.closeAll('loading'); 2947 layer.closeAll('loading');
@@ -2990,7 +2990,9 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele @@ -2990,7 +2990,9 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele
2990 return cssStyle; 2990 return cssStyle;
2991 }, 2991 },
2992 //打开弹框 2992 //打开弹框
2993 - openNewWin:function (url,name,params,editFlag,fn,cancelfn,type) { 2993 + openNewWin:function (url,name,params,editFlag,fn,cancelfn,type,sign_) {
  2994 + //新视图设置百分百
  2995 + var area= sign_?['100%','100%']:['90%','90%'];
2994 if(!name){ name = "信息"; } 2996 if(!name){ name = "信息"; }
2995 var btns = false; 2997 var btns = false;
2996 //如果是编辑状态展示确定按钮 2998 //如果是编辑状态展示确定按钮
@@ -3003,12 +3005,16 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele @@ -3003,12 +3005,16 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele
3003 title: [name, 'font-size:20px;background-color: #d0ddec;'], 3005 title: [name, 'font-size:20px;background-color: #d0ddec;'],
3004 type: 1, 3006 type: 1,
3005 id: md5(url), 3007 id: md5(url),
3006 - area: ['90%','90%'], 3008 + area: area ,
3007 shadeClose: true,//开启遮罩层 3009 shadeClose: true,//开启遮罩层
3008 content: laytpl(res.body).render(JSON.stringify(params)), 3010 content: laytpl(res.body).render(JSON.stringify(params)),
3009 btn:btns, 3011 btn:btns,
3010 move:false, 3012 move:false,
3011 - success:function(index){ 3013 + success:function(layero,index){
  3014 + if(sign_){
  3015 + //关闭悬浮框有上角叉号
  3016 + layero.find(".layui-layer-close1").addClass("hide");
  3017 + }
3012 if(params.state == 'stop' || params.state == 'alarmIgnore'){ 3018 if(params.state == 'stop' || params.state == 'alarmIgnore'){
3013 $("a[data-opts='start']").show(); 3019 $("a[data-opts='start']").show();
3014 }else if(params.state == 'monitor'){ 3020 }else if(params.state == 'monitor'){
  1 +<div class="detail_page_common" style="min-width: 100%;min-height: 100%" data-name="detail_page_common">
  2 +
  3 +</div>
1 <script type="text/javascript"> 4 <script type="text/javascript">
2 //资源指标列表 5 //资源指标列表
3 - layui.define(['table', 'form','sessions','common'], function (exports) {  
4 - var commonDetail = layui.commonDetail;  
5 - 6 + layui.define(['table', 'form','sessions','common','commonCols'], function (exports) {
  7 + var commonCols= layui.commonCols;
  8 + //获取传递过来的数据 初始化默认值
  9 + let obj ={
  10 + resId:"139adf9dcb154dc4af835a16c241c784",//资源id
  11 + resType:"HOST_X86SERVER",//资源类型
  12 + editFlag: false,//编辑标识
  13 + provider:"",//厂商
  14 + name:"",//资源名称
  15 + ip:"",//IP
  16 + resTypeName:"",//资源类型名称
  17 + adminName:"",//管理员名称
  18 + manageIp:"",//管理ip
  19 + collProtocol:"ssh",//采集协议
  20 + }
6 //对外暴露的接口 21 //对外暴露的接口
7 - commonDetail.openDetail(resId,resType,"详情页",true,function(data){  
8 - if(data){  
9 - console.log(111);  
10 - }  
11 - }); 22 + function initDetailPage(){
  23 + commonCols.detailPage(obj.resId,obj.resType,obj.editFlag,obj.provider,obj.name,obj.ip,obj.resTypeName,obj.adminName,obj.manageIp,obj.collProtocol);
  24 + }
  25 + initDetailPage()
12 }); 26 });
13 </script> 27 </script>