user_edit.jsp 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  4. <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  5. <%
  6. String path = request.getContextPath();
  7. String basePath = request.getScheme() + "://"
  8. + request.getServerName() + ":" + request.getServerPort()
  9. + path + "/";
  10. %>
  11. <!DOCTYPE html>
  12. <html lang="en">
  13. <head>
  14. <base href="<%=basePath%>">
  15. <!-- 下拉框 -->
  16. <link rel="stylesheet" href="static/ace/css/chosen.css" />
  17. <!-- jsp文件头和头部 -->
  18. <%@ include file="../index/top.jsp"%>
  19. </head>
  20. <body class="no-skin">
  21. <!-- /section:basics/navbar.layout -->
  22. <div class="main-container" id="main-container">
  23. <!-- /section:basics/sidebar -->
  24. <div class="main-content">
  25. <div class="main-content-inner">
  26. <div class="page-content">
  27. <div class="row">
  28. <div class="col-xs-12">
  29. <form action="user/${msg }.do" name="userForm" id="userForm" method="post">
  30. <input type="hidden" name="USER_ID" id="user_id" value="${pd.USER_ID }"/>
  31. <%-- <textarea style="display: none;" name="ROLE_IDS" id="ROLE_IDS" >${pd.ROLE_IDS }</textarea> --%>
  32. <textarea style="display: none;" name="COMPANY_NAME" id="COMPANY_NAME" >${pd.COMPANY }</textarea>
  33. <textarea style="display: none;" name="ROAD_NAME" id="ROAD_NAME" >${pd.ROAD }</textarea>
  34. <textarea style="display: none;" name="pd.ROLE_ID" id="ROLE_ID" >${pd.ROLE_ID}</textarea>
  35. <c:forEach items="${roadList}" var="road">
  36. <c:forEach items="${selectRoadList}" var="selectRoad">
  37. <textarea style="display: none;" name="pd.ROLE_ID1" id="ROAD_NAME1" >${road}</textarea>
  38. <textarea style="display: none;" name="pd.ROLE_ID2" id="ROAD_NAME2" >${selectRoad}</textarea>
  39. </c:forEach>
  40. </c:forEach>
  41. <div id="zhongxin" style="padding-top: 13px;">
  42. <table id="table_report" class="table table-striped table-bordered table-hover">
  43. <c:if test="${fx != 'head'}">
  44. <tr>
  45. <td style="width:79px;text-align: right;padding-top: 13px;">角色:</td>
  46. <td id="juese">
  47. <select class="chosen-select form-control" name="ROLE_ID" id="role_id" data-placeholder="请选择角色" onchange='getRoleName(${jsoncompany})' style="vertical-align:top;" style="width:98%;" >
  48. <option value=""></option>
  49. <c:forEach items="${roleList}" var="role">
  50. <option value="${role.ROLE_ID }" <c:if test="${role.ROLE_ID == pd.ROLE_ID }">selected</c:if>>${role.ROLE_NAME }</option>
  51. </c:forEach>
  52. </select>
  53. </td>
  54. </tr>
  55. </c:if>
  56. <c:if test="${fx == 'head'}">
  57. <input name="ROLE_ID" id="role_id" value="${pd.ROLE_ID }" type="hidden" />
  58. </c:if>
  59. <c:if test="${fx != 'head'}">
  60. <tr>
  61. <td style="width:79px;text-align: right;padding-top: 13px;">公司:</td>
  62. <td>
  63. <div>
  64. <select class="chosen-select form-control" id="form-field-select-4" data-placeholder="选择所在公司" onchange="getRoadName(this.value)">
  65. <option value=""></option>
  66. <c:forEach items="${companyList}" var="companyname">
  67. <option value="${companyname}" <c:if test="${pd.COMPANY == companyname }">selected</c:if>>${companyname}</option>
  68. </c:forEach>
  69. </select>
  70. </div>
  71. </td>
  72. </tr>
  73. </c:if>
  74. <c:if test="${fx != 'head'}">
  75. <tr>
  76. <td style="width:79px;text-align: right;padding-top: 13px;">路段:</td>
  77. <td>
  78. <div>
  79. <select multiple="" class="chosen-select form-control tag-input-style" id="roadSelect" data-placeholder="选择路段(非必录)">
  80. <c:forEach items="${roadList}" var="road">
  81. <c:choose>
  82. <c:when test="${not empty selectRoadList}">
  83. <c:forEach items="${selectRoadList}" var="selectRoad">
  84. <c:choose>
  85. <c:when test="${selectRoad == road}">
  86. <option onclick="setROLE_IDS('${selectRoad}')" value="${selectRoad}" selected>${selectRoad}</option>
  87. </c:when>
  88. <c:otherwise>
  89. <option onclick="setROLE_IDS('${road}')" value="${road}">${road}</option>
  90. </c:otherwise>
  91. </c:choose>
  92. </c:forEach>
  93. </c:when>
  94. <c:otherwise>
  95. <option onclick="setROLE_IDS('${road}')" value="${road}">${road}</option>
  96. </c:otherwise>
  97. </c:choose>
  98. </c:forEach>
  99. </select>
  100. </div>
  101. </td>
  102. </tr>
  103. </c:if>
  104. <tr>
  105. <td style="width:79px;text-align: right;padding-top: 13px;">用户名:</td>
  106. <td><input type="text" name="USERNAME" id="loginname" value="${pd.USERNAME }" maxlength="32" placeholder="这里输入用户名" title="用户名" style="width:98%;"/></td>
  107. </tr>
  108. <tr>
  109. <td style="width:79px;text-align: right;padding-top: 13px;">编号:</td>
  110. <td><input type="text" name="NUMBER" id="NUMBER" value="${pd.NUMBER }" maxlength="32" placeholder="这里输入编号" title="编号" onblur="hasN('${pd.USERNAME }')" style="width:98%;"/></td>
  111. </tr>
  112. <tr>
  113. <td style="width:79px;text-align: right;padding-top: 13px;">密码:</td>
  114. <td><input type="password" name="PASSWORD" id="password" maxlength="32" placeholder="输入密码" title="密码" style="width:98%;"/></td>
  115. </tr>
  116. <tr>
  117. <td style="width:79px;text-align: right;padding-top: 13px;">确认密码:</td>
  118. <td><input type="password" name="chkpwd" id="chkpwd" maxlength="32" placeholder="确认密码" title="确认密码" style="width:98%;"/></td>
  119. </tr>
  120. <tr>
  121. <td style="width:79px;text-align: right;padding-top: 13px;">姓名:</td>
  122. <td><input type="text" name="NAME" id="name" value="${pd.NAME }" maxlength="32" placeholder="这里输入姓名" title="姓名" style="width:98%;"/></td>
  123. </tr>
  124. <tr>
  125. <td style="width:79px;text-align: right;padding-top: 13px;">手机号:</td>
  126. <td><input type="number" name="PHONE" id="PHONE" value="${pd.PHONE }" maxlength="32" placeholder="这里输入手机号" title="手机号" style="width:98%;"/></td>
  127. </tr>
  128. <tr>
  129. <td style="width:79px;text-align: right;padding-top: 13px;">邮箱:</td>
  130. <td><input type="email" name="EMAIL" id="EMAIL" value="${pd.EMAIL }" maxlength="32" placeholder="这里输入邮箱" title="邮箱" onblur="hasE('${pd.USERNAME }')" style="width:98%;"/></td>
  131. </tr>
  132. <tr>
  133. <td style="width:79px;text-align: right;padding-top: 13px;">备注:</td>
  134. <td><input type="text" name="BZ" id="BZ"value="${pd.BZ }" placeholder="这里输入备注" maxlength="64" title="备注" style="width:98%;"/></td>
  135. </tr>
  136. <tr>
  137. <td style="text-align: center;" colspan="10">
  138. <a class="btn btn-mini btn-primary" onclick="save();">保存</a>
  139. <a class="btn btn-mini btn-danger" onclick="top.Dialog.close();">取消</a>
  140. </td>
  141. </tr>
  142. </table>
  143. </div>
  144. <div id="zhongxin2" class="center" style="display:none"><br/><br/><br/><br/><img src="static/images/jiazai.gif" /><br/><h4 class="lighter block green"></h4></div>
  145. </form>
  146. </div>
  147. <!-- /.col -->
  148. </div>
  149. <!-- /.row -->
  150. </div>
  151. <!-- /.page-content -->
  152. </div>
  153. </div>
  154. <!-- /.main-content -->
  155. </div>
  156. <!-- /.main-container -->
  157. <!-- basic scripts -->
  158. <!-- 页面底部js¨ -->
  159. <%@ include file="../index/foot.jsp"%>
  160. <!-- ace scripts -->
  161. <script src="static/ace/js/ace/ace.js"></script>
  162. <!-- inline scripts related to this page -->
  163. <!-- 下拉框 -->
  164. <script src="static/ace/js/chosen.jquery.js"></script>
  165. <!--提示框-->
  166. <script type="text/javascript" src="static/js/jquery.tips.js"></script>
  167. </body>
  168. <script type="text/javascript">
  169. var roadList = new Object();
  170. $(top.hangge());
  171. $(document).ready(function(){
  172. $('#form-field-select-4').addClass('tag-input-style');
  173. if($("#user_id").val()!=""){
  174. $("#loginname").attr("readonly","readonly");
  175. $("#loginname").css("color","gray");
  176. }
  177. });
  178. //保存
  179. function save(){
  180. if($("#role_id").val()==""){
  181. $("#juese").tips({
  182. side:3,
  183. msg:'选择角色',
  184. bg:'#AE81FF',
  185. time:2
  186. });
  187. $("#role_id").focus();
  188. return false;
  189. }
  190. if($("#loginname").val()=="" || $("#loginname").val()=="此用户名已存在!"){
  191. $("#loginname").tips({
  192. side:3,
  193. msg:'输入用户名',
  194. bg:'#AE81FF',
  195. time:2
  196. });
  197. $("#loginname").focus();
  198. $("#loginname").val('');
  199. $("#loginname").css("background-color","white");
  200. return false;
  201. }else{
  202. $("#loginname").val(jQuery.trim($('#loginname').val()));
  203. }
  204. if($("#role_id").find("option:selected").text() != "控股集团管理员" && $("#COMPANY_NAME").val()==""){
  205. $("#COMPANY_NAME").tips({
  206. side:3,
  207. msg:'选择公司',
  208. bg:'#AE81FF',
  209. time:2
  210. });
  211. $("#form-field-select-4").focus();
  212. return false;
  213. }
  214. if($("#role_id").find("option:selected").text() == "路段管理员" && $("#ROAD_NAME").val()==""){
  215. $("#ROAD_NAME").tips({
  216. side:3,
  217. msg:'选择路段',
  218. bg:'#AE81FF',
  219. time:2
  220. });
  221. $("#roadSelect").focus();
  222. return false;
  223. }
  224. if($("#NUMBER").val()==""){
  225. $("#NUMBER").tips({
  226. side:3,
  227. msg:'输入编号',
  228. bg:'#AE81FF',
  229. time:3
  230. });
  231. $("#NUMBER").focus();
  232. return false;
  233. }else{
  234. $("#NUMBER").val($.trim($("#NUMBER").val()));
  235. }
  236. if($("#user_id").val()=="" && $("#password").val()==""){
  237. $("#password").tips({
  238. side:3,
  239. msg:'输入密码',
  240. bg:'#AE81FF',
  241. time:2
  242. });
  243. $("#password").focus();
  244. return false;
  245. }
  246. if($("#password").val()!=$("#chkpwd").val()){
  247. $("#chkpwd").tips({
  248. side:3,
  249. msg:'两次密码不相同',
  250. bg:'#AE81FF',
  251. time:3
  252. });
  253. $("#chkpwd").focus();
  254. return false;
  255. }
  256. if($("#name").val()==""){
  257. $("#name").tips({
  258. side:3,
  259. msg:'输入姓名',
  260. bg:'#AE81FF',
  261. time:3
  262. });
  263. $("#name").focus();
  264. return false;
  265. }
  266. /* var myreg = /^(((13[0-9]{1})|159)+\d{8})$/;
  267. if($("#PHONE").val()==""){
  268. $("#PHONE").tips({
  269. side:3,
  270. msg:'输入手机号',
  271. bg:'#AE81FF',
  272. time:3
  273. });
  274. $("#PHONE").focus();
  275. return false;
  276. } */
  277. /* else if($("#PHONE").val().length != 11 && !myreg.test($("#PHONE").val())){
  278. $("#PHONE").tips({
  279. side:3,
  280. msg:'手机号格式不正确',
  281. bg:'#AE81FF',
  282. time:3
  283. });
  284. $("#PHONE").focus();
  285. return false;
  286. } */
  287. /* if($("#EMAIL").val()==""){
  288. $("#EMAIL").tips({
  289. side:3,
  290. msg:'输入邮箱',
  291. bg:'#AE81FF',
  292. time:3
  293. });
  294. $("#EMAIL").focus();
  295. return false;
  296. }else if(!ismail($("#EMAIL").val())){
  297. $("#EMAIL").tips({
  298. side:3,
  299. msg:'邮箱格式不正确',
  300. bg:'#AE81FF',
  301. time:3
  302. });
  303. $("#EMAIL").focus();
  304. return false;
  305. } */
  306. if($("#user_id").val()==""){
  307. hasU();
  308. }else{
  309. $("#userForm").submit();
  310. $("#zhongxin").hide();
  311. $("#zhongxin2").show();
  312. }
  313. }
  314. function ismail(mail){
  315. return(new RegExp(/^(?:[a-zA-Z0-9]+[_\-\+\.]?)*[a-zA-Z0-9]+@(?:([a-zA-Z0-9]+[_\-]?)*[a-zA-Z0-9]+\.)+([a-zA-Z]{2,})+$/).test(mail));
  316. }
  317. //判断用户名是否存在
  318. function hasU(){
  319. var USERNAME = $.trim($("#loginname").val());
  320. $.ajax({
  321. type: "POST",
  322. url: '<%=basePath%>user/hasU.do',
  323. data: {USERNAME:USERNAME,tm:new Date().getTime()},
  324. dataType:'json',
  325. cache: false,
  326. success: function(data){
  327. if("success" == data.result){
  328. $("#userForm").submit();
  329. $("#zhongxin").hide();
  330. $("#zhongxin2").show();
  331. }else{
  332. $("#loginname").css("background-color","#D16E6C");
  333. setTimeout("$('#loginname').val('此用户名已存在!')",500);
  334. }
  335. }
  336. });
  337. }
  338. //判断邮箱是否存在
  339. function hasE(USERNAME){
  340. var EMAIL = $.trim($("#EMAIL").val());
  341. $.ajax({
  342. type: "POST",
  343. url: '<%=basePath%>user/hasE.do',
  344. data: {EMAIL:EMAIL,USERNAME:USERNAME,tm:new Date().getTime()},
  345. dataType:'json',
  346. cache: false,
  347. success: function(data){
  348. if("success" != data.result){
  349. $("#EMAIL").tips({
  350. side:3,
  351. msg:'邮箱 '+EMAIL+' 已存在',
  352. bg:'#AE81FF',
  353. time:3
  354. });
  355. $("#EMAIL").val('');
  356. }
  357. }
  358. });
  359. }
  360. //判断编码是否存在
  361. function hasN(USERNAME){
  362. var NUMBER = $.trim($("#NUMBER").val());
  363. $.ajax({
  364. type: "POST",
  365. url: '<%=basePath%>user/hasN.do',
  366. data: {NUMBER:NUMBER,USERNAME:USERNAME,tm:new Date().getTime()},
  367. dataType:'json',
  368. cache: false,
  369. success: function(data){
  370. if("success" != data.result){
  371. $("#NUMBER").tips({
  372. side:3,
  373. msg:'编号 '+NUMBER+' 已存在',
  374. bg:'#AE81FF',
  375. time:3
  376. });
  377. $("#NUMBER").val('');
  378. }
  379. }
  380. });
  381. }
  382. $(function() {
  383. //下拉框
  384. if(!ace.vars['touch']) {
  385. $('.chosen-select').chosen({allow_single_deselect:true});
  386. $(window)
  387. .off('resize.chosen')
  388. .on('resize.chosen', function() {
  389. $('.chosen-select').each(function() {
  390. var $this = $(this);
  391. $this.next().css({'width': $this.parent().width()});
  392. });
  393. }).trigger('resize.chosen');
  394. $(document).on('settings.ace.chosen', function(e, event_name, event_val) {
  395. if(event_name != 'sidebar_collapsed') return;
  396. $('.chosen-select').each(function() {
  397. var $this = $(this);
  398. $this.next().css({'width': $this.parent().width()});
  399. });
  400. });
  401. $('#chosen-multiple-style .btn').on('click', function(e){
  402. var target = $(this).find('input[type=radio]');
  403. var which = parseInt(target.val());
  404. if(which == 2) $('#roadSelect').addClass('tag-input-style');
  405. else $('roadSelect').removeClass('tag-input-style');
  406. });
  407. }
  408. });
  409. //移除路段
  410. function removeRoleId(ROAD){
  411. var OROLE_IDS = $("#roadSelect");
  412. var ROLE_IDS = OROLE_IDS.val();
  413. if(ROLE_IDS != null && ROLE_IDS != ""){
  414. ROLE_IDS = ROLE_IDS.toString().replace(ROAD,"");
  415. }
  416. document.getElementById("ROAD_NAME").value=ROLE_IDS;
  417. OROLE_IDS.val(ROLE_IDS);
  418. }
  419. //添加路段
  420. function addRoleId(ROAD){
  421. var OROLE_IDS = $("#roadSelect");
  422. var ROAD_NAME = OROLE_IDS.val();
  423. document.getElementById("ROAD_NAME").value=ROAD_NAME;
  424. if(!isContains(ROAD_NAME,ROAD)){
  425. ROAD_NAME = ROAD_NAME + ROAD + ",fh,";
  426. OROLE_IDS.val(ROAD_NAME);
  427. }
  428. }
  429. function isContains(str, substr) {
  430. return str.indexOf(substr) >= 0;
  431. }
  432. function getRoleName(companyList){
  433. if($("#role_id").find("option:selected").text() == "控股集团管理员"){
  434. $("#form-field-select-4").empty();
  435. $("#form-field-select-4").trigger("chosen:updated");
  436. $("#roadSelect").empty();
  437. $("#roadSelect").trigger("chosen:updated");
  438. }else{
  439. $("#form-field-select-4").empty();
  440. $("#form-field-select-4").trigger("chosen:updated");
  441. document.getElementById("form-field-select-4").options.add(new Option("",""));
  442. for(var company of companyList){
  443. //console.log(company);
  444. document.getElementById("form-field-select-4").options.add(new Option(company,company));
  445. }
  446. $("#form-field-select-4").trigger("chosen:updated");
  447. }
  448. }
  449. function getRoadName(companyname){
  450. if(companyname == "" || companyname == null){
  451. $("#roadSelect").empty();
  452. $("#roadSelect").trigger("chosen:updated");
  453. }
  454. else{
  455. $.ajax({
  456. type: "POST",
  457. url: '<%=basePath%>user/getRoadName.do',
  458. data: { COMPANY:companyname},
  459. dataType:'json',
  460. cache: false,
  461. success: function(data){
  462. if("success" != data.result){
  463. alert("查询路段出现错误");
  464. }else{
  465. $("#roadSelect").empty();
  466. roadList = data.roadList;
  467. var roadnames = roadList.split(",");
  468. for(var i=0;i<roadnames.length;i++){
  469. var roadname = roadnames[i];
  470. appendNode(roadname); //将roadname添加到下拉框中
  471. }
  472. document.getElementById("COMPANY_NAME").value=companyname;
  473. $("#roadSelect").trigger("chosen:updated");
  474. }
  475. }
  476. });
  477. }
  478. }
  479. function appendNode(value) {
  480. $("#roadSelect").append("<option value='" + value + "'>" + value + "</option>");
  481. }
  482. </script>
  483. </html>