//程序名称:menuExclu.jsp //程序功能:权限互斥组 //创建日期:2025-06-10 //创建人 : zzx //控制界面上的mulLine的显示条数 var mulLineShowCount = 15; var sqlcount = 0; var selectArray = new Array(); var unselectArray = new Array(); var removeArray = new Array() //更新菜单组中的删除纪录 var turnPage = new turnPageClass(); var turnPageMenu = new turnPageClass(); var turnPageNew = new turnPageClass(); document.onclick = function() { obj = event.srcElement ? event.srcElement : event.target; if (obj.type=="checkbox") { tArray = searchArray(obj.id); tagInArray(tArray,obj.id); } if (obj.getAttribute("name")=="foldheader") { tArray = searchArray(obj.id); var nested = obj.nextElementSibling; if (nested.style.display=="none") { nested.style.display=''; } else { nested.style.display="none"; } tagShowlistInArray(tArray,obj.id); } } function searchArray(id) { for (var i = 0; i < selectArray.length; i++) { var aryId1 = "chk_" + selectArray[i][8]; var aryId2 = "fld_" + selectArray[i][8]; if (aryId1 == id || aryId2 == id) return selectArray; } for (var i = 0; i < unselectArray.length; i++) { var aryId1 = "chk_" + unselectArray[i][8]; var aryId2 = "fld_" + unselectArray[i][8]; if (aryId1 == id || aryId2 == id) return unselectArray; } } //查询并列出所有菜单记录 function queryClick() { var mySql = wrapSql("menumang.menuGrpExcluSql", "menuGrpExcluQuery", [document.getElementById("excluGrpCode").value, document.getElementById("excluGrpName").value, document.getElementById("menuNodeName").value], "systemmanage"); var sqlStr = mySql; turnPage.queryModal(sqlStr, QueryGrpGrid, 1); } /** * 保存权限互斥组 */ function saveMenuGrpExcluData() { var actionName = document.getElementById("operType").value; if (actionName == "insert") { insert() }else if (actionName == "update") { update(); }else if (actionName == "delete") { remove(); }else{ alert("未知的操作 --> " + actionName); } } function addBGroupMenu(){ var gridCount = SourceGrpGrid.mulLineCount; var currentPage = turnPageNew.pageIndex; var pageLineNum = turnPageNew.pageLineNum; let queryAllRecordCount = turnPageNew.queryAllRecordCount; let iArray = new Array(); for (var i = 0; i< gridCount; i++) { let offset = i + currentPage * pageLineNum; if (offset >= queryAllRecordCount) continue; if (MenuQueryGrid.getChkNo(i)){ iArray.push(MenuQueryGrid.getRowColData(i,1)); } } if(iArray.length === 0){ alert("请先选择要添加的菜单"); return; } ajaxSubmit3({ url: "../API/systemmanage/menumang/menuGrpExclu/update", data: { excluGrpCodeInput: sourceId, nodeList: iArray }, callBackMethod: (flagStr, content, result) => { alert(content); if(flagStr === 'Succ'){ queryClick(); } } }); } function cancelClick() { divMain.style.display = ""; divSubCmdButton.style.display = "none"; initForm(); } function addAGroupClick(){ divAddMenu.style.display = ""; divEditMenu.style.display = "none"; document.getElementById('tdA').textContent = 'A 组已有菜单'; document.getElementById('tdB').textContent = 'A 组未有菜单'; let code = document.getElementById("hide1").value; document.getElementById("hide2").value = "A"; showAllMenuInUnselect(code,"A"); } function addBGroupClick(){ divAddMenu.style.display = ""; divEditMenu.style.display = "none"; document.getElementById('tdA').textContent = 'B 组已有菜单'; document.getElementById('tdB').textContent = 'B 组未有菜单'; let code = document.getElementById("hide1").value; document.getElementById("hide2").value = "B"; showAllMenuInUnselect(code,"B"); } function returnParent(){ divAddMenu.style.display = "none"; divEditMenu.style.display = ""; document.getElementById('tdA').textContent = 'A 组菜单'; document.getElementById('tdB').textContent = 'B 组菜单'; let code = document.getElementById("hide1").value; showAllMenuInUnselect(code,"AB"); } function saveSelectMenus(){ let excluCode = document.getElementById("hide1").value; let type = document.getElementById("hide2").value; if(excluCode==='' || excluCode == null){ alert("请先选择一个权限互斥组"); return; } if(type !== 'A' && type !== 'B'){ alert("不支持的操作类型"); return; } let selectNodes = new Array(); let j = 0; for (var i = 0; i < selectArray.length; i++) { //判断是否勾选0-选中 if (selectArray[i][5]== 1){ continue; } //判断是否叶子节点0-不是 if(selectArray[i][9]== 0){ continue; } selectNodes[j] = selectArray[i][4]; j++; } ajaxSubmit3({ url: "../API/systemmanage/menumang/menuGrpExclu/addMenu", data: { excluCode: excluCode, group: type, nodeList: selectNodes }, callBackMethod: (flagStr, content, result) => { alert(content); } }); } /** * 对界面内容进行校验 * @returns {boolean} */ function checkInputInfo(){ var excluGrpCodeInput = document.getElementById("excluGrpCodeInput").value; var excluGrpNameInput = document.getElementById("excluGrpNameInput").value; var excluGrpDescInput = document.getElementById("excluGrpDescInput").value; if( excluGrpCodeInput.trim() === ""){ alert("互斥组编码不能为空"); return false; } if( excluGrpNameInput.trim() === ""){ alert("互斥组名称不能为空"); return false; } if( excluGrpDescInput.trim() === ""){ alert("描述不能为空"); return false; } return true; } function insert() { //数据校验 if(!checkInputInfo()){ return; } var excluGrpCodeInput = document.getElementById("excluGrpCodeInput").value; var excluGrpNameInput = document.getElementById("excluGrpNameInput").value; var excluGrpDescInput = document.getElementById("excluGrpDescInput").value; ajaxSubmit3({ url: "../API/systemmanage/menumang/menuGrpExclu/add", data: { excluGrpCodeInput: excluGrpCodeInput, excluGrpNameInput: excluGrpNameInput, excluGrpDescInput: excluGrpDescInput }, callBackMethod: (flagStr,content,result)=> { alert(content); if(flagStr == "Succ"){ window.close(); } } }); } function update() { //数据校验 if(!checkInputInfo()){ return; } var excluGrpCodeInput = document.getElementById("excluGrpCodeInput").value; var excluGrpNameInput = document.getElementById("excluGrpNameInput").value; var excluGrpDescInput = document.getElementById("excluGrpDescInput").value; ajaxSubmit3({ url: "../API/systemmanage/menumang/menuGrpExclu/update", data: { excluGrpCodeInput: excluGrpCodeInput, excluGrpNameInput: excluGrpNameInput, excluGrpDescInput: excluGrpDescInput }, callBackMethod: (flagStr,content,result)=> { alert(content); if(flagStr == "Succ"){ window.close(); } } }); } /** * 新增互斥组 */ function insertClick() { var name = '权限互斥组编辑'; //网页名称,可为空; var iWidth = 550; //弹出窗口的宽度; var iHeight = 350; //弹出窗口的高度; var iTop = (window.screen.availHeight - iHeight) / 2; //获得窗口的垂直位置 var iLeft = (window.screen.availWidth - iWidth) / 2; //获得窗口的水平位置 let showInfo = window.open('./menuExcluEdit.jsp', name, "status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=0,titlebar=no,height=" + iHeight + ",width=" + iWidth + ",innerHeight=" + iHeight + ",innerWidth=" + iWidth + ",left=" + iLeft + ",top=" + iTop, false); showInfo.data = { operType: 'insert' } showInfo.focus(); } /** * 更新互斥组 */ function updateClick() { var selMenuGrpNo = QueryGrpGrid.getSelNo(); if (selMenuGrpNo == 0) { alert("请选择需要更新的互斥组"); return; } var code = QueryGrpGrid.getRowColData(selMenuGrpNo - 1,1); if (code === '' || code == null) { alert("请选择需要更新的互斥组"); return; } var name = QueryGrpGrid.getRowColData(selMenuGrpNo - 1,2); var desc = QueryGrpGrid.getRowColData(selMenuGrpNo - 1,3); var iWidth = 550; //弹出窗口的宽度; var iHeight = 350; //弹出窗口的高度; var iTop = (window.screen.availHeight - iHeight) / 2; //获得窗口的垂直位置 var iLeft = (window.screen.availWidth - iWidth) / 2; //获得窗口的水平位置 let showInfo = window.open('./menuExcluEdit.jsp', '权限互斥组编辑', "status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=0,titlebar=no,height=" + iHeight + ",width=" + iWidth + ",innerHeight=" + iHeight + ",innerWidth=" + iWidth + ",left=" + iLeft + ",top=" + iTop, false); showInfo.data = { code: code, name: name, desc: desc, operType: 'update' } showInfo.focus(); } /** * 删除互斥组 */ function deleteClick() { var selMenuGrpNo = QueryGrpGrid.getSelNo(); if (selMenuGrpNo == 0) { alert("请选择需要删除的互斥组"); return; } //互斥组编码 var code = QueryGrpGrid.getRowColData(selMenuGrpNo - 1,1); if(code === "" || code == null){ alert("请选择需要删除的互斥组"); return; } if (!confirm("确认要删除这条数据吗?")) return; ajaxSubmit3({ url: "../API/systemmanage/menumang/menuGrpExclu/delete", data: { hideDelCode: code }, callBackMethod: (flagStr,content,result)=> { alert(content); queryClick(); } }); } function editRelationClick(){ let selMenuGrpNo = QueryGrpGrid.getSelNo(); if (selMenuGrpNo == 0) { alert("请先在列表中选择一个互斥组"); return; } //互斥组编码 let code = QueryGrpGrid.getRowColData(selMenuGrpNo - 1,1); if(code === "" || code == null){ alert("请先在列表中选择一个互斥组"); return; } document.getElementById("hide1").value = code; //隐去需要的元素 divMain.style.display = "none"; showAllMenuInUnselect(code,"AB"); //显示需要的元素 divSubCmdButton.style.display = ""; } function queryMenuClick(){ var nodeName = document.getElementById("NodeName").value; var funcProp = document.getElementById("funcProp").value; let excluCode = document.getElementById("hide1").value; var param = [ nodeName, funcProp, excluCode ] var mySql = wrapSql("menumang.menuGrpExcluSql", "menuQuery", param, "systemmanage"); var sqlStr=mySql; turnPageNew.queryModal(sqlStr, MenuQueryGrid,1); } function changeClick(){ var selMenuGrpNo = QueryGrpGrid.getSelNo(); if (selMenuGrpNo == 0) { alert("请选择需要更新的互斥组"); return; } var code = QueryGrpGrid.getRowColData(selMenuGrpNo - 1,1); var validFlag = QueryGrpGrid.getRowColData(selMenuGrpNo - 1,4); var content = ""; if(validFlag=="0"){ content = "确认要启用这个互斥组吗?"; validFlag = "1"; }else{ content = "确认要停用这个互斥组吗?"; validFlag = "0"; } if (!confirm(content)) return; document.getElementById("hideDelCode").value = code; document.getElementById("operType").value = validFlag; fm.action = "../API/systemmanage/menumang/menuGrpExclu/change"; ajaxSubmit2(document.getElementById("fm")); } function reset(){ document.getElementById('excluGrpCodeInput').value = ""; document.getElementById('excluGrpNameInput').value = ""; document.getElementById('excluGrpDescInput').value = ""; } function addMenus(){ for (var i = 0; i < unselectArray.length; i++) { if (unselectArray[i][5] == 1) continue; if (unselectArray[i][7] == 1) { removeNode(unselectArray,i); addNode(selectArray,i); } } paintTree(selectArray,"spanSelectMenuGrpTree"); paintTree(unselectArray,"spanUnselectMenuGrpTree"); } function removeMenus() { for (var i = 0; i < selectArray.length; i++) { if (selectArray[i][2] != 0) continue; if (selectArray[i][5] == 1) continue; if (selectArray[i][7] == 1) { removeNode(selectArray,i); addNode(unselectArray,i); } } paintTree(selectArray,"spanSelectMenuGrpTree"); paintTree(unselectArray,"spanUnselectMenuGrpTree"); } function showAllMenuInUnselect(menuGrpExluCode,type){ ajaxSubmit3({ url: "../API/systemmanage/menumang/menuGrpExclu/queryMenuTree", data: { excluCode: menuGrpExluCode, type: type }, callBackMethod: (flagStr,content,result)=> { if(flagStr === "Succ"){ selectArray = result.aMenuList; unselectArray = result.bMenuList; paintTree(selectArray,"spanSelectMenuGrpTree"); paintTree(unselectArray,"spanUnselectMenuGrpTree"); }else{ alert(content); } } }); } function afterSubmit(FlagStr,content,result) { alert(content); queryClick(); }