sysUserEdit.jsp 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211
  1. <%--
  2. time:2011-11-28 10:17:09
  3. desc:edit the 用户表
  4. --%>
  5. <%@page language="java" pageEncoding="UTF-8" import="com.hotent.platform.model.system.SysUser,com.hotent.core.api.util.PropertyUtil"%>
  6. <%@include file="/commons/include/html_doctype.html"%>
  7. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  8. <%@taglib prefix="f" uri="http://www.jee-soft.cn/functions"%>
  9. <html>
  10. <head>
  11. <title>编辑 用户表</title>
  12. <%@include file="/commons/include/form.jsp" %>
  13. <script type="text/javascript" src="${ctx}/servlet/ValidJs?form=sysUser"></script>
  14. <f:link href="tree/zTreeStyle.css"></f:link>
  15. <script type="text/javascript" src="${ctx}/js/tree/jquery.ztree.js"></script>
  16. <script type="text/javascript" src="${ctx}/js/lg/plugins/ligerTab.js" ></script>
  17. <script type="text/javascript" src="${ctx}/js/hotent/displaytag.js" ></script>
  18. <script type="text/javascript" src="${ctx}/js/lg/plugins/ligerWindow.js" ></script>
  19. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/SysDialog.js"></script>
  20. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/FlexUploadDialog.js"></script>
  21. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/HtmlUploadDialog.js"></script>
  22. <script type="text/javascript" src="${ctx}/js/handlebars/handlebars.min.js"></script>
  23. <script type="text/javascript">
  24. var orgTree; //组织树
  25. var posTree; //岗位树
  26. var rolTree; //角色树
  27. var orgPosTree; //组织岗位树
  28. var height;
  29. var expandDepth =2;
  30. var action="${action}";
  31. $(function ()
  32. {
  33. //右键菜单,暂时去掉右键菜单
  34. height=$('body').height();
  35. $("#tabMyInfo").ligerTab({ });
  36. function showRequest(formData, jqForm, options) {
  37. return true;
  38. }
  39. function showResponse(responseText, statusText) {
  40. var self=this;
  41. var obj=new com.hotent.form.ResultMessage(responseText);
  42. if(obj.isSuccess()){//成功
  43. $.ligerDialog.confirm( obj.getMessage()+",是否继续操作","提示信息",function(rtn){
  44. if(rtn){
  45. if(self.isReset==1){
  46. window.location.reload(true);
  47. }
  48. }else {
  49. window.location.href="${returnUrl}";
  50. }
  51. });
  52. }else{//失败
  53. $.ligerDialog.err("提示信息","用户保存失败!",obj.getMessage());
  54. }
  55. };
  56. if(${sysUser.userId==null}){
  57. valid(showRequest,showResponse,1);
  58. }else{
  59. valid(showRequest,showResponse);
  60. }
  61. $("a.save").click(function() {
  62. $('#sysUserForm').submit();
  63. });
  64. $("#orgPosAdd").click(function(){
  65. btnAddRow('orgPosTree');
  66. });
  67. $("#orgPosDel").click(function(){
  68. btnDelRow();
  69. });
  70. $("#posAdd").click(function(){
  71. btnAddRow('posTree');
  72. });
  73. $("#posDel").click(function(){
  74. btnDelRow();
  75. });
  76. $("#rolAdd").click(function(){
  77. btnAddRow('rolTree');
  78. });
  79. $("#rolDel").click(function(){
  80. btnDelRow();
  81. });
  82. $("#demensionId").change(function(){
  83. loadorgTree();
  84. });
  85. //组织刷新按钮
  86. $("#treeReFresh").click(function() {
  87. loadorgTree();
  88. });
  89. //组织展开按钮
  90. $("#treeExpand").click(function() {
  91. orgTree = $.fn.zTree.getZTreeObj("orgTree");
  92. var treeNodes = orgTree.transformToArray(orgTree.getNodes());
  93. for(var i=1;i<treeNodes.length;i++){
  94. if(treeNodes[i].children){
  95. orgTree.expandNode(treeNodes[i], true, false, false);
  96. }
  97. }
  98. });
  99. $("#treeCollapse").click(function() {
  100. orgTree.expandAll(false);
  101. });
  102. if("grade"==action){
  103. loadorgGradeTree();
  104. }else{
  105. loadorgTree();
  106. }
  107. loadrolTree();
  108. var orgIds="${orgIds}";
  109. if( orgIds == undefined || orgIds == null || orgIds == ""){
  110. }else{
  111. //编辑页面才调用此方法
  112. loadorgPosTree(orgIds);
  113. }
  114. });//function end
  115. //添加个人照片
  116. function picCallBack(array){
  117. if(!array && array!="") return;
  118. var fileId=array[0].fileId,
  119. fileName=array[0].fileName;
  120. var path= __ctx + "/platform/system/sysFile/getFileById.ht?fileId=" + fileId;
  121. if(/\w+.(png|gif|jpg)/gi.test(fileName)){
  122. $("#picture").val("/platform/system/sysFile/getFileById.ht?fileId=" + fileId);
  123. $("#personPic").attr("src",path);
  124. }
  125. else
  126. $.ligerDialog.warn("请选择*png,*gif,*jpg类型图片!");
  127. };
  128. //上传照片
  129. function addPic(){
  130. HtmlUploadDialog({max:1,size:10,callback:picCallBack});
  131. };
  132. //删除照片
  133. function delPic(){
  134. $("#picture").val("");
  135. $("#personPic").attr("src","${ctx}/commons/image/default_image_male.jpg");
  136. };
  137. //生成组织树
  138. function loadorgTree(){
  139. if(action =='grade'){loadorgGradeTree();return;}
  140. var demId=$("#demensionId").val();
  141. var setting = {
  142. data: {
  143. key : {
  144. name: "orgName",
  145. title: "orgName"
  146. },
  147. simpleData: {
  148. enable: true,
  149. idKey: "orgId",
  150. pIdKey: "orgSupId",
  151. rootPId: -1
  152. }
  153. },
  154. async: {
  155. enable: true,
  156. url:__ctx+"/platform/system/sysOrg/getTreeData.ht?type=system&typeVal=all&demId="+demId,
  157. autoParam:["orgId","orgSupId"]
  158. },
  159. view: {
  160. selectedMulti: true
  161. },
  162. onRightClick: false,
  163. onClick:false,
  164. check: {
  165. enable: true,
  166. chkboxType: { "Y": "", "N": "" }
  167. },
  168. callback:{
  169. onClick: zTreeOnCheck,
  170. onCheck:orgPostTreeExpand,
  171. onAsyncSuccess: orgTreeOnAsyncSuccess
  172. }
  173. };
  174. orgTree=$.fn.zTree.init($("#orgTree"), setting);
  175. };
  176. function zTreeOnCheck(event, treeId, treeNode) {
  177. var target;
  178. if(treeId=="rolTree"){
  179. target = rolTree ;
  180. if(treeNode.isParent){
  181. var children=treeNode.children;
  182. if(children){
  183. for(var i=0;i<children.length;i++){
  184. target.checkNode(children[i], !treeNode.checked, false, true);
  185. }
  186. }
  187. }
  188. } else if(treeId=='orgTree'){
  189. target = orgTree ;
  190. } else if(treeId=='orgPosTree'){
  191. target = orgPosTree ;
  192. }else{
  193. target = posTree ;
  194. }
  195. target.checkNode(treeNode, '', false, true);
  196. };
  197. //判断是否为子结点,以改变图标
  198. function orgTreeOnAsyncSuccess(event, treeId, treeNode, msg) {
  199. if(treeNode){
  200. var children=treeNode.children;
  201. if(children.length==0){
  202. treeNode.isParent=true;
  203. orgTree = $.fn.zTree.getZTreeObj("orgTree");
  204. orgTree.updateNode(treeNode);
  205. }
  206. }
  207. var treeNodes = orgTree.transformToArray(orgTree.getNodes());
  208. if(treeNodes.length>0){
  209. treeNodes[0].nocheck = true;
  210. orgTree.updateNode(treeNodes[0]);
  211. }
  212. };
  213. function loadorgGradeTree(){
  214. var setting = {
  215. data: {
  216. key : {
  217. name: "orgName",
  218. title: "orgName"
  219. }
  220. },
  221. view : {
  222. selectedMulti : false
  223. },
  224. onRightClick: false,
  225. onClick:false,
  226. check: {
  227. enable: true,
  228. chkboxType: { "Y": "", "N": "" }
  229. },
  230. callback:{
  231. onClick: zTreeOnCheck,
  232. onCheck:orgPostTreeExpand
  233. }
  234. };
  235. var orgId = $("#orgAuth").val();
  236. if(!orgId) orgId =0;
  237. var url=__ctx + "/platform/system/grade/getOrgJsonByAuthOrgId.ht?orgId="+orgId;
  238. //一次性加载
  239. $.post(url,function(result){
  240. var zNodes=eval("(" +result +")");
  241. orgTree=$.fn.zTree.init($("#orgTree"), setting,zNodes);
  242. if(expandDepth!=0)
  243. {
  244. orgTree.expandAll(false);
  245. var nodes = orgTree.getNodesByFilter(function(node){
  246. return (node.level < expandDepth);
  247. });
  248. if(nodes.length>0){
  249. //nodes[0].nocheck = true;
  250. orgTree.updateNode(nodes[0]);
  251. for(var i=0;i<nodes.length;i++){
  252. orgTree.expandNode(nodes[i],true,false);
  253. }
  254. }
  255. }else {
  256. orgTree.expandAll(true);
  257. // justifyMargin(10);
  258. }
  259. });
  260. };
  261. //勾选组织的时候展开组织岗位树
  262. function orgPostTreeExpand(){
  263. var setting = {
  264. data: {
  265. key : {
  266. name: "posName",
  267. title: "posName"
  268. },
  269. simpleData: {
  270. enable: true,
  271. idKey: "posId",
  272. pIdKey: "orgId",
  273. rootPId: -1
  274. }
  275. },
  276. view: {
  277. selectedMulti: true
  278. },
  279. onRightClick: false,
  280. onClick:false,
  281. check: {
  282. enable: true,
  283. chkboxType: { "Y": "", "N": "" }
  284. },
  285. callback:{
  286. onClick: zTreeOnCheck,
  287. onAsyncSuccess: zTreeOnAsyncSuccess,
  288. onRightClick: zTreeOnRightClick
  289. }
  290. };
  291. //获取组织树的勾选节点
  292. var treeObj = $.fn.zTree.getZTreeObj('orgTree');
  293. var nodes = treeObj.getCheckedNodes(true);
  294. var a=[];
  295. for ( var key in nodes ){
  296. a.push(nodes[key].orgId);
  297. }
  298. var orgIds=a.join();
  299. if(!orgIds) return;
  300. var orgUrl=__ctx + "/platform/system/position/getOrgPosTreeData.ht?orgIds="+orgIds;
  301. //一次性加载
  302. $.post(orgUrl,function(result){
  303. orgPosTree=$.fn.zTree.init($("#orgPosTree"), setting,result);
  304. orgPosTree.expandAll(true);
  305. //去掉父节点勾选框,???
  306. var treeObj = $.fn.zTree.getZTreeObj("orgPosTree");
  307. var nodes = treeObj.getNodesByParam("orgId", -1, null);//为啥总是为空
  308. for(var key in nodes){
  309. nodes[key].nocheck = true;
  310. orgPosTree.updateNode(nodes[key]);
  311. }
  312. });
  313. orgPostTree=$.fn.zTree.init($("#orgPostTree"), setting);
  314. };
  315. //生成组织岗位树
  316. function loadorgPosTree(orgIds) {
  317. var setting = {
  318. data: {
  319. key : {
  320. name: "posName",
  321. title: "posName"
  322. },
  323. simpleData: {
  324. enable: true,
  325. idKey: "posId",
  326. pIdKey: "orgId",
  327. rootPId: -1
  328. }
  329. },
  330. view: {
  331. selectedMulti: true
  332. },
  333. onRightClick: false,
  334. onClick:false,
  335. check: {
  336. enable: true,
  337. chkboxType: { "Y": "s", "N": "ps" }
  338. },
  339. callback:{
  340. onClick: zTreeOnCheck,
  341. onAsyncSuccess: zTreeOnAsyncSuccess,
  342. onRightClick: zTreeOnRightClick
  343. }
  344. };
  345. var orgUrl=__ctx + "/platform/system/position/getOrgPosTreeData.ht?orgIds="+orgIds;
  346. //一次性加载
  347. $.post(orgUrl,function(result){
  348. orgPosTree=$.fn.zTree.init($("#orgPosTree"), setting,result);
  349. orgPosTree.expandAll(true);
  350. });
  351. orgPosTree = $.fn.zTree.init($("#orgPosTree"), setting);
  352. };
  353. //生成岗位树
  354. function loadposTree() {
  355. var setting = {
  356. data: {
  357. key : {
  358. name: "posName",
  359. title: "posName"
  360. },
  361. simpleData: {
  362. enable: true,
  363. idKey: "posId",
  364. pIdKey: "parentId",
  365. rootPId: -1
  366. }
  367. },
  368. async: {
  369. enable: true,
  370. url:__ctx+"/platform/system/position/getChildTreeData.ht",
  371. autoParam:["posId","parentId"],
  372. dataFilter: filter
  373. },
  374. view: {
  375. selectedMulti: true
  376. },
  377. onRightClick: false,
  378. onClick:false,
  379. check: {
  380. enable: true,
  381. chkboxType: { "Y": "", "N": "" }
  382. },
  383. callback:{
  384. onClick: zTreeOnCheck,
  385. onDblClick: posTreeOnDblClick,
  386. onAsyncSuccess: zTreeOnAsyncSuccess
  387. }
  388. };
  389. posTree = $.fn.zTree.init($("#posTree"), setting);
  390. };
  391. //判断是否为子结点,以改变图标
  392. function zTreeOnAsyncSuccess(event, treeId, treeNode, msg) {
  393. if(treeNode){
  394. var children=treeNode.children;
  395. if(children.length==0){
  396. treeNode.isParent=true;
  397. pos_Tree = $.fn.zTree.getZTreeObj("SEARCH_BY_POS");
  398. pos_Tree.updateNode(treeNode);
  399. }
  400. }
  401. var treeNodes = posTree.transformToArray(posTree.getNodes());
  402. if(treeNodes.length>0){
  403. //显示勾选框
  404. treeNodes[0].nocheck = true;
  405. posTree.updateNode(treeNodes[0]);
  406. }
  407. };
  408. //过滤节点,默认为父节点,以改变图标
  409. function filter(treeId, parentNode, childNodes) {
  410. if (!childNodes) return null;
  411. for (var i=0, l=childNodes.length; i<l; i++) {
  412. if(!childNodes[i].isParent){
  413. alert(childNodes[i].posName);
  414. childNodes[i].isParent = true;
  415. }
  416. }
  417. return childNodes;
  418. };
  419. //生成角色树
  420. function loadrolTree() {
  421. var setting = {
  422. data: {
  423. key : {
  424. name: "roleName",
  425. title: "roleName"
  426. },
  427. simpleData: {
  428. enable: true,
  429. idKey: "roleId",
  430. pIdKey: "systemId",
  431. rootPId: null
  432. }
  433. },
  434. view: {
  435. selectedMulti: true
  436. },
  437. onRightClick: false,
  438. onClick:false,
  439. check: {
  440. enable: true,
  441. chkboxType: { "Y": "p", "N": "s" }
  442. },
  443. callback:{
  444. onClick: zTreeOnCheck,
  445. onDblClick: rolTreeOnDblClick}
  446. };
  447. if(action == 'grade'){
  448. var url="${ctx}/platform/system/sysRole/getGradeTreeData.ht";
  449. }
  450. else{
  451. var url="${ctx}/platform/system/sysRole/getTreeData.ht";
  452. }
  453. $.post(url,function(result){
  454. rolTree=$.fn.zTree.init($("#rolTree"), setting,result);
  455. });
  456. };
  457. function btnDelRow() {
  458. var $aryId = $("input[type='checkbox'][class='pk']:checked");
  459. var len=$aryId.length;
  460. if(len==0){
  461. $.ligerDialog.warn("你还没选择任何记录!");
  462. return;
  463. }
  464. else{
  465. $aryId.each(function(i){
  466. var obj=$(this);
  467. delrow(obj.val());
  468. });
  469. }
  470. };
  471. function delrow(id)//删除行,用于删除暂时选择的行
  472. {
  473. $("#"+id).remove();
  474. };
  475. //树按添加按钮
  476. function btnAddRow(treeName) {
  477. var treeObj = $.fn.zTree.getZTreeObj(treeName);
  478. var nodes = treeObj.getCheckedNodes(true);
  479. if(nodes==null||nodes=="")
  480. {
  481. $.ligerDialog.warn("你还没选择任何节点!");
  482. return;
  483. }
  484. if(treeName.indexOf("orgPos")!=-1) {
  485. $.each(nodes,function(i,treeNode){
  486. orgPosAddHtml(treeNode);
  487. });
  488. }
  489. else if(treeName.indexOf("pos")!=-1){
  490. $.each(nodes,function(i,treeNode){
  491. posAddHtml(treeNode);
  492. });
  493. }
  494. else if(treeName.indexOf("rol")!=-1){
  495. $.each(nodes,function(i,treeNode){
  496. if(treeNode.roleId>0){
  497. if (treeNode.subSystem==null || treeNode.subSystem=="")
  498. {
  499. treeNode.sysName="";
  500. }
  501. else{
  502. treeNode.sysName=treeNode.subSystem.sysName;
  503. }
  504. rolAddHtml(treeNode);
  505. }
  506. });
  507. }
  508. };
  509. function orgPosAddHtml(treeNode){
  510. if(treeNode.orgName==null) return;//去掉父节点
  511. //添加过的不再添加
  512. var obj=$("#" +treeNode.posId);
  513. if(obj.length>0) return;
  514. //公司名称
  515. if(typeof treeNode.companyId =="undefined" || treeNode.companyId==null){
  516. treeNode.companyId = 0;
  517. }
  518. if(typeof treeNode.company =="undefined" || treeNode.company==null){
  519. treeNode.company = '';
  520. }
  521. //用jquery获取模板
  522. var tpl = $("#orgPosAddHtml-template").html();
  523. var content = {treeNode:treeNode};
  524. //预编译模板
  525. var template = Handlebars.compile(tpl);
  526. //匹配json内容
  527. var html = template(content);
  528. //输入模板
  529. $("#orgItem").append(html);
  530. };
  531. //岗位树左键双击
  532. function posTreeOnDblClick(event, treeId, treeNode){
  533. posAddHtml(treeNode);
  534. };
  535. function posAddHtml(treeNode){
  536. if(treeNode.parentId==-1) return;
  537. var obj=$("#" +treeNode.posId);
  538. if(obj.length>0) return;
  539. //用jquery获取模板
  540. var tpl = $("#posAddHtml-template").html();
  541. //json数据
  542. var content = {treeNode:treeNode};
  543. //预编译模板
  544. var template = Handlebars.compile(tpl);
  545. //匹配json内容
  546. var html = template(content);
  547. //输入模板
  548. $("#posItem").append(html);
  549. };
  550. //角色树左键双击
  551. function rolTreeOnDblClick(event, treeId, treeNode){
  552. if(treeNode.subSystem!=null&&treeNode.subSystem!=""){
  553. treeNode.sysName=treeNode.subSystem.sysName;
  554. }else{
  555. treeNode.sysName=" ";
  556. }
  557. rolAddHtml(treeNode);
  558. };
  559. function rolAddHtml(treeNode){
  560. // if( systemId==0) return;
  561. var obj=$("#" +treeNode.roleId);
  562. if(obj.length>0) return;
  563. //用jquery获取模板
  564. var tpl = $("#rolAddHtml-template").html();
  565. var content = {treeNode:treeNode};
  566. //预编译模板
  567. var template = Handlebars.compile(tpl);
  568. //匹配json内容
  569. var html = template(content);
  570. //输入模板
  571. $("#rolItem").append(html);
  572. };
  573. //右键菜单
  574. function zTreeOnRightClick(e, treeId, treeNode) {
  575. // alert(treeNode.orgId);
  576. if (treeNode.orgId=="-1") {
  577. orgPostTree.cancelSelectedNode();//取消节点选中状态
  578. menu_root.show({
  579. top : e.pageY,
  580. left : e.pageX
  581. });
  582. } else {
  583. menu.show({
  584. top : e.pageY,
  585. left : e.pageX
  586. });
  587. }
  588. };
  589. //右键菜单
  590. function getMenu() {
  591. menu = $.ligerMenu({
  592. top : 100,
  593. left : 100,
  594. width : 100,
  595. items:<f:menu>
  596. [ {
  597. text : '删除',
  598. click : 'delNode',
  599. alias:'delOrg'
  600. }]
  601. </f:menu>
  602. });
  603. menu_root = $.ligerMenu({
  604. top : 100,
  605. left : 100,
  606. width : 100,
  607. items : [ {
  608. text : '增加',
  609. click : addNode
  610. }]
  611. });
  612. };
  613. //新增节点
  614. function addNode() {
  615. var treeNode=getSelectNode();
  616. var orgId = treeNode.posId;
  617. //var demId = treeNode.demId;
  618. var url = __ctx + "/platform/system/position/edit.ht?orgId="+ orgId;
  619. var url = "edit.ht?orgId=" + orgId + "&demId=" + demId + "&action=add";
  620. $("#viewFrame").attr("src", url);
  621. };
  622. //删除节点
  623. function delNode() {
  624. var treeNode=getSelectNode();
  625. var callback = function(rtn) {
  626. if (!rtn) return;
  627. var params = "orgId=" + treeNode.orgId;
  628. $.post("orgdel.ht", params, function() {
  629. orgTree.removeNode(treeNode);
  630. });
  631. };
  632. $.ligerDialog.confirm("确认要删除此组织吗,其下组织也将被删除?", '提示信息', callback);
  633. };
  634. function showUserDlg(){
  635. var superior=$("#superior").val();
  636. var superiorId=$("#superiorId").val();
  637. var topOrgId= "${param.topOrgId}";
  638. var scope;
  639. if(topOrgId!=null && topOrgId!=""){
  640. var script="return " + topOrgId +";";
  641. scope="{type:\"script\",value:\""+script+"\"}";
  642. }
  643. else{
  644. scope="{type:\"system\",value:\"all\"}";
  645. }
  646. var script="return "+topOrgId;
  647. //alert(superior+""+superiorId+">>>>"+topOrgId);
  648. UserDialog({
  649. selectUserIds:superiorId,
  650. selectUserNames:superior,
  651. scope:scope,
  652. callback:function(userIds,userNames){
  653. $('#superior').val(userNames);
  654. $('#superiorId').val(userIds);
  655. }
  656. });
  657. };
  658. function showUserDlgShare(){
  659. var share=$("#share").val();
  660. var shareId=$("#shareId").val();
  661. var topOrgId= "${param.topOrgId}";
  662. var scope;
  663. if(topOrgId!=null && topOrgId!=""){
  664. var script="return " + topOrgId +";";
  665. scope="{type:\"script\",value:\""+script+"\"}";
  666. }
  667. else{
  668. scope="{type:\"system\",value:\"all\"}";
  669. }
  670. var script="return "+topOrgId;
  671. //alert(superior+""+superiorId+">>>>"+topOrgId);
  672. UserDialog({
  673. selectUserIds:shareId,
  674. selectUserNames:share,
  675. scope:scope,
  676. callback:function(userIds,userNames){//alert(userNames+">>>"+userIds);
  677. $('#share').val(userNames);
  678. $('#shareId').val(userIds);
  679. }
  680. });
  681. };
  682. </script>
  683. <script id="orgPosAddHtml-template" type="text/x-handlebars-template" >
  684. <tr id="{{treeNode.posId}}" style="cursor: pointer;">
  685. <td style="text-align: center;">
  686. {{treeNode.company}}<input type="hidden" name="orgId" value="{{treeNode.companyId}}" />
  687. </td>
  688. <td style="text-align: center;">
  689. {{treeNode.orgName}}<input type="hidden" name="orgId" value="{{treeNode.orgId}}" />
  690. </td>
  691. <td style="text-align: center;">
  692. {{treeNode.posName}}<input type="hidden" name="posId" value="{{treeNode.posId}}" />
  693. </td>
  694. <td style="text-align: center;">
  695. <input type="radio" name="posIdPrimary" value="{{treeNode.posId}}" />
  696. </td>
  697. <td style="text-align: center;">
  698. <input type="checkbox" name="posIdCharge" value="{{treeNode.posId}}" />
  699. </td>
  700. <td style="text-align: center;">
  701. <a href="#" onclick="delrow('{{treeNode.posId}}')" class="link del">移除</a>
  702. </td>
  703. </tr>
  704. </script>
  705. <script id="rolAddHtml-template" type="text/x-handlebars-template" >
  706. <tr id="{{treeNode.roleId}}" style="cursor: pointer;">
  707. <td style="text-align: center;">
  708. {{treeNode.roleName}}<input type="hidden" name="roleId" value="{{treeNode.roleId}}" />
  709. </td>
  710. <td style="text-align: center;">
  711. {{treeNode.sysName}}
  712. </td>
  713. <td style="text-align: center;">
  714. <a href="#" onclick="delrow('{{treeNode.roleId}}')" class="link del">移除</a>
  715. </td>
  716. </tr>
  717. </script>
  718. <script id="posAddHtml-template" type="text/x-handlebars-template" >
  719. <tr id="{{treeNode.posId}}" style="cursor: pointer;">
  720. <td style="text-align: center;">
  721. {{treeNode.posName}}<input type="hidden" name="posId" value="{{treeNode.posId}}" />
  722. </td>
  723. <td style="text-align: center;">
  724. <input type='radio' name="posIdPrimary" value="{{treeNode.posId}}" />
  725. </td>
  726. <td style="text-align: center;">
  727. <a href="#" onclick="delrow('{{treeNode.posId}}')" class="link del">移除</a>
  728. </td>
  729. </tr>
  730. </script>
  731. <style type="text/css">
  732. html{height:100%}
  733. body {overflow:auto;}
  734. div.panel-body {margin: 0px;}
  735. .table-detail th {height:40px;}
  736. div#rMenu {
  737. background: none repeat scroll 0 0 #F5F5F5;
  738. border: 1px solid #979797;
  739. overflow: hidden;
  740. padding-bottom: 2px;
  741. position: absolute;
  742. z-index:9999;
  743. }
  744. div#rMenu ul li{
  745. cursor: pointer;
  746. height: 23px;
  747. line-height: 23px;
  748. position: relative;
  749. width: 100%;
  750. }
  751. </style>
  752. </head>
  753. <body>
  754. <div class="panel">
  755. <div class="panel-top">
  756. <div class="tbar-title">
  757. <span class="tbar-label">
  758. <c:if test="${sysUser.userId==null }">添加用户信息</c:if>
  759. <c:if test="${sysUser.userId!=null }">编辑【${sysUser.fullname}】用户信息</c:if>
  760. </span>
  761. </div>
  762. <div class="panel-toolbar">
  763. <div class="toolBar">
  764. <div class="group"><a class="link save" id="dataFormSave" href="javascript:;"><span></span>保存</a></div>
  765. <div class="l-bar-separator"></div>
  766. <div class="group"><a class="link back" href="${returnUrl}"><span></span>返回</a></div>
  767. </div>
  768. </div>
  769. </div>
  770. <form id="sysUserForm" method="post" action="save.ht?selectedOrgId=${param.selectedOrgId}">
  771. <div id="tabMyInfo" class="panel-nav" style="overflow:hidden; position:relative;">
  772. <div title="基本信息" tabid="userdetail" icon="${ctx}/styles/default/images/resicon/user.gif">
  773. <table class="table-detail" cellpadding="0" cellspacing="0" border="0">
  774. <tr>
  775. <td rowspan="<c:if test="${not empty sysUser.userId}">12</c:if><c:if test="${empty sysUser.userId}">13</c:if>" align="center" width="26%">
  776. <div style="float:top !important;background: none;height: 24px;padding:0px 6px 0px 112px;">
  777. <a class="link uploadPhoto" href="javascript:;" onclick="addPic();">上传照片</a>
  778. <a class="link del" href="javascript:;" onclick="delPic();">删除照片</a>
  779. </div>
  780. <div class="person_pic_div">
  781. <p><img id="personPic" src="${ctx}/${pictureLoad}" style="height: 378px; width:270px" alt="个人相片" /></p>
  782. </div>
  783. </td>
  784. <th width="18%">帐 号: <span class="required red">*</span></th>
  785. <td ><c:if test="${bySelf==1}"><input type="hidden" name="bySelf" value="1"></c:if><input type="text" <c:if test="${bySelf==1}">disabled="disabled"</c:if> id="account" name="account" value="${sysUser.account}" style="width:240px !important" class="inputText"/></td>
  786. </tr>
  787. <tr style="<c:if test="${not empty sysUser.userId}">display:none</c:if>">
  788. <th>密 码: <span class="required red">*</span></th>
  789. <td><input type="password" id="password" name="password" value="${sysUser.password}" style="width:240px !important" class="inputText"/></td>
  790. </tr>
  791. <tr>
  792. <th>用户姓名: <span class="required red">*</span></th>
  793. <td ><input type="text" id="fullname" name="fullname" value="${sysUser.fullname}" style="width:240px !important" class="inputText" /></td>
  794. </tr>
  795. <tr>
  796. <th>用户性别: </th>
  797. <td>
  798. <select name="sex" class="select" style="width:245px !important">
  799. <option value="1" <c:if test="${sysUser.sex==1}">selected</c:if> >男</option>
  800. <option value="0" <c:if test="${sysUser.sex==0}">selected</c:if> >女</option>
  801. </select>
  802. </td>
  803. </tr>
  804. <tr>
  805. <th>入职时间: </th>
  806. <td>
  807. <input type="text" id="entryDate" name="entryDate" value="<fmt:formatDate value='${sysUser.entryDate}' pattern='yyyy-MM-dd'/>" class="inputText date" validate="{date:true}" />
  808. </td>
  809. </tr>
  810. <tr>
  811. <th>员工状态: </th>
  812. <td>
  813. <select name="userStatus" class="select" style="width:245px !important" >
  814. <option value="正式员工" <c:if test="${sysUser.userStatus=='正式员工'}">selected</c:if> >正式员工</option>
  815. <option value="试用员工" <c:if test="${sysUser.userStatus=='试用员工'}">selected</c:if> >试用员工</option>
  816. <option value="停薪留职" <c:if test="${sysUser.userStatus=='停薪留职'}">selected</c:if> >停薪留职</option>
  817. <option value="返聘" <c:if test="${sysUser.userStatus=='返聘'}">selected</c:if> >返聘</option>
  818. <option value="中转" <c:if test="${sysUser.userStatus=='中转'}">selected</c:if> >中转</option>
  819. </select>
  820. </td>
  821. </tr>
  822. <tr>
  823. <th>是否锁定: </th>
  824. <td >
  825. <select name="isLock" class="select" style="width:245px !important" <c:if test="${bySelf==1}">disabled="disabled"</c:if>>
  826. <option value="<%=SysUser.UN_LOCKED %>" <c:if test="${sysUser.isLock==0}">selected</c:if> >未锁定</option>
  827. <option value="<%=SysUser.LOCKED %>" <c:if test="${sysUser.isLock==1}">selected</c:if> >已锁定</option>
  828. </select>
  829. </td>
  830. </tr>
  831. <tr>
  832. <th>是否过期: </th>
  833. <td >
  834. <select name="isExpired" class="select" style="width:245px !important" <c:if test="${bySelf==1}">disabled="disabled"</c:if>>
  835. <option value="<%=SysUser.UN_EXPIRED %>" <c:if test="${sysUser.isExpired==0}">selected</c:if> >未过期</option>
  836. <option value="<%=SysUser.EXPIRED %>" <c:if test="${sysUser.isExpired==1}">selected</c:if> >已过期</option>
  837. </select>
  838. </td>
  839. </tr>
  840. <tr>
  841. <th>当前状态: </th>
  842. <td>
  843. <select name="status" class="select" style="width:245px !important" <c:if test="${bySelf==1}">disabled="disabled"</c:if>>
  844. <option value="<%=SysUser.STATUS_OK %>" <c:if test="${sysUser.status==1}">selected</c:if> >激活</option>
  845. <option value="<%=SysUser.STATUS_NO %>" <c:if test="${sysUser.status==0}">selected</c:if> >禁用</option>
  846. <option value="<%=SysUser.STATUS_Del %>" <c:if test="${sysUser.status==-1}">selected</c:if>>删除</option>
  847. </select>
  848. </td>
  849. </tr>
  850. <tr>
  851. <th>邮箱地址: </th>
  852. <td ><input type="text" id="email" name="email" value="${sysUser.email}" style="width:240px !important" class="inputText"/></td>
  853. </tr>
  854. <tr>
  855. <th>微 信: <span class="required red">*</span></th>
  856. <td ><input type="text" id="weixinid" name="weixinid" value="${sysUser.weixinid}" style="width:240px !important" class="inputText"/></td>
  857. </tr>
  858. <tr>
  859. <th>手 机: </th>
  860. <td ><input type="text" id="mobile" name="mobile" value="${sysUser.mobile}" style="width:240px !important" class="inputText"/></td>
  861. </tr>
  862. <tr>
  863. <th>电 话: </th>
  864. <td ><input type="text" id="phone" name="phone" value="${sysUser.phone}" style="width:240px !important" class="inputText"/></td>
  865. </tr>
  866. </table>
  867. <input type="hidden" name="userId" value="${sysUser.userId}" />
  868. <input type="hidden" id="picture" name="picture" value="${sysUser.picture}" />
  869. </div>
  870. <%--不是修改本人信息则--%>
  871. <c:if test="${bySelf!=1}">
  872. <div title="组织岗位选择" tabid="orgdetail" icon="${ctx}/styles/default/images/icon/home.png" >
  873. <table style="margin-top:-5px;border-top: 6px solid #A0BDBB;" align="center" cellpadding="0" cellspacing="0" class="table-grid table-list">
  874. <tr>
  875. <td width="28%" valign="top" style="padding-left:2px !important;">
  876. <div class="tbar-title">
  877. <span class="tbar-label">所有组织</span>
  878. </div>
  879. <div class="panel-body" style="height:520px;overflow-y:auto;">
  880. <div style="width: 100%;">
  881. <c:choose>
  882. <c:when test="${action=='global' }">
  883. <select id="demensionId" style="width: 99.8% !important;">
  884. <c:forEach var="dem" items="${demensionList}">
  885. <option value="${dem.demId}" <c:if test="${dem.demId==1}">selected="selected"</c:if> >${dem.demName}</option>
  886. </c:forEach>
  887. </select>
  888. </c:when>
  889. <c:otherwise>
  890. <select id="orgAuth" style="width:99.8% !important;" onchange="javascript:loadorgGradeTree();">
  891. <c:forEach var="orgAuth" items="${orgAuthList}">
  892. <option value="${orgAuth.orgId}" dimId="${orgAuth.dimId}" orgPerms="${orgAuth.orgPerms}" <c:if test="${orgAuth.dimId==1}">selected="selected"</c:if>>${orgAuth.orgName}—[${orgAuth.dimName}]</option>
  893. </c:forEach>
  894. </select>
  895. </c:otherwise>
  896. </c:choose>
  897. </div>
  898. <div class="tree-toolbar" id="pToolbar">
  899. <div class="toolBar"
  900. style="text-overflow: ellipsis; overflow: hidden; white-space: nowrap">
  901. <div class="group">
  902. <a class="link reload" id="treeReFresh">刷新</a>
  903. </div>
  904. <div class="l-bar-separator"></div>
  905. <div class="group">
  906. <a class="link expand" id="treeExpand">展开</a>
  907. </div>
  908. <div class="l-bar-separator"></div>
  909. <div class="group">
  910. <a class="link collapse" id="treeCollapse">收起</a>
  911. </div>
  912. </div>
  913. </div>
  914. <ul id="orgTree" class="ztree" style="overflow-y: auto;margin:-2; padding:-2;" >
  915. </ul>
  916. </div>
  917. </td>
  918. <%--组织下的岗位列表 --%>
  919. <td width="28%" valign="top" style="padding-left:2px !important;">
  920. <div class="tbar-title">
  921. <span class="tbar-label">所有岗位</span>
  922. </div>
  923. <div class="panel-body" style="height:520px;overflow-y:auto;">
  924. <div id="orgPosTree" class="ztree" style="overflow-y: auto;margin:-2; padding:-2;" >
  925. </div>
  926. </div>
  927. </td>
  928. <%--组织下的岗位列表 end--%>
  929. <td width="3%" valign="middle" style="padding-left:2px !important;">
  930. <input type="button" id="orgPosAdd" value="添加>>" />
  931. <br/>
  932. <br/>
  933. <br/>
  934. </td>
  935. <td valign="top" style="padding-left:2px !important;">
  936. <div class="tbar-title">
  937. <span class="tbar-label">已选组织</span>
  938. </div>
  939. <div style="overflow-y:auto;">
  940. <table id="orgItem" class="table-grid table-list" cellpadding="1" cellspacing="1">
  941. <thead>
  942. <th style="text-align:center !important;">公司名称</th>
  943. <th style="text-align:center !important;">组织名称</th>
  944. <th style="text-align:center !important;">岗位名称</th>
  945. <th style="text-align:center !important;">是否主岗位</th>
  946. <th style="text-align:center !important;">主要负责人</th>
  947. <th style="text-align:center !important;">操作</th>
  948. </thead>
  949. <c:forEach items="${userPosList}" var="orgItem">
  950. <tr trName="${orgItem.orgName}" id="${orgItem.posId}" style='cursor:pointer'>
  951. <td style="text-align: center;">
  952. ${orgItem.company}<input type="hidden" name="companyId" value="${orgItem.companyId}">
  953. </td>
  954. <td style="text-align: center;">
  955. ${orgItem.orgName}<input type="hidden" name="orgId" value="${orgItem.orgId}">
  956. <td style="text-align: center;">
  957. ${orgItem.posName}<input type="hidden" name="posId" value="${orgItem.posId}">
  958. </td>
  959. <td style="text-align: center;">
  960. <input type="radio" name="posIdPrimary" value="${orgItem.posId}" <c:if test='${orgItem.isPrimary==1}'>checked</c:if> />
  961. </td>
  962. <td style="text-align: center;">
  963. <input type="checkbox" name="posIdCharge" value="${orgItem.posId}" <c:if test='${orgItem.isCharge==1}'>checked</c:if>>
  964. </td>
  965. <td style="text-align: center;">
  966. <a href="javascript:;" onclick="delrow('${orgItem.posId}')" class="link del">移除</a>
  967. </td>
  968. </tr>
  969. </c:forEach>
  970. </table>
  971. </div>
  972. </td>
  973. </tr>
  974. </table>
  975. </div>
  976. <div title="角色选择" tabid="roldetail" icon="${ctx}/styles/default/images/resicon/customer.png" >
  977. <table style="margin-top:-5px;border-top: 6px solid #A0BDBB;" align="center" cellpadding="0" cellspacing="0" class="table-grid">
  978. <tr>
  979. <td width="28%" valign="top" style="padding-left:2px !important;">
  980. <div class="tbar-title">
  981. <span class="tbar-label">所有角色</span>
  982. </div>
  983. <div class="panel-body" style="height:520px;overflow-y:auto;">
  984. <div id="rolTree" class="ztree" style="overflow:auto;margin:-2; padding:-2;" >
  985. </div>
  986. </div>
  987. </td>
  988. <td width="3%" valign="middle" style="padding-left:2px !important;">
  989. <input type="button" id="rolAdd" value="添加>>" />
  990. <br/>
  991. <br/>
  992. <br/>
  993. </td>
  994. <td valign="top" style="padding-left:2px !important;">
  995. <div class="tbar-title">
  996. <span class="tbar-label">已选角色</span>
  997. </div>
  998. <div style="overflow-y:auto;">
  999. <table id="rolItem" class="table-grid" cellpadding="1" cellspacing="1">
  1000. <thead>
  1001. <th style="text-align:center !important;">角色名称</th>
  1002. <th style="text-align:center !important;">子系统名称</th>
  1003. <th style="text-align:center !important;">操作</th>
  1004. </thead>
  1005. <c:forEach items="${roleList}" var="rolItem">
  1006. <tr trName="${rolItem.roleName}" id="${rolItem.roleId}" style="cursor:pointer">
  1007. <td style="text-align: center;">
  1008. ${rolItem.roleName}<input type="hidden" name="roleId" value="${rolItem.roleId}">
  1009. </td>
  1010. <td style="text-align: center;">
  1011. ${rolItem.systemName}
  1012. </td>
  1013. <td style="text-align: center;">
  1014. <a href="javascript:;" onclick="delrow('${rolItem.roleId}')" class="link del">移除</a>
  1015. </td>
  1016. </tr>
  1017. </c:forEach>
  1018. </table>
  1019. </div>
  1020. </td>
  1021. </tr>
  1022. </table>
  1023. </div>
  1024. <c:if test="${userId != 0}">
  1025. <div title="所属组织角色">
  1026. <table style="margin-top:-5px;border-top: 6px solid #A0BDBB;" align="center" cellpadding="0" cellspacing="0" class="table-grid">
  1027. <thead>
  1028. <th style="text-align:center !important;">组织</th>
  1029. <th style="text-align:center !important;">角色</th>
  1030. </thead>
  1031. <c:forEach items="${sysOrgRoles}" var="sysOrgRole">
  1032. <tr>
  1033. <td style="text-align: center;">
  1034. ${sysOrgRole.key.orgName}
  1035. </td>
  1036. <td style="text-align: center;">
  1037. <c:forEach items="${sysOrgRole.value}" var="sysRole">
  1038. ${sysRole.roleName}
  1039. </c:forEach>
  1040. </td>
  1041. </tr>
  1042. </c:forEach>
  1043. </table>
  1044. </div>
  1045. </c:if>
  1046. <div title="上级配置" tabid="superior">
  1047. <c:set var="ids" value=""></c:set>
  1048. <c:set var="names" value=""></c:set>
  1049. <c:if test="${!empty userUnders }">
  1050. <c:forEach items="${userUnders}" var="user" varStatus="status">
  1051. <c:choose>
  1052. <c:when test="${!status.last}">
  1053. <c:set var="ids" value='${ids }${user.userId },'></c:set>
  1054. <c:set var="names" value='${names}${user.fullname },'></c:set>
  1055. </c:when>
  1056. <c:otherwise>
  1057. <c:set var="ids" value='${ids }${user.userId }'></c:set>
  1058. <c:set var="names" value='${names}${user.fullname }'></c:set>
  1059. </c:otherwise>
  1060. </c:choose>
  1061. </c:forEach>
  1062. </c:if>
  1063. <table id="superItem" class="table-grid table-list" cellpadding="1" cellspacing="1">
  1064. <tr>
  1065. <th style="text-align:center !important;width:200px">上级</th>
  1066. <td >
  1067. <input type="text" name="superior" size="80" id="superior" value="${names}">
  1068. <input type="hidden" name="superiorId" id="superiorId" value="${ids}">
  1069. <a href='#' class='button' onclick="showUserDlg()"><span>...</span></a>
  1070. </td>
  1071. </tr>
  1072. </table>
  1073. </div>
  1074. <div title="共享配置" tabid="share">
  1075. <c:set var="shareids" value=""></c:set>
  1076. <c:set var="sharenames" value=""></c:set>
  1077. <c:if test="${!empty userShare }">
  1078. <c:forEach items="${userShare}" var="user" varStatus="status">
  1079. <c:choose>
  1080. <c:when test="${!status.last}">
  1081. <c:set var="shareids" value='${shareids }${user.userId },'></c:set>
  1082. <c:set var="sharenames" value='${sharenames}${user.fullname },'></c:set>
  1083. </c:when>
  1084. <c:otherwise>
  1085. <c:set var="shareids" value='${shareids }${user.userId }'></c:set>
  1086. <c:set var="sharenames" value='${sharenames}${user.fullname }'></c:set>
  1087. </c:otherwise>
  1088. </c:choose>
  1089. </c:forEach>
  1090. </c:if>
  1091. <table id="superItem" class="table-grid table-list" cellpadding="1" cellspacing="1">
  1092. <tr>
  1093. <th style="text-align:center !important;width:200px">共享</th>
  1094. <td >
  1095. <input type="text" name="share" size="80" id="share" value="${sharenames}">
  1096. <input type="hidden" name="shareId" id="shareId" value="${shareids}">
  1097. <a href='#' class='button' onclick="showUserDlgShare()"><span>...</span></a>
  1098. </td>
  1099. </tr>
  1100. </table>
  1101. </div>
  1102. <div title="职责描述" tabid="responsibility">
  1103. <table id="superItem" class="table-grid table-list" cellpadding="1" cellspacing="1">
  1104. <tr>
  1105. <th style="text-align:center !important;width:200px">职责描述</th>
  1106. <td >
  1107. <textarea id="responsibilityDetail" name="responsibilityDetail" rows="15" cols="" style="width:98% !important " class="inputText">
  1108. ${sysUser.responsibilityDetail}
  1109. </textarea>
  1110. </td>
  1111. </tr>
  1112. </table>
  1113. </div>
  1114. </c:if>
  1115. </div>
  1116. </form>
  1117. </div>
  1118. </body>
  1119. </html>