<style>
#pageOverlay { position:fixed; top:0; left:0; z-index:1987;
width:100%; height:100%;
background:#000; filter:alpha(opacity=50); opacity:0.50; }
</style>
function layerMaskShow()
{
document.getElementById('pageOverlay').style.visibility = 'visible' ;
}
function layerMaskHidden()
{
document.getElementById('pageOverlay').style.visibility = 'hidden' ;
}
</script>
</head>
<body οnlοad="layerMaskHidden()">
<div id="pageOverlay" ></div>
另一个页面
function layerMaskShow()
{
window.parent.lFrame.layerMaskShow();
}
<input type="button"
value='<s:text name="msg.portalMS.category.ordetcategory"/>' id="button"
οnclick="javascript:NavTree.show();layerMaskShow();" title="<s:text name="msg.portalMS.category.ordetcategory"/>"/>
<s:hidden name="cloneCategory.terminalType" id="category_terminalType" value="1"></s:hidden>
栏目树:
Ext.onReady(
function() {
Ext.override(Ext.tree.TreeNode, {
deepExpand : function(anim, callback, scope){
// 先展开本节点
this.expand(false, anim, function(){
// 然后展开子节点
var cs = this.childNodes,
expanded = 0,
len = cs.length,
taskDone = function(){
// 每展开成功一个子节点,计数+1
expanded++;
// 如果所有子节点都展开,调用最终回调
if(expanded >= len){
this.runCallback(callback, scope || this, [this]);
}
};
if(len<=0){
taskDone.call(this);// <--- 这里? 应该修改为 taskDone.call(this);
return;
}
// 递归展开
for(var i = 0, len = cs.length; i < len; i++) {
cs[i].deepExpand(anim, taskDone, this);
}
}, this);
}
});
var heightWindows= document.documentElement.clientHeight -60;
var width= document.documentElement.clientWidth -5;
var siteID_;
var arr =Ext.query("*[name=site.siteID]");// 通过class name来获取节点的数组
siteID = arr[0].value;
if(siteID!=''){
siteID_ = siteID;
}else{
siteID_ = siteid;
}
document.getElementById("sitesid").value=siteID_;
var isClone = document.getElementById("isClone")
Ext.BLANK_IMAGE_URL = "../js/ext/resources/images/default/s.gif";
Ext.QuickTips.init();
var Tree = Ext.tree;
tree = new Tree.TreePanel({
el:'tree_div',
title:'右键进行克隆操作',
autoScroll : true,
border : false,
animate : true,
enableDD : false,
height:heightWindows,
bodyStyle:'background-color:#e9f0f9',
containerScroll : true,
loader: new Tree.TreeLoader({
dataUrl:'jsonTree.action'+'?site.siteID='+siteID
})
});
tree.on('beforeload',function(node){
tree.loader.dataUrl = 'jsonTree.action?nodeId='+node.id+'&site.siteID='+siteID_;
});
// set the root node
root = new Tree.AsyncTreeNode({
text: '<s:text name="msg.portalMS.system.root"/>',
draggable:false,
root:'menus',
url:'www.baidu.com',
id:'root_id',
icon:'../images/dataTemplate.gif'
});
tree.setRootNode(root);
root.expand();
// render the tree
tree.render();
if(typeof(isClone) != "undefined" && isClone != null)
{
tree.on("contextmenu", showNASClassTreeMenu);
}
tree.on("click", showDetail);
tree.on('checkchange', function(node, checked) {
node.deepExpand(false,function(){if(node.parentNode.id=='root_id'){
return;
}
selParent(node, checked);
selChild(node, checked);},this);
}, tree);
}
);
调整顺序:
// 导航树
NavTree = function(){
var nav;
var formWindow;
var navEditor;
var leafMenu;
var dirMenu;
var loader;
var root;
var removeFlag = false;
var titleChangeFlag = false;
var nodeSelected;
var mgr;
var title;
var cateType;
var terminalType;
return {
init : function(){
if(!mgr){
Ext.Msg.alert($CON.WARM_TIP,$CON.CHECK_CONFIG+"NavTree.setMgr()"+CHECK_CONFIG_ONE+"mgr");
return;
}
if(!loader){
if(!Ext.get("cate_type"))
{
return;
}
if(!Ext.get("category_terminalType"))
{
return;
}
var siteId="";
if(Ext.get("siteId"))
{
siteId=Ext.get("siteId").dom.value;
}
terminalType = Ext.get("category_terminalType").dom.value;
cateType =Ext.get("cate_type").dom.value;
loader = new Ext.tree.TreeLoader({
url : '/portalMS/resource/jsonData.action?cateType='+cateType+'&terminalType='+terminalType+'&site.siteID='+siteId
});
loader.on('beforeload', function(treeloader, node) {
treeloader.baseParams = {
id : node.id
};
}, this);
}
if(!root){
if(Ext.get("category_firstNodeName")){
title=Ext.get("category_firstNodeName").dom.value;
}else{
title="";
}
root = new Ext.tree.AsyncTreeNode({
id : Ext.get("category_firstNodeId").dom.value,
text : title,
expanded: true
});
}
if(!nav){
nav = new Ext.tree.TreePanel({
width : 232,
height: 600,
autoScroll : true,
animate : true,
loader : loader,
root : root,
enableDD:true,
border:false,
listeners : {
'click' : function(node, event) {
if (node.isLeaf()) {
// 为叶子节点时,点击不进入链接
// event.stopEvent();
// alert(node.url);
// window.open('http://www.google.com');
}
}
}
});
// 添加右键菜单
// nav.on("contextmenu", this.showTreeMenu);
// 当节点文本改变时触发事件
nav.on("textchange", function(node, newText, oldText) {
if (!titleChangeFlag && newText != oldText) {
mgr.ajaxModifyTitle(node.id, newText, function(success) {
});
}
});
// 当节点移动时触发事件
nav.on("movenode", function(tree, node, oldParent, newParent, index) {
mgr.updateMoveNode(node.id, oldParent.id, newParent.id, index+1, cateType, getReslut);
});
function getReslut(data)
{
if(data == "error"){
Ext.Msg.alert($CON.WARM_NOTE,$CON.COLUMN_NOEXISTE);
}
if(data == "false"){
Ext.Msg.alert($CON.WARM_NOTE,$CON.COLUMN_NOCHANGE);
}
}
// 当节点移动前触发事件
nav.on("beforemovenode", function(tree, node, oldParent, newParent, index) {
if(oldParent!=newParent){
Ext.Msg.alert($CON.WARM_NOTE,$CON.COLUMN_NOCHANGE);
return false;
}
});
// 当节点删除时触发事件
nav.on("remove", function(tree, parentNode, node) {
if (removeFlag) {
mgr.ajaxRemoveParentById(node.id);
}
});
}
// if(!navEditor){
// navEditor = new Ext.tree.TreeEditor(nav, {
// allowBlank : false,
// ignoreNoChange : true,
// blankText : '标题不能为空',
// selectOnFocus : true
// });
// }
this.setLeafMenu();
this.setDirMenu();
},
setMgr : function(manager){
mgr = manager;
},
getMgr : function(){
return mgr;
},
setLeafMenu: function(){
// 设置叶子菜单
if(!leafMenu){
leafMenu = new Ext.menu.Menu({
items : [{
text : $CON.TITLE_EDIT,
handler : function() {
navEditor.triggerEdit(nodeSelected);
}
}, "-", {
text : $CON.EDIT,
handler : function() {
FormEditWin.showEditLeafWin(nodeSelected);
}
}, "-", {
text : $CON.DELETE_ONE,
handler : this.delTreeItemComfirm
}]
});
}
},
setDirMenu: function(){
// 设置目录菜单
if(!dirMenu){
dirMenu = new Ext.menu.Menu({
items : [{
text : $CON.TITLE_EDIT,
handler : function() {
navEditor.triggerEdit(nodeSelected);
}
}, "-", {
text : $CON.EDIT,
handler : function() {
FormEditWin.showEditDirWin(nodeSelected);
}
}, "-", {
text : $CON.LEAF_CHILDNODE_ADD,
handler : function() {
FormEditWin.showAddLeafWin(nodeSelected);
}
}, "-", {
text : $CON.AIMDIRECTORY_ADDNODE,
handler : function() {
FormEditWin.showAddDirWin(nodeSelected);
}
}, "-", {
text : $CON.DELETE_ONE,
handler : this.delTreeItemComfirm
}]
});
}
},
showTreeMenu : function(node, e){
nodeSelected = node;
nodeSelected.select();
if (node.isLeaf()) {
// 显示叶子节点菜单
leafMenu.showAt(e.getPoint());
} else {
// 显示目录节点菜单
dirMenu.showAt(e.getPoint());
}
},
delTreeItemComfirm : function(){
Ext.Msg.confirm($CON.DELETE_SURE, $CON.NODE_SUREDELETE, function(btn) {
if (btn == "yes") {
NavTree.delTreeItem();
}
});
},
delTreeItem : function(){
if (nodeSelected != nav.getRootNode()) {
removeFlag = true;
nodeSelected.remove();
removeFlag = false;
} else {
Ext.Msg.alert($CON.WARM, $CON.NODE_NODELETE);
}
},
show : function(){
formWindow = new Ext.Window({
modal:true,
layout:'fit',
width:250,
height: 400,
resizable:true,
closeAction:'hide',
shim:false, // 关键,设置此项为 false ,则最大化时 window不会撑破 tabPanel
autoScroll:true,
constrainHeader:true, // 关键,设置此项为 true ,指定此 window 不会超过 tabPanel 的上面和左边
style:"padding:0px;",
plain: true,
listeners:{
"hide":function(){
window.parent.lFrame.location.reload();
}},
items: [
nav
]
});
formWindow.on('beforeclose',function(){Ext.Msg('sa');})
formWindow.show();
nav.getRootNode().toggle();
}
}
}();
// 文档加载完毕执行
Ext.onReady(function(){
//Ext.BLANK_IMAGE_URL = "../scripts/ext/resources/images/default/s.gif";
if(typeof(TreeDWR)=="undefined"){
Ext.Msg.alert($CON.WARM_TIP,$CON.WRONG);
}else{
NavTree.setMgr(TreeDWR);
NavTree.init();
Text:$CON.LOADING;
}
});
category_frame_left.jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"
import="com.coship.dhm.portalMS.site.entity.Site"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@page import="org.apache.struts2.ServletActionContext"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="page" uri="/WEB-INF/tlds/paginated.tld"%>
<%@ taglib prefix="priveliege" uri="/WEB-INF/tlds/priveliege.tld" %>
<%@ include file="../common/language.jsp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<title>Panel</title>
<link href="../style/base<%=language_css%>.css" rel="stylesheet" type="text/css" />
<%@ include file="../common/commonJS.jsp" %>
<script type="text/javascript" src="../js/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../js/ext/ext-all.js"></script>
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript" src="../js/dialogShow.js"></script>
<script type="text/javascript" src="../jsCBB/jquery.js" ></script>
<script type="text/javascript" src="../js/loading.js"></script>
<link rel="stylesheet" type="text/css"
href="../js/ext/resources/css/ext-all.css"></link>
<%
Site site = (Site) request.getAttribute("site");
Long siteid = site.getSiteID();
String siteAlias = site.getAlias();
%>
<style>
body {
background-color: #e9f0f9;
font-size: 12px
}
</style>
<style>
#pageOverlay { position:fixed; top:0; left:0; z-index:1987;
width:100%; height:100%;
background:#000; filter:alpha(opacity=50); opacity:0.50; }
</style>
<script type="text/javascript">
var tree;
var root;
var siteid = '<%=siteid%>';
var siteID;
var siteAlias = '<%=siteAlias%>';
var siteALIAS;
//防重复提交按键功能
var timerID;
function activethis(){
timerID=setTimeout('document.getElementById("syncTreeNode").disabled=false',10000);
$("#syncTreeNode").submit();
}
function changeTerminalType(parm){
var url = "initTree.action?site.siteID="+parm.trim();
var categoryType = window.parent.categoryType;
parent.mFrame.window.location ='showResourceCategoryList.action?category.categoryType='+categoryType+'&categorySite='+parm;
window.location = url;
}
function removeNodes(){
var queryString='';
var flag = false;
var rootindex='';
var rootid='';
// 所有选中的子菜单的id
var checkedNodesIds = "";// 选中的节点id
var checkedNodes = tree.getChecked();
var nodes = new Array();
for (var i = checkedNodes.length - 1 ;i >= 0 ; i--) {
var node = checkedNodes[i];
if(node.parentNode.id=='root_id'){
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.root.not.delete"/>',400,200);
return;
}
nodes.push(node);
queryString += "&categoryids=" + node.id;
if(parent.mFrame.document.getElementById("clickNode").value==node.id)//如果主页面显示的节点为要删除的节点
{
flag = true;
}
}
var url='delResourceCategorys.action?ts=' + new Date().getTime()+'&'+queryString;
//此处执行异步
Ext.Ajax.request({
type:"POST",
url: url,
callback : function(options, success, response) {
if(response.responseText=='true')
{
var checkedNodes = tree.getChecked();
for (var a = checkedNodes.length - 1 ;a >= 0 ; a--) {
var node = checkedNodes[a];
var p = node.parentNode;
p.removeChild(node);
}
if(flag==true)
{
var s=root.firstChild;
//调用查询的方法
parent.mFrame.window.location.href=
'showResourceCategoryList.action?category.categoryId='+s.id;
}
document.getElementById("showSuccessDialog").value="1";
//传入参数true,定位到父亲的父亲显示成功信息
showSuccessWindowByParent( '<s:text name="msg.portalMS.success.message.deletecategory" />', '',2 );
}
else //alert('删除失败!请确保被删除的栏目下没有对应的资源、资讯或商品!');
{
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>',response.responseText,400,200);
}
}
});
}
function syncNodes(){
var queryString='';
var flag = false;
var rootindex='';
var rootid='';
// 所有选中的子菜单的id
var checkedNodesIds = "";// 选中的节点id
var checkedNodes = tree.getChecked();
var nodes = new Array();
for (var i = checkedNodes.length - 1 ;i >= 0 ; i--) {
var node = checkedNodes[i];
if(node.parentNode.id=='root_id'){
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.root.not.delete"/>',400,200);
return;
}
nodes.push(node);
queryString += "&categoryids=" + node.id;
if(parent.mFrame.document.getElementById("clickNode").value==node.id)//如果主页面显示的节点为要删除的节点
{
flag = true;
}
}
var url='syncResourceCategorys.action?ts=' + new Date().getTime()+'&'+queryString;
//此处执行异步
Ext.Ajax.request({
type:"POST",
url: url,
callback : function(options,success, response) {
if(response.responseText=='true')
{
if(flag==true)
{
var s=root.firstChild;
//调用查询的方法
parent.mFrame.window.location.href=
'showResourceCategoryList.action?category.categoryId='+s.id;
}
document.getElementById("showSuccessDialog").value="1";
//传入参数true,定位到父亲的父亲显示成功信息
showSuccessWindowByParent( '<s:text name="msg.portalMS.success.message.deletecategory" />', '',2 );
}
else //alert('删除失败!请确保被删除的栏目下没有对应的资源、资讯或商品!');
{
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>',response.responseText,400,200);
}
}
});
}
function removeLocalAll()
{ var sitestext=$('#sitesid option:selected').text();//选中的文本
var delsiteid=document.getElementById("sitesid").value;
parent.parent.showConfirmAndCancel('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.delete.all.column"/>'+sitestext+'<s:text name="msg.portalMS.category.column"/>',"removeLocalAllAjax");
}
function removeLocalAllAjax(){
var sitestext=$('#sitesid option:selected').text();//选中的文本
var delsiteid=document.getElementById("sitesid").value;
var url='delLocalAllCategory.action?ts=' + new Date().getTime()+'&delsiteid='+delsiteid ;
//此处执行异步
Ext.Ajax.request({
url: url,
callback : function(options,success, response) {
if(response.responseText=='true')
{ root.reload();// 重新加载根节点.
root.expand();
document.getElementById("showSuccessDialog").value="1";
//传入参数true,定位到父亲的父亲显示成功信息
showSuccessWindowByParent( '<s:text name="msg.portalMS.success.message.deletecategory" />', '',2 );
}
else if(response.responseText=='nocategory')
{
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.city.no.column"/>'+sitestext+'<s:text name="msg.portalMS.category.column"/>',400,200);
}
else //alert('删除失败!请确保被删除的栏目下没有对应的资源、资讯或商品!');
{
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>',response.responseText,400,200);
}
}
});
}
function removenode()
{
var checkedNodes = tree.getChecked();
if(checkedNodes.length == 0)
{
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.delete.selected"/>',400,200,0,true);
return;
}if(checkedNodes.length > 100)
{
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.selected.too.much"/>',400,200,0,true);
return;
}
else
parent.parent.showConfirmAndCancel_b('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.deleted.confirm" />','');
}
function syncTreeNode()
{
var checkedNodes = tree.getChecked();
if(checkedNodes.length == 0)
{
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.sync.selected"/>',400,200,0,true);
return;
}if(checkedNodes.length > 100)
{
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.selected.too.much"/>',400,200,0,true);
return;
}
else
parent.parent.showConfirmAndCancelSyncCategory('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.synccategory.confirm" />','');
}
var heightWindows;
Ext.override(Ext.tree.TreeNode, {
deepExpand : function(anim, callback, scope){
// 先展开本节点
this.expand(false, anim, function(){
// 然后展开子节点
var cs = this.childNodes,
expanded = 0,
len = cs.length,
taskDone = function(){
// 每展开成功一个子节点,计数+1
expanded++;
// 如果所有子节点都展开,调用最终回调
if(expanded >= len){
this.runCallback(callback, scope || this, [this]);
}
};
if(len<=0){
taskDone.call(this);// <--- 这里? 应该修改为 taskDone.call(this);
return;
}
// 递归展开
for(var i = 0, len = cs.length; i < len; i++) {
cs[i].deepExpand(anim, taskDone, this);
}
}, this);
}
});
Ext.onReady(
function() {
Ext.override(Ext.tree.TreeNode, {
deepExpand : function(anim, callback, scope){
// 先展开本节点
this.expand(false, anim, function(){
// 然后展开子节点
var cs = this.childNodes,
expanded = 0,
len = cs.length,
taskDone = function(){
// 每展开成功一个子节点,计数+1
expanded++;
// 如果所有子节点都展开,调用最终回调
if(expanded >= len){
this.runCallback(callback, scope || this, [this]);
}
};
if(len<=0){
taskDone.call(this);// <--- 这里? 应该修改为 taskDone.call(this);
return;
}
// 递归展开
for(var i = 0, len = cs.length; i < len; i++) {
cs[i].deepExpand(anim, taskDone, this);
}
}, this);
}
});
var heightWindows= document.documentElement.clientHeight -60;
var width= document.documentElement.clientWidth -5;
var siteID_;
var arr =Ext.query("*[name=site.siteID]");// 通过class name来获取节点的数组
siteID = arr[0].value;
if(siteID!=''){
siteID_ = siteID;
}else{
siteID_ = siteid;
}
document.getElementById("sitesid").value=siteID_;
var isClone = document.getElementById("isClone")
Ext.BLANK_IMAGE_URL = "../js/ext/resources/images/default/s.gif";
Ext.QuickTips.init();
var Tree = Ext.tree;
tree = new Tree.TreePanel({
el:'tree_div',
title:'右键进行克隆操作',
autoScroll : true,
border : false,
animate : true,
enableDD : false,
height:heightWindows,
bodyStyle:'background-color:#e9f0f9',
containerScroll : true,
loader: new Tree.TreeLoader({
dataUrl:'jsonTree.action'+'?site.siteID='+siteID
})
});
tree.on('beforeload',function(node){
tree.loader.dataUrl = 'jsonTree.action?nodeId='+node.id+'&site.siteID='+siteID_;
});
// set the root node
root = new Tree.AsyncTreeNode({
text: '<s:text name="msg.portalMS.system.root"/>',
draggable:false,
root:'menus',
url:'www.baidu.com',
id:'root_id',
icon:'../images/dataTemplate.gif'
});
tree.setRootNode(root);
root.expand();
// render the tree
tree.render();
if(typeof(isClone) != "undefined" && isClone != null)
{
tree.on("contextmenu", showNASClassTreeMenu);
}
tree.on("click", showDetail);
tree.on('checkchange', function(node, checked) {
node.deepExpand(false,function(){if(node.parentNode.id=='root_id'){
return;
}
selParent(node, checked);
selChild(node, checked);},this);
}, tree);
}
);
//这个方法是选择父节点,自动选中所有的子节点
function selParent(node, checked) {
checked ? node.expand() : node.collapse();
if (node.hasChildNodes()) {
node.eachChild(function(child) {
child.attributes.checked = checked;
var cb = child.ui.checkbox;
if (cb) cb.checked = checked;
selParent(child, checked);
});
}
}
//这个方法是选择子节点,自动选中父节点的父节点
function selChild(node, checked) {
if (checked) {
}
else{
var parentNode = node.parentNode;
if (parentNode != undefined) {
parentNode.attributes.checked = false;
var cb = parentNode.ui.checkbox;
if (cb) cb.checked = checked;
selChild(parentNode, checked);
}
}
}
function showNASClassTreeMenu(node, e) {
if(node.id=='root_id'||node.parentNode.id=='root_id')
{ return;
}
var nasclassMenu = new Ext.menu.Menu({
items : [{
text : '<s:text name="msg.portalMS.category.clone"/>'+node.text,
icon : '../images/cd.gif',
handler : function() {
columnClone(node.id);
}
}]
});
nasclassMenu.showAt(e.getPoint());
}
//栏目的克隆
function columnClone(id){
var queryString='';
queryString += "&categoryids=" + id;
if(!id){
parent.parent.showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.selected.box"/>',400,200,0,true);
}else{
ToCloneFrame(id);
}
}
function ToCloneFrame(id){
parent.parent.showClonePage('<s:text name="msg.portalMS.category.select.clone"/>','<%=request.getContextPath()%>/resource/initTree.action?clone=1&cloneCatgoryId='+id,500,430);
}
function allclone(){
var clonesiteid=document.getElementById("sitesid").value;
parent.parent.showPage('<s:text name="msg.portalMS.category.selected.city"/>','<%=request.getContextPath()%>/resource/selectCity.action?clonesiteid='+clonesiteid,300,150);
}
function showDetail(node, e) {
//alert("showDetail"+node.id);
if(node.id=='root_id')
{
return;
}
mFrameLoading();
parent.document.getElementById("mFrame").src="showResourceCategoryList.action?category.categoryId="+node.id;
}
function showNASClassTreeSubNode(node) {
tree.expand(true,false);
}
function showNASClassTreeSubNode(node) {
tree.expand(true,false);
}
function reLoadTree() {
root.reload();// 重新加载根节点.
root.expand();
}
var i=-1;
function getLevel(categoryId) {
i=-1;
if(typeof(tree) != "undefined" && tree != null)
{
var tmpNode=tree.getNodeById(categoryId);
if(typeof(tmpNode) != "undefined")
{
tt(tmpNode.id);
}
}
return i;
}
function tt(categoryId) {
var tmpNode=tree.getNodeById(categoryId);
if(tmpNode.id !='root_id')
{
tmpNode=tmpNode.parentNode;
i++;
tt(tmpNode.id);
}else{
return;
}
}
function updateLoadTree(text,id) {
tree.getNodeById(id).setText(text);
}
function reLoadTreeNode(id) {
var loadNode=tree.getNodeById(pid);
loadNode.removeAll();
tree.getStore.load({node:loadNode});//重新加载指定的节点。
}
function addNode(pid) {
var loadNode=tree.getNodeById(pid);
if(loadNode.isLeaf())
{
var parentNode = loadNode.parentNode;
parentNode.reload();
}else{
loadNode.reload();
}
//tree.getStore.load({node:loadNode});//重新加载指定的节点。
}
function parentNode(pid){
var nodes=tree.getChecked();
var loadNode=tree.getNodeById(pid);
if(typeof(loadNode) != 'undefined' )
{
if(loadNode.isLeaf())
{
var parentNode = loadNode.parentNode;
parentNode.reload();
}
else
{
loadNode.reload();
}
if(nodes && nodes.length)
{
for(var i=0;i<nodes.length;i++)
{
//设置UI状态为未选中状态
nodes[i].getUI().toggleCheck(false);
//设置节点属性为未选中状态
nodes[i].attributes.checked=false;
}
}
}
}
function layerMaskShow()
{
document.getElementById('pageOverlay').style.visibility = 'visible' ;
}
function layerMaskHidden()
{
document.getElementById('pageOverlay').style.visibility = 'hidden' ;
}
</script>
</head>
<body οnlοad="layerMaskHidden()">
<div>
<priveliege:priveliege funCode="clone">
<s:hidden name="isClone" id="isClone"></s:hidden>
</priveliege:priveliege>
</div>
<s:hidden name="showSuccessDialog" />
<s:hidden name="site.siteID" id="site.siteID"></s:hidden>
<s:hidden name="catetype" id="cate_type" value="column" ></s:hidden>
<div id="pcolumn_delete" style="margin-left: -6px;">
<priveliege:priveliege funCode="delResourceCategorys">
<button id="deleteTreeNode" οnclick="removenode()"> <s:text name="msg.portalMS.system.delete"/></button>
</priveliege:priveliege>
<s:if test='#session.loginUser.city.levelType == "P"'>
<priveliege:priveliege funCode="allclone">
<button id="allclonebutton" οnclick="allclone()"> <s:text name="msg.portalMS.category.clone.all"/></button>
</priveliege:priveliege>
</s:if>
<s:else>
<priveliege:priveliege funCode="delLocalAllCategory">
<button id="delallButton" οnclick="removeLocalAll()"><s:text name="msg.portalMS.category.delete.all"/></button>
</priveliege:priveliege>
</s:else>
<button id="syncTreeNode" οnclick="this.disabled=true;activethis();syncTreeNode()"> <s:text name="msg.portalMS.sysmgr.syncmanage.sync"/></button>
</div>
<s:select id="sitesid" list="sites" name="iepgSiteVO.terminalType"
listKey="siteID" listValue="alias"
οnchange="changeTerminalType(this.value)" cssStyle="width:100%">
</s:select>
<div id="tree_div" cssStyle="width:99%,height:80%"></div>
<div id="pageOverlay" ></div>
</body>
</html>
category_frame_main.jsp
<%@ page import="com.coship.dhm.common.config.impl.XMLFactory" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%
String columnSwitch = XMLFactory.getValueString("resourceName.enable");
String isNeedUpShelf = XMLFactory.getValueString("columnManage.column.isNeedUpShelf");
%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="page" uri="/WEB-INF/tlds/paginated.tld"%>
<%@ taglib prefix="priveliege" uri="/WEB-INF/tlds/priveliege.tld"%>
<%@ taglib uri="/WEB-INF/tlds/pageShow.tld" prefix="pageShow"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ include file="../common/language.jsp" %>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<link rel="stylesheet" type="text/css"
href="../js/ext/resources/css/ext-all.css" />
<link href="../style/base<%=language_css%>.css" rel="stylesheet" type="text/css" />
<%@ include file="../common/commonJS.jsp" %>
<script src="../js/jquery.js" type="text/javascript"></script>
<script type="text/javascript" src="../jsCBB/jquery.js" ></script>
<script type="text/javascript" src="../js/jquery.validate.js"></script>
<script type="text/javascript" src="../js/ex.jquery.validate.js"></script>
<script type="text/javascript" src="../js/resourcemanage.js"></script>
<script type="text/javascript" src="../js/dialogShow.js"></script>
<script type="text/javascript" src="../js/resourcedialogShow.js"></script>
<script type="text/javascript" src="<%=path%>/dwr/engine.js"></script>
<script type="text/javascript"
src="<%=path%>/dwr/interface/TreeDWR.js"></script>
<script type="text/javascript" src="../js/fullHeight.js"></script>
<script type="text/javascript" src="../js/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../js/ext/ext-all.js"></script>
<script type="text/javascript" src="../js/exttree.js"></script>
<script type="text/javascript" src="../js/tree.js"></script>
<script type="text/javascript" src="../js/loading.js"></script>
<script type="text/javascript">
var columnSwitch = '<%=columnSwitch%>';
var isNeedUpShelf = '<%=isNeedUpShelf%>';
jQuery(document).ready(function() {
//动态设置下拉列表高度
var sumHeight = document.documentElement.offsetHeight;
$('#mainResourceFrame').height(sumHeight);
setTrStyle('lumManageTable');
/* 设置默认属性 */
$.validator.setDefaults({
submitHandler: function(form) { form.submit(); }
});
var showSuccessDialog = $("#showSuccessDialog").val();
if(showSuccessDialog == 0){
/*弹出失败的提示框*/
showFailuredWindow( '<s:text name="msg.portalMS.failured.message.tip" />','');
}else{
/*弹出成功的提示框*/
showSuccessWindowByParent( '<s:text name="msg.portalMS.success.message.tip" />','<s:text name="msg.portalMS.categoryMessage.type.existed"/>',2 );
}
$( "input[type='checkbox'][name='infoIds']" ).click( function() {
var firstCheckBox = $( "#allInfos");
var checkboxes = $("input[type='checkbox'][name='infoIds']:checkbox" );
var checked = true;
for( var i = 0; i < checkboxes.length; i++ ) {
var checkbox = checkboxes[i];
if ( checkbox.value == '' ) {
continue;
}
if ( !checkbox.checked ) {
checked = false;
}
}
if ( !checked ) {
firstCheckBox.removeAttr( "checked" );
} else {
firstCheckBox.attr( "checked", "checked");
}
});
$( "button[name='deleteMessage']" ).click( function() {
var checked = $("input:checked");
if( checked == null || checked.length == 0 ) {
showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.no.message.selected"/>',400,200,0,true);
return false;
}
var categoryId = document.getElementById("clickNode").value;
var queryString = checked.serialize();
var deleteUrl ='deleteCategoryMessage.action?' + queryString+"&categoryMessage.categoryId="+categoryId;
showConfirmAndCancel('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.category.message.deleted.confirm" />',deleteUrl);
});
if($("#category_categoryType").val()==3 || $("#category_categoryType").val()==2){//如果是悬浮菜单或虚拟网,去掉URL type 一列
$("#showOrHiden1").hide();
$("#showOrHiden2").hide();
$("#showOrHiden3").attr("colSpan","3");
}
//栏目名称是否显示出来
if(columnSwitch=='1'){//0代表打开状态,其他1:代表关闭状态
$("#showOrhideAlias1").hide();
$("#showOrhideAlias2").hide();
$("#showOrhideAlias3").attr("colSpan","3");
}
else{
}
});
var isDetailOpen = true;
function hidenDetailDIV(){
var t= document.getElementById("category.categoryParent_ID").value;
if(t!=0 && isDetailOpen){
document.getElementById("columnDetailDiv").style.display = "none"
isDetailOpen=false;
}else{
document.getElementById("columnDetailDiv").style.display = ""
isDetailOpen=true;
}
}
function setTab(m)
{
frameLoading(window.frames["mainResourceFrame"]);
var t= document.getElementById("category.categoryParent_ID").value;
if(t!=0)
{
var goodsType = document.getElementById("category_goodsType").value;
var columnTypeCode = document.getElementById("category_columnTypeCode").value;
var categoryId = document.getElementById("clickNode").value;
var serviceCode = document.getElementById("category_serviceCode").value;
var resourceType = document.getElementById("category_resourceType").value;
//归属地Id
var cityId = $("#cityid").val();
if(m == 0){
var data = "?category.goodsType=" +goodsType +"&category.categoryId=" + categoryId+"&category.serviceCode="+serviceCode + "&category.cityId=" + cityId+"&category.resourceType="+resourceType;
suburl = "findProReady.action" + data;
}else if(m == 1){
suburl = "findProdoffers.action?category.categoryId="+ categoryId + "&category.cityId=" + cityId;
}else if(m == 2){
var data = "?catResource.categoryId=" + categoryId
+ "&catResource.goodsType=" + goodsType
+ "&catResource.columnTypeCode=" + columnTypeCode
+ "&catResource.resourceType=" + resourceType
+ "&catResource.cityId=" + cityId;
suburl = "readyAddAsset.action" + data;
}else if(m == 3){
var data = "?catResource.categoryId="+ categoryId
+"&catResource.columnTypeCode="+columnTypeCode
+ "&catResource.resourceType=" + resourceType
+"&catResource.cityId=" + cityId;
suburl = "findUpShelf.action" + data;
}else if(m == 4){
var data = "?catResource.categoryId="+ categoryId
+ "&catResource.cityId=" + cityId;
suburl = "findReadyRecommend.action" + data;
}else if(m == 5){
var data = "?catResource.categoryId="+ categoryId
+ "&catResource.cityId=" + cityId;
suburl = "findRecommend.action" + data;
}else if(m == 6){
suburl = "findAll.action?catResource.categoryId="+ categoryId
+ "&catResource.cityId=" + cityId+ "&catResource.goodsType=" + goodsType;
}else if(m == 7){
suburl = "findReadyUpShelf.action?catResource.categoryId="+ categoryId
+ "&catResource.cityId=" + cityId;
}
else if(m == 8){
suburl = "findImageByCategory.action?categoryImage.columnId="+ categoryId
+ "&categoryImage.cityId=" + cityId;
}
var tli = document.getElementById("tab_nav").getElementsByTagName("li");
for(var i=0; i<tli.length; i++)
{
tli[i].className=i==m?"draw_on":"";
}
setClass(m);
mainResourceFrame.location.href = suburl;
}
}
function handleTree(){
var isupdate = $("#isupdate").val();
if(isupdate==1){
var treeText = "${category.treeText}";
var id = $("#clickNode").val();
parent.lFrame.updateLoadTree(treeText,id);
}else if(isupdate==2){
var pid = "${category.categoryId}";
parent.lFrame.addNode(pid);
}
}
function getRoot(){
var categoryId = document.getElementById("clickNode").value;
var lev = parent.lFrame.getLevel(categoryId);
return lev;
}
var isOk = false;
function checkCanRefProduct(goodsType, columnRelaProduct, columnRelaGoodsType)
{
// 如果左边的树还没有加载完成,则不继续执行
if (parent.document.readyState != 'complete')
{
return;
}
var lev = getRoot();
var goodsTypeIsOk = false;
var brands = new Array(); //创建数组
var dtNum = columnRelaGoodsType.split(";").length; //取得字符串长度
brands = columnRelaGoodsType.split(";"); //为数组负值
for (i = 0; i < dtNum; i++)
{
if(goodsType == brands[i])
{
goodsTypeIsOk = true;
break;
}
}
var columnRelaIsOk = false;
var brands1 = new Array(); //创建数组
var dtNum = columnRelaProduct.split(";").length; //取得字符串长度
brands1 = columnRelaProduct.split(";"); //为数组负值
for (i = 0; i < dtNum; i++)
{
if(lev == brands1[i] || 0 == brands1[i])
{
columnRelaIsOk = true;
break;
}
}
if(isNeedUpShelf == 1)
{
if(goodsTypeIsOk && columnRelaIsOk)
{
isOk = true;
if(document.getElementById('canRefProduct'))
{
document.getElementById('canRefProduct').style.display="block";
//setTab(0);
var tli = $("#tab_nav li");
if (null != tli && tli.length > 0)
{
var temp = $(tli[0]).attr("id");
setTab(temp);
}
}
}
else
{
isOk = false;
if(document.getElementById('canRefProduct'))
{
document.getElementById('canRefProduct').style.display="none";
var tli = $("#noRefProduct li");
if (null != tli && (tli.length) > 0)
{
var temp = $(tli[0]).attr("id");
setTab(temp);
}
}
}
}else
{
if(document.getElementById('isNeedUpShelf'))
{
document.getElementById('isNeedUpShelf').style.display="none";
var tli = $("#tab_nav li");
var li = $("#isNeedUpShelf li");
if (null != tli && null != li && (tli.length-li.length) > 0)
{
var temp = $(tli[0]).attr("id");
setTab(8);
}
}
}
}
function setClass(day)
{
//var tli = document.getElementById("tab_nav").getElementsByTagName("li");
var tli = $("#tab_nav li");
for (var i=0; i<tli.length; i++)
{
var tmp = $(tli[i]);
if (tmp.attr("id") == day)
{
tli[i].className="draw_on";
}
else
{
tli[i].className="";
}
}
}
function setTrStyle(tableId)
{
var flag = 0;
var table = document.getElementById(tableId);
var trArrs = table.rows;
for(var i = 0; i < trArrs.length; i++)
{
if(trArrs[i].style.display == "none")
{
continue;
}
flag = flag + 1;
if(flag % 2 == 0)
{
trArrs[i].className='bule';
}
}
}
function layerMaskShow()
{
window.parent.lFrame.layerMaskShow();
}
</script>
</head>
<body
οnlοad="handleTree();hidenDetailDIV();checkCanRefProduct('<s:text name="category.goodsType"/>','<s:text name="category.columnRelaProduct"/>','<s:text name="category.columnRelaGoodsType"/>');">
<input type="hidden" id="status" name="status" value="${status}" />
<s:hidden name="catetype" id="cate_type" value="column"/>
<input type="hidden" name="siteId" id="siteId" value="${category.siteId}"/>
<input type="hidden" id="flag" />
<s:hidden name="showSuccessDialog" />
<s:hidden name="isupdate" />
<s:hidden name="site.siteID" />
<s:hidden name="category.datePrivilegeFlag" />
<div class="r_main">
<s:hidden name="category.firstNodeName" id="category_firstNodeName" />
<s:hidden name="category.categoryType" id="category_categoryType" />
<s:hidden name="category.columnTypeCode" id="category_columnTypeCode" />
<s:hidden name="category.resourceType" id="category_resourceType" />
<s:hidden name="category.relationProductNum"
id="category_relationProductNum" />
<s:hidden name="category.goodsType" id="category_goodsType" />
<s:hidden name="category.serviceCode" id="category_serviceCode" />
<s:hidden name="category.firstNodeId" id="category_firstNodeId" />
<s:hidden name="category.isFirstCategory"
id="category_isFirstCategory" />
<s:hidden name="category.categoryParent_ID"
id='category.categoryParent_ID' />
<s:hidden id="clickNode" name="category.categoryId" />
<s:hidden id="chooseIDs" name="chsNodes" />
<s:hidden name="showSuccessDialog" />
<div id="pcolumn_list" style="padding-top: 5px;">
<div class="page_line">
<div class="left"><img src="../images/in_l.jpg" width="5" height="30" /></div>
<div class="bu">
<input align="left" type="button" οnclick="javascript:hidenDetailDIV()"
value="<s:text name="msg.portalMS.category.categorymessage" />" title="<s:text name="msg.portalMS.category.categorymessage" />"/>
<s:if test="category.resourceType != 5">
<s:if test="#session.loginUser.city.cityId == category.cityId">
<s:form action="readyAddResourceCategory" theme="simple" style="display: inline;">
<s:hidden name="categorySite" />
<s:hidden name="category.cityId"></s:hidden>
<s:hidden name="category.categoryType"></s:hidden>
<s:hidden name="category.palias"
value="%{category.categoryAlias}" />
<s:hidden name="category.parentCategory.categoryId"
value="%{category.categoryId}" />
<s:hidden name="category.parentCategory.categoryAbspath"
value="%{category.categoryAbspath}" />
<s:hidden name="category.parentCategory.categoryType"
value="%{category.categoryType}" />
<s:hidden name="category.goodsType" />
<s:hidden name="category.categoryParent_ID"
id='category.categoryParent_ID' />
<s:hidden name="category.categoryId" />
<s:hidden name="category.display" />
<priveliege:priveliege funCode="readyAddResourceCategory">
<s:if test="!category.datePrivilegeFlag">
<input type="button" οnclick="javascript:this.form.submit();"
value="<s:text name="msg.portalMS.category.addcategory"/>" title="<s:text name="msg.portalMS.category.addcategory"/>"/>
</s:if>
</priveliege:priveliege>
</s:form>
<s:form action="readyUpdateResourceCategory" theme="simple" style="display: inline;">
<s:hidden name="category.categoryId" />
<s:hidden name="category.templateId" />
<s:hidden name="category.templateName" />
<s:hidden name="category.cityId"></s:hidden>
<s:if test="category.categoryParent_ID!=0">
<priveliege:priveliege funCode="readyUpdateResourceCategory">
<s:if test="!category.datePrivilegeFlag">
<input type="submit"
value="<s:text name="msg.portalMS.category.updatecategory"/>" title="<s:text name="msg.portalMS.category.updatecategory"/>"/>
</s:if>
</priveliege:priveliege>
</s:if>
</s:form>
</s:if>
</s:if>
<priveliege:priveliege funCode="jsonData">
<s:if test="#session.loginUser.city.cityId == category.cityId">
<s:if test="!category.datePrivilegeFlag">
<input type="button"
value='<s:text name="msg.portalMS.category.ordetcategory"/>' id="button"
οnclick="javascript:NavTree.show();layerMaskShow();" title="<s:text name="msg.portalMS.category.ordetcategory"/>"/>
<s:hidden name="cloneCategory.terminalType" id="category_terminalType" value="1"></s:hidden>
</s:if>
</s:if>
</priveliege:priveliege>
</div>
</div>
</div>
<div id="pcolumn_list" style="padding-top: 5px;">
<div class="page_tb" id="columnDetailDiv" >
<table width="100%" border="0" cellpadding="0" cellspacing="0"
class="in_table" id="lumManageTable">
<tr>
<td class="col1" style="width: 15%" >
<s:text name="msg.portalMS.category.column.id" />
</td>
<td style="width: 35%" colspan="3">
MANU<s:property value="category.Id" />
</td>
</tr>
<!-- end:修改问题单D2011010380,增加父栏目显示,modify by chenzuyi 20110126 -->
<tr>
<td class="col1" id="showOrhideAlias1" style="width: 15%">
<s:text name="msg.portalMS.category.name" /><s:text name="msg.portalMS.colon.label"/>
</td>
<td id="showOrhideAlias2" style="width: 35%">
<s:property value="category.categoryName" />
</td>
<td class="col1" style="width: 15%">
<s:text name="msg.portalMS.category.othername" /><s:text name="msg.portalMS.colon.label"/>
</td>
<td id="showOrhideAlias3">
<s:property value="category.categoryAlias" />
</td>
</tr>
<!-- begin:修改问题单D2011010380,增加父栏目显示,modify by chenzuyi 20110126 -->
<s:if test="category.categoryParent_ID!=0">
<tr>
<td class="col1">
<s:text name="msg.portalMS.category.fname" /><s:text name="msg.portalMS.colon.label"/>
</td>
<td>
<s:property value="category.palias" />
</td>
<td class="col1">
<s:text name="msg.portalMS.category.typeCode" /><s:text name="msg.portalMS.colon.label"/>
</td>
<td>
<s:property value="category.columnTypeCode" />
</td>
</tr>
</s:if>
<tr>
<td class="col1">
<s:text name="msg.portalMS.category.categoryType" /><s:text name="msg.portalMS.colon.label"/>
</td>
<td>
<s:hidden name="category.categoryType" id="categoryTypeId" />
<s:if test="category.categoryType==1">
<s:text name="msg.portalMS.column.type.goods" />
</s:if>
<s:elseif test="category.categoryType==2">
<s:text name="msg.portalMS.column.type.navigate" />
</s:elseif>
<s:elseif test="category.categoryType==3">
<s:text name="msg.portalMS.column.type.virtual" />
</s:elseif>
</td>
<td class="col1">
<s:text name="msg.portalMS.category.display" /><s:text name="msg.portalMS.colon.label"/>
</td>
<td>
<s:if test="category.display==1">
<s:text name="msg.portalMS.system.yes" />
</s:if>
<s:else>
<s:text name="msg.portalMS.system.no" />
</s:else>
</td>
</tr>
<tr id="goodsType">
<td class="col1">
<s:text name="msg.portalMS.replate.resource.type" /><s:text name="msg.portalMS.colon.label"/>
</td>
<td>
<s:if test="category.goodsType==-1">
<s:text name="msg.portalMS.replate.resource.type.all" />
</s:if>
<s:elseif test="category.goodsType==1">
<s:text name="msg.portalMS.goods.type.periodism" />
</s:elseif>
<s:elseif test="category.goodsType==2">
<s:text name="msg.portalMS.goods.type.periodism" />
</s:elseif>
<s:elseif test="category.goodsType==3">
<s:text name="msg.portalMS.goods.type.gratis" />
</s:elseif>
<s:elseif test="category.goodsType==0">
<s:text name="msg.portalMS.goods.type.disposable" />
</s:elseif>
<s:elseif test="category.goodsType==5">
<s:text name="msg.portalMS.goods.type.disposable" />
</s:elseif>
<s:elseif test="category.goodsType==6">
<s:text name="msg.portalMS.goods.type.disposable" />
</s:elseif>
</td>
<td class="col1">
<s:text name="msg.portalMS.category.service"/><s:text name="msg.portalMS.colon.label"/>
</td>
<td>
<s:property value="category.serviceCode" />
</td>
</tr>
<tr id="categoryAbspathId">
<td class="col1" id="showOrHiden1">
<s:text name="msg.portalMS.category.urlType"/><s:text name="msg.portalMS.colon.label"/>
</td>
<td id="showOrHiden2">
<s:if test="category.urlType==1"><s:text name="msg.portalMS.category.urlType.one"/></s:if>
<s:elseif test="category.urlType==2"><s:text name="msg.portalMS.category.urlType.two"/></s:elseif>
<s:elseif test="category.urlType==3"><s:text name="msg.portalMS.category.urlType.three"/></s:elseif>
</td>
<td class="col1">
<s:text name="msg.portalMS.category.url" /><s:text name="msg.portalMS.colon.label"/>
</td>
<td id="showOrHiden3">
<s:property value="category.url" />
</td>
</tr>
<pageShow:pageShow tag="common.cityCode">
<tr id="cityId">
<td class="col1">
<s:text name="msg.portalMS.system.city"/><s:text name="msg.portalMS.colon.label"/>
</td>
<td>
<s:property value="category.cityName" />
</td>
<td class="col1">
<s:text name="msg.portalMS.category.provincial.enforcement"/><s:text name="msg.portalMS.colon.label"/>
</td>
<td colspan="3">
<s:if test="category.cityCanModify==0"><s:text name="msg.portalMS.system.yes"/></s:if>
<s:elseif test="category.cityCanModify==1"><s:text name="msg.portalMS.system.no"/></s:elseif>
</td>
</tr>
</pageShow:pageShow>
<!-- update by 906861 -->
<s:if test="enableColumnTemplate=='true'">
<tr>
<td class="col1" id="shoMonthColOnePay">
<s:text name="msg.portalMS.category.isMonthColOnePay"/><s:text name="msg.portalMS.colon.label"/>
</td>
<td id="showMonthColOnePay1">
<s:if test="category.isMonthColOnePay==1"><s:text name="msg.portalMS.system.yes" /></s:if>
<s:elseif test="category.isMonthColOnePay==0"><s:text name="msg.portalMS.system.no" /></s:elseif>
</td>
<td class="col1" ><s:text name="msg.portalMS.category.template"/><s:text name="msg.portalMS.colon.label"/></td>
<td><s:property value="category.templateName"/></td>
</tr>
</s:if>
<s:if test="enableColumnTemplate=='false'">
<s:if test="category.goodsType==1">
<tr>
<td class="col1" id="shoMonthColOnePay">
<s:text name="msg.portalMS.category.isMonthColOnePay"/><s:text name="msg.portalMS.colon.label"/>
</td>
<td id="showMonthColOnePay1" colspan="3">
<s:if test="category.isMonthColOnePay==1"><s:text name="msg.portalMS.system.yes" /></s:if>
<s:elseif test="category.isMonthColOnePay==0"><s:text name="msg.portalMS.system.no" /></s:elseif>
</td>
</tr>
</s:if>
</s:if>
<!-- update by 906861 -->
<tr id="cityCanModify">
</tr>
</table>
<s:hidden name="category.cityId" id='cityid'></s:hidden>
</div>
</div>
<s:if test="category.categoryParent_ID!=0">
<s:if test="!category.datePrivilegeFlag">
<div id="tab_switchdraw">
<ul id="tab_nav">
<span id="isNeedUpShelf" style="display:true;">
<span id="canRefProduct" style="display: true;">
<li οnclick="setTab(0)" class="draw_on" id="0">
<span title="<s:text name="msg.portalMS.category.joint.product" />">
<s:text name="msg.portalMS.category.joint.product" />
</span>
</li>
<li οnclick="setTab(1)" id="1">
<span title="<s:text name="msg.portalMS.category.cancel.product" />">
<s:text name="msg.portalMS.category.cancel.product" />
</span>
</li>
</span>
<span id="noRefProduct" style="display: block;">
<li οnclick="setTab(3)" id="3">
<span title="<s:text name="msg.portalMS.category.already.upshelf" />">
<s:text name="msg.portalMS.category.already.upshelf" />
</span>
</li>
<li οnclick="setTab(2)" id="2">
<span title="<s:text name="msg.portalMS.category.ready.upshelf" />">
<s:text name="msg.portalMS.category.ready.upshelf" />
</span>
</li>
<li οnclick="setTab(4)" id="4">
<span title="<s:text name="msg.portalMS.category.ready.recommend" />">
<s:text name="msg.portalMS.category.ready.recommend" />
</span>
</li>
<li οnclick="setTab(5)" id="5">
<span title="<s:text name="msg.portalMS.category.already.recommend" />">
<s:text name="msg.portalMS.category.already.recommend" />
</span>
</li>
<li οnclick="setTab(6)" id="6">
<span title="<s:text name="msg.portalMS.category.timetask" />">
<s:text name="msg.portalMS.category.timetask" />
</span>
</li>
<li οnclick="setTab(7)" id="7">
<span title="<s:text name="msg.portalMS.category.child.upShelf" />">
<s:text name="msg.portalMS.category.child.upShelf" />
</span>
</li>
</span>
</span>
<li οnclick="setTab(8)" id="8">
<span title="<s:text name="msg.portalMS.category.image" />">
<s:text name="msg.portalMS.category.image" />
</span>
</li>
</ul>
</div>
</div>
<div id="cdata_list">
<iframe src="" name="mainResourceFrame" width="100%" scrolling="auto"
frameborder="0" id="mainResourceFrame" title="mainResourceFrame" />
</div>
</s:if>
</s:if>
</body>
</html>
exttree.js
var basePath = "http://localhost:8080/portalMS";
if(typeof(glbRootPath) != "undefined"){
basePath = glbRootPath;
}
// 扩展窗体
FormEditWin = function(){
var curFormWin;
return {
width : 600,
height : 400,
showAddDirWin : function(parentNode) {
// 显示添加子目录窗口
var number = parentNode.indexOf(parentNode.lastChild) + 1;
var editpage = 'resource/jsonData.action';
var window = this.createWin("windirnew",$CON.AIMDIRECTORY_NEWNODE, editpage, function() {
parentNode.reload();
});
window.show();
},
showAddLeafWin : function(parentNode) {
// 显示添加子叶子节点窗口
var number = parentNode.indexOf(parentNode.lastChild) + 1;
var editpage = basePath
+ "/treeAction!modifyNode.action?extTree.parentId="
+ parentNode.id + "&extTree.leaf=1&extTree.number=" + number;
var window = this.createWin("winleafnew", $CON.LEAF_NEWNODE, editpage, function() {
parentNode.reload();
});
window.show();
},
showEditDirWin : function(node) {
// 显示目录编辑窗口
var editpage = basePath
+ "/treeAction!modifyNode.action?extTree.id=" + node.id;
var window = this.createWin("win" + node.id, node.text, editpage, function() {
var nodeparent = node.parentNode;
var tree = node.getOwnerTree();
nodeparent.on("expand", function(pnode) {
tree.getNodeById(node.id).select();
}, this, {
single : true
});
node.parentNode.reload();
});
window.show();
},
showEditLeafWin : function(node) {
// 显示叶子节点编辑窗口
var editpage = basePath
+ "/treeAction!modifyNode.action?extTree.id=" + node.id;
var window = this.createWin("win" + node.id, node.text, editpage, function() {
var nodeparent = node.parentNode;
var tree = node.getOwnerTree();
nodeparent.on("expand", function(pnode) {
tree.getNodeById(node.id).select();
}, this, {
single : true
});
node.parentNode.reload();
});
window.show();
},
createWin : function(winId, winTitle, iframePage, closeFun) {
// 供各类型窗口创建时调用
var win = Ext.getCmp(winId);
if (!win) {
win = new Ext.Window({
id : winId,
title : $CON.MENU_EDIT + winTitle,
width : this.width,
height : this.height,
maximizable : true,
modal : true,
html : "<iframe width='100%' height='100%' frameborder='0' src='"
+ iframePage + "'></iframe>"
});
this.reloadNavNode = closeFun;
}
curFormWin = win;
return win;
},
reloadNavNode : function() {
},
close : function() {
if(curFormWin){
curFormWin.close();
}
}
}
}();
// 导航树
NavTree = function(){
var nav;
var formWindow;
var navEditor;
var leafMenu;
var dirMenu;
var loader;
var root;
var removeFlag = false;
var titleChangeFlag = false;
var nodeSelected;
var mgr;
var title;
var cateType;
var terminalType;
return {
init : function(){
if(!mgr){
Ext.Msg.alert($CON.WARM_TIP,$CON.CHECK_CONFIG+"NavTree.setMgr()"+CHECK_CONFIG_ONE+"mgr");
return;
}
if(!loader){
if(!Ext.get("cate_type"))
{
return;
}
if(!Ext.get("category_terminalType"))
{
return;
}
var siteId="";
if(Ext.get("siteId"))
{
siteId=Ext.get("siteId").dom.value;
}
terminalType = Ext.get("category_terminalType").dom.value;
cateType =Ext.get("cate_type").dom.value;
loader = new Ext.tree.TreeLoader({
url : '/portalMS/resource/jsonData.action?cateType='+cateType+'&terminalType='+terminalType+'&site.siteID='+siteId
});
loader.on('beforeload', function(treeloader, node) {
treeloader.baseParams = {
id : node.id
};
}, this);
}
if(!root){
if(Ext.get("category_firstNodeName")){
title=Ext.get("category_firstNodeName").dom.value;
}else{
title="";
}
root = new Ext.tree.AsyncTreeNode({
id : Ext.get("category_firstNodeId").dom.value,
text : title,
expanded: true
});
}
if(!nav){
nav = new Ext.tree.TreePanel({
width : 232,
height: 600,
autoScroll : true,
animate : true,
loader : loader,
root : root,
enableDD:true,
border:false,
listeners : {
'click' : function(node, event) {
if (node.isLeaf()) {
// 为叶子节点时,点击不进入链接
// event.stopEvent();
// alert(node.url);
// window.open('http://www.google.com');
}
}
}
});
// 添加右键菜单
// nav.on("contextmenu", this.showTreeMenu);
// 当节点文本改变时触发事件
nav.on("textchange", function(node, newText, oldText) {
if (!titleChangeFlag && newText != oldText) {
mgr.ajaxModifyTitle(node.id, newText, function(success) {
});
}
});
// 当节点移动时触发事件
nav.on("movenode", function(tree, node, oldParent, newParent, index) {
mgr.updateMoveNode(node.id, oldParent.id, newParent.id, index+1, cateType, getReslut);
});
function getReslut(data)
{
if(data == "error"){
Ext.Msg.alert($CON.WARM_NOTE,$CON.COLUMN_NOEXISTE);
}
if(data == "false"){
Ext.Msg.alert($CON.WARM_NOTE,$CON.COLUMN_NOCHANGE);
}
}
// 当节点移动前触发事件
nav.on("beforemovenode", function(tree, node, oldParent, newParent, index) {
if(oldParent!=newParent){
Ext.Msg.alert($CON.WARM_NOTE,$CON.COLUMN_NOCHANGE);
return false;
}
});
// 当节点删除时触发事件
nav.on("remove", function(tree, parentNode, node) {
if (removeFlag) {
mgr.ajaxRemoveParentById(node.id);
}
});
}
// if(!navEditor){
// navEditor = new Ext.tree.TreeEditor(nav, {
// allowBlank : false,
// ignoreNoChange : true,
// blankText : '标题不能为空',
// selectOnFocus : true
// });
// }
this.setLeafMenu();
this.setDirMenu();
},
setMgr : function(manager){
mgr = manager;
},
getMgr : function(){
return mgr;
},
setLeafMenu: function(){
// 设置叶子菜单
if(!leafMenu){
leafMenu = new Ext.menu.Menu({
items : [{
text : $CON.TITLE_EDIT,
handler : function() {
navEditor.triggerEdit(nodeSelected);
}
}, "-", {
text : $CON.EDIT,
handler : function() {
FormEditWin.showEditLeafWin(nodeSelected);
}
}, "-", {
text : $CON.DELETE_ONE,
handler : this.delTreeItemComfirm
}]
});
}
},
setDirMenu: function(){
// 设置目录菜单
if(!dirMenu){
dirMenu = new Ext.menu.Menu({
items : [{
text : $CON.TITLE_EDIT,
handler : function() {
navEditor.triggerEdit(nodeSelected);
}
}, "-", {
text : $CON.EDIT,
handler : function() {
FormEditWin.showEditDirWin(nodeSelected);
}
}, "-", {
text : $CON.LEAF_CHILDNODE_ADD,
handler : function() {
FormEditWin.showAddLeafWin(nodeSelected);
}
}, "-", {
text : $CON.AIMDIRECTORY_ADDNODE,
handler : function() {
FormEditWin.showAddDirWin(nodeSelected);
}
}, "-", {
text : $CON.DELETE_ONE,
handler : this.delTreeItemComfirm
}]
});
}
},
showTreeMenu : function(node, e){
nodeSelected = node;
nodeSelected.select();
if (node.isLeaf()) {
// 显示叶子节点菜单
leafMenu.showAt(e.getPoint());
} else {
// 显示目录节点菜单
dirMenu.showAt(e.getPoint());
}
},
delTreeItemComfirm : function(){
Ext.Msg.confirm($CON.DELETE_SURE, $CON.NODE_SUREDELETE, function(btn) {
if (btn == "yes") {
NavTree.delTreeItem();
}
});
},
delTreeItem : function(){
if (nodeSelected != nav.getRootNode()) {
removeFlag = true;
nodeSelected.remove();
removeFlag = false;
} else {
Ext.Msg.alert($CON.WARM, $CON.NODE_NODELETE);
}
},
show : function(){
formWindow = new Ext.Window({
modal:true,
layout:'fit',
width:250,
height: 400,
resizable:true,
closeAction:'hide',
shim:false, // 关键,设置此项为 false ,则最大化时 window不会撑破 tabPanel
autoScroll:true,
constrainHeader:true, // 关键,设置此项为 true ,指定此 window 不会超过 tabPanel 的上面和左边
style:"padding:0px;",
plain: true,
listeners:{
"hide":function(){
window.parent.lFrame.location.reload();
}},
items: [
nav
]
});
formWindow.on('beforeclose',function(){Ext.Msg('sa');})
formWindow.show();
nav.getRootNode().toggle();
}
}
}();
// 文档加载完毕执行
Ext.onReady(function(){
//Ext.BLANK_IMAGE_URL = "../scripts/ext/resources/images/default/s.gif";
if(typeof(TreeDWR)=="undefined"){
Ext.Msg.alert($CON.WARM_TIP,$CON.WRONG);
}else{
NavTree.setMgr(TreeDWR);
NavTree.init();
Text:$CON.LOADING;
}
});