menuFly.js 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410
  1. //
  2. //var MenuSetting={
  3. // bjId:440141088,
  4. // IconsPath:'/zhyz/image/icon/',
  5. // 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'}",
  6. // target:"win2",
  7. // maxTopMenuCount:5,
  8. // needEditMenu:true
  9. //}
  10. //
  11. var menuSepartorClass = "menu-seperator";
  12. //var menuSepartorClass = "menu-split";
  13. function popupWindow(url, title, width, height, minHeight, maxHeight) {
  14. var params = {
  15. 'show': ["wdDialog"],
  16. 'hide': [],
  17. 'url': url,
  18. 'title': title,
  19. 'width': width,
  20. 'height': height
  21. }
  22. if (maxHeight && minHeight) {
  23. params.minHeight = minHeight;
  24. params.maxHeight = maxHeight;
  25. }
  26. console.log(params);
  27. wd.display.showComponent(params);
  28. // var windowId = new Date().getTime();var x = 0;
  29. // var y = 0;
  30. // var dhxWins = new dhtmlXWindows();
  31. // dhxWins.enableAutoViewport(true);
  32. // var win = dhxWins.createWindow(windowId, x, y, width, height);
  33. // win.keepInViewport(true);
  34. // win.center();
  35. // win.setText('<span style="font:14px;line-height:30px;" >' + title + '</span>');
  36. // win.attachURL(url);
  37. // win.setModal(true);
  38. // top.shortCutMenuDhxWins = dhxWins;
  39. }
  40. //排序
  41. function sortMenuInfo(mi) {
  42. //排序出问题了,达闲再处理
  43. if (true)
  44. return;
  45. // 排序开始
  46. // 思路:定义一个数组储存排序好的,定义menuInfo1对menuInfo进行排序
  47. var k1 = 1;
  48. // 储存排序
  49. var menuInfo1 = new Array();
  50. // 储存下标
  51. var count = new Array();
  52. //定义好顺序的数组
  53. var arry = new Array('公共', '个人首页', '修改密码', '图书馆', '科研处', '编辑首页', '编辑菜单', '个人网站编辑', '用户管理', '编辑首页模板', '编辑菜单模板', '综合校情及智能决策分析', '设置', '流程', '模板编辑', '编辑菜单(新)', '校务', '人员', '教务', '科研', '住宿', '内容', '财务', '后勤', '餐饮', '后台管理');
  54. //对menuInfo进行排序,menuInfo1储存已经排序好的也存在arry中的一部分
  55. for (var i = 0; i < arry.length; i++) {
  56. for (var k = 0; k < mi.length; k++) {
  57. //找出与事先定义好的顺序 并且保证是下拉框出现
  58. if (arry[i] == mi[k]['name'] && mi[k]['isRoot'] == 0) {
  59. menuInfo1[k1] = mi[k];
  60. count[k1] = k;
  61. k1++;
  62. }
  63. //确保公共(即下拉菜单的一级菜单)为第一个出现 这样才能先加载一级再加载二级。
  64. if (arry[0] == mi[k]['name']) {
  65. //console.log(mi[k]['name']);
  66. menuInfo1[0] = mi[k];
  67. count[0] = k;
  68. }
  69. }
  70. }
  71. //获取不存在arry中的那一部分 推到已经排好序的menuInfo1数组后面
  72. for (var i = 0; i < mi.length; i++) {
  73. if (count.indexOf(i) == -1) {
  74. menuInfo1[k1] = mi[i];
  75. k1++;
  76. }
  77. }
  78. // console.log(menuInfo1);
  79. // console.log(mi.concat());
  80. //删除原本的数组内容
  81. mi.splice(0, mi.length);
  82. for (var i = 0; i < menuInfo1.length; i++) {
  83. // 把排序好的数组添加进原来的数组
  84. mi.push(menuInfo1[i])
  85. }
  86. //console.log(mi);
  87. return mi;
  88. //mi = menuInfo1;
  89. //排序结束。
  90. }
  91. var scStart = typeof shortcutStartInfo == 'undefined' ? "{}" : shortcutStartInfo,
  92. scSearch = typeof shortcutSearchInfo == 'undefined' ? "{}" : shortcutSearchInfo;
  93. var recordVal4Menu;
  94. try {
  95. recordVal4Menu = eval("wdRecordVal" + MenuSetting.bjId);
  96. recordVal4Menu.div_plugin_menus = recordVal4Menu.div_plugin_menus||[];
  97. recordVal4Menu.width = recordVal4Menu.width || {
  98. value: "50%"
  99. };
  100. } catch (e) { }
  101. recordVal4Menu.state = recordVal4Menu.state || {
  102. value: 'searchMenu',
  103. default:
  104. false
  105. };
  106. var menus;
  107. function initMenuTotally() {
  108. menus = {
  109. menuObj: {
  110. info: menuInfo,
  111. infoAll: menuInfoAll,
  112. tree: menuTree,
  113. shortCut: shortcutMenuInfo,
  114. width: recordVal4Menu.width.value
  115. },
  116. startMenu: {
  117. info: startInfo,
  118. infoAll: startInfoAll,
  119. tree: startTree,
  120. shortCut: scStart,
  121. btn: {
  122. className: 'largeIcon-start cursor-click',
  123. text: '当前是“开始”\n点击切换到“搜索”'
  124. }
  125. },
  126. searchMenu: {
  127. info: searchInfo,
  128. infoAll: searchInfoAll,
  129. tree: searchTree,
  130. shortCut: scSearch,
  131. btn: {
  132. className: 'largeIcon-search cursor-click',
  133. text: '当前是“搜索”\n点击切换到“开始”'
  134. }
  135. }
  136. };
  137. recordVal4Menu.state = recordVal4Menu.state || {
  138. value: 'searchMenu',
  139. default:
  140. false
  141. };
  142. $(".menu-div:hidden").remove()
  143. // console.table(recordVal4Menu)
  144. for (var key in menus) {
  145. (function (k, m) {
  146. //if (k == 'menuObj' || recordVal4Menu.state.value == k) {
  147. document.getElementById(k + MenuSetting.bjId).style.display = "";
  148. initMenu(k, m);
  149. //}
  150. })(key, menus[key]);
  151. }
  152. function initMenu(menuPrefix, menu_) {
  153. var dimpointClass="icon-dimPoint";//灰点
  154. var mt = menu_.tree,
  155. mi = menu_.info,
  156. mia = menu_.infoAll,
  157. scmi = menu_.shortCut;
  158. try {
  159. //console.log(MenuSetting)
  160. function setMenuItem(item) {
  161. var has_menu_item = false;
  162. if (menuPrefix != 'menuObj') {
  163. if (isRoot_i == 0) {
  164. currTopPid = null;
  165. isRoot_i = 1;
  166. }
  167. for (var ii = 0; ii < mi.length; ii++) {
  168. var item_ = mi[ii];
  169. if (item['id'] == item_['pid']) {
  170. has_menu_item = true;
  171. var memberid_ = item_['id'].replace(/sub#[0-9]+?#/, "");
  172. for (var iii = 0; iii < mi.length; iii++) {
  173. var item_i = mi[iii];
  174. if (memberid_ == item_i['id']) {
  175. if (item_i['url'] != 'null' && item_i['url'] != '') {
  176. menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png");
  177. if(item_i['url'].indexOf("javascript")!=0){
  178. menu.setHref(item_['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_i['url']+"')", target);
  179. }else{
  180. menu.setHref(item_['id'], item_i['url'], target);
  181. }
  182. //menu.setHref(item_['id'], item_i['url'], target);
  183. index++;
  184. break;
  185. }
  186. }
  187. }
  188. }
  189. }
  190. if (!has_menu_item) {
  191. for (var ii = 0; ii < mi.length; ii++) {
  192. var item_ = mi[ii];
  193. if (item['id'] == item_['id']) {
  194. if (item_['url'] != 'null' && item_['url'] != '') {
  195. if (!item['tplj'] || 'null' == item['tplj']) {
  196. menu.addNewChild(currTopPid, index, item['id'], item['name'], false, "null.png");
  197. } else {
  198. menu.addNewChild(currTopPid, index, item['id'], item['name'], false, item['tplj']);
  199. }
  200. if(item_['url'].indexOf("javascript")!=0){
  201. menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target);
  202. }else{
  203. menu.setHref(item['id'], item_['url'], target);
  204. }
  205. //menu.setHref(item['id'], item_['url'], target);
  206. break;
  207. }
  208. }
  209. }
  210. }
  211. } else {
  212. for (var ii = 0; ii < mi.length; ii++) {
  213. var item_ = mi[ii];
  214. if (item['id'] == item_['pid']) {
  215. has_menu_item = true;
  216. // if (item_['url'] != 'null' && item_['url'] != '') {
  217. var memberid_ = item_['id'].replace(/sub#[0-9]+?#/, "");
  218. for (var iii = 0; iii < mi.length; iii++) {
  219. var item_i = mi[iii];
  220. if (memberid_ == item_i['id']) {
  221. if (item_i['url'] != 'null' && item_i['url'] != '') {
  222. if (memberid_.indexOf("_search") > 0) {
  223. /* 先去掉 "[搜索]" ,解决 norm 菜单条里的 菜单名带 "[搜索]" 的问题。Lin
  224. menu.addNewChild(currTopPid, index, item_['id'], item_['name'] + '[搜索]', false, "null.png");
  225. */
  226. console.log(" + '[搜索]':1");
  227. menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png");
  228. } else {
  229. menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png");
  230. }
  231. if(item_i['url'].indexOf("javascript")!=0){
  232. menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_i['url']+"')", target);
  233. }else{
  234. menu.setHref(item['id'], item_i['url'], target);
  235. }
  236. //menu.setHref(item_['id'], item_i['url'], target);
  237. index++;
  238. break;
  239. }
  240. }
  241. }
  242. // }
  243. }
  244. }
  245. if (!has_menu_item) {
  246. // if (!item['tplj'] || 'null' == item['tplj']) {
  247. // menu.addNewChild(currTopPid, index, item['id'], item['name'], false, "null.png");
  248. // } else {
  249. // menu.addNewChild(currTopPid, index, item['id'], item['name'], false, item['tplj']);
  250. // }
  251. for (var ii = 0; ii < mi.length; ii++) {
  252. var item_ = mi[ii];
  253. if (item['id'] == item_['id']) {
  254. has_menu_item = true;
  255. if (item_['url'] != 'null' && item_['url'] != '') {
  256. var memberid_ = item_['id'].replace(/sub#[0-9]+?#/, "");
  257. for (var iii = 0; iii < mi.length; iii++) {
  258. var item_i = mi[iii];
  259. if (memberid_ == item_i['id']) {
  260. if (item_i['url'] != 'null' && item_i['url'] != '') {
  261. if (memberid_.indexOf("_search") > 0) {
  262. /* 先去掉 "[搜索]" ,解决 norm 菜单条里的 菜单名带 "[搜索]" 的问题。Lin
  263. menu.addNewChild(currTopPid, index, item_['id'], item_['name'] + '[搜索]', false, "null.png");
  264. */
  265. console.log(" + '[搜索]':2");
  266. menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png");
  267. } else {
  268. if (!item['tplj'] || 'null' == item['tplj']) {
  269. menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png");
  270. } else {
  271. menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, item['tplj']);
  272. }
  273. // menu.addNewChild(currTopPid, index, item_['id'], item_['name'], false, "null.png");
  274. }
  275. if(item_i['url'].indexOf("javascript")!=0){
  276. menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_i['url']+"')", target);
  277. }else{
  278. menu.setHref(item['id'], item_i['url'], target);
  279. }
  280. //menu.setHref(item_['id'], item_i['url'], target);
  281. index++;
  282. break;
  283. }
  284. }
  285. }
  286. }
  287. }
  288. }
  289. }
  290. }
  291. }
  292. //编辑菜单,菜单模板
  293. function showEditMenuWindow(gf) {
  294. if (!MenuSetting.needEditMenu)
  295. return
  296. var windowId = 8888 //为了加关闭按钮而修改;
  297. var w = 800;
  298. var h = 500;
  299. var x = 0;
  300. var y = 0;
  301. var url = '/main/yonghu/editMenu.jsp?bjId=' + MenuSetting.bjId
  302. var dhxWins = new dhtmlXWindows();
  303. dhxWins.enableAutoViewport(true);
  304. var win = dhxWins.createWindow(windowId, x, y, w, h);
  305. win.keepInViewport(true);
  306. win.center();
  307. win.setText('<span style="font:14px;line-height:30px;" >编辑菜单</span>');
  308. if (gf == 'gf') {
  309. url = '/main/sheji/gfCd.do?bjId=' + MenuSetting.bjId;
  310. win.setText('<span style="font:14px;line-height:30px;" >编辑菜单模板</span>');
  311. }
  312. win.attachURL(url);
  313. win.setModal(true);
  314. top.shortCutMenuDhxWins = dhxWins; //为了加关闭按钮而修改
  315. }
  316. var menuDiv = document.getElementById(menuPrefix + MenuSetting.bjId);
  317. if (menuPrefix.indexOf("menuObj") == 0) {
  318. if((menu_.width+"").indexOf("%")>-1){
  319. menuDiv.style.width = menu_.width;
  320. }else{
  321. menuDiv.style.width = menu_.width + "px";
  322. }
  323. console.log(menuDiv.style.width)
  324. }
  325. var menuID_ = key + MenuSetting.bjId;
  326. var menu = window["menu_" + menuID_] = new dhtmlXMenuObject(menuID_, "dhx_black");
  327. menu.setIconsPath(MenuSetting.IconsPath);
  328. menu.setParentTitleObject(MenuSetting.ParentTitleObject);
  329. menu.setWzBjName('mbwz');
  330. var target = MenuSetting.target;
  331. var menuitem = new Array();
  332. var maxRootCount = 0;
  333. for (var i = 0; i < mi.length; i++) {
  334. if (mi[i] && mi[i].isRoot == '1')
  335. maxRootCount++;
  336. }
  337. // var maxTopMenuCount = menu_.max || MenuSetting.maxTopMenuCount;
  338. // if (maxTopMenuCount < maxRootCount)
  339. // maxTopMenuCount -= 2;
  340. var currTopMenuCount = 0;
  341. var index = 0;
  342. var currTopPid = 'dhxWebMenuTopId';
  343. /****
  344. * 查询id是否在按钮集合中
  345. * 用来隐藏没有权限的菜单
  346. */
  347. function inMenuTree(id) {
  348. // console.log(mt)
  349. for (var i = 0; i < mt.length; i++) {
  350. // console.log(mt[i][0]==id)
  351. if (mt[i][0] == id)
  352. return true;
  353. }
  354. return false;
  355. }
  356. if (menuDiv.children[0]) {
  357. menuDiv.children[0].style.width = 'max-content';
  358. }
  359. sortMenuInfo(mi);
  360. var isRoot_i = 0,
  361. isMore,
  362. createMore;
  363. var Menu_has_plugin_item=[];
  364. for (var i = 0; i < mi.length; i++) {
  365. var item = mi[i];
  366. if (item['id'] && item['id'].indexOf("plugin_") != -1) {
  367. var has_pid=false;
  368. if(Menu_has_plugin_item.length>0){
  369. Menu_has_plugin_item.forEach(function(menu_div){
  370. if(menu_div==item['pid']){
  371. has_pid=true;
  372. }
  373. });
  374. }
  375. if(has_pid==false){
  376. Menu_has_plugin_item.push(item['pid']);
  377. }
  378. }
  379. }
  380. for (var i = 0; i < mi.length; i++) {
  381. var item = mi[i];
  382. if (undefined == item);
  383. else {
  384. var change_menu_name=false;
  385. var change_menu_id="";
  386. if(recordVal4Menu.div_plugin_menus.length>0){
  387. recordVal4Menu.div_plugin_menus.forEach(function(menu_div){
  388. if(menu_div.pid==item['id']){
  389. item['name']=item['name'].replace('<span class="'+dimpointClass+'" style="margin-right: -12px;position: relative;"></span>',"");
  390. item['name']=menu_div.name+'<span class="'+dimpointClass+'" style="margin-right: -12px;position: relative;"></span>';
  391. change_menu_name=true;
  392. change_menu_id = menu_div.id;
  393. }
  394. });
  395. }
  396. if(change_menu_name==false&&Menu_has_plugin_item.length>0){
  397. Menu_has_plugin_item.forEach(function(menu_div){
  398. if(menu_div==item['id']){
  399. item['name']=item['name'].replace('<span class="'+dimpointClass+'" style="margin-right: -12px;position: relative;"></span>',"");
  400. item['name']=item['name']+'<span class="'+dimpointClass+'" style="margin-right: -12px;position: relative;"></span>';
  401. }
  402. });
  403. }
  404. //个性菜单
  405. if ('1' == item['isRoot']) {
  406. //console.log(item)
  407. if (!inMenuTree(item.id) && "null" != item.url) {
  408. continue
  409. };
  410. //计算按钮所占宽度
  411. var chs = (
  412. menuDiv.children[0] || {
  413. children: []
  414. }).children,
  415. width = 90;
  416. for (var i_ = 0; i_ < chs.length; i_++) { //
  417. width += getElementWidth(chs[i_]);
  418. if (i < mi.length - 1 && i_ == chs.length - 1) { //加上预判下一个按钮的位置
  419. width += getElementWidth(chs[i_]);
  420. }
  421. }
  422. if (isMore && menuRootName != item['id']) { //出现了“更多”按钮的情况
  423. setMenuItem(item);
  424. index++;
  425. } else if (createMore && menuRootName != item['id']) {
  426. isMore = true;
  427. createMore = false;
  428. menu.addNewSibling(currTopPid, 'more', '更多');
  429. currTopPid = 'more';
  430. index = 0;
  431. currTopMenuCount++;
  432. setMenuItem(item);
  433. index++;
  434. } else { //没出现“更多”按钮的情况
  435. // if (currTopMenuCount < maxTopMenuCount - 1) { //没超过最多项
  436. if (menuRootName == item['id']) {
  437. currTopPid = null
  438. };
  439. // setMenuItem(item);
  440. if (menuPrefix != 'menuObj') {
  441. if (isRoot_i == 0) {
  442. currTopPid = null;
  443. isRoot_i = 1;
  444. }
  445. for (var ii = 0; ii < mi.length; ii++) {
  446. var item_ = mi[ii];
  447. var item_id;
  448. if(change_menu_name==false){
  449. item_id=item['id'];
  450. }else{
  451. item_id=change_menu_id;
  452. }
  453. if (item_id == item_['id']) {
  454. if (item_['url'] != 'null' && item_['url'] != '') {
  455. menu.addNewSibling(currTopPid, item['id'], item['name']);
  456. currTopPid = item['id'];
  457. index = 0;
  458. currTopMenuCount++;
  459. if(item_['url'].indexOf("javascript")!=0){
  460. menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target);
  461. }else{
  462. menu.setHref(item['id'], item_['url'], target);
  463. }
  464. // menu.setHref(item['id'], item_['url'], target);
  465. break;
  466. }
  467. }
  468. }
  469. if (item['pid'] == '' && item['id'].indexOf("_search") < 0 && item['id'].indexOf("_add") < 0) {
  470. menu.addNewSibling(currTopPid, item['id'], item['name'], false);
  471. currTopPid = item['id'];
  472. }
  473. } else {
  474. // if (item['id'].indexOf("_search") > 0) {
  475. // menu.addNewSibling(currTopPid, item['id'], item['name'] + '[搜索]');
  476. // } else {
  477. // menu.addNewSibling(currTopPid, item['id'], item['name']);
  478. // }
  479. for (var ii = 0; ii < mi.length; ii++) {
  480. var item_ = mi[ii];
  481. var item_id;
  482. // if(change_menu_name==false){
  483. item_id=item['id'];
  484. // }else{
  485. // item_id=change_menu_id;
  486. // }
  487. if (item_id == item_['id']) {
  488. if (item_['url'] != 'null' && item_['url'] != '') {
  489. // menu.addNewSibling(currTopPid, item['id'], item['name']);
  490. // currTopPid = item['id'];
  491. index = 0;
  492. currTopMenuCount++;
  493. if (item['id'].indexOf("_search") > 0) {
  494. /* 先去掉 "[搜索]" ,解决 norm 菜单条里的 菜单名带 "[搜索]" 的问题。Lin
  495. menu.addNewSibling(currTopPid, item['id'], item['name'] + '[搜索]');
  496. */
  497. console.log(" + '[搜索]':3");
  498. menu.addNewSibling(currTopPid, item['id'], item['name']);
  499. } else {
  500. menu.addNewSibling(currTopPid, item['id'], item['name']);
  501. }
  502. // if(item_['pid']=="admin"){
  503. // var url_admin = item_['url'];
  504. // menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+url_admin+"')", target);
  505. // //menu.setHref(item['id'], url_admin, target);
  506. // }else{
  507. if(item_['url'].indexOf("javascript")!=0){
  508. menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target);
  509. }else{
  510. menu.setHref(item['id'], item_['url'], target);
  511. }
  512. currTopPid = item['id'];
  513. // }
  514. // menu.setHref(item['id'], item_['url'], target);
  515. }
  516. else if(menuRootName == item['id']){
  517. menu.addNewSibling(currTopPid, item['id'], item['name']);
  518. currTopPid = item['id'];
  519. }
  520. else {
  521. var has_item_sub = false;
  522. for (var iii = 0; iii < mi.length; iii++) {
  523. var item_sub = mi[iii];
  524. if (item_id == item_sub['pid']) {
  525. var item_id_sub = item_sub['id'].replace(/sub#[0-9]+?#/, "");
  526. for (var iiii = 0; iiii < mi.length; iiii++) {
  527. var item_sub_ = mi[iiii];
  528. if (item_id_sub == item_sub_['id']) {
  529. if (item_sub_['url'] != 'null' && item_sub_['url'] != '') {
  530. if (item['id'].indexOf("_search") > 0) {
  531. /* 先去掉 "[搜索]" ,解决 norm 菜单条里的 菜单名带 "[搜索]" 的问题。Lin
  532. menu.addNewSibling(currTopPid, item['id'], item['name'] + '[搜索]');
  533. */
  534. console.log(" + '[搜索]':4");
  535. menu.addNewSibling(currTopPid, item['id'], item['name']);
  536. } else {
  537. menu.addNewSibling(currTopPid, item['id'], item['name']);
  538. }
  539. has_item_sub=true;
  540. currTopPid = item['id'];
  541. break;
  542. }
  543. }
  544. }
  545. if(has_item_sub){
  546. break;
  547. }
  548. }
  549. }
  550. }
  551. break;
  552. }
  553. }
  554. // currTopPid = item['id'];
  555. // index = 0;
  556. // currTopMenuCount++;
  557. }
  558. // } else {
  559. // if (!item['tplj'] || 'null' == item['tplj']) {
  560. // menu.addNewChild(currTopPid, index, item['id'], item['name']);
  561. // } else {
  562. // menu.addNewChild(currTopPid, index, item['id'], item['name'], false, item['tplj']);
  563. // }
  564. // index++;
  565. // // currTopMenuCount++;
  566. }
  567. } else { //2叶子2
  568. // console.log(item)
  569. if ('shortcutMenu' != item['id'] && 'editMenu' != item['id'] && menuRootName == item['pid'] && item['tplj'] != "null") {
  570. // console.log(item)
  571. if (item['id'] == "editSYMb") { // editDesktopDef,这里应该不用改 -- sys.menu.xml 已经写了 url。Lin
  572. item['url'] = "javascript:wd.topWindow.gxhymWindow.userEdit('gf');";
  573. }
  574. menu.addNewChild(item['pid'], index, item['id'] + "xxx", item['name'], false, item['tplj']);
  575. if ('1' == item['isLeaf']) {
  576. if ('editMenu' == item['id']) {
  577. menu.setHref(item['id'] + "xxx", item['url'], '_self');
  578. } else {
  579. if(item['url'].indexOf("javascript")!=0){
  580. menu.setHref(item['id']+"xxx", "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item['url']+"')", target);
  581. }else{
  582. menu.setHref(item['id']+"xxx", item['url'], target);
  583. }
  584. //menu.setHref(item['id'] + "xxx", item['url'], target);
  585. }
  586. }
  587. index++;
  588. //编辑菜单
  589. } else if ('editMenu' == item['id']) {
  590. // console.log(item)
  591. if (!item['tplj'] || 'null' == item['tplj']) {
  592. menu.addNewChild(item['pid'], index, item['id'], item['name'], false, "null.png");
  593. menu.addNewSeparator(item['id']);
  594. } else {
  595. menu.addNewChild(item['pid'], index, item['id'], item['name'], false, item['tplj']);
  596. menu.addNewSeparator(item['id']);
  597. }
  598. index++;
  599. } else if ('shortcutMenu' == item['id']) {
  600. // console.log(item)
  601. if (!item['tplj'] || 'null' == item['tplj']) {
  602. menu.addNewChild(item['pid'], index, item['id'], item['name'], false, "null.png");
  603. } else {
  604. menu.addNewChild(item['pid'], index, item['id'], item['name'], false, item['tplj']);
  605. }
  606. index++
  607. }
  608. }
  609. //加href
  610. if ('1' == item['isLeaf']) {
  611. if (menuPrefix == 'menuObj') {
  612. if ('editMenu' == item['id']) {
  613. menu.setHref(item['id'], item['url'], '_self');
  614. } else if (item['id'].indexOf("_search") > 0) {
  615. for (var ii = 0; ii < mi.length; ii++) {
  616. var item_ = mi[ii];
  617. if (item['id'] == item_['id']) {
  618. if (item_['url'] != 'null' && item_['url'] != '' && item_['url'] != '111111111') {
  619. if(item_['url'].indexOf("javascript")!=0){
  620. menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target);
  621. }else{
  622. menu.setHref(item['id'], item_['url'], target);
  623. }
  624. //menu.setHref(item['id'], item_['url'], target);
  625. break;
  626. }
  627. }
  628. }
  629. } else {
  630. if(item['url'].indexOf("javascript")!=0){
  631. for (var ii = 0; ii < mia.length; ii++) {
  632. var item_ = mia[ii];
  633. if (item['id'] == item_['id']) {
  634. if (item_['url'] != 'null' && item_['url'] != '' && item_['url'] != '111111111') {
  635. if(item_['url'].indexOf("javascript")!=0){
  636. menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target);
  637. }else{
  638. menu.setHref(item['id'], item_['url'], target);
  639. }
  640. //menu.setHref(item['id'], item_['url'], target);
  641. break;
  642. }
  643. }
  644. }
  645. // menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item['url']+"')", target);
  646. }else{
  647. menu.setHref(item['id'], item['url'], target);
  648. }
  649. //menu.setHref(item['id'], item['url'], target);
  650. }
  651. }
  652. }
  653. //获取最后一个元素
  654. if (menuDiv.children[0] && menuDiv.children[0].children.length > 0 && !isMore) {
  655. var itemWrapper = menuDiv.children[0];
  656. var childs = itemWrapper.children;
  657. var menuBound = itemWrapper.getBoundingClientRect(),
  658. endOfs = menuDiv.getBoundingClientRect().right;
  659. if (menuDiv.querySelector("." + menuSepartorClass)) {
  660. endOfs = menuDiv.querySelector("." + menuSepartorClass).getBoundingClientRect().left;
  661. } else if (menuDiv.querySelector(".largeIcon-search")) {
  662. endOfs = menuDiv.querySelector(".largeIcon-search").getBoundingClientRect().left;
  663. } else if (menuDiv.querySelector(".largeIcon-start")) {
  664. endOfs = menuDiv.querySelector(".largeIcon-start").getBoundingClientRect().left;
  665. }
  666. endOfs -= 10;
  667. //平铺div
  668. var oriCss = itemWrapper.style.cssText;
  669. itemWrapper.style.width = menuBound.width * 10 + "px";
  670. for (var _i_ = childs.length - 1; _i_ > 0; _i_--) {
  671. var _ele_ = childs[_i_],
  672. eBound = _ele_.getBoundingClientRect();
  673. if (eBound.right >= endOfs || (createMore && eBound.right + 80 >= endOfs)) { //超过宽度或者是更多按钮
  674. console.log("remove__" + item['id'])
  675. _ele_.style.display = "none";
  676. // menu.removeItem(item['id']);
  677. createMore = true; //创建more按钮
  678. i--; //回退一个菜单初始化
  679. }
  680. }
  681. itemWrapper.style.cssText = oriCss;
  682. }
  683. }
  684. }
  685. for (var i = 0; i < mi.length; i++) {
  686. var item = mi[i];
  687. if (item['id'] && item['id'].indexOf("plugin_") != -1) {
  688. var itemname=item['name'];
  689. if(item['tips']!=null){
  690. itemname="<div name=\"plugin_tips\" wdTitle='"+item['tips']+"' wdId='"+item['id']+"' wdPid='"+item['pid']+"' onclick='change_menu_name(this)'>" + item['name'] + "</div>";
  691. }else{
  692. itemname="<div name=\"plugin_tips\" wdId='"+item['id']+"' wdPid='"+item['pid']+"' onclick='change_menu_name(this)'>" + item['name'] + "</div>";
  693. }
  694. // itemname+='<span class="icon-highlightPoint" style="margin-right: 8px;margin-top: -25px;"></span>';
  695. if (!item['tplj'] || 'null' == item['tplj']) {
  696. menu.addNewChild(item['pid'], index, item['id'], itemname, false, "null.png");
  697. } else {
  698. menu.addNewChild(item['pid'], index, item['id'], itemname, false, item['tplj']);
  699. }
  700. menu.setHref(item['id'], item['url'], '_self');
  701. if(item['tips']!=null&&(Menu_has_plugin_tips==""||Menu_has_plugin_tips=="null"||Menu_has_plugin_tips=="1")){
  702. menu.setTooltip(item['id'], item['tips']);
  703. }
  704. }
  705. }
  706. //初始化快捷菜單下拉
  707. for (var index in scmi) {
  708. var value = scmi[index]["members"];
  709. if (index != "menuRoot") {
  710. var menupid;
  711. var menuchilenum = 0;
  712. for (i in value) {
  713. var memberid = value[i]["memberId"];
  714. var havepermission = false;
  715. var memberid_ = memberid.replace(/#[0-9]+?#/, "");
  716. for (var j = 0; j < mia.length; j++) {
  717. if (memberid_ == mia[j]["id"]) {
  718. havepermission = true;
  719. break;
  720. }
  721. }
  722. if (havepermission) {
  723. if (menuPrefix == 'menuObj' && memberid_.indexOf("_search") == -1) {
  724. for (var ii = 0; ii < mia.length; ii++) {
  725. var item_ = mia[ii];
  726. if (memberid_ == item_['id']) {
  727. if (menuPrefix == 'menuObj' && memberid_.indexOf("_search") > 0) {
  728. /* 先去掉 "[搜索]" ,解决 norm 菜单条里的 菜单名带 "[搜索]" 的问题。Lin
  729. menu.addNewChild(scmi[index]["groupId"], 999, value[i]["memberId"], value[i]["name"] + '[搜索]', false, "null.png");
  730. */
  731. console.log(" + '[搜索]':5");
  732. menu.addNewChild(scmi[index]["groupId"], 999, value[i]["memberId"], value[i]["name"], false, "null.png");
  733. } else {
  734. menu.addNewChild(scmi[index]["groupId"], 999, value[i]["memberId"], value[i]["name"], false, "null.png");
  735. }
  736. menuchilenum++;
  737. if(item_['url'].indexOf("javascript")!=0){
  738. menu.setHref(value[i]["memberId"], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target);
  739. }else{
  740. menu.setHref(value[i]["memberId"], item_['url'], target);
  741. }
  742. //menu.setHref(value[i]["memberId"], item_["url"], target);
  743. break;
  744. }
  745. }
  746. } else {
  747. for (var ii = 0; ii < mi.length; ii++) {
  748. var item_ = mi[ii];
  749. if (memberid_ == item_['id']) {
  750. if (menuPrefix == 'menuObj' && memberid_.indexOf("_search") > 0) {
  751. /* 先去掉 "[搜索]" ,解决 norm 菜单条里的 菜单名带 "[搜索]" 的问题。Lin
  752. menu.addNewChild(scmi[index]["groupId"], 999, value[i]["memberId"], value[i]["name"] + '[搜索]', false, "null.png");
  753. */
  754. console.log(" + '[搜索]':6");
  755. menu.addNewChild(scmi[index]["groupId"], 999, value[i]["memberId"], value[i]["name"], false, "null.png");
  756. } else {
  757. menu.addNewChild(scmi[index]["groupId"], 999, value[i]["memberId"], value[i]["name"], false, "null.png");
  758. }
  759. menuchilenum++;
  760. if(item_['url'].indexOf("javascript")!=0){
  761. menu.setHref(value[i]["memberId"], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item_['url']+"')", target);
  762. }else{
  763. menu.setHref(value[i]["memberId"], item_['url'], target);
  764. }
  765. // menu.setHref(value[i]["memberId"], item_["url"], target);
  766. break;
  767. }
  768. }
  769. }
  770. // menu.addNewChild(scmi[index]["groupId"], 999, value[i]["memberId"], value[i]["name"]);
  771. }
  772. }
  773. if (menuchilenum == 0) {
  774. menu.removeItem(scmi[index]["groupId"]);
  775. }
  776. }
  777. }
  778. // try {
  779. // // 编辑首页模板
  780. // for (var i = mi.length - 1; i >= 0; i--) {
  781. // item = mi[i];
  782. // if (undefined == item);
  783. // else {
  784. // if ('shortcutMenu' != item['id'] && 'editMenu' != item['id'] && menuRootName == item['pid'] && 'null' != item['tplj']) {
  785. // //console.log(item);
  786. // try {
  787. // menu.addNewSeparator(item['id']);
  788. // } catch (e) {
  789. // console.log(e);
  790. // }
  791. // break;
  792. // }
  793. // }
  794. // }
  795. // } catch (e) {
  796. // console.log(e)
  797. // }
  798. var n = 0;
  799. var jsonString = JSON.stringify(scmi);
  800. if (jsonString == "{}") {
  801. for (var i = 0; i < mi.length; i++) {
  802. var item = mi[i];
  803. if (undefined == item);
  804. else {
  805. if (menuRootName != item['id'] && 'null' == item['tplj']) {
  806. var tem = 0;
  807. for (var ii = 0; ii < mia.length; ii++) {
  808. var item2 = mia[ii];
  809. if (item2['pid'] == item['id']) {
  810. if (tem == 0) {
  811. menu.addNewSibling(menuRootName, item2['id'], item2['name'], false);
  812. tem = item2['id']
  813. } else {
  814. menu.addNewSibling(tem, item2['id'], item2['name'], false);
  815. tem = item2['id']
  816. }
  817. menuitem[n] = item2['id'];
  818. n++;
  819. if ('1' == item2['isLeaf']) {
  820. if ('editMenu' == item2['id']) {
  821. menu.setHref(item2['id'], item2['url'], '_self');
  822. } else {
  823. if(item2['url'].indexOf("javascript")!=0){
  824. menu.setHref(item2['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item2['url']+"')", target);
  825. }else{
  826. menu.setHref(item2['id'], item2['url'], target);
  827. }
  828. // menu.setHref(item2['id'], item2['url'], target);
  829. }
  830. }
  831. var pso = 0;
  832. for (var i3 = 0; i3 < mia.length; i3++) {
  833. if (tem != 0) {
  834. if (item2['id'] == mia[i3]['pid']) {
  835. menu.addNewChild(item2['id'], pso, mia[i3]['id'], mia[i3]['name']);
  836. pso++;
  837. if(mia[i3]['url'].indexOf("javascript")!=0){
  838. menu.setHref(mia[i3]['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+mia[i3]['url']+"')", target);
  839. }else{
  840. menu.setHref(mia[i3]['id'], mia[i3]['url'], target);
  841. }
  842. // menu.setHref(mia[i3]['id'], mia[i3]['url'], target);
  843. }
  844. }
  845. }
  846. }
  847. }
  848. break;
  849. }
  850. }
  851. }
  852. }
  853. } catch (e) {
  854. console.log(e)
  855. }
  856. menuDiv.style.display = "inline-block";
  857. menuDiv.style.overflow = "hidden";
  858. if (menuPrefix.indexOf("menu") == 0) {
  859. menuDiv.style.width = menu_.width || "50%";
  860. if (scmi.menuRoot && !$.isEmptyObject(scmi.menuRoot.members)) {
  861. initHandle(menuDiv);
  862. menuDiv.style.minWidth = "100px";
  863. } else {
  864. menuDiv.style.width = "auto";
  865. }
  866. window.updateMenuSize = function () {
  867. // if (!$.isEmptyObject(scmi)) {
  868. // menuDiv.style.minWidth = "50px";
  869. // }
  870. if (menuDiv.childNodes.length>0&&menuDiv.childNodes[0].childNodes.length <= 1) {
  871. $(menuDiv).find("." + menuSepartorClass).hide();
  872. $(menuDiv).css({
  873. "width": "",
  874. "min-width": ""
  875. });
  876. } else {
  877. $(menuDiv).find("." + menuSepartorClass).show();
  878. }
  879. var chs = menuDiv.parentNode.children;
  880. for (var i = 0; i < chs.length; i++) {
  881. var ch = chs[i];
  882. if(ch.nodeName=="DIV"){
  883. if (ch == menuDiv)
  884. continue;
  885. if (ch.getAttribute("id").indexOf(recordVal4Menu.state.value) < 0) {
  886. ch.style.display = "none";
  887. }
  888. var s = ch.style;
  889. s.position = "absolute";
  890. s.top = "0";
  891. s.bottom = "0";
  892. s.right = "0";
  893. s.left = getElementWidth(menuDiv);
  894. }
  895. }
  896. }
  897. window.updateMenuSize();
  898. } else { }
  899. menu.attachEvent("onClick", function (id) {
  900. //console.log("click")
  901. if (id == 'shortcutMenu') {
  902. var ifrArr = document.getElementsByTagName('IFRAME');
  903. for (var aa = 0; aa < ifrArr.length; aa++) {
  904. var ifr = ifrArr[aa];
  905. if (ifr.getAttribute('oriSrc') != null) {
  906. ifr.src = ifr.getAttribute('oriSrc');
  907. }
  908. }
  909. };
  910. try {
  911. if (id == 'shortcutMenu') {
  912. if ('undefined' != wd.topWindow.gxhymWindow.SYBJCTRL.exitMB && wd.topWindow.gxhymWindow.SYBJCTRL.exitMB) {
  913. wd.topWindow.gxhymWindow.SYBJCTRL.exitMB();
  914. }
  915. };
  916. } catch (e) {
  917. console.log(e)
  918. }
  919. var n = 0;
  920. var selfpid;
  921. for (var k = 0; k < mi.length; k++) {
  922. if (mi[k]['id'] == id) {
  923. selfpid = mi[k]['pid']
  924. break;
  925. }
  926. }
  927. if (selfpid == menuRootName) {
  928. for (var k = 0; k < mi.length; k++) {
  929. var item = mi[k]
  930. //console.log(item)
  931. if ('shortcutMenu' != item['id'] && 'editMenu' != item['id'] && menuRootName == item['pid'] && !item['tplj']) {
  932. // menu.removeItem(mi[k]['id']+"xxx")
  933. }
  934. if (mi[k]['isRoot'] == '1' && mi[k]['id'] != menuRootName) {
  935. menu.removeItem(mi[k]['id'])
  936. }
  937. }
  938. if (menuitem.length > 0) {
  939. for (var j = 0; j < menuitem.length; j++) {
  940. //console.log(menuitem[j])
  941. menu.removeItem(menuitem[j]);
  942. };
  943. }
  944. menu.removeItem("more");
  945. //
  946. // for(var i=0;i<scmi.length;i++){
  947. // menu.removeItem(scmi[i].memberId)
  948. // }
  949. // createMenu(false)
  950. var currTopMenuCount = 0;
  951. var maxTopMenuCount = MenuSetting.maxTopMenuCount;
  952. // return
  953. var sim = 0;
  954. for (var i = 0; i < mia.length; i++) {
  955. var item = mia[i];
  956. if (id == "shortcutMenu") {
  957. if (!empnum) { //???????
  958. var empnum = true;
  959. for (var index in scmi) {
  960. var value = scmi[index]["members"];
  961. if (index == "menuRoot") {
  962. var menupid;
  963. //重新生成个人菜单
  964. for (var i in value) {
  965. if (!inMenuTree(value[i]["memberId"]) && "null" != value[i]["url"]) {
  966. continue
  967. };
  968. if (!menupid) {
  969. menu.addNewSibling(menuRootName, value[i]["memberId"], value[i]["name"], false);
  970. if(value[i]["url"].indexOf("javascript")!=0){
  971. menu.setHref(value[i]["memberId"], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+value[i]["url"]+"')", target);
  972. }else{
  973. menu.setHref(value[i]["memberId"], value[i]["url"], target);
  974. }
  975. // menu.setHref(value[i]["memberId"], value[i]["url"], target);
  976. menupid = value[i]["memberId"];
  977. currTopMenuCount++
  978. } else {
  979. if (currTopMenuCount == maxTopMenuCount - 1) {
  980. menu.addNewSibling(menupid, 'more', '更多');
  981. menu.addNewSibling(menupid, value[i]["memberId"], value[i]["name"], false);
  982. if(value[i]["url"].indexOf("javascript")!=0){
  983. menu.setHref(value[i]["memberId"], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+value[i]["url"]+"')", target);
  984. }else{
  985. menu.setHref(value[i]["memberId"], value[i]["url"], target);
  986. }
  987. // menu.setHref(value[i]["memberId"], value[i]["url"], target);
  988. menupid = value[i]["memberId"];
  989. currTopMenuCount++
  990. } else if (currTopMenuCount < maxTopMenuCount - 1) {
  991. menu.addNewSibling(menupid, value[i]["memberId"], value[i]["name"], false);
  992. if(value[i]["url"].indexOf("javascript")!=0){
  993. menu.setHref(value[i]["memberId"], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+value[i]["url"]+"')", target);
  994. }else{
  995. menu.setHref(value[i]["memberId"], value[i]["url"], target);
  996. }
  997. // menu.setHref(value[i]["memberId"], value[i]["url"], target);
  998. menupid = value[i]["memberId"];
  999. currTopMenuCount++
  1000. } else {
  1001. menu.addNewChild("more", 999, value[i]["memberId"], value[i]["name"]);
  1002. menupid = value[i]["memberId"];
  1003. currTopMenuCount++
  1004. }
  1005. }
  1006. // if(currTopMenuCount==maxTopMenuCount-1){
  1007. // menu.addNewSibling(currTopPid , 'more', '更多');
  1008. // currTopPid = 'more';
  1009. // index=0;
  1010. // currTopMenuCount++;
  1011. // if(!item['tplj']||'null'==item['tplj']){
  1012. // menu.addNewChild(currTopPid, index , item['id'], item['name']);
  1013. // }else{
  1014. // menu.addNewChild(currTopPid, index , item['id'], item['name'], false, item['tplj']);
  1015. // }
  1016. // index++;
  1017. // }else if(currTopMenuCount<maxTopMenuCount-1){//没超过最多项
  1018. // if('wd' == item['id']){ currTopPid = null};
  1019. // menu.addNewSibling(currTopPid , item['id'], item['name']);
  1020. // currTopPid = item['id'];
  1021. // index=0;
  1022. // currTopMenuCount++;
  1023. // }else{
  1024. // if(!item['tplj']||'null'==item['tplj']){
  1025. // menu.addNewChild(currTopPid, index , item['id'], item['name']);
  1026. // }else{
  1027. // menu.addNewChild(currTopPid, index , item['id'], item['name'], false, item['tplj']);
  1028. // }
  1029. // index++;
  1030. // }
  1031. //
  1032. }
  1033. }
  1034. }
  1035. for (var index in scmi) {
  1036. var value = scmi[index]["members"];
  1037. if (index != "menuRoot") {
  1038. for (var i in value) {
  1039. menu.addNewChild(value[i]["groupId"], 999, value[i]["memberId"], value[i]["name"]);
  1040. if(value[i]["url"].indexOf("javascript")!=0){
  1041. menu.setHref(value[i]["memberId"], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+value[i]["url"]+"')", target);
  1042. }else{
  1043. menu.setHref(value[i]["memberId"], value[i]["url"], target);
  1044. }
  1045. // menu.setHref(value[i]["memberId"], value[i]["url"], target);
  1046. }
  1047. }
  1048. }
  1049. }
  1050. } else {
  1051. if (id == item['pid']) {
  1052. if (sim != 0) {
  1053. if (currTopMenuCount == maxTopMenuCount - 1) {
  1054. index = 0;
  1055. menu.addNewSibling(sim, "more", "更多", false);
  1056. sim = "more"
  1057. menu.addNewChild("more", 999, item['id'], item['name']);
  1058. index++;
  1059. currTopMenuCount++
  1060. } else if (currTopMenuCount < maxTopMenuCount - 1) {
  1061. index = 0;
  1062. menu.addNewSibling(sim, item['id'], item['name']);
  1063. sim = item['id']
  1064. currTopMenuCount++
  1065. } else {
  1066. menu.addNewChild("more", index, item['id'], item['name']);
  1067. index++;
  1068. currTopMenuCount++
  1069. }
  1070. } else {
  1071. menu.addNewSibling(menuRootName, item['id'], item['name'], false);
  1072. sim = item['id']
  1073. }
  1074. if ('1' == item['isLeaf']) {
  1075. if ('editMenu' == item['id']) {
  1076. menu.setHref(item['id'], item['url'], '_self');
  1077. } else {
  1078. // menu.setHref(item['id'], item['url'], target);
  1079. if (item['url'].indexOf('ExLink:') == 0) {
  1080. menu.setHref(item['id'], item['url'].substring(7), '_blank');
  1081. } else {
  1082. if(item['url'].indexOf("javascript")!=0){
  1083. menu.setHref(item['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+item['url']+"')", target);
  1084. }else{
  1085. menu.setHref(item['id'], item['url'], target);
  1086. }
  1087. // menu.setHref(item['id'], item['url'], target);
  1088. }
  1089. }
  1090. }
  1091. menuitem[n] = item['id'];
  1092. n++;
  1093. var psoi = 0;
  1094. for (var ii = 0; ii < mia.length; ii++) {
  1095. if (sim != 0) {
  1096. if (item['id'] == mia[ii]['pid']) {
  1097. menu.addNewChild(item['id'], psoi, mia[ii]['id'], mia[ii]['name']);
  1098. psoi++;
  1099. if (mia[ii]['url'].indexOf('ExLink:') == 0) {
  1100. menu.setHref(mia[ii]['id'], mia[ii]['url'].substring(7), '_blank');
  1101. } else {
  1102. if(mia[ii]['url'].indexOf("javascript")!=0){
  1103. menu.setHref(mia[ii]['id'], "javascript:wd.base.win2FitHeight('"+MenuSetting.target+"','"+mia[ii]['url']+"')", target);
  1104. }else{
  1105. menu.setHref(mia[ii]['id'], mia[ii]['url'], target);
  1106. }
  1107. // menu.setHref(mia[ii]['id'], mia[ii]['url'], target);
  1108. }
  1109. // menu.setHref(mia[ii]['id'], mia[ii]['url'], target);
  1110. }
  1111. }
  1112. }
  1113. }
  1114. }
  1115. }
  1116. }
  1117. });
  1118. }
  1119. //初始化完菜单之后判断是否隐藏按钮
  1120. for (var menuKey in menus) {
  1121. (function (menuName) {
  1122. if (menuName == "menuObj")
  1123. return;
  1124. console.log(menuName)
  1125. var menuDiv = document.getElementById(menuName + MenuSetting.bjId);
  1126. menuDiv.style.display = "none";
  1127. menuName = menuName == "startMenu" ? "searchMenu" : "startMenu";
  1128. var flag = document.querySelectorAll("#" + menuName + MenuSetting.bjId + " .dhtmlxMenu_dhx_black_TopLevel_Item_Normal").length > 0;
  1129. if (flag) {
  1130. initSwitchBtn(menuDiv)
  1131. } else {
  1132. // recordVal4Menu.state.value = menuDiv.id.replace(/\d+/, "");
  1133. recordVal4Menu.state.value = menuDiv.id.replace(MenuSetting.bjId, "");
  1134. saveMenuInfo();
  1135. }
  1136. })(menuKey);
  1137. }
  1138. document.getElementById(recordVal4Menu.state.value + MenuSetting.bjId).style.display = "";
  1139. }
  1140. initMenuTotally()
  1141. function getElementWidth(element) {
  1142. var thisDisplay = element.style.display;
  1143. element.style.display = thisDisplay == "none" ? "inline-block" : thisDisplay;
  1144. var style = window.getComputedStyle(element);
  1145. var width = parseFloat(style.marginLeft) + parseFloat(style.width) + parseFloat(style.marginRight);
  1146. element.style.display = thisDisplay;
  1147. return width;
  1148. }
  1149. function initSwitchBtn(menuDiv) {
  1150. var b ;
  1151. try{
  1152. b = menus[recordVal4Menu.state.value].btn;
  1153. }catch(e){
  1154. b = menus[recordVal4Menu.state.value.replace(MenuSetting.bjId, "")].btn;
  1155. }
  1156. var btn = document.createElement("div");
  1157. btn.className = b.className;
  1158. btn.title = b.text;
  1159. btn.innerHTML = "&nbsp;";
  1160. btn.onclick = function () {
  1161. // console.log(recordVal4Menu.state.value + ":" + (recordVal4Menu.state.value == "searchMenu"))
  1162. if (recordVal4Menu.state.value == "searchMenu") {
  1163. recordVal4Menu.state.value = 'startMenu';
  1164. } else {
  1165. recordVal4Menu.state.value = "searchMenu";
  1166. }
  1167. // console.log(recordVal4Menu.state.value)
  1168. saveMenuInfo();
  1169. initMenuTotally();
  1170. }
  1171. var style = btn.style;
  1172. style.height = "100%";
  1173. style.cursor = 'pointer';
  1174. //取代 style.float = "right";
  1175. style.position = "absolute";
  1176. style.right = "20px";
  1177. menuDiv.appendChild(btn);
  1178. }
  1179. //初始化调整把手
  1180. function initHandle(div_) {
  1181. var handle = document.createElement("span");
  1182. div_.appendChild(handle);
  1183. handle.setAttribute("class", menuSepartorClass);
  1184. handle.style.position = "absolute";
  1185. handle.style.right = parseFloat(window.getComputedStyle(handle).borderWidth) * 2 + "px";
  1186. middleHeight(handle);
  1187. window.addEventListener("mousedown", function (e) {
  1188. if (e.target == handle) {
  1189. handle.isMouseDown = true;
  1190. handle.startPoint = e.clientX;
  1191. handle.parentWidth = parseFloat(window.getComputedStyle(handle.parentNode).width);
  1192. handle.parentMin = parseFloat(window.getComputedStyle(handle.parentNode).minWidth);
  1193. }
  1194. });
  1195. window.addEventListener("mouseup", function (e) {
  1196. document.getElementsByClassName(menuSepartorClass)[0].classList.remove("menu-draggingSplit");
  1197. if (handle && handle.isMouseDown) {
  1198. // zhi.maxLeft.value = getMaxItemCount(handle.parentNode);
  1199. // zhi.maxRight.value = getMaxItemCount("menuGroup");
  1200. saveMenuInfo();
  1201. initMenuTotally();
  1202. }
  1203. if (handle)
  1204. handle.isMouseDown = false;
  1205. if (handle)
  1206. handle.startPoint = null;
  1207. });
  1208. window.addEventListener("mousemove", function (e) {
  1209. if (handle && handle.isMouseDown && handle.startPoint != null) {
  1210. // document.body.style.cursor = "pointer";
  1211. // document.body.style = document.body.style + ";cursor: url(/zzfb_/theme/EasyUses/image/menu_separator.cur), default !important";
  1212. // document.body.classList.add("menu-draggingSplit");
  1213. document.getElementsByClassName(menuSepartorClass)[0].classList.add("menu-draggingSplit");
  1214. var node = handle.parentNode;
  1215. var srcWidth = handle.parentWidth,
  1216. newWidth = srcWidth + (e.clientX - handle.startPoint);
  1217. if (newWidth > 0 && (newWidth > handle.parentMin) && (newWidth < parseFloat(window.getComputedStyle(node.parentNode).width))) {
  1218. if (srcWidth - newWidth != 0) {
  1219. node.style.width = newWidth + "px";
  1220. window.updateMenuSize && window.updateMenuSize();
  1221. }
  1222. } else {
  1223. document.body.style.cursor = "not-allowed";
  1224. }
  1225. } else {
  1226. document.body.style.cursor = "";
  1227. }
  1228. });
  1229. }
  1230. function updateMenuInfo() {
  1231. var zhi = recordVal4Menu;
  1232. zhi.indexs = zhi.indexs || {};
  1233. var maxWidth = parseFloat(window.getComputedStyle(document.getElementById("menuObj" + MenuSetting.bjId)).width);
  1234. zhi.width.value = maxWidth;
  1235. for (var k in menus) {
  1236. var mendiv = document.querySelector("#" + k + MenuSetting.bjId);
  1237. if (mendiv.children.length > 0) {
  1238. for (var _i = 0; _i < mendiv.children[0].children.length; _i++) {
  1239. console.log(mendiv.children[0].children[_i])
  1240. if (mendiv.children[0].children[_i].style.display == "none") {
  1241. break;
  1242. }
  1243. zhi.indexs[k] = _i;
  1244. }
  1245. console.log(zhi)
  1246. }
  1247. }
  1248. }
  1249. function saveMenuInfo(callback) {
  1250. updateMenuInfo();
  1251. $.ajax({
  1252. method: "post",
  1253. url: "/service",
  1254. data: {
  1255. ssServ: 'insertRecords', // wdService: 'insertRecords',。Lin
  1256. bjid: MenuSetting.bjId,
  1257. zhi: JSON.stringify(recordVal4Menu)
  1258. },
  1259. async: false,
  1260. success: function () {
  1261. if (callback)
  1262. callback();
  1263. },
  1264. error: function (e) {
  1265. console.error("个人选值保存失败");
  1266. // initMenuTotally();
  1267. }
  1268. });
  1269. }
  1270. function middleHeight(element) {
  1271. if (element.style.position == "absolute") {
  1272. var par = element.parentNode,
  1273. parStyle = window.getComputedStyle(par),
  1274. parHeight = parseFloat(parStyle.height),
  1275. eStyle = window.getComputedStyle(element),
  1276. eheight = parseFloat(eStyle.height),
  1277. eBoeder = parseFloat(eStyle.borderTopWidth),
  1278. top = (parHeight - eheight - eBoeder) / 2;
  1279. element.style.top = top;
  1280. }
  1281. }
  1282. //判断对象是否为空
  1283. function is_empty(obj) {
  1284. var hasOwnProperty = Object.prototype.hasOwnProperty;
  1285. if (obj.length && obj.length > 0)
  1286. return false;
  1287. for (var key in obj) {
  1288. if (hasOwnProperty.call(obj, key))
  1289. return false;
  1290. }
  1291. return true;
  1292. }
  1293. //菜单点击事件
  1294. function initialMenuPath() {
  1295. wd.display.setHomeIconName("个人首页");
  1296. }
  1297. function change_menu_name(el){
  1298. var div_menu_change={};
  1299. div_menu_change.id=$(el).attr("wdId");
  1300. div_menu_change.pid=$(el).attr("wdPid");
  1301. div_menu_change.name=$(el).html();
  1302. var is_has=false;
  1303. if(recordVal4Menu.div_plugin_menus.length>0){
  1304. recordVal4Menu.div_plugin_menus.forEach(function(menu_div){
  1305. if(menu_div.pid==div_menu_change.id){
  1306. is_has=true;
  1307. }
  1308. });
  1309. }
  1310. if(!is_has){
  1311. recordVal4Menu.div_plugin_menus.push(div_menu_change);
  1312. saveMenuInfo();
  1313. initMenuTotally();
  1314. console.log(div_menu_change);
  1315. }
  1316. // var id=$(el).parent().parent().parent().parent().parent().parent().attr('id');
  1317. // var div =$("#"+id.replace("polygon_",""));
  1318. // div.children().html($(el).html());
  1319. }
  1320. if(Menu_has_plugin_tips=="0"){
  1321. $("div[name='plugin_tips']").parent().parent().parent(".menu-item").mousedown(function (e) {
  1322. if (3 == e.which) {
  1323. console.log($(this).html());
  1324. console.log($(this).find("div[name='plugin_tips']").attr("wdTitle"));
  1325. this.title = $(this).find("div[name='plugin_tips']").attr("wdTitle");
  1326. }
  1327. })
  1328. $("div[name='plugin_tips']").parent().parent().parent(".menu-item").mouseleave(function (e) {
  1329. this.title = "";
  1330. })
  1331. }