mainMenuDefEdit.ss.jsp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. #savemb{
  6. display: none;
  7. }
  8. #delmb{
  9. display: none;
  10. }
  11. </style>
  12. <ss:skin file='main.css'/>
  13. </head>
  14. <body>
  15. <div id="app" class="form-container">
  16. <div class="content-box fit-height-content"><%-- vue样式要套上这两套DIV Ben(20251217) --%>
  17. <form name="ddpOptionForm" action="<serv.ss dest='menuDefOptList'/>" method="post"> <!-- "cdOptionForm"。Lin -->
  18. <input type="hidden" name="cdOptionHtml" value="" id="cdOptionHtml" />
  19. <!-- <@input type='submit' id="cx" value="查询" class="content-invertButton" /> -->
  20. </form>
  21. <form name="shortcutForm" action='' method="post">
  22. <input name="bjid" type="hidden" value="${bjid}" />
  23. <div class="search-div">
  24. <div style="padding: 15px 25px 12px 25px;">
  25. <input type='button' value="增加菜单组" onclick="addGroup();" class="content-button" />
  26. <!-- 业务分类 <select id="yy" name="yy" onchange="">
  27. <option value="-1">请选择</option>
  28. </select> -->
  29. &nbsp;
  30. <%--<select id="cdmbselected" class="sel" onchange="selectMB(this.options[this.options.selectedIndex].value);" style="float: right;">
  31. <option value="0">空白模板</option>
  32. <wd:option name="$@{sessionScope['XMMC']}.grcdmb" />
  33. </select>--%>
  34. <input type='button' id="savemb" value="保存当前模板" class="content-button" />
  35. <input type='button' id="delmb" value="删除该模板" class="content-button" />
  36. <input type='button' id="addmb" value="另存为新模板" class="content-button" />
  37. <%-- 新UI改写法 Ben(20251217) <input name="grcdmbid" id="grcdmbid" type="hidden" class="sel" onchange="selectMB(this.value)"/>
  38. <input name="grcdmbName" placeholder="模板" type="text" style="width: 130px;" />
  39. --%>
  40. <table class="form"><%-- 这table是为了套上小许样式临时加上 Ben(20251217) --%>
  41. <tr><td>
  42. <objp.ss name="grcdmbid" cb="grcdmb" inp="true" onChg="selectMB" /> <%-- 原 codebook="grcdmb_all",去掉 根模板 了。Lin --%>
  43. </td></tr></table>
  44. </br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br>
  45. </div>
  46. </div>
  47. <div id="container" class="dragList-div">
  48. <div class="box">
  49. <p class="label">已选<span id="ddpDropAll" class="icon-allRight"></span></p> <!-- "cdDropAll"。Lin -->
  50. <div class="list-body" style="position: relative;overflow-x: hidden;width: 100%;height: 380px;">
  51. <div id="ddpSelected" class="scrollbar" ssSelClazz="list-checkedIcon" style="height:100%"> <!-- "cdSelected"。Lin -->
  52. </div>
  53. </div>
  54. </div>
  55. <div class="box">
  56. <p class="label">备选<span id="ddpPickAll" class="icon-allLeft"></span></p> <!-- "cdPickAll"。Lin -->
  57. <div class="list-body" style="position: relative;overflow-x: hidden;width: 100%;height: 380px;">
  58. <div id="ddpOption" class="scrollbar" ssSelClazz="list-checkedIcon" style="height:100%"> <!-- "cdOption"。Lin -->
  59. </div>
  60. </div>
  61. </div>
  62. <input type="hidden" value="" name="ddpSelectedId" /> <%-- name="cdSelectedId"。再改为统一的名字 -- 同一页面,不会有多个拖放选择。Lin --%>
  63. </div>
  64. </form>
  65. <!-- <div class='bottom-div'>
  66. <@input type="button" name="button" onclick="wd.display.closeDialog();" value="取消" class="bottom-button" />
  67. </div> -->
  68. </div>
  69. </div>
  70. </body>
  71. <%-- 去掉,母体也没找到。Lin
  72. <script type="text/javascript" src="ajaxFunc.js"></script>
  73. --%>
  74. <script type="text/javascript">
  75. <%-- 改为直接在ss.标签上写onchg
  76. wd.edit.objectPicker.getInstance("grcdmb").onchange=function(){
  77. selectMB($("#grcdmbid").val());
  78. }
  79. --%>
  80. //从请求中获得
  81. var oridata = '${mbdata}';
  82. var mbdata = (oridata == '' ? '' : JSON.parse(oridata));
  83. var bjid = "${bjid}";
  84. var menuRootGroupId = "${menuRootGroupId}";
  85. var parent1 = window.parent;
  86. //从上个页面(菜单页面),获取到需要的数据
  87. /**
  88. * menuTree节点内数据的含义
  89. * [0]--lmid(两种情况,1.数字,2.英文缩写)
  90. * [1]--name,名字代号
  91. * [2]--上级id
  92. * [3]--跳转页
  93. */
  94. var menudata = "${menuTree}";
  95. var menuTree = (menudata == '' ? '' : eval(menudata));
  96. //这是所有的菜单选项(人员、校务那些),是个二维数组
  97. // for(var i = 0; i < 10 && parent.menuTree == undefined; i++)
  98. // parent = parent.parent
  99. // if(parent.menuTree != undefined)
  100. // menuTree = parent.menuTree;
  101. /**
  102. * 自定义菜单
  103. * 1--shortcutMenuInfo(各个自定义id(不清楚来源),menuRoot)
  104. * 2--groupId(上级id);member(子栏目成员);name(名字代号)
  105. * 3,member--groupId(上级id);memberId(自身id为#序号#lmid);name(名字代号);url(跳转页)
  106. *
  107. * example:shortcutMenuInfo[440112878].members["#0#44014346"].name
  108. */
  109. var shortcutMenuInfo;//这是快捷组的数据,也就是最顶上那一排,这是个三层键值对?
  110. for(var i = 0; i < 10 && parent1.shortcutMenuInfo == undefined; i++)
  111. parent1 = parent1.parent
  112. if(parent1.shortcutMenuInfo != undefined)
  113. shortcutMenuInfo = parent1.shortcutMenuInfo;
  114. //自定义栏目的子栏目的根id
  115. var shortcutGroup=[];
  116. var menuRootSize = 0;//见名知意
  117. var selectedMenuMenber = [];
  118. function isNumber(o) {
  119. var reg = /^[0-9]*$/;
  120. if (!reg.test(o)) {
  121. return false;
  122. }
  123. return true;
  124. }
  125. function isLeft(shortcutMenuInfo){
  126. for(var item in shortcutMenuInfo){
  127. if(isNumber(item)){
  128. for(var item2 in shortcutMenuInfo[item].members){
  129. if(shortcutMenuInfo[item].members[item2].memberId){
  130. var arr = shortcutMenuInfo[item].members[item2].memberId.split('#');
  131. selectedMenuMenber.push(arr[arr.length-1]);
  132. }
  133. }
  134. }else{
  135. for(var item2 in shortcutMenuInfo[item].members){
  136. if(!isNumber(shortcutMenuInfo[item].members[item2].memberId)){
  137. selectedMenuMenber.push(shortcutMenuInfo[item].members[item2].memberId);
  138. }
  139. }
  140. }
  141. }
  142. }
  143. function load() {
  144. //初始化右边应用的下拉框select
  145. // $.each(menuTree,function(i){//遍历整个菜单二维数组,拿出里面的每个数组
  146. // var menu1 = menuTree[i];
  147. // //每个一维数组的四个数据依次是:id,名字,上级菜单id,url
  148. // if (menu1[2] == "env" && menu1[3] == "null") {//当上级id为env时,那么这就是个根菜单(人员、校务这些),把它放到下拉框中
  149. // $('#yy').append("<option value='" + menu1[0]+"'>"+menu1[1]+"</option>");
  150. // }
  151. // });
  152. //初始化左边的选项和下拉框
  153. //初始化要将子栏目下的栏目页放进去
  154. var menuRoot;
  155. //给右边下拉框绑定事件,用来在右边显示选中的子项
  156. // $('#yy').change(function(){
  157. // console.log(menuTree);
  158. // //alert($(this).val());
  159. // selectByParentId($(this).val());
  160. // });
  161. for (var groupId in shortcutMenuInfo) { //在addOption前先得出组菜单id数组,做样式区分时用到
  162. if ("menuRoot" != groupId) {
  163. shortcutGroup.push(groupId); //纪录快捷组id,在后台使用
  164. }
  165. }
  166. }
  167. load();
  168. $(function () { selectByParentId(); })
  169. /**
  170. * 根据父id查询出对应的子对象
  171. * @param {[type]} id [description]
  172. * @return {[type]} [description]
  173. */
  174. function selectByParentId() {
  175. //用来加载出右边拖拽框的所有选项
  176. var cdOptionHtml = "";
  177. $.each(menuTree, function (i) { //遍历整个菜单二维数组,拿出里面的每个数组
  178. var menu = menuTree[i];
  179. if (selectedMenuMenber.indexOf(menu[0]) == -1) {
  180. if (menu[2] == "search") {
  181. var parentDiv = "<div class='list-background list' style='min-height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;' ssObjId='" + menu[0] + "' memberid='" + menu[0] + "' name='" + menu[1] + "' groupId='" + menu[2] + "' url='" + menu[3] + "'><span>" + menu[1] + "[搜索]" + "</ span ></div>";
  182. var parentId = menu[0];
  183. $.each(menuTree, function (j) {//由于存在两级,所以再次遍历,把第二级放进自己的父级中
  184. var menu2 = menuTree[j];
  185. if (menu2[2] == menu[0]) { //上级id等于第一级的id时
  186. parentDiv += '<div class="list-background list" style="min-height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" ssObjId="' + menu2[0] + '" ssPobjId="' + parentId + '" memberid="' + menu2[0] + '"name="' + menu2[1] + '" groupId="' + menu2[2] + '" url="' + menu[3] + '" ><span>' + menu2[1] + "[搜索]" + '</ span ></div>';
  187. }
  188. });
  189. cdOptionHtml += parentDiv;
  190. } else if (menu[2] != "" && menu[2] != window.top.menuRootName) {//当上级id 等于传进来的id(也就是右边下拉框此时选中的值)时,那么加把此项放到右边的拖拽框
  191. var parentDiv = "<div class='list-background list' style='min-height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;' ssObjId='" + menu[0] + "' memberid='" + menu[0] + "' name='" + menu[1] + "' groupId='" + menu[2] + "' url='" + menu[3] + "'><span>" + menu[1] + "</ span ></div>";
  192. var parentId = menu[0];
  193. $.each(menuTree, function (j) {//由于存在两级,所以再次遍历,把第二级放进自己的父级中
  194. var menu2 = menuTree[j];
  195. if (menu2[2] == menu[0]) { //上级id等于第一级的id时
  196. parentDiv += '<div class="list-background list" style="min-height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" ssObjId="' + menu2[0] + '" ssPobjId="' + parentId + '" memberid="' + menu2[0] + '"name="' + menu2[1] + '" groupId="' + menu2[2] + '" url="' + menu[3] + '" ><span>' + menu2[1] + '</ span ></div>';
  197. }
  198. });
  199. cdOptionHtml += parentDiv;
  200. }
  201. }
  202. });
  203. cdOptionHtml = cdOptionHtml.replace(/&/g, '%26');
  204. // $("#cdOption").html(cdOptionHtml);//把整个div放进拖拽框
  205. $("#cdOptionHtml").val(cdOptionHtml);//把整个div放进拖拽框
  206. $('form[name="ddpOptionForm"]')[0].submit(); // "cdOptionForm"。Lin
  207. }
  208. /**
  209. * 创建一个新的快捷组,也就是顶上一排那种有第二层的东西
  210. */
  211. /* 改,改用 wd.display.confirm({ -- 新UI,增加 个人菜单.业务名 -- 实现 新UI 的图标体系。Lin
  212. * 把 addGroup() 分开为 addGroup() + addGroupCallback( -- 抄自 "另存为新模板" 按钮
  213. function addGroup(){
  214. //全都是快捷组这东西惹的祸 因为它既是shortcutMenuInfo中menuRoot的成员,也是shortcutMenuInfo的成员
  215. //var groupSel = document.getElementById('cdwz');
  216. var groupDivs = $('#ddpSelected').children(); // '#cdSelected'。Lin
  217. //下面这段都是用来判断为空或者重复
  218. var newname=prompt("新菜单名称","未定义");
  219. if(''==newname||null==newname){
  220. alert('名称不能为空!!\n');
  221. return false;
  222. }
  223. var hasGroupName = false;
  224. /// * for(var i=0;i<groupSel.options.length;i++){
  225. // if(newname==groupSel.options[i].text){
  226. // hasGroupName = true;
  227. // break;
  228. // }
  229. // }
  230. /// *
  231. $.each(groupDivs, function(i){
  232. var name = $(groupDivs[i]).attr('name');
  233. if(newname == name){
  234. hasGroupName = true;
  235. return true;
  236. }
  237. });
  238. if(hasGroupName){
  239. alert('菜单名称'+newname+'已存在');
  240. return false;
  241. }
  242. //用当前系统的毫秒值作为groupId
  243. var groupId = new Date().getTime()+'';
  244. //console.info("测试组id: "+groupId);
  245. //shortcutMenuInfo中新建一个键值对,键为groupId
  246. shortcutMenuInfo[groupId] = {
  247. 'groupId':groupId,
  248. 'name':newname,//输入的名字
  249. 'members':{} //成员为空
  250. }
  251. shortcutGroup.push(groupId);
  252. DM.addItem(groupId,'<div class="list-background list" style="min-height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" ssObjId="' + groupId + '" memberid="' + groupId + '" name="'+ newname +'" groupId="menuRoot" url="null" ><span >'+ newname +'</span></div>',null,true);
  253. }
  254. */
  255. ///// Start 改用 wd.display.confirm({ -- 新UI,增加 个人菜单.业务名 -- 实现 新UI 的图标体系。Lin
  256. function addGroup() {
  257. wd.display.confirm({ title: "增加菜单组", url: "<serv.ss dest='menuGrpAdd'/>", width: 300, height: 240, callback: addcallback });
  258. }
  259. var addGroupCallback = (function (t) {
  260. var THIS = t;
  261. return function (data) {
  262. if (data.newMc == null || data.newMc == "") {
  263. alert('名称不能为空!!\n');
  264. return false;
  265. }
  266. var hasGroupName = false;
  267. $.each(groupDivs, function(i){
  268. var name = $(groupDivs[i]).attr('name');
  269. if(newname == name){
  270. hasGroupName = true;
  271. return true;
  272. }
  273. });
  274. if(hasGroupName){
  275. alert('菜单名称'+newname+'已存在');
  276. return false;
  277. }
  278. //用当前系统的毫秒值作为groupId
  279. var groupId = new Date().getTime()+'';
  280. //console.info("测试组id: "+groupId);
  281. //shortcutMenuInfo中新建一个键值对,键为groupId
  282. shortcutMenuInfo[groupId] = {
  283. 'groupId':groupId,
  284. 'name':newname,//输入的名字
  285. 'bizName': bizName, // 增加,增加 个人菜单.业务名。Lin
  286. 'members':{} //成员为空
  287. }
  288. shortcutGroup.push(groupId);
  289. DM.addItem(groupId,'<div class="list-background list" style="min-height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;'+
  290. '" ssObjId="'+ groupId +'" memberid="'+ groupId +'" name="'+ newname +'" bizName="'+ bizName +'" groupId="menuRoot" url="null">'+
  291. '<span >'+ newname +'</span></div>',null,true);
  292. }
  293. })(this);
  294. ///// End 改用 wd.display.confirm({ -- 新UI,增加 个人菜单.业务名 -- 实现 新UI 的图标体系。Lin
  295. /**
  296. * 保存准备方法,将新增的数据封装好
  297. * @return {[type]} [description]
  298. */
  299. function beforeSubmit() {
  300. //有shortcutGroup就行了
  301. //直接用左div的元素来做个shortcutmenuinfo!!!
  302. var dragList = $('#ddpSelected'); // '#cdSelected'。Lin
  303. //下级div
  304. var groupDivs = dragList.children();
  305. console.log(groupDivs.size());
  306. var menuRootMembers = {};
  307. /**
  308. * 初始化菜单根部menuRoot
  309. */
  310. var menuRoot = {};
  311. //copy
  312. $.extend(menuRoot,shortcutMenuInfo['menuRoot']);
  313. menuRootMembers['menuRoot'] = menuRoot;
  314. menuRoot['members'] = {};
  315. $.each(groupDivs, function(i){
  316. //或条件
  317. //改为li
  318. if(shortcutGroup.indexOf($(groupDivs[i]).attr('memberid')) != -1 || $(groupDivs[i]).find('div div[ssObjId]').size() != 0){
  319. var menuRootMember = {};
  320. var members = {};
  321. menuRootMember['groupId'] = $(groupDivs[i]).attr('memberid');
  322. menuRootMember['name'] = $(groupDivs[i]).attr('name');
  323. menuRootMember['bizName'] = $(groupDivs[i]).attr('bizName'); // 增加,增加 个人菜单.业务名。Lin
  324. if($(groupDivs[i]).find('div div[ssObjId]').size() != 0){
  325. //下级div的再下级
  326. var childDivs = $(groupDivs[i]).find('div div[ssObjId]');
  327. $.each(childDivs, function(j){
  328. var member = {};
  329. member['groupId'] = $(childDivs[j]).attr('groupid');
  330. member['memberId'] = $(childDivs[j]).attr('memberid');
  331. member['name'] = $(childDivs[j]).attr('name');
  332. member['url'] = $(childDivs[j]).attr('url');
  333. members['#'+ j + '#' + $(childDivs[j]).attr('memberid')] = member;
  334. });
  335. }
  336. menuRootMember['members'] = members;
  337. menuRootMembers[$(groupDivs[i]).attr('memberid')] = menuRootMember;
  338. }
  339. /**
  340. * menuRoot 添加member
  341. * 如果$(groupDivs[i])有子节点,默认groupId 为 menuRoot url为null 且插入 shortcutGroup 的一条id
  342. */
  343. var member = {};
  344. member['memberId'] = $(groupDivs[i]).attr('memberId');
  345. member['name'] = $(groupDivs[i]).attr('name');
  346. if($(groupDivs[i]).find('div div[ssObjId]').size() != 0){
  347. member['groupId'] = "menuRoot";
  348. member['url'] = "null";
  349. shortcutGroup.push($(groupDivs[i]).attr('memberId'));
  350. }else{
  351. member['groupId'] = $(groupDivs[i]).attr('groupId');
  352. member['url'] = $(groupDivs[i]).attr('url');
  353. }
  354. menuRoot['members']['#'+ i + '#' + $(groupDivs[i]).attr('memberId')] = member;
  355. });
  356. shortcutMenuInfo = {};
  357. shortcutMenuInfo = menuRootMembers;
  358. }
  359. /**
  360. * 选择模板触发方法
  361. * @param {[type]} value [description]
  362. * @return {[type]} [description]
  363. */
  364. function selectMB(value){
  365. //拿到 mbdata
  366. if(value=="0"){
  367. value="null";
  368. }
  369. shortcutMenuInfo=(mbdata[value]==undefined)?{}:mbdata[value];
  370. //清空左边菜单组元素
  371. $("#ddpSelected").empty(); // "#cdSelected"。Lin
  372. if(value!='0'){
  373. //生成左边菜单组
  374. selectedMenuMenber.splice(0,selectedMenuMenber.length);
  375. isLeft(shortcutMenuInfo);
  376. initShortCutMenu(shortcutMenuInfo);
  377. $('#delmb').css('display', 'inline');
  378. $('#savemb').css('display', 'inline');
  379. }else{
  380. $('#delmb').css('display', 'none');
  381. $('#savemb').css('display', 'none');
  382. }
  383. }
  384. /**
  385. * 设值到表单中
  386. * @param {[type]} _form [description]
  387. * @param {[type]} name [description]
  388. * @param {[type]} value [description]
  389. * @return {[type]} [description]
  390. */
  391. function generateHiddenForm(_form,name,value){
  392. var hiddenInput = document.createElement('input');
  393. hiddenInput.type='hidden';
  394. hiddenInput.name = name;
  395. hiddenInput.value = value;
  396. _form.appendChild(hiddenInput);
  397. }
  398. /**
  399. * 生成菜单显示数据
  400. * @param {[type]} shortcutMenuInfo [description]
  401. * @return {[type]} [description]
  402. */
  403. function initShortCutMenu(shortcutMenuInfo){
  404. var menuRoot;
  405. if(typeof(shortcutMenuInfo.menuRoot) == 'undefined')
  406. menuRoot = [];
  407. else
  408. menuRoot = shortcutMenuInfo.menuRoot.members;
  409. DM.getDrager().selectedList.empty();
  410. $.each(menuRoot, function(i){
  411. //menuRootSize++;
  412. var menuRootMember = menuRoot[i];
  413. //
  414. var isItem = false;
  415. if(menuRootMember.url != "null"){
  416. isItem = true;
  417. }else{
  418. if(shortcutMenuInfo[menuRootMember.memberId] != undefined){
  419. var j = 0;
  420. $.each(shortcutMenuInfo[menuRootMember.memberId].members, function(i){
  421. j++;
  422. });
  423. if(j > 0){
  424. isItem = true;
  425. }
  426. }
  427. }
  428. if(isItem){
  429. if(menuRootMember.memberId.indexOf("_search")>0){
  430. var ele = $('<div class="list-background list" style="min-height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" ssObjId="' + menuRootMember.memberId + '" memberid="' + menuRootMember.memberId
  431. + '" name="'+ menuRootMember.name +'" groupId="'+ "search"
  432. +'" url="'+ menuRootMember.url +'" class="item dragList"><span>'+ menuRootMember.name+"[搜索]" +'</ span ></div>');
  433. }else{
  434. var ele = $('<div class="list-background list" style="min-height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" ssObjId="' + menuRootMember.memberId + '" memberid="' + menuRootMember.memberId
  435. + '" name="'+ menuRootMember.name +'" groupId="'+ menuRootMember.groupId
  436. +'" url="'+ menuRootMember.url +'" class="item dragList"><span>'+ menuRootMember.name +'</ span ></div>');
  437. }
  438. DM.getDrager().selectedList.append(ele[0]);
  439. var parentId = menuRootMember.memberId;
  440. //放入子栏目,子栏目不为dragList
  441. if(shortcutMenuInfo[menuRootMember.memberId] != null){
  442. $.each(shortcutMenuInfo[menuRootMember.memberId].members, function(j){
  443. var member = shortcutMenuInfo[menuRootMember.memberId].members[j];
  444. if(member.memberId.indexOf("_search")>0){
  445. var cele = $('<div class="list-background list" style="height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" ssObjId="' + j.split("#")[2] + '" ssPobjId="'+parentId
  446. +'" memberid="' + j.split("#")[2] + '" name="' + member.name+ '" groupId="' + member.groupId
  447. + '" url="'+ member.url +'" ><span>' + member.name +"[搜索]" +'</ span ></div>');
  448. }else{
  449. var cele = $('<div class="list-background list" style="height: 41px;line-height: 41px;width: calc(100% - 4px);box-sizing: border-box;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" ssObjId="' + j.split("#")[2] + '" ssPobjId="'+parentId
  450. +'" memberid="' + j.split("#")[2] + '" name="' + member.name + '" groupId="' + member.groupId
  451. + '" url="'+ member.url +'" ><span>' + member.name +'</ span ></div>');
  452. }
  453. DM.getDrager().selectedList.append(cele[0]);
  454. });
  455. }
  456. }
  457. });
  458. DM.getDrager().selectedList.reload();
  459. selectByParentId();
  460. }
  461. /**
  462. * 删除菜单组模板
  463. * @param {[type]} ){ } [description]
  464. * @return {[type]} [description]
  465. */
  466. $('#delmb').click(function(){
  467. // var mbid = $('#cdmbselected').val();
  468. var mbid = $('#grcdmbid').val();
  469. var json = JSON.parse('{"mbid":"' + mbid + '"}');
  470. var url = "<serv.ss name='initMenuDef' dest='menuDefSaveOk' parm='{del:"ssVal{mbid}",mblx:1}'/>"
  471. url = wd.display.replaceDynamicParam(url, json);
  472. $('form[name="shortcutForm"]').attr('action', url);
  473. $('form[name="shortcutForm"]').submit();
  474. });
  475. /**
  476. * 保存菜单组模板
  477. * @param {[type]} ){ } [description]
  478. * @return {[type]} [description]
  479. */
  480. $('#savemb').click(function(){
  481. //封装
  482. beforeSubmit();
  483. var _form = document.forms['shortcutForm'];
  484. var cdmbid = $('#cdmbselected').val();
  485. var shortcutInfoStr = JSON.stringify(shortcutMenuInfo);
  486. var shortcutGroupStr = JSON.stringify(shortcutGroup);
  487. generateHiddenForm(_form,'grcdmbid',cdmbid);
  488. generateHiddenForm(_form,'shortcutGroup',shortcutGroupStr);
  489. generateHiddenForm(_form,'shortcutMenuInfo',shortcutInfoStr);
  490. generateHiddenForm(_form,'cdz','1');
  491. $('form[name="shortcutForm"]').attr('action', "<serv.ss name='saveMenuDef' dest='menuDefSaveOk' parm='{mblx:1}'/>");
  492. $('form[name="shortcutForm"]').submit();
  493. });
  494. /**
  495. * 新增菜单组模板
  496. * @param {[type]} ){ } [description]
  497. * @return {[type]} [description]
  498. */
  499. var addcallback = (function (t) {
  500. var THIS = t;
  501. return function (data) {
  502. if (data.newMc != null && data.newMc != "") {
  503. //封装
  504. beforeSubmit();
  505. var _form = document.forms['shortcutForm'];
  506. //添加newMc 表单元素
  507. generateHiddenForm(_form, "newMc", data.newMc);
  508. generateHiddenForm(_form, "ms", data.ms);
  509. generateHiddenForm(_form, "grcdmbh", data.grcdmbh);
  510. var cdmbid = $('#cdmbselected').val();
  511. var shortcutInfoStr = JSON.stringify(shortcutMenuInfo);
  512. var shortcutGroupStr = JSON.stringify(shortcutGroup);
  513. generateHiddenForm(_form, 'grcdmbid', cdmbid);
  514. generateHiddenForm(_form, 'shortcutGroup', shortcutGroupStr);
  515. generateHiddenForm(_form, 'shortcutMenuInfo', shortcutInfoStr);
  516. generateHiddenForm(_form, 'cdz', '1');
  517. $('form[name="shortcutForm"]').attr('action', "<serv.ss name='saveMenuDef' dest='menuDefSaveOk' parm='{mblx:1}'/>");
  518. $('form[name="shortcutForm"]').submit();
  519. }
  520. }
  521. })(this);
  522. $('#addmb').click(function () {
  523. wd.display.confirm({ title: "另存为新模板", url: "<serv.ss dest='menuDefAdd'/>", width: 300, height: 240, callback: addcallback });
  524. });
  525. </script>
  526. <drag.ss name="ddp" grp="true" func="editGroup,editOrder"/> <%-- name="cd"。再改为统一的名字 -- 同一页面,不会有多个拖放选择。Lin --%>
  527. <script type="module" src="/js/vue/initFormElem.js"></script><%-- 新UI vue组件初始化 Ben(20251217) --%>
  528. </html>