if($ == undefined){
$ = jQuery;
}
/*布局器*/
var layout = {};
layout.l1_json = {tr1:[{colspan:1, rowspan:1, width:100, height:100, id:1}]};
layout.l2_json = {tr1:[{colspan:1, rowspan:1, width:50, height:100, id:1},{colspan:1, rowspan:1, width:50, height:100, id:2}]};
layout.l3_json = {tr1:[{colspan:2, rowspan:1, width:100, height:50, id:1}],tr2:[{colspan:1, rowspan:1, width:50, height:50, id:2},{colspan:1, rowspan:1, width:50, height:50, id:3}]};
layout.l4_json = {tr1:[{colspan:2, rowspan:1, width:100, height:33, id:1}],tr2:[{colspan:1, rowspan:1, width:50, height:33, id:2},{colspan:1, rowspan:1, width:50, height:33, id:3}], tr3:[{colspan:2, rowspan:1, width:100, height:33, id:4}]};
layout.l5_json = {tr1:[{colspan:2, rowspan:1, width:100, height:20, id:1}],tr2:[{colspan:1, rowspan:1, width:50, height:20, id:2},{colspan:1, rowspan:1, width:50, height:20, id:3}], tr3:[{colspan:2, rowspan:1, width:100, height:20, id:4}],tr4:[{colspan:1, rowspan:1, width:50, height:20, id:5},{colspan:1, rowspan:1, width:50, height:20, id:6}],tr5:[{colspan:2, rowspan:1, width:100, height:20, id:7}]};
function backpage(){
if(curTmpInfo.isupdate == true){
if(confirm("您已对页面进行了修改,是否保存再退出?")){
var bk = function(){
if(pageInfo.id && pageInfo.id != ''){
if(curTmpInfo.is3g=="y"){
location.href = "../m/PushManager.action";
}else{
location.href = 'show.action?pageId='+pageInfo.id;
}
}else{
if(curTmpInfo.is3g=="y"){
location.href = "../m/PushManager.action";
}else{
location.href = "PortalIndex.action";
}
}
}
savepage(bk);
}else{
if(pageInfo.id && pageInfo.id != ''){
if(curTmpInfo.is3g=="y"){
location.href = "../m/PushManager.action";
}else{
location.href = 'show.action?pageId='+pageInfo.id;
}
}else{
if(curTmpInfo.is3g=="y"){
location.href = "../m/PushManager.action";
}else{
location.href = "PortalIndex.action";
}
}
}
}else{
if(pageInfo.id && pageInfo.id != ''){
if(curTmpInfo.is3g=="y"){
location.href = "../m/PushManager.action";
}else{
location.href = 'show.action?pageId='+pageInfo.id;
}
}else{
if(curTmpInfo.is3g=="y"){
location.href = "../m/PushManager.action";
}else{
location.href = "PortalIndex.action";
}
}
}
}
function resetComppos(){
//重新规划组件顺序
for(var i=1; true; i++){
var tr = pageInfo.body["tr"+i];
if(!tr || tr == null){
break;
}
for(var j=0; j
0){
var ls = cld;
for(var k=0; ls&&k 名 称: ";
$('#pdailog').dialog({
title: '保存报表',
width: 330,
height: 260,
closed: false,
cache: false,
modal: true,
toolbar:null,
content: ctx,
buttons:[{
text:'确定',
iconCls:'icon-ok',
handler:function(){
var name = $("#pdailog #pageName").val();
if(name == ''){
msginfo("您还未录报表名称。");
$("#pdailog #pageName").focus();
return;
}
var cata = $("#reportcatalist").tree("getSelected");
if(cata == null || cata.id == '0'){
msginfo("您还未选择报表目录。");
return;
}
$.post("save.action", {pageInfo:JSON.stringify(pageInfo), pageName:name, "cataId":cata.id, "is3g":"y"}, function(resp){
pageInfo.id = resp.rows;
msginfo("保存成功!","suc");
//更新页面为未修改
curTmpInfo.isupdate = false;
if(cb){
cb();
}
//更新页面为未修改
curTmpInfo.isupdate = false;
$('#pdailog').dialog('close');
});
}
},{
text:'取消',
iconCls:"icon-cancel",
handler:function(){
$('#pdailog').dialog('close');
}
}]
});
//加载路径树
$("#pdailog #reportcatalist").tree({
url:'../m/typeTree.action',
dnd:false,
data: [{id:'0', text:'报表目录', state:'closed'}],
onBeforeLoad: function(node){
if(!node || node == null){
return false;
}
}
});
$('#reportcatalist').tree("expand", $('#reportcatalist').tree("getRoot").target);
}else{ //已经保存过,直接update
$.post("save.action", {"pageInfo": JSON.stringify(pageInfo), "pageId":pageId}, function(resp){
msginfo("保存成功!", "suc");
//更新页面为未修改
curTmpInfo.isupdate = false;
if(cb){
cb();
}
});
}
}else{
//处理PC端报表, 不包括分类
if(pageId == ''){ //未保存过,提示用户输入名称
$.messager.prompt('报表保存', '请输入新的报表名称?', function(r){
if (r){
$.ajax({
type:"POST",
url: 'save.action',
async: false,
data:{pageInfo:JSON.stringify(pageInfo), pageName:r},
success: function(resp){
pageInfo.id = resp.rows;
msginfo("保存成功!","suc");
//更新页面为未修改
curTmpInfo.isupdate = false;
if(cb){
cb();
}
}
});
}
});
}else{ //已经保存过,直接update
$.post("save.action", {"pageInfo": JSON.stringify(pageInfo), "pageId":pageId}, function(resp){
msginfo("保存成功!", "suc");
//更新页面为未修改
curTmpInfo.isupdate = false;
if(cb){
cb();
}
});
}
}
}
function regCompTree(){
$('#comp_tree').tree({
dnd:true,
onBeforeDrag:function(target){
return true;
},
onDragEnter:function(target, source){
return false;
},
onStartDrag:function(node){
resetWindows('min');
},
onStopDrag:function(node){
$(".indicator").hide();
resetWindows('max');
}
});
}
function helper(){
var ctx = "您可以通过拖拽的方式,定义自己的数据报表,报表支持图形、表格、文本、日历、地图等多种展现方式。
"+
"1.选择数据。

"+
"2.选择组件。

"+
"3.配置组件数据。

"+
"
";
$('#pdailog').dialog({
title: '帮助',
width: 730,
height: 440,
closed: false,
cache: false,
modal: true,
toolbar:null,
onLoad:function(){},
content:ctx,
buttons:[{
text:'关闭',
icon:"icon-ok",
handler:function(){
$('#pdailog').dialog('close');
}
}]
});
}
function printpage(){
resetComppos();
var json = JSON.stringify(pageInfo);
var url2 = "about:blank";
var name = "printwindow";
window.open(url2, name);
var ctx = "";
var o = $(ctx).appendTo("body");
$("#ppageInfo").val(json);
o.submit().remove();
}
//导出页面
function exportPage(){
var ctx = "";
$('#pdailog').dialog({
title: '导出数据',
width: 376,
height: 200,
closed: false,
cache: false,
modal: true,
toolbar:null,
content: ctx,
buttons:[{
text:'确定',
iconCls:'icon-ok',
handler:function(){
resetComppos();
var tp = curTmpInfo.expType;
$("#expff #type").val(tp);
//把图形转换成图片
var strs = "";
if(tp == "pdf" || tp == "excel" || tp == "word"){
$("div.chartUStyle").each(function(index, element) {
var id = $(this).attr("id");
id = id.substring(1, id.length);
var chart = echarts.getInstanceByDom(document.getElementById(id));
var str = chart.getDataURL({type:'png', pixelRatio:1, backgroundColor: '#fff'});
str = str.split(",")[1]; //去除base64标记
str = $(this).attr("label") + "," + str+","+$("#"+id).width(); //加上label标记,宽度
strs = strs + str;
if(index != $("div.chartUStyle").size() - 1){
strs = strs + "@";
}
});
}
$("#expff #picinfo").val(strs);
$("#expff #json").val(JSON.stringify(pageInfo));
$("#expff").submit();
$('#pdailog').dialog('close');
}
},{
text:'取消',
iconCls:"icon-cancel",
handler:function(){
$('#pdailog').dialog('close');
}
}]
});
curTmpInfo.expType = "html";
//注册事件
$(".exportpanel span.exptp").click(function(e) {
$(".exportpanel span.exptp").removeClass("select");
$(this).addClass("select");
curTmpInfo.expType = $(this).attr("tp");
});
}
function selectdataset(){
$('#pdailog').dialog({
title: '选择数据模型(立方体)',
width: 520,
height: 320,
closed: false,
cache: false,
modal: true,
toolbar:null,
content:"",
buttons:[{
text:'确定',
iconCls:'icon-ok',
handler:function(){
var row = $("#subjectlist").datagrid("getChecked");
if(row == null || row.length == 0){
msginfo("请勾选数据。");
return;
}
pageInfo.selectDs = row[0].cubeId;
$('#pdailog').dialog('close');
//更新页面为已修改
curTmpInfo.isupdate = true;
//更新数据集
reloadDatasetTree();
$("#comp_tab").tabs("select", 1);
}
},{
text:'取消',
iconCls:"icon-cancel",
handler:function(){
$('#pdailog').dialog('close');
}
}]
});
$("#subjectlist").datagrid({
singleSelect:true,
collapsible:false,
pagination:true,
fit:true,
pageSize:20,
border:true,
url:'/rsbi-os-4.7/model/pageCube.action',
method:'post',
queryParams:{t: Math.random()}
});
}
function reloadDatasetTree(){
if(pageInfo.selectDs){
$('#datasettree').tree({
url:'/rsbi-os-4.7/model/treeCube.action?cubeId=' + (pageInfo.selectDs?pageInfo.selectDs:""),
dnd:true,
lines:true,
onBeforeDrag:function(target){
if(!target.attributes || target.attributes.tp == 'root'){
return false;
}
return true;
},
onDragEnter:function(target, source){
return false;
},
onContextMenu:function(e, node){
e.preventDefault();
}
});
}else{
$('#datasettree').tree({
data:[{"id":"err","text":"还未选择立方体!", "iconCls":"icon-no"}]
});
}
}
function resetWindows(tp){
for(var i=0; curTmpInfo.comps&&i
";
for(var i=1; i<=6; i++){
ctx = ctx + "";
}
ctx = ctx + "";
$('#pdailog').dialog({
title: '设置报表布局',
width: 430,
height: 340,
closed: false,
cache: false,
modal: true,
toolbar:null,
onLoad:function(){},
content:ctx,
buttons:[{
text:'确定',
iconCls:"icon-ok",
handler:function(){
var comps = curTmpInfo.comps;
var s = $("input[name=\"sellayout\"]:checked").val();
pageInfo.layout = Number(s);
//更新布局区域
var json = null;
if(s == 1){
json = layout.l1_json;
}else if(s == 2){
json = layout.l2_json;
}else if(s == 3){
json = layout.l3_json;
}else if(s == 4){
json = layout.l4_json;
}else if(s == 5){
json = layout.l5_json;
}else if(s == 6){
$('#pdailog').dialog('close');
autoLayout();
return;
}
pageInfo.body = json = eval("("+JSON.stringify(json)+")"); //复制一份
//把组件都放入布局1
var ids = [];
for(i=0; comps&&i";
for(var i=1; true; i++){
var tr = json["tr"+i];
if(!tr || tr == null){
break;
}
ret = ret + "";
for(var j=0; j
";
ret = ret + " ";
}
ret = ret + "";
}
ret = ret + "";
return ret;
}
var layoutJson = pageInfo.body;
var ctx = json2table(layoutJson);
$('#pdailog').dialog({
title: '自定义布局',
width: 540,
height: 350,
closed: false,
cache: false,
modal: true,
toolbar:[{
text:"插入行",
handler:function(e){
var o = $("#autoLayoutTable td.tdselect");
if(o.size() == 0){
msginfo("请先选择单元格。");
return;
}
curTmpInfo.curtabtd = o[0];
lyt_insertRow();
curTmpInfo.curtabtd = null;
}
},{
text:"插入列",
handler:function(e){
var o = $("#autoLayoutTable td.tdselect");
if(o.size() == 0){
msginfo("请先选择单元格。");
return;
}
curTmpInfo.curtabtd = o[0];
lyt_insertCol();
curTmpInfo.curtabtd = null;
}
},{
text:"删除行",
handler:function(e){
var o = $("#autoLayoutTable td.tdselect");
if(o.size() == 0){
msginfo("请先选择单元格。");
return;
}
curTmpInfo.curtabtd = o[0];
lyt_deleteRow();
curTmpInfo.curtabtd = null;
}
},{
text:"删除列",
handler:function(e){
var o = $("#autoLayoutTable td.tdselect");
if(o.size() == 0){
msginfo("请先选择单元格。");
return;
}
curTmpInfo.curtabtd = o[0];
lyt_deleteCol();
curTmpInfo.curtabtd = null;
}
},{
text:"合并",
handler:function(e){
var o = $("#autoLayoutTable td.tdselect");
if(o.size() == 0){
msginfo("请先选择单元格。");
return;
}
lyt_mergeCell();
}
},{
text:"取消合并",
handler:function(e){
var o = $("#autoLayoutTable td.tdselect");
if(o.size() == 0){
msginfo("请先选择单元格。");
return;
}
curTmpInfo.curtabtd = o[0];
lyt_unmergeCell();
curTmpInfo.curtabtd = null;
}
}],
onLoad:function(){},
content:ctx,
buttons:[{
text:'确定',
iconCls:"icon-ok",
handler:function(){
var ljson = {};
var rows = document.getElementById("autoLayoutTable").rows;
var pidx = 0;
for(var i=0;i p2[0] || p1[1] > p2[1]){
tmp = p1;
p1 = p2;
p2 = tmp;
}
for(i=p1[0]; i<=p2[0]; i++){
for(j = p1[1]; j<=p2[1]; j++){
$("#autoLayoutTable td[pos='"+(i+","+j)+"']").addClass("tdselect");
}
}
}
//注册布局器编辑事件
var issel = false;
var start = null;
$("#autoLayoutTable").on("click", 'td.laytd', function(){
selFunc(this);
}).on("mousedown", "td.laytd", function(e){
issel = true;
start = this;
}).on("mouseup","td.laytd", function(e){
issel = false;
}).on("mousemove","td.laytd", function(e){
if(issel){
areaSelFunc(start, this);
}
}).on("contextmenu","td.laytd", function(e){
e.preventDefault();
e.stopPropagation();
curTmpInfo.curtabtd = this;
//选中单元格
if($("#autoLayoutTable td.tdselect").size() <= 1){
selFunc(this);
}
//设置菜单disable
if($(this).attr("colspan") > 1 || $(this).attr("rowspan") > 1){
$("#autolayoutmenu").menu("enableItem", $("#lyt_unmergeCell"));
}else{
$("#autolayoutmenu").menu("disableItem", $("#lyt_unmergeCell"));
}
$('#autolayoutmenu').menu('show', {
left: e.pageX,
top: e.pageY
});
});
}
function lyt_mergeCell(){
var p1 = null;
var p2 = null;
var size = $("#autoLayoutTable td.tdselect").size();
if(size <= 1){
return;
}
var endTd = null;
$("#autoLayoutTable td.tdselect").each(function(index, element) {
if(index == 0){
p1 = $(this).attr("pos").split(",");
}
if(index == size - 1){
p2 = $(this).attr("pos").split(",");
endTd = $(this);
}
if(index > 0){
$(this).remove();
}
});
//结束单元格的colspan, rowspan 影响宽度,高度
var colspan = endTd.attr("colspan")?Number(endTd.attr("colspan")):1;
var rowspan = endTd.attr("rowspan")?Number(endTd.attr("rowspan")):1;
$("#autoLayoutTable td.tdselect").attr("rowspan", Math.abs(p1[0] - p2[0] + (rowspan - 1)) + 1).attr("colspan", Math.abs(p1[1] - p2[1] +(colspan - 1) ) + 1);
updateHeightWidth(true);
}
function lyt_unmergeCell(){
var td = $(curTmpInfo.curtabtd);
var colspan = td.attr("colspan") ? Number(td.attr("colspan")) : 1;
var rowspan = td.attr("rowspan") ? Number(td.attr("rowspan")) : 1;
td.attr("colspan", 1);
td.attr("rowspan", 1);
for(i=1; i<=rowspan; i++){
var str = "";
for(j=1; j<(i == 1 ? colspan : colspan + 1); j++){
str = str + " | ";
}
if(i == 1){
td.after(str); //第一行,直接追加
}else{
var zuobiao = td.attr("pos").split(",");
var node = $("#autoLayoutTable td[pos='"+((Number(zuobiao[0])+i-1) +","+ (Number(zuobiao[1]) - 1))+"']") //求当前td的下一个的前一个
if(node.size() == 0){ //如果查找的TD不存在
//开始查询后一个
node = $("#autoLayoutTable td[pos='"+((Number(zuobiao[0])+i-1) +","+ (Number(zuobiao[1]) + colspan))+"']") //求当前td的下一个的后一个
if(node.size() > 0){
node.before(str);
}else{
//还是未找到,直接追加
var tr = td.parent(); //查找当前TR
for(k=1; k<=i-1; k++){
tr = tr.next();
}
tr.append(str);
}
}else{
node.after(str);
}
}
}
updateHeightWidth();
}
function lyt_insertRow(){
var td = curTmpInfo.curtabtd;
//定义判断新增加的单元格是否属于一个合并单元格的内容。
var tdInCells = function(rowIndex, colIndex){
var returnTd = null;
$("#autoLayoutTable td").each(function(index, element) {
var pos = $(element).attr("pos").split(",");
var rowspan = $(element).attr("rowspan") ? Number($(element).attr("rowspan")) : 1;
var colspan = $(element).attr("colspan") ? Number($(element).attr("colspan")) : 1;
if(rowspan > 1){
if(rowIndex > Number(pos[0]) && rowIndex <= Number(pos[0])+ rowspan &&
colIndex >= Number(pos[1]) && colIndex < Number(pos[1]) + colspan ){ //当前需要新添加的td 属于表格的一个单元格
returnTd = $(element);
}
}
});
return returnTd;
};
var colCount = 0;
var cells = document.getElementById("autoLayoutTable").rows[0].cells;
for(i=0; i1 计算新的行(row)
var str = "";
for(i=0; i 1, 为i 追加 rowspan - 1, 不然rowspan 会被加多次
var c = Number(retTd.attr("colspan"));
if(c > 1){
i = i + c - 1;
}
continue;
}
}
str = str + "";
str = str + " | ";
}
str = str + "
";
var obj = $(td).parent(); //rowspan 影响插入的位置
for(i=1; i 1){
if(rowIndex >= Number(pos[0]) && rowIndex < Number(pos[0])+ rowspan &&
colIndex > Number(pos[1]) && colIndex <= Number(pos[1]) + colspan ){ //当前需要新添加的td 属于表格的一个单元格
returnTd = $(element);
}
}
});
return returnTd;
};
var rows = document.getElementById("autoLayoutTable").rows;
//获取当前TD的index
var pos = $(td).attr("pos").split(",");
var idx = Number(pos[1]);
var colspan = $(td).attr("colspan") ? Number($(td).attr("colspan")) : 1;
if(colspan > 1){
idx = idx + colspan - 1; //当前td的colspan影响插入列的位置
}
var insertArray = [];
for(i=0; i 1){
i = i + c - 1;
}
continue;
}
}else{
//如果当前td存在,并且colspan > 1, 为当前td 添加一个colspan
var r = curTd.attr("colspan") ? Number(curTd.attr("colspan")) : 1;
var c = Number(curTd.attr("rowspan")); //rowspan 影响数据行
if(c > 1){
i = i + c - 1;
}
if(r > 1){
curTd.attr("colspan", r + 1);
continue;
}
ctd = curTd;
}
var rspan = ctd.attr("rowspan") ? Number(ctd.attr("rowspan")) : 1;
var cspan = ctd.attr("colspan") ? Number(ctd.attr("colspan")) : 1;
//当前插入的TD跨行和列,需要设置新的 colspan, rowspan
var str = " | ";
//ctd.after(str);
insertArray.push({"obj":ctd, "str" : str});
}
for(i=0; i 1){
if(rowIndex >= Number(pos[0]) && rowIndex < Number(pos[0])+ rowspan &&
colIndex > Number(pos[1]) && colIndex <= Number(pos[1]) + colspan ){ //当前需要新添加的td 属于表格的一个单元格
returnTd = $(element);
}
}
});
return returnTd;
};
//获取当前TD的index
var pidx = Number(td.attr("pos").split(",")[1]);
var removes = [];
//对于colspan > 1 的单元格删除,需要删除多列
var tdcspan = td.attr("colspan") ? Number(td.attr("colspan")) : 1;
for(k=0; k 1){
i = i + c - 1;
}
continue;
}
if(curTd.size() == 0){ //如果当前td不存在,并且属于一个合并单元格的内容,为当前合并单元格减少1个colspan
var retTd = tdInCells(i, idx);
if(retTd != null){
var r = Number(retTd.attr("colspan")) - 1;
retTd.attr("colspan", r);
var c = Number(retTd.attr("rowspan"));
if(c > 1){
i = i + c - 1;
}
continue;
}
}else{
//如果当前td存在,并且colspan > 1, 为当前td 减少一个colspan
var r = curTd.attr("colspan") ? Number(curTd.attr("colspan")) : 1;
//有rowspan > 1, 影响多行
var c = curTd.attr("rowspan") ? Number(curTd.attr("rowspan")) : 1;
if(c > 1){
i = i + c - 1;
}
if(r > 1){
curTd.attr("colspan", r - 1);
continue;
}
}
removes.push(curTd);;
}
}
for(i=0; i 1){
if(rowIndex > Number(pos[0]) && rowIndex <= Number(pos[0] + rowspan) &&
colIndex >= Number(pos[1]) && colIndex < Number(pos[1]) + colspan ){ //当前需要新添加的td 属于表格的一个单元格
returnTd = $(element);
}
}
});
return returnTd;
};
var deltrs = [];
var pos = $(td).attr("pos").split(",");
var nrow = Number(pos[0]);
var delrowspan = td.attr("rowspan") ? Number(td.attr("rowspan")) : 1; //rowspan 影响删除的行数
for(n=0; n 1, 为i 追加 rowspan - 1, 不然rowspan 会被加多次
var c = Number(retTd.attr("colspan"));
if(c > 1){
i = i + c - 1;
}
}
}else{
//需要删除的单元格存在,并且占用多行(row), 减少rowspan, 并且把td放入下一行
if(Number(curTd.attr("rowspan")) > 1){
curTd.attr("rowspan", Number(curTd.attr("rowspan")) - 1);
var isdeal = false;
var l = i -1;
while(l>=0){ //向前查找是否有对象
var target = $("#T"+compId+" td[pos='"+(row+1)+","+(l)+"']");
if(target.size() > 0){
target.after(curTd);
isdeal = true;
break;
}
l = l - 1;
}
if(isdeal == false){
l = i + 1;
while(l < colCount){ //向后查找是否有对象
var target = $("autoLayoutTable td[pos='"+(row+1)+","+(l)+"']");
if(target.size() > 0){
target.before(curTd);
isdeal = true;
break;
}
l = l + 1;
}
}
}
var c = Number(curTd.attr("colspan")); //如果colspan > 1, 夸多列处理
if(c > 1){
i = i + c - 1;
}
}
}
deltrs.push($("#autoLayoutTable tr").get(row));
}
for(i=0; i 1){ //会影响后面行的pos
for(k=1; k 1){ //会影响本行后面的pos
wposIndex = wposIndex + (colspan - 1);
}
//wposIndex追加 占位 位置, 需考虑连续追加
for(l=wposIndex-1; l";
for(var i=1; true; i++){
var tr = json["tr"+i];
if(!tr || tr == null){
break;
}
ret = ret + "";
for(var j=0; j
";
if(td.children){
for(var k=0; k";
}
ret = ret + "";
}
ret = ret + "";
$("#optarea").html(ret);
for(var i=0; i加载中...").load(url, eval(param), function(){
});
}
}
function initlayout(){
var id = pageInfo.layout;
var json = pageInfo.body;
crtLayoutHTML(json, true);
//注册window resize 事件, 改变图形大小
$(window).on("resizeend", function(e){
resetCharts();
});
//注册布局切换事件,改变图形大小
$("#Jlayout").layout({
onAdd:function(c){
if(c == "east"){
window.setTimeout(function(){resetCharts();}, 200);
resetCharts();
}
},
onRemove:function(c){
if(c == "east"){
window.setTimeout(function(){resetCharts();}, 200);
}
}
});
}
/*改变图像大小*/
function resetCharts(){
for(i=0; i";
for(var i=1; true; i++){
var tr = json["tr"+i];
if(!tr || tr == null){
break;
}
ret = ret + "";
for(var j=0; j
";
if(td.children){
for(var k=0; k";
}
ret = ret + "";
}
ret = ret + "";
curTmpInfo.comps = cps;
$("#optarea").html(ret);
if(isbind){
for(i=0; i=0 ?"checked":"")+">";
}
}
}
var cols;
var findCubeCols = function(cubeId){
var ret = "";
$.ajax({
type:"post",
url:"../bireport/queryDims.action",
data: {cubeId: cubeId},
dataType:"json",
async:false,
success: function(resp){
cols = resp;
for(k=0; k"+resp[k].dim_desc+"";
}
}
});
return ret;
};
var str2 = "";
var ctx = "";
$('#pdailog').dialog({
title: '组件联动事件设置',
width: 330,
height: (comp.type=="table"?290:250),
closed: false,
cache: false,
modal: true,
toolbar:null,
content: ctx,
buttons:[{
text:'确定',
iconCls:"icon-ok",
handler:function(){
var tab = $("#pdailog #compevent_tab").tabs("getSelected");
var idx = $("#pdailog #compevent_tab").tabs("getTabIndex", tab);
if(idx == 0){
var seles = $("#pdailog input[name='linkcomp']:checkbox:checked");
if(seles.length > 0){
var link = {};
if(comp.type == "chart"){
comp.chartJson.link = link;
}else{
comp.link = link;
}
var targets = "";
var types = "";
seles.each(function(a, b){
var id = $(this).val();
var linkComp = findCompById(id);
targets = targets + id + ",";
types = types + (linkComp.type=="table"?"cross":linkComp.type)+","
});
targets = targets.substring(0, targets.length - 1);
types = types.substring(0, types.length - 1);
link.target = targets;
link.type = types;
link.paramName = "p"+Math.floor(Math.random()*100);
}else{
if(comp.type == "chart"){
delete comp.chartJson.link;
}else{
delete comp.link;
}
}
}else{
var col = $("#compevent_tab #acceptCol").val();
var val = "";
if(col == '' && val == ''){
curTmpInfo.isupdate = true;
$('#pdailog').dialog('close');
return;
}
var dim = null;
for(c=0; c "+row.text;
}
});
}
//设置报表风格样式
/**
function setpagestyle(){
var s = pageInfo.stylename;
var ctx = "";
$('#pdailog').dialog({
title: '报表样式设置',
width: 430,
height: 320,
closed: false,
cache: false,
modal: true,
toolbar:null,
content:ctx,
onLoad:function(){},
buttons:[{
text:'确定',
handler:function(){
var s = $("input[name=\"selstyle\"]:checked").val();
pageInfo.stylename = s;
curTmpInfo.isupdate = true;
$('#pdailog').dialog('close');
}
},{
text:'取消',
handler:function(){
$('#pdailog').dialog('close');
}
}]
});
$("span.rlayout div.pagestyle").click(function(){
var tp = $(this).attr("tp");
var s = $("input[name=\"selstyle\"][value=\""+tp+"\"]");
s.attr("checked","checked");
});
}
**/
function msginfo(input, tp){
var str = null;
if(tp && tp == 'suc'){
str = "" + input +"
";
}else{
str = "" + input+"
";
}
$.messager.show({
title: (tp && tp == 'suc')? '成功了' : '出错了',
msg:str,
showType:'fade',
timeout:2000,
style:{
right:'',
top:document.body.scrollTop+document.documentElement.scrollTop + 10,
bottom:''
}
});
}
/**
图形格式化函数
shortname == true 表示显示缩写, 分为k,m
**/
function formatNumber(num,pattern, shortname){
var shortdw;
if(shortname && num > 1000000){
num = num / 1000000;
shortdw = "百万";
}else if(shortname && num > 10000){
num = num / 10000;
shortdw = "万";
}else if(shortname && num > 1000){
num = num / 1000;
shortdw = "千";
}
if(pattern.indexOf("%") > 0){
num = num * 100;
}
var fmtarr = pattern?pattern.split('.'):[''];
var retstr='';
//先对数据做四舍五入
var xsw = 0;
if(fmtarr.length > 1){
xsw = fmtarr[1].length;
}
var bl = 1;
for(i=0; i=0;f--){
switch(fmt.substr(f,1)){
case '#':
if(i>=0 ) retstr = str.substr(i--,1) + retstr;
break;
case '0':
if(i>=0) retstr = str.substr(i--,1) + retstr;
else retstr = '0' + retstr;
break;
case ',':
comma = true;
retstr=','+retstr;
break;
}
}
if(i>=0){
if(comma){
var l = str.length;
for(;i>=0;i--){
retstr = str.substr(i,1) + retstr;
if(i>0 && ((l-i)%3)==0) retstr = ',' + retstr;
}
}
else retstr = str.substr(0,i+1) + retstr;
}
retstr = retstr+'.';
// 处理小数部分
str=strarr.length>1?strarr[1]:'';
fmt=fmtarr.length>1?fmtarr[1]:'';
i=0;
for(var f=0;f 0){
r = r + "%";
}
if(shortdw){
r = r + shortdw;
}
return r;
}
//从写图形组件链接方法
function chartComp_Link(){
//alert("定制模式下点击无效。");
}
//从布局器中查询td(容器)
function findLayoutById(layoutId){
var ret = null;
for(var i=1; true; i++){
var tr = pageInfo.body["tr"+i];
if(!tr || tr == null){
break;
}
for(var j=0; j