<%@ page language="java" contentType="text/html; charset=UTF-8"
|
pageEncoding="UTF-8"%>
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<html>
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
<title></title>
|
<script>
|
if (typeof addEvent != 'function') {
|
var addEvent = function(o, t, f, l) {
|
var d = 'addEventListener', n = 'on' + t, rO = o, rT = t, rF = f, rL = l;
|
if (o[d] && !l)
|
return o[d](t, f, false);
|
if (!o._evts)
|
o._evts = {};
|
if (!o._evts[t]) {
|
o._evts[t] = o[n] ? {
|
b : o[n]
|
} : {};
|
o[n] = new Function(
|
'e',
|
'var r=true,o=this,a=o._evts["'
|
+ t
|
+ '"],i;for(i in a){o._f=a[i];r=o._f(e||window.event)!=false&&r;o._f=null}return r');
|
if (t != 'unload')
|
addEvent(window, 'unload', function() {
|
removeEvent(rO, rT, rF, rL)
|
})
|
}
|
if (!f._i)
|
f._i = addEvent._i++;
|
o._evts[t][f._i] = f
|
};
|
addEvent._i = 1;
|
var removeEvent = function(o, t, f, l) {
|
var d = 'removeEventListener';
|
if (o[d] && !l)
|
return o[d](t, f, false);
|
if (o._evts && o._evts[t] && f._i)
|
delete o._evts[t][f._i]
|
}
|
}
|
function cancelEvent(e, c) {
|
e.returnValue = false;
|
if (e.preventDefault)
|
e.preventDefault();
|
if (c) {
|
e.cancelBubble = true;
|
if (e.stopPropagation)
|
e.stopPropagation()
|
}
|
};
|
function DragResize(myName, config) {
|
var props = {
|
myName : myName,
|
enabled : true,
|
handles : [ 'tl', 'tm', 'tr', 'ml', 'mr', 'bl', 'bm', 'br' ],
|
isElement : null,
|
isHandle : null,
|
element : null,
|
handle : null,
|
minWidth : 10,
|
minHeight : 10,
|
minLeft : 0,
|
maxLeft : 9999,
|
minTop : 0,
|
maxTop : 9999,
|
zIndex : 1,
|
mouseX : 0,
|
mouseY : 0,
|
lastMouseX : 0,
|
lastMouseY : 0,
|
mOffX : 0,
|
mOffY : 0,
|
elmX : 0,
|
elmY : 0,
|
elmW : 0,
|
elmH : 0,
|
allowBlur : true,
|
ondragfocus : null,
|
ondragstart : null,
|
ondragmove : null,
|
ondragend : null,
|
ondragblur : null
|
};
|
for ( var p in props)
|
this[p] = (typeof config[p] == 'undefined') ? props[p] : config[p]
|
};
|
DragResize.prototype.apply = function(node) {
|
var obj = this;
|
addEvent(node, 'mousedown', function(e) {
|
obj.mouseDown(e)
|
});
|
|
addEvent(node, 'mousemove', function(e) {
|
obj.mouseMove(e);
|
});
|
addEvent(node, 'mouseup', function(e) {
|
obj.mouseUp(e)
|
})
|
};
|
DragResize.prototype.select = function(newElement) {
|
with (this) {
|
if (!document.getElementById || !enabled)
|
return;
|
if (newElement && (newElement != element) && enabled) {
|
element = newElement;
|
element.style.zIndex = ++zIndex;
|
if (this.resizeHandleSet)
|
this.resizeHandleSet(element, true);
|
elmX = parseInt(element.style.left);
|
elmY = parseInt(element.style.top);
|
elmW = element.offsetWidth;
|
elmH = element.offsetHeight;
|
if (ondragfocus)
|
this.ondragfocus()
|
}
|
}
|
};
|
DragResize.prototype.deselect = function(delHandles) {
|
with (this) {
|
if (!document.getElementById || !enabled)
|
return;
|
if (delHandles) {
|
if (ondragblur)
|
this.ondragblur();
|
if (this.resizeHandleSet)
|
this.resizeHandleSet(element, false);
|
element = null
|
}
|
handle = null;
|
mOffX = 0;
|
mOffY = 0
|
}
|
};
|
DragResize.prototype.mouseDown = function(e) {
|
with (this) {
|
if (!document.getElementById || !enabled)
|
return true;
|
var elm = e.target || e.srcElement, newElement = null, newHandle = null, hRE = new RegExp(
|
myName + '-([trmbl]{2})', '');
|
while (elm) {
|
if (elm.className) {
|
if (!newHandle
|
&& (hRE.test(elm.className) || isHandle(elm)))
|
newHandle = elm;
|
if (isElement(elm)) {
|
newElement = elm;
|
break
|
}
|
}
|
elm = elm.parentNode
|
}
|
if (element && (element != newElement) && allowBlur)
|
deselect(true);
|
if (newElement && (!element || (newElement == element))) {
|
if (newHandle)
|
cancelEvent(e);
|
select(newElement, newHandle);
|
handle = newHandle;
|
if (handle && ondragstart)
|
this.ondragstart(hRE.test(handle.className))
|
}
|
}
|
};
|
DragResize.prototype.mouseMove = function(e) {
|
with (this) {
|
if (!document.getElementById || !enabled)
|
return true;
|
mouseX = e.pageX || e.clientX + document.documentElement.scrollLeft;
|
mouseY = e.pageY || e.clientY + document.documentElement.scrollTop;
|
var diffX = mouseX - lastMouseX + mOffX;
|
var diffY = mouseY - lastMouseY + mOffY;
|
mOffX = mOffY = 0;
|
lastMouseX = mouseX;
|
lastMouseY = mouseY;
|
if (!handle)
|
return true;
|
var isResize = false;
|
if (this.resizeHandleDrag && this.resizeHandleDrag(diffX, diffY)) {
|
isResize = true
|
} else {
|
var dX = diffX, dY = diffY;
|
if (elmX + dX < minLeft)
|
mOffX = (dX - (diffX = minLeft - elmX));
|
else if (elmX + elmW + dX > maxLeft)
|
mOffX = (dX - (diffX = maxLeft - elmX - elmW));
|
if (elmY + dY < minTop)
|
mOffY = (dY - (diffY = minTop - elmY));
|
else if (elmY + elmH + dY > maxTop)
|
mOffY = (dY - (diffY = maxTop - elmY - elmH));
|
elmX += diffX;
|
elmY += diffY
|
}
|
with (element.style) {
|
left = elmX + 'px';
|
width = elmW + 'px';
|
top = elmY + 'px';
|
height = elmH + 'px'
|
}
|
if (window.opera && document.documentElement) {
|
var oDF = document.getElementById('op-drag-fix');
|
if (!oDF) {
|
var oDF = document.createElement('input');
|
oDF.id = 'op-drag-fix';
|
oDF.style.display = 'none';
|
document.body.appendChild(oDF)
|
}
|
oDF.focus()
|
}
|
if (ondragmove)
|
this.ondragmove(isResize);
|
cancelEvent(e)
|
}
|
};
|
DragResize.prototype.mouseUp = function(e) {
|
with (this) {
|
if (!document.getElementById || !enabled)
|
return;
|
var hRE = new RegExp(myName + '-([trmbl]{2})', '');
|
if (handle && ondragend)
|
this.ondragend(hRE.test(handle.className));
|
deselect(false)
|
}
|
};
|
DragResize.prototype.resizeHandleSet = function(elm, show) {
|
with (this) {
|
if (!elm._handle_tr) {
|
for ( var h = 0; h < handles.length; h++) {
|
var hDiv = document.createElement('div');
|
hDiv.className = myName + ' ' + myName + '-' + handles[h];
|
elm['_handle_' + handles[h]] = elm.appendChild(hDiv)
|
}
|
}
|
for ( var h = 0; h < handles.length; h++) {
|
elm['_handle_' + handles[h]].style.visibility = show ? 'inherit'
|
: 'hidden'
|
}
|
}
|
};
|
DragResize.prototype.resizeHandleDrag = function(diffX, diffY) {
|
with (this) {
|
var hClass = handle
|
&& handle.className
|
&& handle.className.match(new RegExp(myName
|
+ '-([tmblr]{2})')) ? RegExp.$1 : '';
|
var dY = diffY, dX = diffX, processed = false;
|
if (hClass.indexOf('t') >= 0) {
|
rs = 1;
|
if (elmH - dY < minHeight)
|
mOffY = (dY - (diffY = elmH - minHeight));
|
else if (elmY + dY < minTop)
|
mOffY = (dY - (diffY = minTop - elmY));
|
elmY += diffY;
|
elmH -= diffY;
|
processed = true
|
}
|
if (hClass.indexOf('b') >= 0) {
|
rs = 1;
|
if (elmH + dY < minHeight)
|
mOffY = (dY - (diffY = minHeight - elmH));
|
else if (elmY + elmH + dY > maxTop)
|
mOffY = (dY - (diffY = maxTop - elmY - elmH));
|
elmH += diffY;
|
processed = true
|
}
|
if (hClass.indexOf('l') >= 0) {
|
rs = 1;
|
if (elmW - dX < minWidth)
|
mOffX = (dX - (diffX = elmW - minWidth));
|
else if (elmX + dX < minLeft)
|
mOffX = (dX - (diffX = minLeft - elmX));
|
elmX += diffX;
|
elmW -= diffX;
|
processed = true
|
}
|
if (hClass.indexOf('r') >= 0) {
|
rs = 1;
|
if (elmW + dX < minWidth)
|
mOffX = (dX - (diffX = minWidth - elmW));
|
else if (elmX + elmW + dX > maxLeft)
|
mOffX = (dX - (diffX = maxLeft - elmX - elmW));
|
elmW += diffX;
|
processed = true
|
}
|
return processed
|
}
|
};
|
</script>
|
<script type="text/javascript">
|
window.onerror = function() {
|
return true;
|
}
|
//
|
var dragToolbar = new DragResize('drag', {
|
minLeft : 0,
|
minTop : 100,
|
maxLeft : 9999,
|
maxTop : 9999
|
});
|
dragToolbar.isElement = function(elm) {
|
if (elm.id == 'toolbar')
|
return true;
|
};
|
dragToolbar.isHandle = function(elm) {
|
if (elm.className && elm.className.indexOf('drsMoveHandle') > -1)
|
return true;
|
};
|
dragToolbar.apply(document);
|
|
var dragresize = new DragResize('dragresize', {
|
minWidth : 200,
|
minHeight : 1,
|
minLeft : 0,
|
minTop : 0,
|
maxLeft : 9999,
|
maxTop : 9999
|
});
|
dragresize.isElement = function(elm) {
|
if (elm.className && elm.className.indexOf('codefans_net') > -1)
|
return true;
|
};
|
dragresize.isHandle = function(elm) {
|
if (elm.className && elm.className.indexOf('drsMoveHandle') > -1)
|
return true;
|
};
|
|
dragresize.ondragfocus = function() {
|
};
|
dragresize.ondragstart = function(isResize) {
|
if (this.element.id == 'toolbar')
|
return;
|
try {
|
this.element.style.zIndex = 1;
|
this.element.style.opacity = 0.8;
|
//this.element.style.filter = 'alpha(opacity=80)';
|
} catch (e) {
|
}
|
};
|
dragresize.ondragmove = function(isResize) {
|
};
|
dragresize.ondragend = function(isResize) {
|
if (this.element.id == 'toolbar')
|
return;
|
try {
|
this.element.style.opacity = 1;
|
this.element.style.zIndex = 0;
|
//this.element.style.filter = 'alpha(opacity=100)';
|
} catch (e) {
|
}
|
};
|
dragresize.ondragblur = function() {
|
};
|
dragresize.apply(document);
|
//
|
|
var delIds = '';
|
|
//删除组建
|
function del(node) {
|
//node.removeNode(true);
|
$(node).css("display", "none");
|
}
|
|
//增加组建
|
function add(title, URL, id) {
|
var flag = false;
|
$(".codefans_net").each(function() {
|
if ($(this).attr("id") == id) {
|
if ($(this).css("display") == "none") {
|
$(this).css("display", "block");
|
}
|
flag = true;
|
return;
|
}
|
});
|
if (flag) {
|
return;
|
}
|
var template = $('#template');
|
|
$(template).css("z-index","1");
|
|
var portlet = template[0].cloneNode(true);
|
|
$("#toolbar").after(portlet);
|
portlet.setAttribute('id', id);
|
portlet.setAttribute('window', '1');
|
//初始化
|
if (URL.indexOf("http:") < 0) {
|
portlet.setAttribute('contentURL', URL);
|
} else {
|
$(portlet).find(".content1").append(
|
"<iframe id='weatherPages' marginheight='0' marginwidth='0' frameborder='0' style='height:100%;width:100%;' src='"
|
+ URL + "'></iframe>");
|
}
|
$(portlet).find(".content1").load(URL);
|
portlet.style.display = 'block';
|
|
portlet.style.left = document.body.offsetWidth / 2
|
- portlet.offsetWidth / 2 + 'px';
|
|
$('span[class=title]', portlet)[0].innerHTML = title;
|
|
}
|
|
//保存组建
|
function save1() {
|
var info = '';
|
$('div[window=1]').each(
|
function() {
|
if ($(this).css("display") != 'none') {
|
var position = $(this).position();
|
info += this.id + "," + position.left + "-"
|
+ position.top + "-" + $(this).width() + "-"
|
+ $(this).height() + ";";
|
}
|
});
|
if (info.length > 0) {
|
info = info.substring(0, info.length - 1);
|
if(info.indexOf("--")>-1){
|
info = info.replace("--", "-").replace("--", "-").replace("--", "-").replace("--", "-").replace("--", "-");
|
}
|
}
|
RefUserModuleManager.updateLiveAndPositinon(info, {
|
callback : function(data) {
|
prompt('保存成功');
|
window.location.reload();
|
}
|
});
|
}
|
|
function add1(json) {
|
var template = $('#template');
|
var arrayStr = json.split(",");
|
var portlet = template[0].cloneNode(true);
|
|
$("#toolbar").after(portlet);
|
if (arrayStr[3].indexOf("http:") < 0) {
|
//初始化
|
$(portlet).find(".content1").load(arrayStr[3]);
|
} else {
|
$(portlet).find(".content1").append(
|
"<iframe id='weatherPages' marginheight='0' marginwidth='0' frameborder='0' style='height:100%;width:100%;' src='"
|
+ arrayStr[3] + "'></iframe>");
|
}
|
portlet.setAttribute('id', arrayStr[1]);
|
portlet.setAttribute('window', '1');
|
portlet.setAttribute('contentURL', arrayStr[3]);
|
portlet.style.display = 'block';
|
var str = arrayStr[0];
|
var strs = str.split("-");
|
portlet.style.left = strs[0] + 'px';
|
portlet.style.top = strs[1] + 'px';
|
portlet.style.width = strs[2] + 'px';
|
portlet.style.height = strs[3] + 'px';
|
|
$('span[class=title]', portlet)[0].innerHTML = arrayStr[2];
|
}
|
var str = "<div class='divimgnbsp' style='text-align:left;'>"
|
+ "<span class='cont_img'><a class='addahref' href='javascript:void();' onclick=\"add('<0>','<1>','<2>')\"><0></a></span>"
|
+ "</div>";
|
function initMenu() {
|
RefUserModuleManager.getMenu({
|
callback : function(data) {
|
if (data.length > 0) {
|
var jsons = data.split(";");
|
for ( var i = 0; i < jsons.length; i++) {
|
var strs = jsons[i].split(",");
|
var html = str.replace("<0>", strs[1]).replace("<0>",
|
strs[1]).replace("<1>", strs[2]).replace("<2>",
|
strs[0]);
|
$("#toolbar").find(".content1").append(html);
|
}
|
}
|
}
|
})
|
}
|
|
$(function() {
|
var json = json;
|
RefUserModuleManager.getAllLive({
|
callback : function(data) {
|
var jsons = data.split(";");
|
for ( var i = 0; i < jsons.length; i++) {
|
add1(jsons[i]);
|
}
|
}
|
});
|
initMenu();
|
})
|
$(window).bind('resize', function() {
|
}).trigger('resize');
|
</script>
|
</head>
|
<body oncontextmenu="return false" ondragstart="return false"
|
onselectstart="return false" onselect="document.selection.empty()"
|
oncopy="document.selection.empty()" onbeforecopy="return false"
|
onmouseup="document.selection.empty()">
|
<div id="listPage" >
|
<div class="codefans_net template" window=0 id="template" style="left:50px;top:150px;">
|
<div class="drsMoveHandle tabsWrapper ui-state-default ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-top">
|
<div class="queryBut" id="queryBut">
|
<span class="title">菜单管理列表</span>
|
<span class="but">
|
<ul>
|
<li class="but_del imageButMenFu" onclick="del(this.parentNode.parentNode.parentNode.parentNode.parentNode)"></li>
|
</ul>
|
</span>
|
</div>
|
</div>
|
<div id="contnt" class="content1" name="content"></div>
|
</div>
|
|
<div class="codefans_net" id="toolbar" style="left:20px;top:100px">
|
<div class="drsMoveHandle tabsWrapper ui-state-default ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-top">
|
<div class="queryBut" id="queryBut">
|
<span class="title">可选组件</span>
|
<span class="but">
|
<ul>
|
<li class="but_save imageButMenFu" onclick="save1()"></li>
|
</ul>
|
</span>
|
</div>
|
</div>
|
<div class="content1" name="content1">
|
</div>
|
</div>
|
</div>
|
</body>
|
</html>
|