// //var MenuSetting={ // bjId:440141088, // IconsPath:'/zhyz/image/icon/', // ParentTitleObject:"{'wzid':'4401601','mc':'财务'},{'wzid':'4401461','mc':'系统'},{'wzid':'4401481','mc':'教务'},{'wzid':'4401401','mc':'珠海一职'},{'wzid':'4401521','mc':'后勤'},{'wzid':'4401541','mc':'科研'},{'wzid':'4401562','mc':'住宿'},{'wzid':'4401621','mc':'没用的应用'},{'wzid':'4401641','mc':'后台管理'},{'wzid':'4401421','mc':'校务'},{'wzid':'4401441','mc':'人员'},{'wzid':'4401661','mc':'演示'},{'wzid':'4401501','mc':'公共'},{'wzid':'4401561','mc':'内容'},{'wzid':'4401581','mc':'wenz'}", // target:"win2", // maxTopMenuCount:5, // needEditMenu:true //} // var menuSepartorClass = "menu-seperator"; //var menuSepartorClass = "menu-split"; function popupWindow(url, title, width, height, minHeight, maxHeight) { var params = { 'show': ["wdDialog"], 'hide': [], 'url': url, 'title': title, 'width': width, 'height': height } if (maxHeight && minHeight) { params.minHeight = minHeight; params.maxHeight = maxHeight; } console.log(params); wd.display.showComponent(params); // var windowId = new Date().getTime();var x = 0; // var y = 0; // var dhxWins = new dhtmlXWindows(); // dhxWins.enableAutoViewport(true); // var win = dhxWins.createWindow(windowId, x, y, width, height); // win.keepInViewport(true); // win.center(); // win.setText('' + title + ''); // win.attachURL(url); // win.setModal(true); // top.shortCutMenuDhxWins = dhxWins; } //排序 function sortMenuInfo(mi) { //排序出问题了,达闲再处理 if (true) return; // 排序开始 // 思路:定义一个数组储存排序好的,定义menuInfo1对menuInfo进行排序 var k1 = 1; // 储存排序 var menuInfo1 = new Array(); // 储存下标 var count = new Array(); //定义好顺序的数组 var arry = new Array('公共', '个人首页', '修改密码', '图书馆', '科研处', '编辑首页', '编辑菜单', '个人网站编辑', '用户管理', '编辑首页模板', '编辑菜单模板', '综合校情及智能决策分析', '设置', '流程', '模板编辑', '编辑菜单(新)', '校务', '人员', '教务', '科研', '住宿', '内容', '财务', '后勤', '餐饮', '后台管理'); //对menuInfo进行排序,menuInfo1储存已经排序好的也存在arry中的一部分 for (var i = 0; i < arry.length; i++) { for (var k = 0; k < mi.length; k++) { //找出与事先定义好的顺序 并且保证是下拉框出现 if (arry[i] == mi[k]['name'] && mi[k]['isRoot'] == 0) { menuInfo1[k1] = mi[k]; count[k1] = k; k1++; } //确保公共(即下拉菜单的一级菜单)为第一个出现 这样才能先加载一级再加载二级。 if (arry[0] == mi[k]['name']) { //console.log(mi[k]['name']); menuInfo1[0] = mi[k]; count[0] = k; } } } //获取不存在arry中的那一部分 推到已经排好序的menuInfo1数组后面 for (var i = 0; i < mi.length; i++) { if (count.indexOf(i) == -1) { menuInfo1[k1] = mi[i]; k1++; } } // console.log(menuInfo1); // console.log(mi.concat()); //删除原本的数组内容 mi.splice(0, mi.length); for (var i = 0; i < menuInfo1.length; i++) { // 把排序好的数组添加进原来的数组 mi.push(menuInfo1[i]) } //console.log(mi); return mi; //mi = menuInfo1; //排序结束。 } var scStart = typeof shortcutStartInfo == 'undefined' ? "{}" : shortcutStartInfo, scSearch = typeof shortcutSearchInfo == 'undefined' ? "{}" : shortcutSearchInfo; var recordVal4Menu; try { recordVal4Menu = eval("wdRecordVal" + MenuSetting.bjId); recordVal4Menu.div_plugin_menus = recordVal4Menu.div_plugin_menus||[]; recordVal4Menu.width = recordVal4Menu.width || { value: "50%" }; } catch (e) { } recordVal4Menu.state = recordVal4Menu.state || { value: 'searchMenu', default: false }; var menus; function initMenuTotally() { menus = { menuObj: { info: menuInfo, infoAll: menuInfoAll, tree: menuTree, shortCut: shortcutMenuInfo, width: recordVal4Menu.width.value }, startMenu: { info: startInfo, infoAll: startInfoAll, tree: startTree, shortCut: scStart, btn: { className: 'largeIcon-start cursor-click', text: '当前是“开始”\n点击切换到“搜索”' } }, searchMenu: { info: searchInfo, infoAll: searchInfoAll, tree: searchTree, shortCut: scSearch, btn: { className: 'largeIcon-search cursor-click', text: '当前是“搜索”\n点击切换到“开始”' } } }; recordVal4Menu.state = recordVal4Menu.state || { value: 'searchMenu', default: false }; $(".menu-div:hidden").remove() // console.table(recordVal4Menu) for (var key in menus) { (function (k, m) { //if (k == 'menuObj' || recordVal4Menu.state.value == k) { document.getElementById(k + MenuSetting.bjId).style.display = ""; initMenu(k, m); //} })(key, menus[key]); } function initMenu(menuPrefix, menu_) { var dimpointClass="icon-dimPoint";//灰点 var mt = menu_.tree, mi = menu_.info, mia = menu_.infoAll, scmi = menu_.shortCut; try { //console.log(MenuSetting) function setMenuItem(item) { var has_menu_item = false; if (menuPrefix != 'menuObj') { if (isRoot_i == 0) { currTopPid = null; isRoot_i = 1; } for (var ii = 0; ii < mi.length; ii++) { var item_ = mi[ii]; if (item['id'] == item_['pid']) { has_menu_item = true; var memberid_ = item_['id'].replace(/sub#[0-9]+?#/, ""); for (var iii = 0; iii < mi.length; iii++) { var item_i = mi[iii]; if (memberid_ == item_i['id']) { if (item_i['url'] != 'null' && item_i['url'] != '') { menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png"); if(item_i['url'].indexOf("javascript")!=0){ menu.setHref(item_['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_i['url']+"')", target); }else{ menu.setHref(item_['id'], item_i['url'], target); } //menu.setHref(item_['id'], item_i['url'], target); index++; break; } } } } } if (!has_menu_item) { for (var ii = 0; ii < mi.length; ii++) { var item_ = mi[ii]; if (item['id'] == item_['id']) { if (item_['url'] != 'null' && item_['url'] != '') { if (!item['tplj'] || 'null' == item['tplj']) { menu.addNewChild(currTopPid, index, item['id'], item['name'], false, "null.png"); } else { menu.addNewChild(currTopPid, index, item['id'], item['name'], false, item['tplj']); } if(item_['url'].indexOf("javascript")!=0){ menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target); }else{ menu.setHref(item['id'], item_['url'], target); } //menu.setHref(item['id'], item_['url'], target); break; } } } } } else { for (var ii = 0; ii < mi.length; ii++) { var item_ = mi[ii]; if (item['id'] == item_['pid']) { has_menu_item = true; // if (item_['url'] != 'null' && item_['url'] != '') { var memberid_ = item_['id'].replace(/sub#[0-9]+?#/, ""); for (var iii = 0; iii < mi.length; iii++) { var item_i = mi[iii]; if (memberid_ == item_i['id']) { if (item_i['url'] != 'null' && item_i['url'] != '') { if (memberid_.indexOf("_search") > 0) { /* 先去掉 "[搜索]" ,解决 norm 菜单条里的 菜单名带 "[搜索]" 的问题。Lin menu.addNewChild(currTopPid, index, item_['id'], item_['name'] + '[搜索]', false, "null.png"); */ console.log(" + '[搜索]':1"); menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png"); } else { menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png"); } if(item_i['url'].indexOf("javascript")!=0){ menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_i['url']+"')", target); }else{ menu.setHref(item['id'], item_i['url'], target); } //menu.setHref(item_['id'], item_i['url'], target); index++; break; } } } // } } } if (!has_menu_item) { // if (!item['tplj'] || 'null' == item['tplj']) { // menu.addNewChild(currTopPid, index, item['id'], item['name'], false, "null.png"); // } else { // menu.addNewChild(currTopPid, index, item['id'], item['name'], false, item['tplj']); // } for (var ii = 0; ii < mi.length; ii++) { var item_ = mi[ii]; if (item['id'] == item_['id']) { has_menu_item = true; if (item_['url'] != 'null' && item_['url'] != '') { var memberid_ = item_['id'].replace(/sub#[0-9]+?#/, ""); for (var iii = 0; iii < mi.length; iii++) { var item_i = mi[iii]; if (memberid_ == item_i['id']) { if (item_i['url'] != 'null' && item_i['url'] != '') { if (memberid_.indexOf("_search") > 0) { /* 先去掉 "[搜索]" ,解决 norm 菜单条里的 菜单名带 "[搜索]" 的问题。Lin menu.addNewChild(currTopPid, index, item_['id'], item_['name'] + '[搜索]', false, "null.png"); */ console.log(" + '[搜索]':2"); menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png"); } else { if (!item['tplj'] || 'null' == item['tplj']) { menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png"); } else { menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, item['tplj']); } // menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png"); } if(item_i['url'].indexOf("javascript")!=0){ menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_i['url']+"')", target); }else{ menu.setHref(item['id'], item_i['url'], target); } //menu.setHref(item_['id'], item_i['url'], target); index++; break; } } } } } } } } } //编辑菜单,菜单模板 function showEditMenuWindow(gf) { if (!MenuSetting.needEditMenu) return var windowId = 8888 //为了加关闭按钮而修改; var w = 800; var h = 500; var x = 0; var y = 0; var url = '/main/yonghu/editMenu.jsp?bjId=' + MenuSetting.bjId var dhxWins = new dhtmlXWindows(); dhxWins.enableAutoViewport(true); var win = dhxWins.createWindow(windowId, x, y, w, h); win.keepInViewport(true); win.center(); win.setText('编辑菜单'); if (gf == 'gf') { url = '/main/sheji/gfCd.do?bjId=' + MenuSetting.bjId; win.setText('编辑菜单模板'); } win.attachURL(url); win.setModal(true); top.shortCutMenuDhxWins = dhxWins; //为了加关闭按钮而修改 } var menuDiv = document.getElementById(menuPrefix + MenuSetting.bjId); if (menuPrefix.indexOf("menuObj") == 0) { if((menu_.width+"").indexOf("%")>-1){ menuDiv.style.width = menu_.width; }else{ menuDiv.style.width = menu_.width + "px"; } console.log(menuDiv.style.width) } var menuID_ = key + MenuSetting.bjId; var menu = window["menu_" + menuID_] = new dhtmlXMenuObject(menuID_, "dhx_black"); menu.setIconsPath(MenuSetting.IconsPath); menu.setParentTitleObject(MenuSetting.ParentTitleObject); menu.setWzBjName('mbwz'); var target = MenuSetting.target; var menuitem = new Array(); var maxRootCount = 0; for (var i = 0; i < mi.length; i++) { if (mi[i] && mi[i].isRoot == '1') maxRootCount++; } // var maxTopMenuCount = menu_.max || MenuSetting.maxTopMenuCount; // if (maxTopMenuCount < maxRootCount) // maxTopMenuCount -= 2; var currTopMenuCount = 0; var index = 0; var currTopPid = 'dhxWebMenuTopId'; /**** * 查询id是否在按钮集合中 * 用来隐藏没有权限的菜单 */ function inMenuTree(id) { // console.log(mt) for (var i = 0; i < mt.length; i++) { // console.log(mt[i][0]==id) if (mt[i][0] == id) return true; } return false; } if (menuDiv.children[0]) { menuDiv.children[0].style.width = 'max-content'; } sortMenuInfo(mi); var isRoot_i = 0, isMore, createMore; var Menu_has_plugin_item=[]; for (var i = 0; i < mi.length; i++) { var item = mi[i]; if (item['id'] && item['id'].indexOf("plugin_") != -1) { var has_pid=false; if(Menu_has_plugin_item.length>0){ Menu_has_plugin_item.forEach(function(menu_div){ if(menu_div==item['pid']){ has_pid=true; } }); } if(has_pid==false){ Menu_has_plugin_item.push(item['pid']); } } } for (var i = 0; i < mi.length; i++) { var item = mi[i]; if (undefined == item); else { var change_menu_name=false; var change_menu_id=""; if(recordVal4Menu.div_plugin_menus.length>0){ recordVal4Menu.div_plugin_menus.forEach(function(menu_div){ if(menu_div.pid==item['id']){ item['name']=item['name'].replace('',""); item['name']=menu_div.name+''; change_menu_name=true; change_menu_id = menu_div.id; } }); } if(change_menu_name==false&&Menu_has_plugin_item.length>0){ Menu_has_plugin_item.forEach(function(menu_div){ if(menu_div==item['id']){ item['name']=item['name'].replace('',""); item['name']=item['name']+''; } }); } //个性菜单 if ('1' == item['isRoot']) { //console.log(item) if (!inMenuTree(item.id) && "null" != item.url) { continue }; //计算按钮所占宽度 var chs = ( menuDiv.children[0] || { children: [] }).children, width = 90; for (var i_ = 0; i_ < chs.length; i_++) { // width += getElementWidth(chs[i_]); if (i < mi.length - 1 && i_ == chs.length - 1) { //加上预判下一个按钮的位置 width += getElementWidth(chs[i_]); } } if (isMore && menuRootName != item['id']) { //出现了“更多”按钮的情况 setMenuItem(item); index++; } else if (createMore && menuRootName != item['id']) { isMore = true; createMore = false; menu.addNewSibling(currTopPid, 'more', '更多'); currTopPid = 'more'; index = 0; currTopMenuCount++; setMenuItem(item); index++; } else { //没出现“更多”按钮的情况 // if (currTopMenuCount < maxTopMenuCount - 1) { //没超过最多项 if (menuRootName == item['id']) { currTopPid = null }; // setMenuItem(item); if (menuPrefix != 'menuObj') { if (isRoot_i == 0) { currTopPid = null; isRoot_i = 1; } for (var ii = 0; ii < mi.length; ii++) { var item_ = mi[ii]; var item_id; if(change_menu_name==false){ item_id=item['id']; }else{ item_id=change_menu_id; } if (item_id == item_['id']) { if (item_['url'] != 'null' && item_['url'] != '') { menu.addNewSibling(currTopPid, item['id'], item['name']); currTopPid = item['id']; index = 0; currTopMenuCount++; if(item_['url'].indexOf("javascript")!=0){ menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target); }else{ menu.setHref(item['id'], item_['url'], target); } // menu.setHref(item['id'], item_['url'], target); break; } } } if (item['pid'] == '' && item['id'].indexOf("_search") < 0 && item['id'].indexOf("_add") < 0) { menu.addNewSibling(currTopPid, item['id'], item['name'], false); currTopPid = item['id']; } } else { // if (item['id'].indexOf("_search") > 0) { // menu.addNewSibling(currTopPid, item['id'], item['name'] + '[搜索]'); // } else { // menu.addNewSibling(currTopPid, item['id'], item['name']); // } for (var ii = 0; ii < mi.length; ii++) { var item_ = mi[ii]; var item_id; // if(change_menu_name==false){ item_id=item['id']; // }else{ // item_id=change_menu_id; // } if (item_id == item_['id']) { if (item_['url'] != 'null' && item_['url'] != '') { // menu.addNewSibling(currTopPid, item['id'], item['name']); // currTopPid = item['id']; index = 0; currTopMenuCount++; if (item['id'].indexOf("_search") > 0) { /* 先去掉 "[搜索]" ,解决 norm 菜单条里的 菜单名带 "[搜索]" 的问题。Lin menu.addNewSibling(currTopPid, item['id'], item['name'] + '[搜索]'); */ console.log(" + '[搜索]':3"); menu.addNewSibling(currTopPid, item['id'], item['name']); } else { menu.addNewSibling(currTopPid, item['id'], item['name']); } // if(item_['pid']=="admin"){ // var url_admin = item_['url']; // menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+url_admin+"')", target); // //menu.setHref(item['id'], url_admin, target); // }else{ if(item_['url'].indexOf("javascript")!=0){ menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target); }else{ menu.setHref(item['id'], item_['url'], target); } currTopPid = item['id']; // } // menu.setHref(item['id'], item_['url'], target); } else if(menuRootName == item['id']){ menu.addNewSibling(currTopPid, item['id'], item['name']); currTopPid = item['id']; } else { var has_item_sub = false; for (var iii = 0; iii < mi.length; iii++) { var item_sub = mi[iii]; if (item_id == item_sub['pid']) { var item_id_sub = item_sub['id'].replace(/sub#[0-9]+?#/, ""); for (var iiii = 0; iiii < mi.length; iiii++) { var item_sub_ = mi[iiii]; if (item_id_sub == item_sub_['id']) { if (item_sub_['url'] != 'null' && item_sub_['url'] != '') { if (item['id'].indexOf("_search") > 0) { /* 先去掉 "[搜索]" ,解决 norm 菜单条里的 菜单名带 "[搜索]" 的问题。Lin menu.addNewSibling(currTopPid, item['id'], item['name'] + '[搜索]'); */ console.log(" + '[搜索]':4"); menu.addNewSibling(currTopPid, item['id'], item['name']); } else { menu.addNewSibling(currTopPid, item['id'], item['name']); } has_item_sub=true; currTopPid = item['id']; break; } } } if(has_item_sub){ break; } } } } break; } } // currTopPid = item['id']; // index = 0; // currTopMenuCount++; } // } else { // if (!item['tplj'] || 'null' == item['tplj']) { // menu.addNewChild(currTopPid, index, item['id'], item['name']); // } else { // menu.addNewChild(currTopPid, index, item['id'], item['name'], false, item['tplj']); // } // index++; // // currTopMenuCount++; } } else { //2叶子2 // console.log(item) if ('shortcutMenu' != item['id'] && 'editMenu' != item['id'] && menuRootName == item['pid'] && item['tplj'] != "null") { // console.log(item) if (item['id'] == "editSYMb") { // editDesktopDef,这里应该不用改 -- sys.menu.xml 已经写了 url。Lin item['url'] = "javascript:wd.topWindow.gxhymWindow.userEdit('gf');"; } menu.addNewChild(item['pid'], index, item['id'] + "xxx", item['name'], false, item['tplj']); if ('1' == item['isLeaf']) { if ('editMenu' == item['id']) { menu.setHref(item['id'] + "xxx", item['url'], '_self'); } else { if(item['url'].indexOf("javascript")!=0){ menu.setHref(item['id']+"xxx", "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item['url']+"')", target); }else{ menu.setHref(item['id']+"xxx", item['url'], target); } //menu.setHref(item['id'] + "xxx", item['url'], target); } } index++; //编辑菜单 } else if ('editMenu' == item['id']) { // console.log(item) if (!item['tplj'] || 'null' == item['tplj']) { menu.addNewChild(item['pid'], index, item['id'], item['name'], false, "null.png"); menu.addNewSeparator(item['id']); } else { menu.addNewChild(item['pid'], index, item['id'], item['name'], false, item['tplj']); menu.addNewSeparator(item['id']); } index++; } else if ('shortcutMenu' == item['id']) { // console.log(item) if (!item['tplj'] || 'null' == item['tplj']) { menu.addNewChild(item['pid'], index, item['id'], item['name'], false, "null.png"); } else { menu.addNewChild(item['pid'], index, item['id'], item['name'], false, item['tplj']); } index++ } } //加href if ('1' == item['isLeaf']) { if (menuPrefix == 'menuObj') { if ('editMenu' == item['id']) { menu.setHref(item['id'], item['url'], '_self'); } else if (item['id'].indexOf("_search") > 0) { for (var ii = 0; ii < mi.length; ii++) { var item_ = mi[ii]; if (item['id'] == item_['id']) { if (item_['url'] != 'null' && item_['url'] != '' && item_['url'] != '111111111') { if(item_['url'].indexOf("javascript")!=0){ menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target); }else{ menu.setHref(item['id'], item_['url'], target); } //menu.setHref(item['id'], item_['url'], target); break; } } } } else { if(item['url'].indexOf("javascript")!=0){ for (var ii = 0; ii < mia.length; ii++) { var item_ = mia[ii]; if (item['id'] == item_['id']) { if (item_['url'] != 'null' && item_['url'] != '' && item_['url'] != '111111111') { if(item_['url'].indexOf("javascript")!=0){ menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target); }else{ menu.setHref(item['id'], item_['url'], target); } //menu.setHref(item['id'], item_['url'], target); break; } } } // menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item['url']+"')", target); }else{ menu.setHref(item['id'], item['url'], target); } //menu.setHref(item['id'], item['url'], target); } } } //获取最后一个元素 if (menuDiv.children[0] && menuDiv.children[0].children.length > 0 && !isMore) { var itemWrapper = menuDiv.children[0]; var childs = itemWrapper.children; var menuBound = itemWrapper.getBoundingClientRect(), endOfs = menuDiv.getBoundingClientRect().right; if (menuDiv.querySelector("." + menuSepartorClass)) { endOfs = menuDiv.querySelector("." + menuSepartorClass).getBoundingClientRect().left; } else if (menuDiv.querySelector(".largeIcon-search")) { endOfs = menuDiv.querySelector(".largeIcon-search").getBoundingClientRect().left; } else if (menuDiv.querySelector(".largeIcon-start")) { endOfs = menuDiv.querySelector(".largeIcon-start").getBoundingClientRect().left; } endOfs -= 10; //平铺div var oriCss = itemWrapper.style.cssText; itemWrapper.style.width = menuBound.width * 10 + "px"; for (var _i_ = childs.length - 1; _i_ > 0; _i_--) { var _ele_ = childs[_i_], eBound = _ele_.getBoundingClientRect(); if (eBound.right >= endOfs || (createMore && eBound.right + 80 >= endOfs)) { //超过宽度或者是更多按钮 console.log("remove__" + item['id']) _ele_.style.display = "none"; // menu.removeItem(item['id']); createMore = true; //创建more按钮 i--; //回退一个菜单初始化 } } itemWrapper.style.cssText = oriCss; } } } for (var i = 0; i < mi.length; i++) { var item = mi[i]; if (item['id'] && item['id'].indexOf("plugin_") != -1) { var itemname=item['name']; if(item['tips']!=null){ itemname="