buttonManage.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. var roleMsg1 = undefined;
  2. var roleMsg2 = undefined;
  3. var roleInfoList = undefined;
  4. var roleMenuBtnList = undefined;
  5. var currentMenuId ='4.1';//当前界面对应的menuid
  6. $(function(){
  7. queryAllRole();
  8. var str2 = getSelectOfficeBoxHtml(2);
  9. roleMsg2 = str2;
  10. var str1 = getSelectOfficeBoxHtml(1);
  11. roleMsg1 = str1;
  12. if(!roleInfoList.length){
  13. $("#roleId").attr("value",roleInfoList.RoleId);
  14. $("#selectOffice").html(roleInfoList.RoleName);
  15. loadMenuByRoleId(roleInfoList.RoleId,roleInfoList.RoleName);
  16. }else{
  17. $("#roleId").attr("value",roleInfoList[0].RoleId);
  18. $("#selectOffice").html(roleInfoList[0].RoleName);
  19. loadMenuByRoleId(roleInfoList[0].RoleId,roleInfoList[0].RoleName);
  20. }
  21. $('.office-btns').on('click',function(){
  22. if(!$("#divMenuBtnTitle").attr("roleId")){
  23. return ;
  24. }
  25. //设置对话框中的值
  26. $("#txtBtnName").val("");
  27. $("#txtBtnType").val("");
  28. $("#txtBtnAPI").val("");
  29. $("#txtBtnAction").val("");
  30. //加载菜单选项
  31. var contents=$('.office-box').get(0);
  32. var artBox=art.dialog({
  33. lock: true,
  34. artIcon:'add',
  35. opacity:0.4,
  36. width: 550,
  37. padding:'0px 0px',
  38. title:'新增功能',
  39. content: contents,
  40. ok: function () {
  41. var btnName = $("#txtBtnName").val();
  42. var btnType = $("#txtBtnType").val();
  43. var btnAPI = $("#txtBtnAPI").val();
  44. var btnAction = $("#txtBtnAction").val();
  45. if( !btnName ){
  46. Commonjs.alert('按钮名称不能为空');
  47. document.getElementById("txtBtnName").focus();
  48. return false;
  49. }
  50. if( !btnType ){
  51. Commonjs.alert('按钮类型不能为空');
  52. document.getElementById("txtBtnType").focus();
  53. return false;
  54. }
  55. //保存菜单
  56. var roleMenuBtnObje ={};
  57. roleMenuBtnObje.btnName = btnName;
  58. roleMenuBtnObje.btnType = btnType;
  59. roleMenuBtnObje.menuName = menuName;
  60. roleMenuBtnObje.API = btnAPI;
  61. roleMenuBtnObje.action = btnAction;
  62. roleMenuBtnObje.roleId = $("#divMenuBtnTitle").attr("roleId");
  63. roleMenuBtnObje.menuId = $("#divMenuBtnTitle").attr("menuId");
  64. roleMenuBtnObje.menuName = $("#divMenuBtnTitle").attr("menuName");
  65. saveOrUpdateRoleMenuBtn(roleMenuBtnObje);
  66. },
  67. cancel: true
  68. });
  69. return false;
  70. });
  71. Commonjs.btnPermissionControl(currentMenuId);
  72. });
  73. function showorhideRole(obj){
  74. var a = $(obj).next('div');
  75. var id = a.attr('id');
  76. var idx = id.substring(id.length-1,id.length);
  77. if(a.css('display')=="none"){
  78. a.show();
  79. var api = a.jScrollPane({"autoReinitialise": true}).data('jsp');
  80. if(idx==1){
  81. api.getContentPane().html(roleMsg1);
  82. }else{
  83. api.getContentPane().html(roleMsg2);
  84. }
  85. api.reinitialise();
  86. }else{
  87. a.hide();
  88. }
  89. }
  90. //查询所有职务角色
  91. function queryAllRole(){
  92. var Service = {};
  93. var pageIndex = 0;
  94. var pageSize = 100;
  95. var page = {};
  96. page.PIndex = pageIndex;
  97. page.PSize = pageSize;
  98. var code = 2005;
  99. var param = {};
  100. var params = Commonjs.getParams(code,Service,page);//获取参数
  101. param.Api = "QueryAllRole";
  102. param.Params = Commonjs.jsonToString(params);
  103. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  104. if(d.RespCode==10000){
  105. roleInfoList = d.Data;
  106. }
  107. }
  108. //生成职务选择框下拉数据
  109. function getSelectOfficeBoxHtml(index){
  110. var str = "<ul>";
  111. if(!roleInfoList.length){
  112. str +="<li><a onclick=setSelectOffice("+index+",\""+roleInfoList.RoleId+"\",\""+encodeURI(encodeURI(roleInfoList.RoleName))+"\")>"+roleInfoList.RoleName+"</a></li>";
  113. }else{
  114. for(var i=0;i<roleInfoList.length;i++){
  115. var obj = roleInfoList[i];
  116. str +="<li><a onclick=setSelectOffice("+index+",\""+obj.RoleId+"\",\""+encodeURI(encodeURI(obj.RoleName))+"\")>"+obj.RoleName+"</a></li>";
  117. }
  118. }
  119. str +="</ul>"
  120. //str +="<p><a href=\"javascript:;\" onclick=\"addRole("+index+");\" class=\"office-btns\"><i class=\"icon icon-office-add\"></i>添加职务</a></p>";
  121. return str;
  122. }
  123. // 设置选中值
  124. function setSelectOffice(index,roleId,roleName){
  125. $("#roleId").attr("value",roleId);
  126. $("#selectOffice").html(decodeURI(decodeURI(roleName)));
  127. $('#selectOfficeBox').hide();
  128. loadMenuByRoleId(roleId,decodeURI(decodeURI(roleName)));
  129. }
  130. //根据选择的职务角色,加载菜单
  131. function loadMenuByRoleId(roleId,roleName){
  132. var Service = {};
  133. var code = 2005;
  134. var param = {};
  135. var params = Commonjs.getParams(code,Service);//获取参数
  136. Service.RoleId = roleId;
  137. param.Api = "QueryMenuByRoleId";
  138. param.Params = Commonjs.jsonToString(params);
  139. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  140. if(d.RespCode=10000){
  141. var menuInfo = d.Data;
  142. var str = "<tr></th><th>菜单ID</th><th>菜单名称</th></tr>";
  143. if(!menuInfo.length){
  144. str += "<tr onclick=\"showRoleMenuButton('"+roleId+"','"+roleName+"','"+menuInfo.MenuId+"','"+menuInfo.MenuName+"')\">";
  145. str +="<td>"+menuInfo.MenuId+"</td>";
  146. str +="<td>"+menuInfo.MenuName+"</td>";
  147. str +="</tr>";
  148. }else{
  149. for(var i=0;i<menuInfo.length;i++){
  150. var obj = menuInfo[i];
  151. str += "<tr onclick=\"showRoleMenuButton('"+roleId+"','"+roleName+"','"+obj.MenuId+"','"+obj.MenuName+"')\">";
  152. str +="<td>"+obj.MenuId+"</td>";
  153. str +="<td>"+obj.MenuName+"</td>";
  154. str +="</tr>";
  155. }
  156. }
  157. $("#tb").html(str);
  158. }else{
  159. Commonjs.alert(d.RespMessage);
  160. }
  161. }
  162. //根据角色ID查询功能 权限
  163. function showRoleMenuButton(roleId,roleName,menuId,menuName){
  164. $("#divMenuBtnTitle").html("菜单功能:"+roleName+"->"+menuName);
  165. $("#divMenuBtnTitle").attr("roleId",roleId);
  166. $("#divMenuBtnTitle").attr("menuId",menuId);
  167. $("#divMenuBtnTitle").attr("menuName",menuName);
  168. loadButtonTab(roleId,menuId);
  169. }
  170. //保存功能按钮信息
  171. function saveOrUpdateRoleMenuBtn(RoleMenuBtnObj){
  172. var Service = {};
  173. var page = {};
  174. var code = 2005;
  175. Service.MenuID = RoleMenuBtnObj.menuId;
  176. Service.RoleId = RoleMenuBtnObj.roleId;
  177. Service.MenuName = RoleMenuBtnObj.menuName;
  178. Service.ButtonType = RoleMenuBtnObj.btnType;
  179. Service.ButtonName = RoleMenuBtnObj.btnName;
  180. Service.APIPermission = RoleMenuBtnObj.API;
  181. Service.ActionPermission = RoleMenuBtnObj.action;
  182. if(RoleMenuBtnObj.roleMenuButtonId){
  183. Service.RoleMenuButtonId = RoleMenuBtnObj.roleMenuButtonId ;
  184. }
  185. var param = {};
  186. var params = Commonjs.getParams(code,Service);//获取参数
  187. param.Api = "SaveOrUpdateRoleMenuButton";
  188. param.Params = Commonjs.jsonToString(params);
  189. //调用API
  190. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  191. if(d.RespCode!=10000){
  192. //异常提示
  193. Commonjs.alert(d.RespMessage);
  194. }
  195. loadButtonTab(RoleMenuBtnObj.roleId,RoleMenuBtnObj.menuId);
  196. }
  197. function loadButtonTab(roleId,menuId){
  198. var Service = {};
  199. Service.RoleId = roleId;
  200. Service.MenuId = menuId;
  201. code=2005;
  202. var param = {};
  203. var params = Commonjs.getParams(code,Service);//获取参数
  204. param.Api = "QueryRoleMenuButton";
  205. param.Params = Commonjs.jsonToString(params);
  206. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  207. if(d.RespCode=10000){
  208. roleMenuBtnList = d.Data;
  209. var str = "<tr><th>按钮名称</th><th>操作类型</th><th>调用API</th><th>调用Action</th><th>状态</th><th>操作</th></tr>";
  210. if(roleMenuBtnList.length == null){
  211. str += "<tr>";
  212. str +="<td>"+roleMenuBtnList.ButtonName+"</td>";
  213. str +="<td>"+roleMenuBtnList.ButtonType+"</td>";
  214. str +="<td>"+roleMenuBtnList.ApiPermission+"</td>";
  215. str +="<td>"+roleMenuBtnList.ActionPermission+"</td>";
  216. //str +="<td>"+roleMenuBtnList.State+"</td>";
  217. if(roleMenuBtnList.State == 0){
  218. str += "<td id='"+roleMenuBtnList.RoleMenuButtonId+"'><div class='my-switch-box red' onclick='updateState(\""+roleMenuBtnList.RoleMenuButtonId+"\","+roleMenuBtnList.State+")' btnPermission='UBTNSTATE'>";
  219. }else{
  220. str += "<td id='"+roleMenuBtnList.RoleMenuButtonId+"'><div class='my-switch-box' onclick='updateState(\""+roleMenuBtnList.RoleMenuButtonId+"\","+roleMenuBtnList.State+")' btnPermission='UBTNSTATE'>";
  221. }
  222. str += '<span></span></div>'+getStateCN(roleMenuBtnList.State)+'</td>';
  223. str +="<td><ul class=\"i-btn-list\"><li style=\"padding: 0px 5px;\"><a href=\"javascript:updateRoleMenuBtn('"+(-1)+"');\" class=\"i-btn\"><i class=\"i-edit\" btnPermission='UPDATEBTN'></i>编辑</a>" +
  224. "</li><li style=\"padding: 0px 5px;\"><a href=\"javascript:deleteRoleMenuButton('"+roleMenuBtnList.RoleMenuButtonId+"');\" class=\"i-btn\"><i class=\"i-del\" btnPermission='DELETEBTN'></i>删除</a></li></ul></td>";
  225. str +="</tr>";
  226. }else{
  227. for(var i=0;i<roleMenuBtnList.length;i++){
  228. var obj = roleMenuBtnList[i];
  229. str += "<tr>";
  230. str +="<td>"+obj.ButtonName+"</td>";
  231. str +="<td>"+obj.ButtonType+"</td>";
  232. str +="<td>"+obj.ApiPermission+"</td>";
  233. str +="<td>"+obj.ActionPermission+"</td>";
  234. //str +="<td>"+obj.State+"</td>";
  235. if(obj.State == 0){
  236. str += "<td id='"+obj.RoleMenuButtonId+"'><div class='my-switch-box red' onclick='updateState(\""+obj.RoleMenuButtonId+"\","+obj.State+")' btnPermission='UBTNSTATE' >";
  237. }else{
  238. str += "<td id='"+obj.RoleMenuButtonId+"'><div class='my-switch-box' onclick='updateState(\""+obj.RoleMenuButtonId+"\","+obj.State+")' btnPermission='UBTNSTATE'>";
  239. }
  240. str += '<span></span></div>'+getStateCN(obj.State)+'</td>';
  241. str +="<td><ul class=\"i-btn-list\"><li style=\"padding: 0px 5px;\"><a href=\"javascript:void(0);\" onclick=\"updateRoleMenuBtn('"+i+"');\" class=\"i-btn\" btnPermission='UPDATEBTN'><i class=\"i-edit\"></i>编辑</a></li>" +
  242. "<li style=\"padding: 0px 5px;\"><a href=\"javascript:deleteRoleMenuButton('"+obj.RoleMenuButtonId+"');\" class=\"i-btn\"><i class=\"i-del\" btnPermission='DELETEBTN'></i>删除</a></li></ul></td>";
  243. str +="</tr>";
  244. }
  245. }
  246. $("#tabRoleBtn").html(str);
  247. }else{
  248. Commonjs.alert(d.RespMessage);
  249. }
  250. Commonjs.btnPermissionControl(currentMenuId);
  251. }
  252. function deleteRoleMenuButton(roleMenuButtonId){
  253. art.dialog({
  254. lock: true,
  255. width: '300px',
  256. height: '100px',
  257. title:'删除确认',
  258. content: '您确定要删除?',
  259. ok : function() {
  260. var Service = {};
  261. var page = {};
  262. var code = 2005;
  263. Service.RoleMenuButtonId = roleMenuButtonId;
  264. var param = {};
  265. var params = Commonjs.getParams(code,Service);//获取参数
  266. param.Api = "DeleteRoleMenuButton";
  267. param.Params = Commonjs.jsonToString(params);
  268. //调用API
  269. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  270. if(d.RespCode!=10000){
  271. //异常提示
  272. Commonjs.alert(d.RespMessage);
  273. }
  274. Commonjs.alert("删除成功!","add");
  275. loadButtonTab($("#divMenuBtnTitle").attr("roleId"),$("#divMenuBtnTitle").attr("menuId"));
  276. },
  277. cancel : true
  278. });
  279. }
  280. //更新操作
  281. function updateRoleMenuBtn(index){
  282. var btnObj = null;
  283. if( index <0 ){
  284. btnObj = roleMenuBtnList;
  285. }else{
  286. btnObj = roleMenuBtnList[index];
  287. }
  288. if( btnObj == null ){
  289. return;
  290. }
  291. //设置对话框中的值
  292. $("#txtBtnName").val(btnObj.ButtonName);
  293. $("#txtBtnType").val(btnObj.ButtonType);
  294. $("#txtBtnAPI").val(btnObj.ApiPermission);
  295. $("#txtBtnAction").val(btnObj.ActionPermission);
  296. //加载菜单选项
  297. var contents=$('.office-box').get(0);
  298. var artBox=art.dialog({
  299. lock: true,
  300. artIcon:'add',
  301. opacity:0.4,
  302. width: 550,
  303. padding:'0px 0px',
  304. title:'修改功能',
  305. content: contents,
  306. ok: function () {
  307. var btnName = $("#txtBtnName").val();
  308. var btnType = $("#txtBtnType").val();
  309. var btnAPI = $("#txtBtnAPI").val();
  310. var btnAction = $("#txtBtnAction").val();
  311. if( !btnName ){
  312. Commonjs.alert('按钮名称不能为空');
  313. document.getElementById("txtBtnName").focus();
  314. return false;
  315. }
  316. if( !btnType ){
  317. Commonjs.alert('按钮类型不能为空');
  318. document.getElementById("txtBtnType").focus();
  319. return false;
  320. }
  321. //保存菜单
  322. var roleMenuBtnObje ={};
  323. roleMenuBtnObje.roleMenuButtonId = btnObj.RoleMenuButtonId;
  324. roleMenuBtnObje.btnName = btnName;
  325. roleMenuBtnObje.btnType = btnType;
  326. roleMenuBtnObje.menuName = menuName;
  327. roleMenuBtnObje.API = btnAPI;
  328. roleMenuBtnObje.action = btnAction;
  329. roleMenuBtnObje.roleId = $("#divMenuBtnTitle").attr("roleId");
  330. roleMenuBtnObje.menuId = $("#divMenuBtnTitle").attr("menuId");
  331. roleMenuBtnObje.menuName = $("#divMenuBtnTitle").attr("menuName");
  332. saveOrUpdateRoleMenuBtn(roleMenuBtnObje);
  333. },
  334. cancel: true
  335. });
  336. }
  337. //状态转换
  338. function getStateCN(state){
  339. switch(parseInt(state)){
  340. case 0:return '未启用';
  341. case 1:return '已启用';
  342. default:return '';
  343. }
  344. }
  345. function updateState(roleMenuBtnId,state){
  346. var param = {};
  347. var Service = {};
  348. var code = 2005;
  349. Service.RoleMenuButtonId = roleMenuBtnId;
  350. Service.State = state;
  351. var params = Commonjs.getParams(code,Service);//获取参数
  352. param.Api = "UpdateRoleMenuButtonState";
  353. param.Params = Commonjs.jsonToString(params);
  354. var d = Commonjs.ajax('./account_callAccountApi.do',param,false);
  355. Commonjs.alert(d.RespMessage);
  356. if(d.RespCode == 10000){
  357. var html = '';
  358. if(state == 1){
  359. html = "<div class='my-switch-box red' onclick='updateState(\""+roleMenuBtnId+"\","+state+")'>";
  360. }else{
  361. html = "<div class='my-switch-box' onclick='updateState(\""+roleMenuBtnId+"\","+state+")'>";
  362. }
  363. html += '<span></span></div>'+getStateCN(state)+'';
  364. $('#'+roleMenuBtnId).empty().html(html);
  365. }
  366. }