sysinit.jsp 34 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082
  1. <%@ page language="java" contentType="text/html; charset=utf-8"
  2. pageEncoding="utf-8"%>
  3. <%
  4. String url = request.getRequestURL().toString();
  5. String basePath = url.substring(0, url.length()
  6. - request.getRequestURI().length())
  7. + request.getContextPath() + "/";
  8. String caller = request.getParameter("caller");
  9. %>
  10. <!DOCTYPE html>
  11. <html>
  12. <head>
  13. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  14. <style type="text/css">
  15. .x-monthpicker{
  16. height:200px !important;
  17. }
  18. .arrow{
  19. background-image: url('../jsps/sys/images/arrows2.png') no-repeat 0 -55px;
  20. }
  21. .baseconfirmbutton{
  22. left:47% !important;
  23. }
  24. .baseconfirmtpl{
  25. color:black !important;
  26. font-family: 黑体 !important;
  27. /* font-style: italic !important; */
  28. }
  29. #enterprisesave-btnInnerEl{
  30. color:white;
  31. }
  32. /* .x-grid-cell-inner-treecolumn{
  33. margin-left:-30px;
  34. } */
  35. /* .x-grid-cell-inner-treecolumn{
  36. margin-left:-30px;
  37. } */
  38. /* .jptreecolumn{
  39. margin-left:-30px !important;
  40. } */
  41. .jptreecolumn .x-grid-cell-inner-treecolumn{
  42. margin-left:-30px !important;
  43. }
  44. .mui-switch {
  45. width: 35px;
  46. height: 18px;
  47. position: relative;
  48. border: 1px solid #dfdfdf;
  49. background-color: #fdfdfd;
  50. box-shadow: #dfdfdf 0 0 0 0 inset;
  51. border-radius: 8px;
  52. background-clip: content-box;
  53. display: inline-block;
  54. -webkit-appearance: none;
  55. user-select: none;
  56. outline: none; }
  57. .mui-switch:before {
  58. content: '';
  59. width: 15px;
  60. height: 15px;
  61. position: absolute;
  62. top: 0px;
  63. left: 0;
  64. border-radius: 20px;
  65. border-top-left-radius: 20px;
  66. border-top-right-radius: 20px;
  67. border-bottom-left-radius: 20px;
  68. border-bottom-right-radius: 20px;
  69. background-color: #fff;
  70. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }
  71. .mui-switch:checked {
  72. border-color: #64bd63;
  73. box-shadow: #64bd63 0 0 0 16px inset;
  74. background-color: #64bd63; }
  75. .mui-switch:checked:before {
  76. left: 19px; }
  77. .mui-switch.mui-switch-animbg {
  78. transition: background-color ease 0.4s; }
  79. .mui-switch.mui-switch-animbg:before {
  80. transition: left 0.3s; }
  81. .mui-switch.mui-switch-animbg:checked {
  82. box-shadow: #dfdfdf 0 0 0 0 inset;
  83. background-color: #64bd63;
  84. transition: border-color 0.4s, background-color ease 0.4s; }
  85. .mui-switch.mui-switch-animbg:checked:before {
  86. transition: left 0.3s; }
  87. .mui-switch.mui-switch-anim {
  88. transition: border cubic-bezier(0, 0, 0, 1) 0.4s, box-shadow cubic-bezier(0, 0, 0, 1) 0.4s; }
  89. .mui-switch.mui-switch-anim:before {
  90. transition: left 0.3s; }
  91. .mui-switch.mui-switch-anim:checked {
  92. box-shadow: #64bd63 0 0 0 16px inset;
  93. background-color: #64bd63;
  94. transition: border ease 0.4s, box-shadow ease 0.4s, background-color ease 1.2s; }
  95. .mui-switch.mui-switch-anim:checked:before {
  96. transition: left 0.3s; }
  97. .noboder{
  98. border:0px solid #B5B8C8;
  99. padding:10px;
  100. margin-bottom:10px;
  101. display:block;
  102. }
  103. #jppaneltree-body{
  104. border-width: 0px !important;
  105. }
  106. #simplejprocess-body{
  107. border-width:0px !important;
  108. }
  109. #simplejpform-body{
  110. border-width:0px !important;
  111. }
  112. #saveProcessBtc-btnInnerEl{
  113. padding-left: 10px !important;
  114. color:white;
  115. }
  116. #textfield-1098-labelCell{
  117. width:55px !important;
  118. }
  119. #textfield-1099-labelCell{
  120. width:55px !important;
  121. }
  122. #textfield-1100-labelCell{
  123. width:55px !important;
  124. }
  125. #textarea-1101-labelCell{
  126. width:55px !important;
  127. }
  128. #hrgrouptabpanel{
  129. background-color: #e8e8e8;
  130. border-image-source: initial;
  131. border-image-slice: initial;
  132. border-image-width: initial;
  133. border-image-outset: initial;
  134. border-image-repeat: initial;
  135. border-width: 0px;
  136. border-style: solid;
  137. border-color: #e8e8e8;
  138. }
  139. .x-button-icon-pic {
  140. background-image: url('../resource/images/icon/pic.png');
  141. }
  142. .x-form-group-label {
  143. width: 30%;
  144. padding-left:10px;
  145. height: 20px;
  146. line-height: 20px;
  147. z-index: 2;
  148. position: relative;
  149. cursor: pointer;
  150. font-size: 15px;
  151. color: gray;
  152. border: 1px solid #8b8970;
  153. -moz-box-shadow: 1px 1px 2px rgba(0, 0, 0, .2);
  154. -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, .2);
  155. box-shadow: 1px 1px 2px rgba(0, 0, 0, .2);
  156. -moz-border-radius: 5px;
  157. -webkit-border-radius: 5px;
  158. border-radius: 5px;
  159. background: #f1f1f1 url('../resource/images/icons.png') no-repeat 0 -55px !important
  160. }
  161. .search-item {
  162. font: normal 11px tahoma, arial, helvetica, sans-serif;
  163. padding: 3px 10px 3px 10px;
  164. border: 1px solid #fff;
  165. border-bottom: 1px solid #eeeeee;
  166. white-space: normal;
  167. color: #555;
  168. }
  169. #fieldset-1070 {
  170. border: 0px solid #b5b8c8 !important;
  171. }
  172. #fieldset-1073 {
  173. border: 0px solid #b5b8c8 !important;
  174. }
  175. .image-tishi {
  176. font-size: 13px;
  177. color: blue;
  178. font-style:italic
  179. }
  180. .hello-button {
  181. background: url(images/hello.png) left top no-repeat;
  182. }
  183. .search-item h3 {
  184. display: block;
  185. font: inherit;
  186. font-weight: bold;
  187. color: #222;
  188. }
  189. .search-item h3 span {
  190. float: right;
  191. font-weight: normal;
  192. margin: 0 0 5px 5px;
  193. width: 150px;
  194. display: block;
  195. clear: none;
  196. }
  197. .msg .x-box-mc {
  198. font-size: 14px;
  199. }
  200. #msg-div {
  201. position: absolute;
  202. left: 50%;
  203. top: 10px;
  204. width: 400px;
  205. margin-left: -200px;
  206. z-index: 20000;
  207. }
  208. #msg-div .msg {
  209. border-radius: 8px;
  210. -moz-border-radius: 8px;
  211. background: #F6F6F6;
  212. border: 2px solid #ccc;
  213. margin-top: 2px;
  214. padding: 10px 15px;
  215. color: #555;
  216. }
  217. #msg-div .msg h3 {
  218. margin: 0 0 8px;
  219. font-weight: bold;
  220. font-size: 15px;
  221. }
  222. #msg-div .msg p {
  223. margin: 0;
  224. }
  225. #jppanel{top: 0px !important; }
  226. #basicgrouptabpanel {
  227. background-color: #E0E0E0 !important;
  228. border: solid 0px ;}
  229. #basicgrouptabpanel {
  230. background-color: #E0E0E0 !important;
  231. border: solid 0px ;}
  232. .x-button-icon-excel {
  233. background-image: url('<%=basePath %>resource/images/excel.png');
  234. }
  235. .button-readed {
  236. background-image: url('<%=basePath %>resource/images/readed.png')
  237. }
  238. </style>
  239. <link rel="icon" href="<%=basePath%>resource/images/icon_title.png"
  240. type="image/x-icon" />
  241. <%-- <link rel="stylesheet"
  242. href="<%=basePath%>resource/css/main.css"
  243. type="text/css"></link> --%>
  244. <link rel="stylesheet"
  245. href="<%=basePath%>resource/ext/4.2/resources/ext-theme-gray/ext-theme-gray-all.css"
  246. type="text/css"></link>
  247. <link rel="stylesheet"
  248. href="<%=basePath%>resource/ext/4.2/resources/ext-theme-neptune/tree-neptune.css"
  249. type="text/css"></link>
  250. <link rel="stylesheet" type="text/css"
  251. href="<%=basePath%>resource/ux/css/CheckHeader.css" />
  252. <link rel="stylesheet" type="text/css"
  253. href="<%=basePath%>jsps/sys/css/GroupTabPanel.css" />
  254. <link rel="stylesheet" type="text/css"
  255. href="<%=basePath%>jsps/sys/css/init.css" />
  256. <style type="text/css">
  257. .x-toolbar-sencha {
  258. background: #e0e0e0;
  259. color: #304c33;
  260. border: none !important;
  261. }
  262. .x-form-group-label h6, .x-form-group-label-close h6{
  263. margin-left: 23px !important;
  264. /* padding-bottom: 10px; */
  265. top: -28px;
  266. position: absolute;
  267. }
  268. .x-toolbar-sencha .x-logo {
  269. padding: 10px 10px 10px 31px;
  270. /* background: url(../images/logo.png) no-repeat 10px 11px; */
  271. color:#666;
  272. text-align:center;
  273. font-size: 22px;
  274. font-weight: bold;
  275. text-shadow: 0 1px 0 #4e691f;
  276. }
  277. #processview-1014{
  278. width:305px!important;
  279. }
  280. #jprocesstab-body{
  281. border-width:0px !important;
  282. }
  283. .x-grouptabbar .x-panel-body {
  284. background-color: #e5e5e5!important;
  285. }
  286. .x-grouptabbar .x-grid-cell-inner {
  287. color: #696969!important;
  288. }
  289. </style>
  290. <style>
  291. .loading {
  292. background: url("<%=basePath %>resource/images/loading.gif") no-repeat center!important;
  293. }
  294. .checked {
  295. background: url("<%=basePath %>resource/images/renderer/finishrecord.png") no-repeat center!important;
  296. }
  297. .error {
  298. background: url("<%=basePath %>resource/images/renderer/important.png") no-repeat center!important;
  299. }
  300. .refresh{
  301. background: url('<%=basePath %>resource/images/refresh.gif') no-repeat;
  302. }
  303. .x-btn-primary {
  304. padding: 3px 12px
  305. }
  306. .x-btn-primary.x-btn-default-large .x-btn-inner {
  307. font-size: 14px;
  308. font-weight: 700
  309. }
  310. .simpleactiongrid-addbtn {
  311. background: #d5d5d5;
  312. background: -moz-linear-gradient(top, #fff 0, #efefef 38%, #d5d5d5 88%);
  313. background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff),
  314. color-stop(38%, #efefef), color-stop(88%, #d5d5d5));
  315. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff',
  316. endColorstr='#d5d5d5', GradientType=0);
  317. border-color: #bfbfbf;
  318. border-radius: 2px;
  319. vertical-align: bottom;
  320. text-align: center;
  321. }
  322. </style>
  323. <script type="text/javascript"
  324. src="<%=basePath%>resource/ext/4.2/ext-all.js"></script>
  325. <script type="text/javascript" src="<%=basePath %>resource/sources/jquery-3.0.0.min.js"></script>
  326. <%-- <script type="text/javascript"
  327. src="<%=basePath%>resource/ext/4.2/ext-all-debug.js"></script> --%>
  328. <script type="text/javascript" src="<%=basePath%>resource/i18n/i18n.js"></script>
  329. <script type="text/javascript" src="<%=basePath%>jsps/sys/sysinit.js"></script>
  330. <script type="text/javascript">
  331. var msgCt;
  332. var index;
  333. var nowvalue="enterprise";
  334. var newvalue="enterprise";
  335. var nowhtml="企业信息";
  336. var newhtml="企业信息";
  337. var initabled;
  338. var dept;
  339. var title;
  340. /* var selete;
  341. var seleteId; */
  342. var selectWindow;
  343. var table="enterprise";
  344. var paneltype;
  345. var span;
  346. $(document).ready(function(){
  347. $.ajax({
  348. type : "POST",
  349. contentType : "application/json",
  350. url : basePath + "common/saas/common/sysinitnavigation.action",
  351. success : function(c) {
  352. initabled=c.color;
  353. }
  354. })
  355. });
  356. var showResult =function(title,s){
  357. if(!msgCt){
  358. msgCt = Ext.DomHelper.insertFirst(document.body, {id:'msg-div'}, true);
  359. }
  360. var m = Ext.DomHelper.append(msgCt, createBox(title, s), true);
  361. m.hide();
  362. m.slideIn('t').ghost("t", { delay: 1000, remove: true});
  363. };
  364. function createBox(t, s){
  365. return '<div class="msg"><h3>' + t + '</h3><p>' + s + '</p></div>';
  366. }
  367. function choiceInfo(s){
  368. if(s.parentNode.childNodes[3].style.display=="none"){
  369. s.parentNode.childNodes[3].style.display="block";
  370. }else{
  371. s.parentNode.childNodes[3].style.display="none";
  372. }
  373. }
  374. function add(s){
  375. var parentnode=s.parentNode.parentNode.parentNode;
  376. var newEl="<div class='node' id='jiddian' style='position: relative;'>"+
  377. "<div class='arrow' id=''><svg xmlns='http://www.w3.org/2000/svg' version='1.1'><line x1='50' y1='0' x2='50' y2='45' style='stroke:rgba(51, 51, 51, 0.88);stroke-width:4'/><line x1='50' y1='47' x2='42' y2='38'style='stroke:rgba(51, 51, 51, 0.88);stroke-width:4'/><line x1='50' y1='47' x2='58' y2='38'style='stroke:rgba(51, 51, 51, 0.88);stroke-width:4'/><line x1='50' y1='47' x2='50' y2='48'style='stroke:rgba(51, 51, 51, 0.88);stroke-width:4'/></svg></div>"+
  378. "<div class='jpcontent' id='' style='position: relative'><span class='simplejprocess-delete' onclick='deletejp(this);' style='cursor:pointer;position:absolute;right:4px;top:-12px;'><img src='../jsps/sys/images/spjdelete.png'></img></span><span style='color:black;cursor:pointer;width:105px;height:50px;' class='assignInfo' name='assignInfo' data-code='' data-name='' data-type='' data-contact='' onclick='choiceInfo(this)' onmouseover='show(this);' onmouseout= 'hide(this);'>[新节点]</span><span class='simplejprocess-add' style='cursor:pointer;position:absolute;right:4px;top:18px;' onclick='add(this);'><img src='../jsps/sys/images/spjadd.png'></img></span><div class='choicecontent' id='' style='position: absolute;z-index:99;left:-6px;background-color:white;top: 48px;line-height: 15px;display:block;'><a href='#' onclick='choiceMan(this);'>人员</a><a href='#' onclick='choiceMan(this);'>岗位</a><a href='#' onclick='choiceRole(this);'>领导</a></div><span class='showmanInfo' id='' style='position: absolute;z-index:99;left:0px;background-color:rgb(199, 199, 199);border-radius: 5px;padding: 5px;font-size: 10px;top: 48px;line-height: 15px;display:none;min-width:100px;min-height:28px;color: #333;'></span></div>"+
  379. /* "<div class='choicecontent' id='' style='position: absolute;z-index:99;left:230px;background-color:white;display:none;'><a href='#' onclick='choiceMan(this);'>人员</a><a href='#' onclick='choiceMan(this);'>岗位</a><a href='#' onclick='choiceRole(this);'>角色</a></div>"+ */
  380. "</div>";
  381. $(newEl).insertAfter(s.parentNode.parentNode);
  382. }
  383. function deletejp(s){
  384. var parentnode=s.parentNode.parentNode.parentNode;
  385. parentnode.removeChild(s.parentNode.parentNode);
  386. }
  387. function choiceMan(s){
  388. span=s;
  389. var k="man";
  390. var store;
  391. if(span.parentNode.parentNode.childNodes[1].getAttribute("data-contact")!="" && span.parentNode.parentNode.childNodes[1].getAttribute("data-contact")!=null && s.innerHTML=="人员" && span.parentNode.parentNode.childNodes[1].getAttribute("data-type")=='assignee'){
  392. var selete=span.parentNode.parentNode.childNodes[1].getAttribute("data-contact").split(",");
  393. }else if(span.parentNode.parentNode.childNodes[1].getAttribute("data-contact")!="" && span.parentNode.parentNode.childNodes[1].getAttribute("data-contact")!=null && s.innerHTML=="岗位" && span.parentNode.parentNode.childNodes[1].getAttribute("data-type")=='candidate-groups'){
  394. var selete=span.parentNode.parentNode.childNodes[1].getAttribute("data-contact").split(",");
  395. }
  396. else{
  397. var selete=[];
  398. }
  399. if(span.parentNode.parentNode.childNodes[1].getAttribute("data-code")!="" && span.parentNode.parentNode.childNodes[1].getAttribute("data-code")!=null && s.innerHTML=="人员" && span.parentNode.parentNode.childNodes[1].getAttribute("data-type")=='assignee'){
  400. var seleteId=span.parentNode.parentNode.childNodes[1].getAttribute("data-code").split(",");
  401. }else if(span.parentNode.parentNode.childNodes[1].getAttribute("data-code")!="" && span.parentNode.parentNode.childNodes[1].getAttribute("data-code")!=null && s.innerHTML=="岗位" && span.parentNode.parentNode.childNodes[1].getAttribute("data-type")=='candidate-groups'){
  402. var seleteId=span.parentNode.parentNode.childNodes[1].getAttribute("data-code").split(",");
  403. }
  404. else{
  405. var seleteId=[];
  406. }
  407. var me = this;
  408. var requestUrl = '';
  409. if(s.innerHTML=="人员"){
  410. var Morgname="or_name",Mname="em_name",Mcode="em_code";
  411. requestUrl = basePath+'common/getSimpleOrgAssignees.action';
  412. }else{
  413. var Morgname="JO_ORGNAME",Mname="",Mcode="";
  414. requestUrl = basePath+'common/getSimpleJobOfOrg.action';
  415. }
  416. Ext.Msg.wait('获取数据中...');
  417. Ext.Ajax.request({//拿到tree数据
  418. url:requestUrl,
  419. method:'post',
  420. timeout:60000,
  421. success: function(response){
  422. Ext.Msg.hide();
  423. res = new Ext.decode(response.responseText);
  424. if(res.tree){
  425. store = new Ext.decode(res.tree);
  426. var window=getWindow(store,selete,seleteId,Morgname,Mname,Mcode,span);
  427. window.show();
  428. /* me.orgTree.cleanCheck(); */
  429. var roonodes = me.orgTree.getRootNode().childNodes; //获取主节点
  430. findchildnode(roonodes);
  431. function findchildnode(node){
  432. for(var i=0;i<node.length;i++){ //从节点中取出子节点依次遍历
  433. var rootnode = node[i];
  434. for(var y=0;y<seleteId.length;y++){
  435. for(var j=0;j<node[i].childNodes.length;j++){
  436. if(seleteId[y]==node[i].childNodes[j].data.qtip){
  437. node[i].childNodes[j].set("checked",true);
  438. }
  439. }
  440. }
  441. }
  442. }
  443. window.items.items[0].items.items[3].setValue(selete); //设置 已选择 */
  444. }
  445. }
  446. });
  447. }
  448. function choiceRole(s){
  449. span=s;
  450. if(span.parentNode.parentNode.childNodes[1].getAttribute("data-code")!="" && span.parentNode.parentNode.childNodes[1].getAttribute("data-code")!=null && s.innerHTML=="领导" && span.parentNode.parentNode.childNodes[1].getAttribute("data-type")=='rolAssignee'){
  451. var seleteId=span.parentNode.parentNode.childNodes[1].getAttribute("data-code");
  452. }
  453. else{
  454. var seleteId="";
  455. }
  456. this.createRoleWindow(s,seleteId);
  457. }
  458. function getWindow(store,selete,seleteId,Morgname,Mname,Mcode,span) {
  459. selectWindow = this.createWindow(store,selete,seleteId,Morgname,Mname,Mcode);
  460. return selectWindow;
  461. }
  462. function createRoleWindow(s,seleteId){
  463. var formpanel = new Ext.form.FormPanel(
  464. {
  465. region : 'west',
  466. width : '100%',
  467. id:'rolechoiceform',
  468. defaultType: 'radiofield',
  469. layout: 'vbox',
  470. items : [
  471. {
  472. boxLabel : '上节点组织领导',
  473. name : 'role',
  474. inputValue: 'm',
  475. id : 'radio1',
  476. }, /* {
  477. boxLabel : '上一步父组织负责领导',
  478. name : 'role',
  479. inputValue: 'l',
  480. id : 'radio2'
  481. }, */ {
  482. boxLabel : '上节点岗位领导',
  483. name : 'role',
  484. inputValue: 'xl',
  485. id : 'radio3'
  486. }/* ,{
  487. boxLabel : '上一步岗位直属领导',
  488. name : 'role',
  489. inputValue: 'xll',
  490. id : 'radio4'
  491. } */
  492. ],
  493. listeners : {
  494. beforerender:function(form, eOpts ){
  495. for(var i=0;i<form.items.items.length;i++){
  496. if(form.items.items[i].boxLabel==seleteId){
  497. Ext.getCmp(form.items.items[i].id).setValue(true); //或者setValue("on")
  498. }
  499. }
  500. }
  501. }
  502. });
  503. var win = new Ext.Window({
  504. title : '领导',
  505. layout : 'border',
  506. height : 200,
  507. width : 200,
  508. modal : true,
  509. items : [formpanel],
  510. buttonAlign:'center',
  511. buttons : [
  512. {
  513. text : '确定',
  514. handler : function(de) {
  515. var value="";
  516. for(var i=0;i<Ext.getCmp('rolechoiceform').items.items.length;i++){
  517. if(Ext.getCmp('rolechoiceform').items.items[i].checked==true){
  518. value=Ext.getCmp('rolechoiceform').items.items[i].boxLabel;
  519. }
  520. }
  521. confirmRole(value);
  522. de.ownerCt.ownerCt.close();
  523. },
  524. scope : this
  525. },
  526. {
  527. text : '取消',
  528. handler : function(de) {
  529. de.ownerCt.ownerCt.close();
  530. },
  531. scope : this
  532. }],
  533. listeners : {
  534. }
  535. });
  536. win.show();
  537. }
  538. function confirmRole(value){
  539. span.parentNode.parentNode.childNodes[1].setAttribute("data-type", "rolAssignee");
  540. span.parentNode.parentNode.childNodes[1].innerHTML = "领导:"+ value;
  541. span.parentNode.parentNode.childNodes[1].setAttribute("data-contact", value);
  542. span.parentNode.parentNode.childNodes[1].setAttribute("data-code", value);
  543. span.parentNode.parentNode.childNodes[1].setAttribute("data-name", value);
  544. span.parentNode.style.display="none";
  545. }
  546. function createWindow(store,selete,seleteId,Morgname,Mname,Mcode,span) {
  547. var me = this;
  548. var tree = new Ext.tree.TreePanel({
  549. autoScroll: true,
  550. width:300,
  551. region:'center',
  552. checked:true,
  553. enableDD: false,
  554. containerScroll: true,
  555. selModel:{}/* new Ext.tree.CheckNodeMultiSelectionModel() */,
  556. rootVisible: false,
  557. count:1,
  558. listeners:{
  559. 'checkchange':function(node,checked){
  560. if (node.isLeaf()) {
  561. if (!checked) {
  562. selete = arrayremove(selete, node.data.text);
  563. seleteId = arrayremove(seleteId,
  564. node.data.id);
  565. this.ownerCt.items.items[0].items.items[3]
  566. .setValue(selete);
  567. } else {
  568. if (selete.indexOf(node.data.text) == -1) {
  569. selete.push(node.data.text);
  570. seleteId.push(node.data.id);
  571. this.ownerCt.items.items[0].items.items[3].setValue(selete);
  572. }
  573. }
  574. } else {
  575. if (checked) {
  576. for (var i = 0; i < node.childNodes.length; i++) {
  577. node.childNodes[i].set('checked',checked);
  578. if (selete.indexOf(node.childNodes[i].data.text) == -1) {
  579. selete.push(node.childNodes[i].data.text);
  580. seleteId.push(node.childNodes[i].data.id);
  581. }
  582. this.ownerCt.items.items[0].items.items[3].setValue(selete);
  583. }
  584. } else if (!checked) {
  585. for (var i = 0; i < node.childNodes.length; i++) {
  586. node.childNodes[i].set('checked',checked);
  587. selete = arrayremove(selete,node.childNodes[i].data.text);
  588. seleteId = arrayremove(seleteId,node.childNodes[i].data.id);
  589. this.ownerCt.items.items[0].items.items[3].setValue(selete);
  590. }
  591. }
  592. }
  593. },
  594. }
  595. });
  596. var arrayindexof = function(val0, val1) {
  597. for (var i = 0; i < val0.length; i++) {
  598. if (val0[i] == val1) {
  599. return i;
  600. }
  601. }
  602. return -1;
  603. };
  604. var arrayremove = function(val0, val1) {
  605. var index = arrayindexof(val0, val1);
  606. if (index > -1) {
  607. val0.splice(index, 1);
  608. }
  609. return val0;
  610. };
  611. var root = {
  612. text : 'root',
  613. draggable : false,
  614. leaf : false,
  615. nodeType : 'async',
  616. children : store,
  617. expanded : true
  618. };
  619. tree.setRootNode(root);
  620. tree.cleanCheck = function(node) {
  621. if (typeof node == 'undefined') {
  622. node = this.rootVisible ? this.getRootNode() : this.getRootNode().firstChild;
  623. }
  624. if (node) {
  625. if (!node.isLeaf()) {
  626. node.ui.checkboxImg.className = 'x-tree-node-checkbox-none';
  627. node.attributes.checked = false;
  628. for (var i = 0; i < node.childNodes.length; i++) {
  629. this.cleanCheck(node.childNodes[i]);
  630. }
  631. }
  632. }
  633. };
  634. tree.getChecked = function(node) {
  635. var checked = [], i;
  636. if (typeof node == 'undefined') {
  637. node = this.getRootNode();
  638. } else if (node.ui.checkboxImg
  639. && node.ui.checkboxImg.className == 'x-tree-node-checkbox-all') {
  640. if (node.isLeaf()) {
  641. checked.push(node.text);
  642. } else {
  643. node.ui.checkboxImg.className = 'x-tree-node-checkbox-none';
  644. }
  645. }
  646. if (!node.isLeaf()) {
  647. for (var i = 0; i < node.childNodes.length; i++) {
  648. checked = checked.concat(this
  649. .getChecked(node.childNodes[i]));
  650. }
  651. }
  652. return checked;
  653. };
  654. this.orgTree = tree;
  655. //加筛选 根据 所属组织 人员名称 以及编号 做筛选
  656. var formpanel = new Ext.form.FormPanel(
  657. {
  658. height : 100,
  659. region : 'west',
  660. width : '30%',
  661. labelWidth:80,
  662. labelAlign : 'right',
  663. border : false,
  664. defaultType : 'textfield',
  665. defaults : {
  666. anchor : '90%',
  667. width : '100px !important',
  668. },
  669. bodyStyle : {
  670. padding : '6px 0 0'
  671. },
  672. items : [ {
  673. xtype : 'textfield',
  674. name : 'orname',
  675. labelWidth:60,
  676. //cls:'sysinit-textfield',
  677. fieldLabel : '所属组织'
  678. }, {
  679. xtype : 'textfield',
  680. labelWidth:60,
  681. name : 'name',
  682. fieldLabel : '员工名称'
  683. }, {
  684. xtype : 'textfield',
  685. labelWidth:60,
  686. name : 'code',
  687. fieldLabel : '员工编号'
  688. }, {
  689. xtype : 'textarea',
  690. name : 'selected',
  691. labelWidth:60,
  692. readOnly : true,
  693. //disabled:true,
  694. fieldLabel : '已选择',
  695. width:55
  696. } ],
  697. buttonAlign : 'center',
  698. buttons : [ {
  699. text : '筛选',
  700. iconCls : 'x-form-search-trigger',
  701. style : 'padding-bottom:0px',
  702. handler : function() {
  703. var condition = getCondition(this.ownerCt.ownerCt.ownerCt, Morgname,Mname, Mcode);
  704. if (condition) {
  705. var requestUrl = '';
  706. if (Morgname == 'or_name') {
  707. requestUrl = basePath
  708. + 'common/getSimpleOrgAssignees.action';
  709. } else {
  710. requestUrl = basePath
  711. + 'common/getSimpleJobOfOrg.action';
  712. }
  713. Ext.Ajax.request({//拿到tree数据
  714. url : requestUrl,
  715. timeout : 60000,
  716. params : {
  717. condition : condition
  718. },
  719. method : 'post',
  720. success : function(response) {
  721. res = new Ext.decode(response.responseText);
  722. if (res.tree) {
  723. var cstore = new Ext.decode(res.tree);
  724. var hisroot = tree.getRootNode();
  725. var cn = hisroot.childNodes, n;
  726. while ((n = cn[0])) {
  727. hisroot.removeChild(n);
  728. }
  729. var fn = function(node, ch) {
  730. for ( var i in ch) {
  731. var n = ch[i];
  732. if (n.text) {
  733. node.appendChild({
  734. text : n.text,
  735. draggable : false,
  736. leaf : false,
  737. children : n.children
  738. });
  739. }
  740. }
  741. };
  742. fn(hisroot, cstore);
  743. tree.expandAll();
  744. for (var n = 0; n < seleteId.length; n++) {
  745. if (tree.getStore().getNodeById(seleteId[n])) {
  746. tree.getStore().getNodeById(seleteId[n]).set("checked",true);
  747. }
  748. }
  749. }
  750. }
  751. });
  752. }
  753. }
  754. } ]
  755. });
  756. var win = new Ext.Window({
  757. title : '人事',
  758. id:'simplejpwindow',
  759. layout : 'border',
  760. height : window.innerHeight * 0.9,
  761. width : 600,
  762. modal : true,
  763. items : [ formpanel, tree ],
  764. buttons : [
  765. {
  766. text : '确定',
  767. handler : function(de) {
  768. var value = de.ownerCt.ownerCt.items.items[0].form
  769. .getValues().selected;
  770. confirm(value);
  771. de.ownerCt.ownerCt.close();
  772. },
  773. scope : this
  774. },
  775. {
  776. text : '取消',
  777. handler : function(de) {
  778. de.ownerCt.ownerCt.close();
  779. },
  780. scope : this
  781. },
  782. {
  783. text : '刷新',
  784. handler : function(refrash) {
  785. var myMask = new Ext.LoadMask(Ext.getCmp('simplejpwindow').getEl(), {//也可以是Ext.getCmp('').getEl()窗口名称
  786. msg : "正在加载数据...",//你要写成Loading...也可以
  787. msgCls : 'z-index:10000;'
  788. });
  789. myMask.show();
  790. var requestUrl = '';
  791. if (Morgname == 'or_name') {
  792. requestUrl = basePath
  793. + 'common/getSimpleOrgAssignees.action';
  794. } else {
  795. requestUrl = basePath
  796. + 'common/getSimpleJobOfOrg.action';
  797. }
  798. Ext.Ajax.request({//拿到tree数据
  799. url:requestUrl,
  800. method:'post',
  801. timeout:60000,
  802. success: function(response){
  803. myMask.hide();
  804. res = new Ext.decode(response.responseText);
  805. if(res.tree){
  806. store = new Ext.decode(res.tree);
  807. var root ={
  808. text: 'root',
  809. draggable: false,
  810. leaf:false,
  811. children:store,
  812. expanded:true
  813. };
  814. tree.setRootNode(root);
  815. selete=[];
  816. seleteId=[];
  817. }
  818. }
  819. });
  820. }
  821. } ],
  822. listeners : {
  823. 'beforehide' : function(c) {
  824. },
  825. 'beforeshow' : function(c) {
  826. }
  827. }
  828. });
  829. win.field = this;
  830. return win;
  831. };
  832. function confirm(value) {
  833. var values = value.split(",");
  834. var code = "";
  835. var name = "";
  836. for (var i = 0; i < values.length; i++) {
  837. code = code+ values[i].substring(values[i].indexOf("(") + 1, values[i].indexOf(")")) + ",";
  838. }
  839. for (var i = 0; i < values.length; i++) {
  840. name = name + values[i].substring(0, values[i].indexOf("(")) + ",";
  841. }
  842. if (span.innerHTML == "人员") {
  843. span.parentNode.parentNode.childNodes[1]
  844. .setAttribute("data-type", "assignee");
  845. span.parentNode.parentNode.childNodes[1].innerHTML = "人员:"
  846. + name.substring(0, name.length - 1);
  847. }
  848. if (span.innerHTML == "岗位") {
  849. span.parentNode.parentNode.childNodes[1]
  850. .setAttribute("data-type", "candidate-groups");
  851. span.parentNode.parentNode.childNodes[1].innerHTML = "岗位:"
  852. + name.substring(0, name.length - 1);
  853. }
  854. if (span.innerHTML == "领导") {
  855. span.parentNode.parentNode.childNodes[1]
  856. .setAttribute("data-type", "rolAssignee");
  857. span.parentNode.parentNode.childNodes[1].innerHTML = "领导:"
  858. + name.substring(0, name.length - 1);
  859. }
  860. span.parentNode.parentNode.childNodes[1].setAttribute("data-contact", value);
  861. span.parentNode.parentNode.childNodes[1].setAttribute("data-code", code.substring(0,code.length-1));
  862. span.parentNode.parentNode.childNodes[1].setAttribute("data-name", name.substring(0,name.length-1));
  863. /* var code=value.substring(value.indexOf("(")+1,value.indexOf(")")); */
  864. span.parentNode.style.display="none";
  865. }
  866. function getCondition(win, Morgname, Mname, Mcode) {
  867. var form = win.items.items[0].form;
  868. var values = form.getValues();
  869. var orname = values.orname;
  870. var name = values.name;
  871. var code = values.code;
  872. var condition = "";
  873. if ((!orname && !name && !code)
  874. || (orname == "" && name == "" && code == "")) {
  875. return null;
  876. } else {
  877. condition += (orname == null || orname == "") ? "1=1 #" : " "
  878. + Morgname + " like '%" + orname + "%' #";
  879. condition += (name == null || name == "") ? "1=1 " : " " + Mname
  880. + " like '%" + name + "%'";
  881. condition += (code == null || code == "") ? " " : " and " + Mcode
  882. + " like '%" + code + "%'";
  883. return condition;
  884. }
  885. }
  886. //审批流启用控制
  887. function changeJpEnable(s){
  888. var jd_enabled;
  889. if(s.getAttribute("data-value")=='是'){
  890. jd_enabled='否';
  891. }else{
  892. jd_enabled='是';
  893. }
  894. Ext.Ajax.request({
  895. url : basePath + 'common/updateJpEnabled.action',
  896. params : {
  897. jd_id :s.getAttribute("data-id"),
  898. jd_enabled :jd_enabled
  899. },
  900. callback : function(options, success, response) {
  901. var res = new Ext.decode(response.responseText);
  902. if (res.success) {
  903. if(s.getAttribute("data-value")=='是'){
  904. showResult('提示','流程已不启用!');
  905. s.setAttribute("data-value","否");
  906. }else{
  907. s.setAttribute("data-value","是");
  908. showResult('提示','流程已启用!');
  909. }
  910. } else if (res.exceptionInfo) {
  911. showError(res.exceptionInfo);
  912. }
  913. }
  914. });
  915. }
  916. //基础资料grid
  917. function changeEnable(f) {
  918. var flag = f.getAttribute("name");
  919. var keyvalue = f.getAttribute("data-id");
  920. if (keyvalue) {
  921. var v = Ext.ComponentQuery.query('defaultpanel[flag="' + flag
  922. + '"]')[0];
  923. var grid = v.down('simpleactiongrid');
  924. if (f.checked) {//添加
  925. grid.adddetail(grid, keyvalue);
  926. } else {//删除
  927. var res=grid.removeDetail(grid, keyvalue);
  928. if(!res){
  929. f.checked = true;
  930. }
  931. }
  932. } else {
  933. f.checked = false;
  934. }
  935. }
  936. Ext.Loader.setConfig({
  937. enabled : true
  938. });//开启动态加载
  939. Ext.application({
  940. name : 'erp',//为应用程序起一个名字,相当于命名空间
  941. appFolder : basePath + 'app',//app文件夹所在路径
  942. controllers : [//声明所用到的控制层
  943. 'sys.SysInit' ],
  944. launch : function() {
  945. Ext.create('erp.view.sys.ViewPort');//创建视图
  946. }
  947. });
  948. function show(s,e){
  949. /* s.parentNode.childNodes[4].innerHTML=s.parentNode.childNodes[1].innerHTML.substring(3,s.parentNode.childNodes[1].innerHTML.length); */
  950. if(s.parentNode.childNodes[1].innerHTML.substring(3,s.parentNode.childNodes[1].innerHTML.length)!="" && s.parentNode.childNodes[1].innerHTML!="[新节点]"){
  951. s.parentNode.childNodes[4].innerHTML=s.parentNode.childNodes[1].innerHTML.substring(3,s.parentNode.childNodes[1].innerHTML.length);
  952. s.parentNode.childNodes[4].style.display="block";
  953. s.parentNode.childNodes[4].style.left=event.layerX+'px';
  954. s.parentNode.childNodes[4].style.top=event.layerY+'px';
  955. }
  956. }
  957. function hide(s){
  958. s.parentNode.childNodes[4].style.display="none";
  959. }
  960. function changeModule(type) {
  961. if(type.getAttribute("value")==newvalue){
  962. return false;
  963. }
  964. var initPortal = Ext.getCmp('syspanel');
  965. var lis = document.getElementById('progress')
  966. .getElementsByTagName('li');
  967. var disabled = 1;
  968. table = type.getAttribute("data-table");
  969. for (var x = 0; x < initabled.length; x++) {
  970. if (initabled[x].VALUE == newvalue) {
  971. /* if(initabled[x].INITABLED==1){
  972. Ext.getCmp('confirm').hide();
  973. }else{
  974. Ext.getCmp('confirm').show();
  975. } */
  976. }
  977. if (initabled[x].VALUE == newvalue && initabled[x].INITABLED == 0) {
  978. disabled = 0;
  979. }
  980. }
  981. if (disabled == 0) {
  982. Ext.Msg.confirm('提示', '[' + nowhtml + ']初始化未完成,是否切换到其他界面?',
  983. function(choice) {
  984. if (choice === 'yes') {
  985. beginchangeModule(type);
  986. } else {
  987. return false;
  988. }
  989. });
  990. } else {
  991. beginchangeModule(type);
  992. }
  993. }
  994. function beginchangeModule(type) {
  995. nowvalue = newvalue;
  996. newvalue = type.getAttribute("value");
  997. newhtml = type.getElementsByTagName('span')[1].innerHTML;
  998. nowhtml = newhtml;
  999. var initPortal = Ext.getCmp('syspanel');
  1000. var lis = document.getElementById('progress')
  1001. .getElementsByTagName('li');
  1002. for (var x = 0; x < initabled.length; x++) {
  1003. if (initabled[x].VALUE == newvalue) {
  1004. if(initabled[x].INITABLED==1){
  1005. Ext.getCmp('confirm').hide();
  1006. Ext.getCmp('row').hide();
  1007. }else{
  1008. Ext.getCmp('confirm').show();
  1009. Ext.getCmp('row').show();
  1010. Ext.getCmp('row').getEl().update('请确认您的【'+newhtml+'】初始化工作已完成?');
  1011. }
  1012. }
  1013. }
  1014. if(newvalue=='enterprise'||newvalue=='PreProduct1'){
  1015. Ext.getCmp('confirm').hide();
  1016. Ext.getCmp('row').hide();
  1017. }
  1018. for (var i = 0; i < lis.length; i++) {
  1019. if (lis[i].getAttribute("value") == type.getAttribute("value")) {
  1020. title = lis[i].getElementsByTagName('span')[1].innerHTML;
  1021. if (lis[i].getElementsByTagName('span')[1].innerHTML == '企业信息') {
  1022. lis[i].setAttribute("class", "active");
  1023. } else {
  1024. lis[i].setAttribute("class", "normal active");
  1025. }
  1026. dept = lis[i].getAttribute("data-dept");
  1027. index = parseInt(dept);
  1028. flag = lis[i].getAttribute("data-flag");
  1029. importcaller = lis[i].getAttribute("data-importcaller");
  1030. } else {
  1031. if (lis[i].getElementsByTagName('span')[1].innerHTML == '企业信息') {
  1032. lis[i].setAttribute("class", "start");
  1033. } else {
  1034. lis[i].setAttribute("class", "normal");
  1035. }
  1036. }
  1037. }
  1038. var allchildren = type.parentNode.parentNode.parentNode.children;
  1039. for (var y = 0; y < allchildren.length; y++) {
  1040. if (type.parentNode.parentNode == allchildren[y]) {
  1041. allchildren[y].getElementsByTagName('font')[0].setAttribute(
  1042. "class", "bluefont");
  1043. } else {
  1044. allchildren[y].getElementsByTagName('font')[0].setAttribute(
  1045. "class", "normalfont");
  1046. }
  1047. }
  1048. var syspanel = Ext.getCmp('syspanel');
  1049. syspanel.changeCard(syspanel, null, index, flag, importcaller, title);
  1050. }
  1051. var emid =
  1052. <%=session.getAttribute("em_uu")%>;
  1053. var activeItem = null;
  1054. var installtype='${installtype}';
  1055. var caller='';
  1056. </script>
  1057. </head>
  1058. <body>
  1059. <div id="legalese" style="display: none;">
  1060. <h2>使用条款</h2>
  1061. </div>
  1062. </body>
  1063. </html>