<%@page import="org.wdk.core.util.uString"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<% 
			String data = (String)request.getAttribute("data");
	  	%>
		<title>指标系统报文调试2</title>
		<%@include file="/wdk/theme/je/module/public/common.jsp"%>
		<script type="text/javascript" src="platform/report/js/pf.report.js"></script>
		<script type="text/javascript">
 	  	var _gridid = $.getUUID();
 	  	$(function(){
	  		<%if(uString.isNotBlank(data)){%>
	  			var info = Base64.decode('<%=data%>');
	  			$('#rpt_content').val(format(info,false));
	  		<%}%>
	  	})
 	  	function decodejs(){
 	  		var rpt = $('#rpt_content').val();
	    	$('#rpt_content').val(Base64.decode(rpt));
 	  	}
	    function debug(){
	    	loading();
	    	var rpt = $('#rpt_content').val();
	    	var rptMsg = $.str2json(rpt);
	    	var isLock = $("#isLockRight").is(':checked');
	    	var requestMsg = $('#result_content2').val();
	    	if(isLock == true){
	    		if(!requestMsg){
	    			alert('锁定时,右侧消息体不允许为空!');
	    			loaded();
	    			return;
	    		}
	    		rptMsg._REQUEST_MSG = requestMsg;
	    	}
	    	$.report({
	    		id: _gridid,
				containerid: 'report_gird',
				queryParams: rptMsg,
				isinit:false,//是否初始化,初始化就不加载数据
				pagination: false,
				onLoadSuccess: function (data) {
                	//$(".datagrid-row").unbind('mouseover');
                }
	    	});
	    	if(isLock == false){
	    	   $.cuajax({
	                url:'wdk?action=pf.report&method=getMetricReport',
	                //async:false,
	                data:{data:Base64.encode(rpt)},
	                success:function(data){
	                    $('#result_content2').val(format(data,false));
	                }
	            });
	    	 }
	    }
	    
	    function doFormat(){
	    	var rpt = $('#rpt_content').val();
	    	$('#rpt_content').val(format(rpt,false));
	    }
	    //打开数据界面
	    function data(){
	    	post('<%=basePath%>wdk?action=pf.report&method=forwardDebug',{data:Base64.encode($('#result_content2').val())});
	    }
	    
	    
	    function post(URL, PARAMS) { 
	    	var temp_form = document.getElementById('debug_form');
	    	if(!temp_form){
	    		temp_form = document.createElement("form"); 
	    		temp_form.id = "debug_form";
	    	}else{
	    		$(temp_form).empty();
	    	}
	        temp_form.action = URL;      
	        temp_form.target = "_blank";
	        temp_form.method = "post";      
	        temp_form.style.display = "none"; 
	        for (var x in PARAMS) { 
	        	var opt = document.createElement("textarea");      
	            opt.name = x;      
	            opt.value = PARAMS[x];      
	            temp_form.appendChild(opt);      
	        }      
	        document.body.appendChild(temp_form);      
	        temp_form.submit();     
	    } 
	    
	    
	    
	    function format(txt,compress/*是否为压缩模式*/){/* 格式化JSON源码(对象转换为JSON文本) */  
	        var indentChar = '    ';   
	        if(/^\s*$/.test(txt)){   
	            alert('数据为空,无法格式化! ');   
	            return;   
	        }   
	        try{var data=eval('('+txt+')');}   
	        catch(e){   
	            alert('数据源语法错误,格式化失败! 错误信息: '+e.description,'err');   
	            return;   
	        };   
	        var draw=[],last=false,This=this,line=compress?'':'\n',nodeCount=0,maxDepth=0;   
	           
	        var notify=function(name,value,isLast,indent/*缩进*/,formObj){   
	            nodeCount++;/*节点计数*/  
	            for (var i=0,tab='';i<indent;i++ )tab+=indentChar;/* 缩进HTML */  
	            tab=compress?'':tab;/*压缩模式忽略缩进*/  
	            maxDepth=++indent;/*缩进递增并记录*/  
	            if(value&&value.constructor==Array){/*处理数组*/  
	                draw.push(tab+(formObj?('"'+name+'":'):'')+'['+line);/*缩进'[' 然后换行*/  
	                for (var i=0;i<value.length;i++)   
	                    notify(i,value[i],i==value.length-1,indent,false);   
	                draw.push(tab+']'+(isLast?line:(','+line)));/*缩进']'换行,若非尾元素则添加逗号*/  
	            }else   if(value&&typeof value=='object'){/*处理对象*/  
	                    draw.push(tab+(formObj?('"'+name+'":'):'')+'{'+line);/*缩进'{' 然后换行*/  
	                    var len=0,i=0;   
	                    for(var key in value)len++;   
	                    for(var key in value)notify(key,value[key],++i==len,indent,true);   
	                    draw.push(tab+'}'+(isLast?line:(','+line)));/*缩进'}'换行,若非尾元素则添加逗号*/  
	                }else{   
	                        if(typeof value=='string')value='"'+value+'"';   
	                        draw.push(tab+(formObj?('"'+name+'":'):'')+value+(isLast?'':',')+line);   
	                };   
	        };   
	        var isLast=true,indent=0;   
	        notify('',data,isLast,indent,false);   
	        return draw.join('');   
	    }  
     
		</script>	
		<style type="text/css">
			  
		</style>
	</head>
	
	<body class="easyui-layout" data-options="fit:true">
		<div title="报文调试"  data-options="region:'north',border:false,split:true" class="page-title" style="overflow:hidden;height: 400px;">
			<div style="width:100%;height:100%;">
				<div style="float:left;width:49.9%;height:100%;">
					 <textarea id="rpt_content" style="width:100%;height:100%;"></textarea>
				</div>
				
				<div style="float:right;width:49.9%;height:100%;">
					 <textarea id="result_content2" style="width:100%;height:100%;" ></textarea>
				</div>
			</div>
		</div>
		<div class="easyui-layout" data-options="region:'center',border:false">
			<div data-options="region:'north',border:false" style="height: 30px;text-align: center">
					<a id="btn1" href="javascript:void(0);" onclick="doFormat()" class="easyui-linkbutton" data-options="iconCls:'fa fa-check-square'">格式化</a>
					<a id="btn2" href="javascript:void(0);" onclick="decodejs()" class="easyui-linkbutton" data-options="iconCls:'fa fa-key'">解码</a>
					<a id="btn3" href="javascript:void(0);" onclick="debug()" class="easyui-linkbutton" data-options="iconCls:'fa fa-cubes'">调试</a> 
					<a id="btn4" href="javascript:void(0);" onclick="data()" class="easyui-linkbutton" data-options="iconCls:'fa fa-database'">数据</a>
					<input type="checkbox" id="isLockRight"></input>锁定右侧报文
			</div>
			<div data-options="region:'center',border:false" style="overflow:hidden;">
				 <div id="report_gird" style="height:100%;width:100%;overflow:hidden;">
				</div>
			</div>
		</div>
	</body>
</html>