<%@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>
		<title>指标系统报文调试</title>
		<%@include file="/wdk/theme/je/module/public/common.jsp"%>
		<script type="text/javascript">
	  	<% 
	  		String data = (String)request.getAttribute("data");
	  	%>
	  	
	  	$(function(){
	  		<%if(uString.isNotBlank(data)){%>
	  			var info = Base64.decode('<%=data%>');
	  			$('#rpt_content').val(format(info,false));
	  		<%}%>
	  	})
 	  
	    function debug(){
	    	$.wait_open();
	    	var rpt = $('#rpt_content').val();
	    	 $.cuajax({
                url:'wdk?action=pf.report&method=report_debug',
                //async:false,
                data:{data:rpt,service_name:$('#service_name').val()},
                success:function(data){
                    $('#result_content').val(format(data,false));
                    $.wait_close();
                }
            });
	    }
	    
	    function doFormat(){
	    	var rpt = $('#rpt_content').val();
	    	$('#rpt_content').val(format(rpt,false));
	    }
	    
	    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;">
			 <textarea id="rpt_content" style="width:100%;height:100%;"></textarea>
		</div>
		<div class="easyui-layout" data-options="region:'center',border:false">
			<div data-options="region:'north',border:false" style="height: 30px;text-align: center">
					服务名:<input type="text" id="service_name" name="service_name" value="metric_system"></input>
					<a id="btn" href="javascript:void(0);" onclick="doFormat()" class="easyui-linkbutton" data-options="iconCls:'fa fa-cubes'">格式化</a>
					<a id="btn" href="javascript:void(0);" onclick="debug()" class="easyui-linkbutton" data-options="iconCls:'fa fa-cubes'">调试</a> 
			</div>
			<div data-options="region:'center',border:false" style="overflow:hidden;">
				 <textarea id="result_content" style="width:100%;height:100%;overflow:auto;">
				</textarea>
			</div>
		</div>
	</body>
</html>