roleManage.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532
  1. var roleInfoList = undefined;
  2. var menuInfoList = undefined;
  3. var menuInfo = undefined;
  4. $(function(){
  5. $('.office-box-list').height(250).jScrollPane({"autoReinitialise": true,"overflow":true});
  6. $('.office-btns').on('click',function(){
  7. //设置对话框中的值
  8. $("#roleName").val("");
  9. $("#roleName").attr('readOnly',null);
  10. $("#roleDesc").val("");
  11. $("#roleMark").val("");
  12. $("#roleId").attr("value",null);
  13. //加载菜单选项
  14. var menuStr = getMenuTbHtml();
  15. $("#menuTb").html(menuStr);
  16. var contents=$('.office-box').get(0);
  17. var artBox=art.dialog({
  18. lock: true,
  19. artIcon:'add',
  20. opacity:0.4,
  21. width: 600,
  22. padding:'0px 0px',
  23. title:'新增职务',
  24. content: contents,
  25. ok: function () {
  26. var roleName = $("#roleName").val();
  27. var roleDesc = $("#roleDesc").val();
  28. var roleMark = $("#roleMark").val();
  29. if(!roleName){
  30. Commonjs.alert('职务名称不能为空');
  31. document.getElementById("roleName").focus();
  32. return false;
  33. }
  34. if(roleName.length>30){
  35. Commonjs.alert('职务名称不能超过30个字符');
  36. document.getElementById("roleName").focus();
  37. return false;
  38. }
  39. if(!checkRoleByName(roleName)){
  40. return false;
  41. }
  42. /*if(!roleDesc){
  43. Commonjs.alert('职务描述不能为空');
  44. document.getElementById("roleDesc").focus();
  45. return false;
  46. }*/
  47. if(roleDesc.length>50){
  48. ('职务描述不能超过50个字符');
  49. document.getElementById("roleDesc").focus();
  50. return false;
  51. }
  52. /*if(!roleMark){
  53. Commonjs.alert('职务标识不能为空');
  54. document.getElementById("roleMark").focus();
  55. return false;
  56. }*/
  57. if(roleMark.length>50){
  58. Commonjs.alert('职务标识不能超过50个字符');
  59. document.getElementById("roleMark").focus();
  60. return false;
  61. }
  62. var roleId = saveOrUpdateRole(null,roleMark,roleName,roleDesc)
  63. if(!menuInfoList.length){
  64. var state = 0;
  65. var menuList = $("input[name='"+menuInfoList.Key+"']");
  66. for(var i=0 ;i<menuList.length;i++){
  67. menu = menuList[i];
  68. if(menu.checked){
  69. state +=parseInt(menu.value);
  70. }
  71. }
  72. var menuId = getMenuIdByKey(menuInfoList.Key);
  73. var menuuuId = getMenuuuIdByKey(obj.Key);
  74. saveRoleMenu(menuId,roleId,state,menuuuId);
  75. }else{
  76. for(var i=0;i<menuInfoList.length;i++){
  77. var obj = menuInfoList[i];
  78. var state = 0;
  79. var menuList = $("input[name='"+obj.Key+"']");
  80. for(var j=0 ;j<menuList.length;j++){
  81. menu = menuList[j];
  82. if(menu.checked){
  83. state +=parseInt(menu.value);
  84. }
  85. }
  86. var menuId = getMenuIdByKey(obj.Key);
  87. var menuuuId = getMenuuuIdByKey(obj.Key);
  88. saveRoleMenu(menuId,roleId,state,menuuuId);
  89. }
  90. }
  91. loadTb(1);
  92. },
  93. cancel: true
  94. });
  95. return false;
  96. })
  97. loadTb(1);
  98. })
  99. function loadTb(index){
  100. var Service = {};
  101. $('#pagenumber').val(index);
  102. var pageIndex = index-1;
  103. var pageSize = 10;
  104. var page = {};
  105. page.PIndex = pageIndex;
  106. page.PSize = pageSize;
  107. Service.HosId = Commonjs.hospitalId;
  108. var code = 2005;
  109. var param = {};
  110. var params = Commonjs.getParams(code,Service,page);//获取参数
  111. param.Api = "QueryAllRole";
  112. param.Params = Commonjs.jsonToString(params);
  113. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  114. if(d.RespCode=10000){
  115. if(d.Page.PCount!=undefined){
  116. if(d.Page.PCount!=0){
  117. $("#totalcount").val(d.Page.PCount);
  118. }else{
  119. if(d.Page.PIndex==0)$("#totalcount").val(0);
  120. }
  121. }else{
  122. $("#totalcount").val(0);
  123. }
  124. Page($("#totalcount").val(),d.Page.PSize,'pager');
  125. roleInfoList = d.Data;
  126. var str = "<tr><th>职务名称</th><th>职务描述</th><th>职务标识</th><th class=\"w160p last\">操作</th></tr>";
  127. if(!roleInfoList.length){
  128. str += "<tr>";
  129. str +="<td>"+roleInfoList.RoleName+"</td>";
  130. str +="<td>"+roleInfoList.RoleDesc+"</td>";
  131. str +="<td>"+roleInfoList.RoleMark+"</td>";
  132. str +="<td><ul class=\"i-btn-list\"><li><a href=\"javascript:updateRoleInfo('"+roleInfoList.RoleId+"');\" class=\"i-btn\"><i class=\"i-edit\"></i>编辑</a></li><li><a href=\"javascript:deleteRole('"+roleInfoList.RoleId+"');\" class=\"i-btn\"><i class=\"i-del\"></i>删除</a></li></ul></td>";
  133. //str +="<td><a href=\"javascript:;\" class=\"operate\" onclick='updateRoleInfo(\""+roleInfoList.RoleId+"\")'>编辑</a> <a href=\"javascript:;\" class=\"operate\" onclick='deleteRole(\""+userInfoList.RoleId+"\")'>删除</a></td>";
  134. str +="</tr>";
  135. }else{
  136. for(var i=0;i<roleInfoList.length;i++){
  137. var obj = roleInfoList[i];
  138. str += "<tr>";
  139. str +="<td>"+obj.RoleName+"</td>";
  140. str +="<td>"+obj.RoleDesc+"</td>";
  141. str +="<td>"+obj.RoleMark+"</td>";
  142. str +="<td><ul class=\"i-btn-list\"><li><a href=\"javascript:updateRoleInfo('"+obj.RoleId+"');\" class=\"i-btn\"><i class=\"i-edit\"></i>编辑</a></li><li><a href=\"javascript:deleteRole('"+obj.RoleId+"');\" class=\"i-btn\"><i class=\"i-del\"></i>删除</a></li></ul></td>";
  143. //str +="<td><ul class=\"i-btn-list\"><li><a onclick='updateRoleInfo(\""+obj.RoleId+"\")' class=\"i-btn\"><i class=\"i-edit\"></i>编辑</a></li><li><a onclick='deleteRole(\""+obj.RoleId+"\")' class=\"i-btn\"><i class=\"i-del\"></i>删除</a></li></ul></td>";
  144. //str +="<td><a href=\"javascript:;\" class=\"operate\" onclick='updateRoleInfo(\""+obj.RoleId+"\")'>编辑</a> <a href=\"javascript:;\" class=\"operate\" onclick='deleteRole(\""+obj.RoleId+"\")'>删除</a></td>";
  145. str +="</tr>";
  146. }
  147. }
  148. $("#tb").html(str);
  149. }else{
  150. //异常提示
  151. Page(0,pageSize,'pager');
  152. Commonjs.alert(d.RespMessage);
  153. }
  154. }
  155. function updateRoleInfo(roleId){
  156. var d = undefined;
  157. if(!roleInfoList.length){
  158. d = roleInfoList;
  159. }else{
  160. for(var i=0;i<roleInfoList.length;i++){
  161. var obj = roleInfoList[i];
  162. var rId = obj.RoleId;
  163. if(rId==roleId){
  164. d = obj;
  165. }
  166. }
  167. }
  168. //设置对话框中的值
  169. $("#roleName").val(d.RoleName);
  170. $("#roleName").attr('readOnly','true');
  171. $("#roleDesc").val(d.RoleDesc);
  172. $("#roleMark").val(d.RoleMark);
  173. $("#roleId").attr("value",d.RoleId);
  174. //加载菜单选项
  175. var menuStr = getMenuTbHtml();
  176. $("#menuTb").html(menuStr);
  177. //设置该角色的菜单
  178. queryMenuByRoleId(d.RoleId);
  179. if(!menuInfo.length){
  180. var state = menuInfo.State;
  181. var key = menuInfo.Key;
  182. selectMenu(key,state)
  183. }else{
  184. for(var i=0;i<menuInfo.length;i++){
  185. var menu = menuInfo[i];
  186. var state = menu.State;
  187. var key = menu.Key;
  188. selectMenu(key,state)
  189. }
  190. }
  191. var contents=$('.office-box').get(0);
  192. var artBox=art.dialog({
  193. lock: true,
  194. artIcon:'add',
  195. opacity:0.4,
  196. width: 600,
  197. padding:'0px 0px',
  198. title:'修改职务',
  199. content: contents,
  200. ok: function () {
  201. var roleName = $("#roleName").val();
  202. var roleDesc = $("#roleDesc").val();
  203. var roleMark = $("#roleMark").val();
  204. var roleId = $("#roleId").val();
  205. if(Commonjs.isEmpty(roleName)){
  206. Commonjs.alert('职务名称不能为空');
  207. document.getElementById("roleName").focus();
  208. return false;
  209. }
  210. if(roleName.length>30){
  211. Commonjs.alert('职务名称不能超过30个字符');
  212. document.getElementById("roleName").focus();
  213. return false;
  214. }
  215. if(roleDesc.length>50){
  216. Commonjs.alert('职务描述不能超过50个字符');
  217. document.getElementById("roleDesc").focus();
  218. return false;
  219. }
  220. if(roleMark.length>50){
  221. Commonjs.alert('职务标识不能超过50个字符');
  222. document.getElementById("roleMark").focus();
  223. return false;
  224. }
  225. saveOrUpdateRole(roleId,roleMark,roleName,roleDesc)
  226. deleteRoleMenuByRoleId(roleId);
  227. if(!menuInfoList.length){
  228. var state = 0;
  229. var menuList = $("input[name='"+menuInfoList.Key+"']");
  230. for(var i=0 ;i<menuList.length;i++){
  231. menu = menuList[i];
  232. if(menu.checked){
  233. state +=parseInt(menu.value);
  234. }
  235. }
  236. var menuId = getMenuIdByKey(menuInfoList.Key);
  237. var menuuuId = getMenuuuIdByKey(obj.Key);
  238. Commonjs.alert(menuId)
  239. saveRoleMenu(menuId,roleId,state,menuuuId);
  240. }else{
  241. for(var i=0;i<menuInfoList.length;i++){
  242. var obj = menuInfoList[i];
  243. var state = 0;
  244. var menuList = $("input[name='"+obj.Key+"']");
  245. for(var j=0 ;j<menuList.length;j++){
  246. menu = menuList[j];
  247. if(menu.checked){
  248. state +=parseInt(menu.value);
  249. }
  250. }
  251. var menuId = getMenuIdByKey(obj.Key);
  252. var menuuuId = getMenuuuIdByKey(obj.Key);
  253. saveRoleMenu(menuId,roleId,state,menuuuId)
  254. }
  255. }
  256. Commonjs.alert("修改成功!","add");
  257. loadTb(1);
  258. },
  259. cancel: true
  260. });
  261. $('.select-office-box').hide();
  262. }
  263. function saveOrUpdateRole(roleId,roleMark,roleName,roleDesc){
  264. var Service = {};
  265. var page = {};
  266. var code = 2005;
  267. Service.RoleId = roleId;
  268. Service.RoleMark = roleMark;
  269. Service.RoleName = roleName;
  270. Service.RoleDesc = roleDesc;
  271. Service.HosId = Commonjs.hospitalId;
  272. var param = {};
  273. var params = Commonjs.getParams(code,Service);//获取参数
  274. param.Api = "SaveOrUpdateRole";
  275. param.Params = Commonjs.jsonToString(params);
  276. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  277. if(d.RespCode!=10000){
  278. //异常提示
  279. Commonjs.alert(d.RespMessage);
  280. }
  281. return d.RoleId;
  282. }
  283. function queryAllMenu(){
  284. var Service = {};
  285. Service.HosId = Commonjs.hospitalId;
  286. var page = {};
  287. var code = 2005;
  288. var param = {};
  289. var params = Commonjs.getParams(code,Service);//获取参数
  290. param.Api = "QueryAllMenu";
  291. param.Params = Commonjs.jsonToString(params);
  292. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  293. if(d.RespCode==10000){
  294. menuInfoList = d.Data;
  295. }
  296. }
  297. function getMenuTbHtml(){
  298. queryAllMenu();
  299. var str = "";
  300. if(!menuInfoList.length){
  301. str +="<tr>";
  302. str +="<td class=\"w\">"+menuInfoList.MenuName+"</td>";
  303. str +="<td>";
  304. str +="<input type=\"checkbox\" value=\"1\" name=\""+menuInfoList.Key+"\" /><label for=\"action\" >编辑</label>";
  305. //str +="<input type=\"checkbox\" value=\"2\" name=\""+menuInfoList.Key+"\" /><label for=\"action\" >查看</label>";
  306. str +="</td>"
  307. str +="</tr>";
  308. }else{
  309. for(var i=0;i<menuInfoList.length;i++){
  310. var obj = menuInfoList[i];
  311. str +="<tr>";
  312. str +="<td class=\"w\">"+obj.MenuName+"</td>";
  313. str +="<td>";
  314. str +="<input type=\"checkbox\" value=\"1\" name=\""+obj.Key+"\"/><label for=\"action\" class=\"\">编辑</label>";
  315. //str +="<input type=\"checkbox\" value=\"2\" name=\""+obj.Key+"\"/><label for=\"action\" class=\"\">查看</label>";
  316. str +="</td>"
  317. str +="</tr>";
  318. }
  319. }
  320. return str;
  321. }
  322. function saveRoleMenu(menuId,roleId,state,menuuuid){
  323. if(state<=0) return;
  324. var Service = {};
  325. var page = {};
  326. var code = 2005;
  327. Service.MenuId = menuId;
  328. Service.RoleId = roleId;
  329. Service.State = state;
  330. Service.MenuUUID = menuuuid;
  331. var param = {};
  332. var params = Commonjs.getParams(code,Service);//获取参数
  333. param.Api = "SaveRoleMenu";
  334. param.Params = Commonjs.jsonToString(params);
  335. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  336. if(d.RespCode!=10000){
  337. //异常提示
  338. Commonjs.alert(d.RespMessage);
  339. }
  340. }
  341. function getMenuIdByKey(key){
  342. if(!menuInfoList.length){
  343. if(key==menuInfoList.Key){
  344. return menuInfoList.MenuId;
  345. }
  346. }else{
  347. for(var i=0;i<menuInfoList.length;i++){
  348. var obj = menuInfoList[i];
  349. if(key==obj.Key){
  350. return obj.MenuId;
  351. }
  352. }
  353. }
  354. }
  355. function getMenuuuIdByKey(key){
  356. if(!menuInfoList.length){
  357. if(key==menuInfoList.Key){
  358. return menuInfoList.MenuUUID;
  359. }
  360. }else{
  361. for(var i=0;i<menuInfoList.length;i++){
  362. var obj = menuInfoList[i];
  363. if(key==obj.Key){
  364. return obj.MenuUUID;
  365. }
  366. }
  367. }
  368. }
  369. function queryMenuByRoleId(roleId){
  370. var Service = {};
  371. var page = {};
  372. var code = 2005;
  373. Service.RoleId = roleId;
  374. var param = {};
  375. var params = Commonjs.getParams(code,Service);//获取参数
  376. param.Api = "QueryMenuByRoleId";
  377. param.Params = Commonjs.jsonToString(params);
  378. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  379. if(d.RespCode!=10000){
  380. //异常提示
  381. Commonjs.alert(d.RespMessage);
  382. }
  383. menuInfo = d.Data;
  384. }
  385. function selectMenu(key,state){
  386. var menuList = $("input[name='"+key+"']");
  387. for(var i=0 ;i<menuList.length;i++){
  388. var menu = menuList[i];
  389. if(state==(i+1) || state==3){
  390. menu.checked=true;
  391. }
  392. }
  393. }
  394. function deleteRoleMenuByRoleId(roleId){
  395. var Service = {};
  396. var page = {};
  397. var code = 2005;
  398. Service.RoleId = roleId;
  399. var param = {};
  400. var params = Commonjs.getParams(code,Service);//获取参数
  401. param.Api = "DeleteRoleMenuByRoleId";
  402. param.Params = Commonjs.jsonToString(params);
  403. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  404. if(d.RespCode!=10000){
  405. //异常提示
  406. Commonjs.alert(d.RespMessage);
  407. }
  408. }
  409. function deleteRole(roleId){
  410. //判断该职务是否有用户
  411. if(!checkHasUserByRole(roleId)){
  412. return;
  413. }
  414. art.dialog({
  415. lock: true,
  416. width: '300px',
  417. height: '100px',
  418. title:'删除确认',
  419. content: '您确定要删除?',
  420. ok : function() {
  421. var Service = {};
  422. var page = {};
  423. var code = 2005;
  424. Service.RoleId = roleId;
  425. var param = {};
  426. var params = Commonjs.getParams(code,Service);//获取参数
  427. param.Api = "DeleteRole";
  428. param.Params = Commonjs.jsonToString(params);
  429. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  430. if(d.RespCode!=10000){
  431. //异常提示
  432. Commonjs.alert(d.RespMessage);
  433. }
  434. Commonjs.alert("删除成功!","add");
  435. loadTb(1);
  436. },
  437. cancel : true
  438. });
  439. }
  440. function checkHasUserByRole(roleId){
  441. if(roleId==null||roleId=="") return false;
  442. var Service = {};
  443. var page = {};
  444. var code = 2005;
  445. Service.RoleId = roleId;
  446. var param = {};
  447. var params = Commonjs.getParams(code,Service);//获取参数
  448. param.Api = "CheckHasUserByRole";
  449. param.Params = Commonjs.jsonToString(params);
  450. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  451. if(d.RespCode==10000){
  452. if(d.Data>0){
  453. Commonjs.alert('该职务下已有用户,不能删除!');
  454. return false;
  455. }else if(d.Data==0){
  456. return true;
  457. }else{
  458. return false;
  459. }
  460. }else{
  461. //异常提示
  462. Commonjs.alert(d.RespMessage);
  463. return false;
  464. }
  465. }
  466. function checkRoleByName(roleName){
  467. if(Commonjs.isEmpty(roleName)) return false;
  468. var Service = {};
  469. var page = {};
  470. var code = 2005;
  471. Service.RoleName = roleName;
  472. var param = {};
  473. var params = Commonjs.getParams(code,Service);//获取参数
  474. param.Api = "CheckHasRoleName";
  475. param.Params = Commonjs.jsonToString(params);
  476. var d = Commonjs.ajax('../account_callAccountApi.do',param,false);
  477. if(d.RespCode==10000){
  478. if(d.Data>0){
  479. Commonjs.alert('该职务名已被注册!');
  480. document.getElementById("roleName").focus();
  481. return false;
  482. }else if(d.Data==0){
  483. return true;
  484. }else{
  485. return false;
  486. }
  487. }else{
  488. //异常提示
  489. Commonjs.alert(d.RespMessage);
  490. return false;
  491. }
  492. }
  493. //分页
  494. function Page(totalcounts, pagecount,pager) {
  495. $("#"+pager).pager( {
  496. totalcounts : totalcounts,
  497. pagesize : 10,
  498. pagenumber : $("#pagenumber").val(),
  499. pagecount : parseInt(totalcounts/pagecount)+(totalcounts%pagecount >0?1:0),
  500. buttonClickCallback : function(al) {
  501. $("#pagenumber").val(al);
  502. loadTb(al);
  503. }
  504. });
  505. }
  506. function myPrint(msg){
  507. art.dialog({
  508. lock : true,
  509. artIcon : 'error',
  510. opacity : 0.4,
  511. width : 250,
  512. title : '提示',
  513. time : 3,
  514. content : msg,
  515. ok : function() {
  516. }
  517. });
  518. }