Commit 450f5ba965c821ea88b6a260718bbcd2158902f4

Authored by 王通
2 parents 900d5939 cb89a8d2

Merge branch 'jiading' of http://192.168.168.201:8888/panzhaov5/bsth_control.git into jiading

Showing 32 changed files with 487 additions and 48 deletions
src/main/java/com/bsth/controller/sys/UserController.java
@@ -12,6 +12,9 @@ import com.bsth.service.sys.CompanyAuthorityService; @@ -12,6 +12,9 @@ import com.bsth.service.sys.CompanyAuthorityService;
12 import com.bsth.service.sys.SysUserService; 12 import com.bsth.service.sys.SysUserService;
13 import com.google.common.collect.ArrayListMultimap; 13 import com.google.common.collect.ArrayListMultimap;
14 import org.apache.commons.lang3.StringUtils; 14 import org.apache.commons.lang3.StringUtils;
  15 +import org.joda.time.DateTime;
  16 +import org.joda.time.Period;
  17 +import org.joda.time.PeriodType;
15 import org.slf4j.Logger; 18 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory; 19 import org.slf4j.LoggerFactory;
17 import org.springframework.beans.factory.annotation.Autowired; 20 import org.springframework.beans.factory.annotation.Autowired;
@@ -101,6 +104,19 @@ public class UserController extends BaseController<SysUser, Integer> { @@ -101,6 +104,19 @@ public class UserController extends BaseController<SysUser, Integer> {
101 return rs; 104 return rs;
102 } 105 }
103 106
  107 + // 检验密码有效期
  108 + Date lastPwdDate = user.getLastPwdDate();
  109 + if (lastPwdDate != null) {
  110 + Integer validPeriod = user.getPwdValidPeriod();
  111 + if (validPeriod == null) {
  112 + validPeriod = 180; // 默认180天
  113 + }
  114 + Period p = new Period(new DateTime(lastPwdDate), new DateTime(new Date()), PeriodType.days());
  115 + if (p.getDays() > validPeriod) {
  116 + return put(rs, "msg", validPeriod + "天没有修改密码,不能登录,请联系管理员");
  117 + }
  118 + }
  119 +
104 // 登录 120 // 登录
105 SecurityUtils.login(user, request); 121 SecurityUtils.login(user, request);
106 //session里写入用户名,webSocket连接时标识身份用 122 //session里写入用户名,webSocket连接时标识身份用
@@ -270,6 +286,16 @@ public class UserController extends BaseController<SysUser, Integer> { @@ -270,6 +286,16 @@ public class UserController extends BaseController<SysUser, Integer> {
270 return msg; 286 return msg;
271 } 287 }
272 288
  289 + @RequestMapping(value = "/resetPWD", method = RequestMethod.POST)
  290 + public String resetPWD(@RequestParam Integer user_id, @RequestParam Integer reset_day, @RequestParam String reset_passord) {
  291 + try {
  292 + sysUserService.resetPWD(user_id, reset_passord, reset_day);
  293 + return "修改成功!";
  294 + } catch (Exception exp) {
  295 + return exp.getMessage();
  296 + }
  297 + }
  298 +
273 @RequestMapping(value = "/register", method = RequestMethod.POST) 299 @RequestMapping(value = "/register", method = RequestMethod.POST)
274 public Map<String, Object> register(SysUser u) { 300 public Map<String, Object> register(SysUser u) {
275 return sysUserService.register(u); 301 return sysUserService.register(u);
src/main/java/com/bsth/entity/Cars.java
@@ -24,7 +24,7 @@ import java.util.Date; @@ -24,7 +24,7 @@ import java.util.Date;
24 24
25 @Entity 25 @Entity
26 @Table(name = "bsth_c_cars") 26 @Table(name = "bsth_c_cars")
27 -@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"}) 27 +@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"}, ignoreUnknown = true)
28 public class Cars extends BEntity implements Serializable { 28 public class Cars extends BEntity implements Serializable {
29 29
30 /** 主键Id */ 30 /** 主键Id */
src/main/java/com/bsth/entity/schedule/GuideboardInfo.java
@@ -37,6 +37,9 @@ public class GuideboardInfo extends BEntity { @@ -37,6 +37,9 @@ public class GuideboardInfo extends BEntity {
37 @Column(nullable = false) 37 @Column(nullable = false)
38 private String lpType; 38 private String lpType;
39 39
  40 + /** 加油公里字段 */
  41 + private Double jygl;
  42 +
40 /** 是否删除(标记) */ 43 /** 是否删除(标记) */
41 @Column(nullable = false) 44 @Column(nullable = false)
42 private Boolean isCancel = false; 45 private Boolean isCancel = false;
@@ -116,4 +119,12 @@ public class GuideboardInfo extends BEntity { @@ -116,4 +119,12 @@ public class GuideboardInfo extends BEntity {
116 public void setIsCancel(Boolean isCancel) { 119 public void setIsCancel(Boolean isCancel) {
117 this.isCancel = isCancel; 120 this.isCancel = isCancel;
118 } 121 }
  122 +
  123 + public Double getJygl() {
  124 + return jygl;
  125 + }
  126 +
  127 + public void setJygl(Double jygl) {
  128 + this.jygl = jygl;
  129 + }
119 } 130 }
src/main/java/com/bsth/entity/sys/SysUser.java
@@ -33,6 +33,11 @@ public class SysUser { @@ -33,6 +33,11 @@ public class SysUser {
33 @Column(name = "last_loginDate", columnDefinition = "timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP") 33 @Column(name = "last_loginDate", columnDefinition = "timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
34 private Date lastLoginDate; 34 private Date lastLoginDate;
35 35
  36 + /** 最近密码更新时间 */
  37 + private Date lastPwdDate;
  38 + /** 密码有效期 */
  39 + private Integer pwdValidPeriod;
  40 +
36 private String agencies; 41 private String agencies;
37 42
38 private boolean enabled; 43 private boolean enabled;
@@ -112,4 +117,20 @@ public class SysUser { @@ -112,4 +117,20 @@ public class SysUser {
112 public void setRoles(Set<Role> roles) { 117 public void setRoles(Set<Role> roles) {
113 this.roles = roles; 118 this.roles = roles;
114 } 119 }
  120 +
  121 + public Date getLastPwdDate() {
  122 + return lastPwdDate;
  123 + }
  124 +
  125 + public void setLastPwdDate(Date lastPwdDate) {
  126 + this.lastPwdDate = lastPwdDate;
  127 + }
  128 +
  129 + public Integer getPwdValidPeriod() {
  130 + return pwdValidPeriod;
  131 + }
  132 +
  133 + public void setPwdValidPeriod(Integer pwdValidPeriod) {
  134 + this.pwdValidPeriod = pwdValidPeriod;
  135 + }
115 } 136 }
src/main/java/com/bsth/repository/sys/SysUserRepository.java
@@ -22,7 +22,7 @@ public interface SysUserRepository extends BaseRepository&lt;SysUser, Integer&gt;{ @@ -22,7 +22,7 @@ public interface SysUserRepository extends BaseRepository&lt;SysUser, Integer&gt;{
22 22
23 @Transactional 23 @Transactional
24 @Modifying 24 @Modifying
25 - @Query(value="update bsth_c_sys_user set password=?2 where id=?1",nativeQuery=true) 25 + @Query(value="update bsth_c_sys_user set password=?2, last_pwd_date = now() where id=?1",nativeQuery=true)
26 int changePWD(int id,String newPWD); 26 int changePWD(int id,String newPWD);
27 27
28 @EntityGraph(value = "sysUser_role", type = EntityGraph.EntityGraphType.FETCH) 28 @EntityGraph(value = "sysUser_role", type = EntityGraph.EntityGraphType.FETCH)
src/main/java/com/bsth/service/schedule/impl/CarsServiceImpl.java
@@ -39,7 +39,7 @@ public class CarsServiceImpl extends BServiceImpl&lt;Cars, Integer&gt; implements Cars @@ -39,7 +39,7 @@ public class CarsServiceImpl extends BServiceImpl&lt;Cars, Integer&gt; implements Cars
39 39
40 @Override 40 @Override
41 public Cars save(Cars cars) { 41 public Cars save(Cars cars) {
42 - if (cars.getId() != null && cars.getScrapState()) { // 更新车辆信息,报废车辆 42 + if (cars.getId() != null && cars.getScrapState() != null && cars.getScrapState()) { // 更新车辆信息,报废车辆
43 // 1、作废的车辆,修改报废号 43 // 1、作废的车辆,修改报废号
44 String eCode = cars.getEquipmentCode(); 44 String eCode = cars.getEquipmentCode();
45 cars.setEquipmentCode("BF-" + eCode); 45 cars.setEquipmentCode("BF-" + eCode);
src/main/java/com/bsth/service/sys/SysUserService.java
@@ -14,6 +14,8 @@ public interface SysUserService extends BaseService&lt;SysUser, Integer&gt;{ @@ -14,6 +14,8 @@ public interface SysUserService extends BaseService&lt;SysUser, Integer&gt;{
14 14
15 int changePWD(int id,String newPWD); 15 int changePWD(int id,String newPWD);
16 16
  17 + void resetPWD(int id, String newPWD, int validperiod);
  18 +
17 Map<String,Object> register(SysUser u); 19 Map<String,Object> register(SysUser u);
18 20
19 List<SysUser> findAll_distinct(); 21 List<SysUser> findAll_distinct();
src/main/java/com/bsth/service/sys/impl/SysUserServiceImpl.java
@@ -51,7 +51,14 @@ public class SysUserServiceImpl extends BaseServiceImpl&lt;SysUser, Integer&gt; implem @@ -51,7 +51,14 @@ public class SysUserServiceImpl extends BaseServiceImpl&lt;SysUser, Integer&gt; implem
51 return sysUserRepository.changePWD(id,new BCryptPasswordEncoder(4).encode(newPWD)); 51 return sysUserRepository.changePWD(id,new BCryptPasswordEncoder(4).encode(newPWD));
52 } 52 }
53 53
54 - @Override 54 + @Override
  55 + public void resetPWD(int id, String newPWD, int validperiod) {
  56 + SysUser user = sysUserRepository.findOne(id);
  57 + user.setPwdValidPeriod(validperiod);
  58 + sysUserRepository.changePWD(id, new BCryptPasswordEncoder(4).encode(newPWD));
  59 + }
  60 +
  61 + @Override
55 public Map<String, Object> register(SysUser u) { 62 public Map<String, Object> register(SysUser u) {
56 Map<String, Object> rs = new HashMap(); 63 Map<String, Object> rs = new HashMap();
57 try{ 64 try{
src/main/resources/static/assets/plugins/passwordRulesHelper/passwordRulesHelper.css 0 → 100644
  1 +div.rules-list
  2 +{
  3 +margin-top:10px;
  4 +}
  5 +
  6 +div.rules-list .rules
  7 +{
  8 + list-style-type:none;
  9 + padding:0;
  10 +}
  11 +
  12 +div.rules-list li
  13 + {
  14 + position:relative;
  15 + }
  16 +
  17 + div.rules-list li.ko::before
  18 + {
  19 + content:'\f00d';
  20 + font: normal normal normal 14px/1 FontAwesome;
  21 + width: 32px;
  22 + font-size: 14px;
  23 + display: inline-block;
  24 + text-align: right;
  25 + margin-right: 10px;
  26 + color:#F00;
  27 + }
  28 + div.rules-list li.ok::before
  29 + {
  30 + content:'\f00c';
  31 + font: normal normal normal 14px/1 FontAwesome;
  32 + width: 32px;
  33 + font-size: 14px;
  34 + display: inline-block;
  35 + text-align: right;
  36 + margin-right: 10px;
  37 + color:#008000;
  38 + }
  39 +
  40 +
0 \ No newline at end of file 41 \ No newline at end of file
src/main/resources/static/assets/plugins/passwordRulesHelper/passwordRulesHelper.js 0 → 100644
  1 +(function ($) {
  2 +
  3 + $.fn.passwordRulesValidator = function (aOptions) {
  4 +
  5 +
  6 + // Define default's parameters
  7 + var aDefauts =
  8 + {
  9 + 'rules' : {
  10 + 'length' : {
  11 + 'regex': '.{8,}',
  12 + 'name': 'length',
  13 + 'message': '8 characters',
  14 + 'enable': true
  15 + },
  16 + 'lowercase' :{
  17 + 'regex': '[a-z]{1,}',
  18 + 'name': 'lowercase',
  19 + 'message': '1 lowercase',
  20 + 'enable': true
  21 + },
  22 + 'uppercase' : {
  23 + 'regex': '[A-Z]{1,}',
  24 + 'name': 'uppercase',
  25 + 'message': '1 uppercase',
  26 + 'enable': true
  27 + },
  28 + 'number' : {
  29 + 'regex': '[0-9]{1,}',
  30 + 'name': 'number',
  31 + 'message': '1 digit',
  32 + 'enable': true
  33 + },
  34 + 'specialChar' : {
  35 + 'regex': '[^a-zA-Z0-9]{1,}',
  36 + 'name': 'special-char',
  37 + 'message': '1 special character',
  38 + 'enable': true
  39 + }
  40 + },
  41 + 'msgRules': 'Your password must contain :',
  42 + 'container': undefined,
  43 + 'containerClass': null,
  44 + 'containerId': 'checkRulesList',
  45 + 'okClass': null,
  46 + 'koClass': null,
  47 + 'onLoad': undefined
  48 + };
  49 +
  50 + /**
  51 + * @param {object} oRegex
  52 + * @param {string} sVal
  53 + * @param {string} sName
  54 + * @param {string} sIdContainer
  55 + */
  56 + function validateRule(oRegex, sVal, sName, sIdContainer)
  57 + {
  58 + if (oRegex.test(sVal)) {
  59 + $('#' + sIdContainer + ' li.' + sName).removeClass('ko ' + aParameters.koClass).addClass('ok ' + aParameters.okClass);
  60 + } else {
  61 + $('#' + sIdContainer + ' li.' + sName).removeClass('ok ' +aParameters.okClass).addClass('ko ' +aParameters.koClass);
  62 + }
  63 + }
  64 +
  65 + /**
  66 + * @param {array} aParemeters
  67 + * @param {string} sVal
  68 + * @param {string} sIdContainer
  69 + */
  70 + function checkRules(aParemeters, sVal, sIdContainer)
  71 + {
  72 + $.each(aParameters.rules, function(iKey, aRule) {
  73 + if(aRule.enable) {
  74 + validateRule(new RegExp(aRule.regex, 'g'), sVal, aRule.name, sIdContainer);
  75 + }
  76 + });
  77 +
  78 + }
  79 +
  80 + var aParameters = $.extend(true, aDefauts, aOptions);
  81 +
  82 + return this.each(function () {
  83 +
  84 + // Execute onLoad fonction
  85 + if ($.isFunction(aParameters.onLoad)) {
  86 + aParameters.onLoad();
  87 + }
  88 +
  89 + // Build rules check list
  90 + oRulesBuilder = '<span class="rules">' + aParameters.msgRules + '</span>';
  91 + oRulesBuilder += '<ul class="rules">';
  92 +
  93 + // Build lists
  94 + $.each(aParameters.rules, function(iKey, aRule) {
  95 + if(aRule.enable) {
  96 + oRulesBuilder += '<li class="ko ' + aParameters.koClass + ' '+ aRule.name +'">' + aRule.message + '</li>';
  97 + }
  98 + });
  99 +
  100 + oRulesBuilder += '</ul>';
  101 +
  102 + // Create or populate container
  103 + if (typeof (aParameters.container) === 'undefined') {
  104 + $(this).after('<div class="rules-list ' + aParameters.containerClass + '" id="' + aParameters.containerId + '"></div>');
  105 + $(oRulesBuilder).appendTo('#' + aParameters.containerId);
  106 + } else {
  107 + aParameters.container.addClass('rules-list');
  108 + $(oRulesBuilder).appendTo(aParameters.container);
  109 + }
  110 +
  111 + var sIdContainer = typeof (aParameters.container) === 'undefined' ? aParameters.containerId : aParameters.container.attr('id');
  112 +
  113 + // Execute checkRules on load
  114 + checkRules(aParameters, $(this).val(), sIdContainer);
  115 +
  116 + // Execute checkRules fonction
  117 + $(this).keyup(function () {
  118 + checkRules(aParameters, $(this).val(), sIdContainer);
  119 + });
  120 +
  121 + $(this).on('paste', function () {
  122 + checkRules(aParameters, $(this).val(), sIdContainer);
  123 + });
  124 +
  125 + $(this).change(function () {
  126 + checkRules(aParameters, $(this).val(), sIdContainer);
  127 + });
  128 + });
  129 + };
  130 +})(jQuery);
  131 +
  132 +
src/main/resources/static/assets/plugins/passwordRulesHelper/passwordRulesHelper.min.css 0 → 100644
  1 +div.rules-list li.ko::before,div.rules-list li.ok::before{width:32px;display:inline-block;text-align:right;margin-right:10px}div.rules-list{margin-top:10px}div.rules-list .rules{list-style-type:none;padding:0}div.rules-list li{position:relative}div.rules-list li.ko::before{content:'\f00d';font:normal normal normal 14px/1 FontAwesome;font-size:14px;color:red}div.rules-list li.ok::before{content:'\f00c';font:normal normal normal 14px/1 FontAwesome;font-size:14px;color:green}
src/main/resources/static/assets/plugins/passwordRulesHelper/passwordRulesHelper.min.js 0 → 100644
  1 +!function(a){a.fn.passwordRulesValidator=function(b){function d(b,c,d,e){b.test(c)?a("#"+e+" li."+d).removeClass("ko "+f.koClass).addClass("ok "+f.okClass):a("#"+e+" li."+d).removeClass("ok "+f.okClass).addClass("ko "+f.koClass)}function e(b,c,e){a.each(f.rules,function(a,b){b.enable&&d(new RegExp(b.regex,"g"),c,b.name,e)})}var c={rules:{length:{regex:".{8,}",name:"length",message:"8 characters",enable:!0},lowercase:{regex:"[a-z]{1,}",name:"lowercase",message:"1 lowercase",enable:!0},uppercase:{regex:"[A-Z]{1,}",name:"uppercase",message:"1 uppercase",enable:!0},number:{regex:"[0-9]{1,}",name:"number",message:"1 digit",enable:!0},specialChar:{regex:"[^a-zA-Z0-9]{1,}",name:"special-char",message:"1 special character",enable:!0}},msgRules:"Your password must contain :",container:void 0,containerClass:null,containerId:"checkRulesList",okClass:null,koClass:null,onLoad:void 0},f=a.extend(!0,c,b);return this.each(function(){a.isFunction(f.onLoad)&&f.onLoad(),oRulesBuilder='<span class="rules">'+f.msgRules+"</span>",oRulesBuilder+='<ul class="rules">',a.each(f.rules,function(a,b){b.enable&&(oRulesBuilder+='<li class="ko '+f.koClass+" "+b.name+'">'+b.message+"</li>")}),oRulesBuilder+="</ul>","undefined"==typeof f.container?(a(this).after('<div class="rules-list '+f.containerClass+'" id="'+f.containerId+'"></div>'),a(oRulesBuilder).appendTo("#"+f.containerId)):(f.container.addClass("rules-list"),a(oRulesBuilder).appendTo(f.container));var b="undefined"==typeof f.container?f.containerId:f.container.attr("id");e(f,a(this).val(),b),a(this).keyup(function(){e(f,a(this).val(),b)}),a(this).on("paste",function(){e(f,a(this).val(),b)}),a(this).change(function(){e(f,a(this).val(),b)})})}}(jQuery);
0 \ No newline at end of file 2 \ No newline at end of file
src/main/resources/static/index.html
@@ -71,6 +71,10 @@ @@ -71,6 +71,10 @@
71 <!-- sweetalert样式 --> 71 <!-- sweetalert样式 -->
72 <link rel="stylesheet" 72 <link rel="stylesheet"
73 href="/assets/bower_components/sweetalert/dist/sweetalert.css" /> 73 href="/assets/bower_components/sweetalert/dist/sweetalert.css" />
  74 + <!-- passwordRulesHelper样式 -->
  75 + <link rel="stylesheet"
  76 + href="/assets/plugins/passwordRulesHelper/passwordRulesHelper.min.css" />
  77 +
74 <!-- schedule计划调度AngularJS模块主css --> 78 <!-- schedule计划调度AngularJS模块主css -->
75 <link rel="stylesheet" href="/pages/scheduleApp/module/common/main.css" 79 <link rel="stylesheet" href="/pages/scheduleApp/module/common/main.css"
76 type="text/css" /> 80 type="text/css" />
@@ -414,6 +418,9 @@ @@ -414,6 +418,9 @@
414 <script src="/assets/js/dictionary.js"></script> 418 <script src="/assets/js/dictionary.js"></script>
415 <!-- tipso JS --> 419 <!-- tipso JS -->
416 <script src="/metronic_v4.5.4/plugins/tipso/js/tipso.js"></script> 420 <script src="/metronic_v4.5.4/plugins/tipso/js/tipso.js"></script>
  421 +<!-- passwordRulesHelper插件 -->
  422 +<script src="/assets/plugins/passwordRulesHelper/passwordRulesHelper.min.js"></script>
  423 +
417 <script data-exclude=1> 424 <script data-exclude=1>
418 //初始打开的片段地址 425 //初始打开的片段地址
419 var initFragment = "^_^initFragment^_^"; 426 var initFragment = "^_^initFragment^_^";
src/main/resources/static/pages/permission/user/changePWD.html
@@ -5,27 +5,27 @@ @@ -5,27 +5,27 @@
5 <div class="portlet-body"> 5 <div class="portlet-body">
6 <form class="form-horizontal" id="changePWDForm"> 6 <form class="form-horizontal" id="changePWDForm">
7 <div class="form-group" style="margin-top: 60px"> 7 <div class="form-group" style="margin-top: 60px">
8 - <label class="control-label col-md-5">原始密码: 8 + <label class="control-label col-md-4">原始密码:
9 </label> 9 </label>
10 - <div class="col-md-4"> 10 + <div class="col-md-6">
11 <div class="input-icon right"> 11 <div class="input-icon right">
12 <i class="fa"></i> 12 <i class="fa"></i>
13 <input type="password" class="form-control" name="oldPWD" /> </div> 13 <input type="password" class="form-control" name="oldPWD" /> </div>
14 </div> 14 </div>
15 </div> 15 </div>
16 <div class="form-group"> 16 <div class="form-group">
17 - <label class="control-label col-md-5">输入新密码: 17 + <label class="control-label col-md-4">输入新密码:
18 </label> 18 </label>
19 - <div class="col-md-4"> 19 + <div class="col-md-6">
20 <div class="input-icon right"> 20 <div class="input-icon right">
21 <i class="fa"></i> 21 <i class="fa"></i>
22 - <input type="password" class="form-control" name="newPWD" /> </div> 22 + <input type="password" class="form-control" name="newPWD" id="newPWD" /> </div>
23 </div> 23 </div>
24 </div> 24 </div>
25 <div class="form-group"> 25 <div class="form-group">
26 - <label class="control-label col-md-5">确认新密码: 26 + <label class="control-label col-md-4">确认新密码:
27 </label> 27 </label>
28 - <div class="col-md-4"> 28 + <div class="col-md-6">
29 <div class="input-icon right"> 29 <div class="input-icon right">
30 <i class="fa"></i> 30 <i class="fa"></i>
31 <input type="password" class="form-control" name="cnewPWD" /> </div> 31 <input type="password" class="form-control" name="cnewPWD" /> </div>
@@ -47,6 +47,44 @@ @@ -47,6 +47,44 @@
47 47
48 <script> 48 <script>
49 $(function(){ 49 $(function(){
  50 + // passwordRulesHelper 密码验证
  51 + $('#newPWD').passwordRulesValidator({
  52 + 'msgRules':'你填写的密码必须符合下面的规则:',
  53 + 'rules' : {
  54 + 'length' : {
  55 + 'regex': '.{8,}',
  56 + 'name': 'length',
  57 + 'message': '密码必须大于8个字符',
  58 + 'enable': true
  59 + },
  60 + 'lowercase' :{
  61 + 'regex': '[a-z]{1,}',
  62 + 'name': 'lowercase',
  63 + 'message': '至少需要一个小写字母',
  64 + 'enable': true
  65 + },
  66 + 'uppercase' : {
  67 + 'regex': '[A-Z]{1,}',
  68 + 'name': 'uppercase',
  69 + 'message': '至少需要一个大写字母',
  70 + 'enable': true
  71 + },
  72 + 'number' : {
  73 + 'regex': '[0-9]{1,}',
  74 + 'name': 'number',
  75 + 'message': '至少需要一个数字',
  76 + 'enable': true
  77 + },
  78 + 'specialChar' : {
  79 + 'regex': '[^a-zA-Z0-9]{1,}',
  80 + 'name': 'special-char',
  81 + 'message': '至少需要一个特殊字符',
  82 + 'enable': true
  83 + }
  84 + }
  85 + });
  86 +
  87 +
50 $("#confirm").on("click",function(){ 88 $("#confirm").on("click",function(){
51 var data = $('#changePWDForm').serializeJSON(); 89 var data = $('#changePWDForm').serializeJSON();
52 $.post('/user/changePWD',data,function(msg){ 90 $.post('/user/changePWD',data,function(msg){
src/main/resources/static/pages/permission/user/list.html
@@ -115,6 +115,7 @@ @@ -115,6 +115,7 @@
115 115
116 <td> 116 <td>
117 <a class="btn btn-sm blue btn-outline" href="edit.html?no={{obj.id}}" data-pjax><i class="fa fa-edit"></i> 编辑</a> 117 <a class="btn btn-sm blue btn-outline" href="edit.html?no={{obj.id}}" data-pjax><i class="fa fa-edit"></i> 编辑</a>
  118 + <a class="btn btn-sm blue btn-outline resetpwd" style="display: {{obj.showpdc}}" onclick="resetPassword({{obj.id}}, {{obj.lastPwdDate}});"><i class="fa fa-edit"></i> 重置密码</a>
118 <!--<button type="button" class="btn btn-sm line_allot_btn" data-id="{{obj.id}}">线调线路分配</button>--> 119 <!--<button type="button" class="btn btn-sm line_allot_btn" data-id="{{obj.id}}">线调线路分配</button>-->
119 </td> 120 </td>
120 </tr> 121 </tr>
@@ -171,23 +172,40 @@ $(function(){ @@ -171,23 +172,40 @@ $(function(){
171 params['order'] = 'lastLoginDate'; 172 params['order'] = 'lastLoginDate';
172 params['page'] = page; 173 params['page'] = page;
173 var i = layer.load(2); 174 var i = layer.load(2);
174 - $get('/user' ,params, function(data){  
175 - $.each(data.content, function(i, obj) {  
176 - obj.lastLoginDate = moment(obj.lastLoginDate).format("YYYY-MM-DD HH:mm:ss"); 175 + $get('/user' ,params, function(data) {
  176 + // 获取当前登录用户
  177 + $get('/user/currentUser',{}, function(user) {
  178 + var b_isAdmin = false; // 是否是管理员用户
  179 + $.each(user.authorities, function(i, obj) {
  180 + if (obj.authority === 'ROLE_ADMIN') {
  181 + b_isAdmin = true;
  182 + }
  183 + });
  184 +
  185 + $.each(data.content, function(i, obj) {
  186 + obj.lastLoginDate = moment(obj.lastLoginDate).format("YYYY-MM-DD HH:mm:ss");
  187 + if (b_isAdmin) {
  188 + obj.showpdc = ''; // 显示重置密码按钮
  189 + } else {
  190 + obj.showpdc = 'none';
  191 + }
  192 + });
  193 + var bodyHtm = template('user_list_temp', {list: data.content});
  194 +
  195 + $('#datatable_user tbody').html(bodyHtm)
  196 + .find('.icheck').iCheck(icheckOptions)
  197 + .on('ifChanged', iCheckChange);
  198 + if(pagination && data.content.length > 0){
  199 + //重新分页
  200 + initPagination = true;
  201 + showPagination(data);
  202 + }
  203 + layer.close(i);
  204 +
  205 + $('.line_allot_btn').on('click', openAllotWindow);
  206 +
177 }); 207 });
178 - var bodyHtm = template('user_list_temp', {list: data.content});  
179 -  
180 - $('#datatable_user tbody').html(bodyHtm)  
181 - .find('.icheck').iCheck(icheckOptions)  
182 - .on('ifChanged', iCheckChange);  
183 - if(pagination && data.content.length > 0){  
184 - //重新分页  
185 - initPagination = true;  
186 - showPagination(data);  
187 - }  
188 - layer.close(i);  
189 208
190 - $('.line_allot_btn').on('click', openAllotWindow);  
191 }); 209 });
192 } 210 }
193 211
@@ -263,4 +281,22 @@ function changeEnabled(id,enabled){ @@ -263,4 +281,22 @@ function changeEnabled(id,enabled){
263 jsDoQuery(null, true); 281 jsDoQuery(null, true);
264 }) 282 })
265 } 283 }
  284 +// 重置密码
  285 +function resetPassword(userId, ld) {
  286 + $.get('/pages/permission/user/resetPWD.html', function (content) {
  287 + layer.open({
  288 + type: 1,
  289 + area: ['600px', '360px'],
  290 + content: content,
  291 + title: '修改密码',
  292 + shift: 5,
  293 + scrollbar: false,
  294 + success: function (layero, index) {
  295 + $(layero).find('#user_id').val(userId);
  296 + $(layero).find('#last_pwd_date').val(ld ? moment(ld).format("YYYY-MM-DD HH:mm:ss") : '');
  297 + }
  298 + });
  299 + });
  300 +
  301 +}
266 </script> 302 </script>
267 \ No newline at end of file 303 \ No newline at end of file
src/main/resources/static/pages/permission/user/resetPWD.html 0 → 100644
  1 +<div class="row">
  2 + <div class="col-md-12">
  3 + <!-- BEGIN VALIDATION STATES-->
  4 + <div class="portlet light portlet-fit portlet-form bordered">
  5 + <div class="portlet-body">
  6 + <form class="form-horizontal" id="resetPWDForm">
  7 + <input type="hidden" id="user_id" name="user_id">
  8 + <div class="form-group" style="margin-top: 60px">
  9 + <label class="control-label col-md-4">最近密码更新时间:
  10 + </label>
  11 + <div class="col-md-6">
  12 + <div class="input-icon right">
  13 + <i class="fa"></i>
  14 + <input type="text" readonly class="form-control" name="last_pwd_date" id="last_pwd_date" value="" /> </div>
  15 + </div>
  16 + </div>
  17 +
  18 + <div class="form-group" >
  19 + <label class="control-label col-md-4">密码有效期(天):
  20 + </label>
  21 + <div class="col-md-6">
  22 + <div class="input-icon right">
  23 + <i class="fa"></i>
  24 + <input type="number" class="form-control" name="reset_day" id="reset_day" value="180" /> </div>
  25 + </div>
  26 + </div>
  27 + <div class="form-group">
  28 + <label class="control-label col-md-4">默认密码:
  29 + </label>
  30 + <div class="col-md-6">
  31 + <div class="input-icon right">
  32 + <i class="fa"></i>
  33 + <input type="text" class="form-control" name="reset_passord" id="reset_passord" value="123456" /> </div>
  34 + </div>
  35 + </div>
  36 + <div class="form-actions">
  37 + <div class="row">
  38 + <div class="col-md-offset-5 col-md-7">
  39 + <button type="button" id="confirm" class="btn green">确定</button>
  40 + <button type="button" class="btn default">取消</button>
  41 + </div>
  42 + </div>
  43 + </div>
  44 + </form>
  45 + </div>
  46 + </div>
  47 + </div>
  48 +</div>
  49 +
  50 +
  51 +<script>
  52 + $(function(){
  53 +
  54 + $("#confirm").on("click",function(){
  55 + var data = $('#resetPWDForm').serializeJSON();
  56 + console.log(data);
  57 + $.post('/user/resetPWD',data,function(msg){
  58 + layer.alert(msg);
  59 + });
  60 + });
  61 + });
  62 +</script>
0 \ No newline at end of file 63 \ No newline at end of file
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/module.js
@@ -308,12 +308,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -308,12 +308,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
308 // large方式弹出模态对话框 308 // large方式弹出模态对话框
309 var modalInstance = $uibModal.open({ 309 var modalInstance = $uibModal.open({
310 templateUrl: '/pages/scheduleApp/module/basicInfo/busInfoManage/orderOptionOpen.html', 310 templateUrl: '/pages/scheduleApp/module/basicInfo/busInfoManage/orderOptionOpen.html',
311 - size: "sm", 311 + // size: "sm",
312 animation: true, 312 animation: true,
313 backdrop: 'static', 313 backdrop: 'static',
314 resolve: { 314 resolve: {
315 }, 315 },
316 - windowClass: 'center-modal', 316 + windowClass: 'order-option-modal',
317 controller: "BusInfoManageListOrderOptionModalInstanceCtrl", 317 controller: "BusInfoManageListOrderOptionModalInstanceCtrl",
318 controllerAs: "$ctrl", 318 controllerAs: "$ctrl",
319 bindToController: true 319 bindToController: true
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/module.js
@@ -156,12 +156,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -156,12 +156,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
156 // large方式弹出模态对话框 156 // large方式弹出模态对话框
157 var modalInstance = $uibModal.open({ 157 var modalInstance = $uibModal.open({
158 templateUrl: '/pages/scheduleApp/module/basicInfo/deviceInfoManage/orderOptionOpen.html', 158 templateUrl: '/pages/scheduleApp/module/basicInfo/deviceInfoManage/orderOptionOpen.html',
159 - size: "sm", 159 + // size: "sm",
160 animation: true, 160 animation: true,
161 backdrop: 'static', 161 backdrop: 'static',
162 resolve: { 162 resolve: {
163 }, 163 },
164 - windowClass: 'center-modal', 164 + windowClass: 'order-option-modal',
165 controller: "DeviceInfoManageListOrderOptionModalInstanceCtrl", 165 controller: "DeviceInfoManageListOrderOptionModalInstanceCtrl",
166 controllerAs: "$ctrl", 166 controllerAs: "$ctrl",
167 bindToController: true 167 bindToController: true
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/module.js
@@ -284,12 +284,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -284,12 +284,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
284 // large方式弹出模态对话框 284 // large方式弹出模态对话框
285 var modalInstance = $uibModal.open({ 285 var modalInstance = $uibModal.open({
286 templateUrl: '/pages/scheduleApp/module/basicInfo/employeeInfoManage/orderOptionOpen.html', 286 templateUrl: '/pages/scheduleApp/module/basicInfo/employeeInfoManage/orderOptionOpen.html',
287 - size: "sm", 287 + // size: "sm",
288 animation: true, 288 animation: true,
289 backdrop: 'static', 289 backdrop: 'static',
290 resolve: { 290 resolve: {
291 }, 291 },
292 - windowClass: 'center-modal', 292 + windowClass: 'order-option-modal',
293 controller: "EmployeeInfoManageListOrderOptionModalInstanceCtrl", 293 controller: "EmployeeInfoManageListOrderOptionModalInstanceCtrl",
294 controllerAs: "$ctrl", 294 controllerAs: "$ctrl",
295 bindToController: true 295 bindToController: true
src/main/resources/static/pages/scheduleApp/module/common/main.css
@@ -19,6 +19,7 @@ form input.ng-valid.ng-dirty.ng-valid-required { @@ -19,6 +19,7 @@ form input.ng-valid.ng-dirty.ng-valid-required {
19 background-color: #78FA89; 19 background-color: #78FA89;
20 } 20 }
21 21
  22 +/** 居中弹出框(如:导入弹出框) */
22 .center-modal { 23 .center-modal {
23 position: fixed; 24 position: fixed;
24 top: 10%; 25 top: 10%;
@@ -29,6 +30,16 @@ form input.ng-valid.ng-dirty.ng-valid-required { @@ -29,6 +30,16 @@ form input.ng-valid.ng-dirty.ng-valid-required {
29 margin-left: -10%; 30 margin-left: -10%;
30 } 31 }
31 32
  33 +/* 排序选项弹出框 */
  34 +.order-option-modal .modal-dialog {
  35 + position: fixed;
  36 + top: 10%;
  37 + left: 30%;
  38 + z-index: 1050;
  39 + width: 40%;
  40 + height: 80%;
  41 +}
  42 +
32 .fixDiv { 43 .fixDiv {
33 min-height: 200px; 44 min-height: 200px;
34 min-width: 600px; 45 min-width: 600px;
src/main/resources/static/pages/scheduleApp/module/core/busConfig/module.js
@@ -259,12 +259,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -259,12 +259,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
259 // large方式弹出模态对话框 259 // large方式弹出模态对话框
260 var modalInstance = $uibModal.open({ 260 var modalInstance = $uibModal.open({
261 templateUrl: '/pages/scheduleApp/module/core/busConfig/orderOptionOpen.html', 261 templateUrl: '/pages/scheduleApp/module/core/busConfig/orderOptionOpen.html',
262 - size: "sm", 262 + // size: "sm",
263 animation: true, 263 animation: true,
264 backdrop: 'static', 264 backdrop: 'static',
265 resolve: { 265 resolve: {
266 }, 266 },
267 - windowClass: 'center-modal', 267 + windowClass: 'order-option-modal',
268 controller: "BusConfigListOrderOptionModalInstanceCtrl", 268 controller: "BusConfigListOrderOptionModalInstanceCtrl",
269 controllerAs: "$ctrl", 269 controllerAs: "$ctrl",
270 bindToController: true 270 bindToController: true
src/main/resources/static/pages/scheduleApp/module/core/employeeConfig/module.js
@@ -264,12 +264,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -264,12 +264,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
264 // large方式弹出模态对话框 264 // large方式弹出模态对话框
265 var modalInstance = $uibModal.open({ 265 var modalInstance = $uibModal.open({
266 templateUrl: '/pages/scheduleApp/module/core/employeeConfig/orderOptionOpen.html', 266 templateUrl: '/pages/scheduleApp/module/core/employeeConfig/orderOptionOpen.html',
267 - size: "sm", 267 + // size: "sm",
268 animation: true, 268 animation: true,
269 backdrop: 'static', 269 backdrop: 'static',
270 resolve: { 270 resolve: {
271 }, 271 },
272 - windowClass: 'center-modal', 272 + windowClass: 'order-option-modal',
273 controller: "EmployeeConfigListOrderOptionModalInstanceCtrl", 273 controller: "EmployeeConfigListOrderOptionModalInstanceCtrl",
274 controllerAs: "$ctrl", 274 controllerAs: "$ctrl",
275 bindToController: true 275 bindToController: true
src/main/resources/static/pages/scheduleApp/module/core/guideboardManage/detail.html
@@ -72,6 +72,14 @@ @@ -72,6 +72,14 @@
72 </div> 72 </div>
73 </div> 73 </div>
74 74
  75 + <div class="form-group has-success has-feedback">
  76 + <label class="col-md-2 control-label">加油公里:</label>
  77 + <div class="col-md-3">
  78 + <input type="text" class="form-control" name="lpType"
  79 + ng-model="ctrl.guideboardForDetail.jygl" readonly/>
  80 + </div>
  81 + </div>
  82 +
75 <!-- 其他form-group --> 83 <!-- 其他form-group -->
76 84
77 </div> 85 </div>
src/main/resources/static/pages/scheduleApp/module/core/guideboardManage/edit.html
@@ -99,6 +99,20 @@ @@ -99,6 +99,20 @@
99 </div> 99 </div>
100 </div> 100 </div>
101 101
  102 + <div class="form-group">
  103 + <label class="col-md-2 control-label">加油公里:</label>
  104 + <div class="col-md-3">
  105 + <input type="text" class="form-control" name="jygl"
  106 + ng-model="ctrl.guideboardManageForForm.jygl" ng-pattern="ctrl.float_regex"
  107 + />
  108 + </div>
  109 + <!-- 隐藏块,显示验证信息 -->
  110 + <div class="alert alert-danger well-sm" ng-show="myForm.jygl.$error.pattern">
  111 + 输入数字
  112 + </div>
  113 +
  114 + </div>
  115 +
102 <!-- 路牌类型暂时是普通路牌,默认填写了 --> 116 <!-- 路牌类型暂时是普通路牌,默认填写了 -->
103 117
104 118
src/main/resources/static/pages/scheduleApp/module/core/guideboardManage/form.html
@@ -99,6 +99,20 @@ @@ -99,6 +99,20 @@
99 </div> 99 </div>
100 </div> 100 </div>
101 101
  102 + <div class="form-group">
  103 + <label class="col-md-2 control-label">加油公里:</label>
  104 + <div class="col-md-3">
  105 + <input type="text" class="form-control" name="jygl"
  106 + ng-model="ctrl.guideboardManageForForm.jygl" ng-pattern="ctrl.float_regex"
  107 + />
  108 + </div>
  109 + <!-- 隐藏块,显示验证信息 -->
  110 + <div class="alert alert-danger well-sm" ng-show="myForm.jygl.$error.pattern">
  111 + 输入数字
  112 + </div>
  113 +
  114 + </div>
  115 +
102 <!-- 路牌类型暂时是普通路牌,默认填写了 --> 116 <!-- 路牌类型暂时是普通路牌,默认填写了 -->
103 117
104 118
src/main/resources/static/pages/scheduleApp/module/core/guideboardManage/list.html
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
8 <th style="width: 150px;">线路</th> 8 <th style="width: 150px;">线路</th>
9 <th style="width: 100px;">路牌编号</th> 9 <th style="width: 100px;">路牌编号</th>
10 <th >路牌名称</th> 10 <th >路牌名称</th>
  11 + <th style="width: 100px;">加油公里</th>
11 <th style="width: 100px;">路牌类型</th> 12 <th style="width: 100px;">路牌类型</th>
12 <th style="width: 80px;">状态</th> 13 <th style="width: 80px;">状态</th>
13 <th style="width: 20%">操作</th> 14 <th style="width: 20%">操作</th>
@@ -35,6 +36,7 @@ @@ -35,6 +36,7 @@
35 <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition()['lpName_like']" placeholder="请输入路牌名字..."/> 36 <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition()['lpName_like']" placeholder="请输入路牌名字..."/>
36 </td> 37 </td>
37 <td></td> 38 <td></td>
  39 + <td></td>
38 <td> 40 <td>
39 <label class="checkbox-inline"> 41 <label class="checkbox-inline">
40 <input type="checkbox" ng-model="ctrl.searchCondition()['isCancel_eq']"/>已作废 42 <input type="checkbox" ng-model="ctrl.searchCondition()['isCancel_eq']"/>已作废
@@ -86,6 +88,9 @@ @@ -86,6 +88,9 @@
86 <span ng-bind="info.lpName"></span> 88 <span ng-bind="info.lpName"></span>
87 </td> 89 </td>
88 <td> 90 <td>
  91 + <span ng-bind="info.jygl"></span>
  92 + </td>
  93 + <td>
89 <span ng-bind="info.lpType"></span> 94 <span ng-bind="info.lpType"></span>
90 </td> 95 </td>
91 <td> 96 <td>
src/main/resources/static/pages/scheduleApp/module/core/guideboardManage/module.js
@@ -265,12 +265,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -265,12 +265,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
265 // large方式弹出模态对话框 265 // large方式弹出模态对话框
266 var modalInstance = $uibModal.open({ 266 var modalInstance = $uibModal.open({
267 templateUrl: '/pages/scheduleApp/module/core/guideboardManage/orderOptionOpen.html', 267 templateUrl: '/pages/scheduleApp/module/core/guideboardManage/orderOptionOpen.html',
268 - size: "sm", 268 + // size: "lg",
269 animation: true, 269 animation: true,
270 backdrop: 'static', 270 backdrop: 'static',
271 resolve: { 271 resolve: {
272 }, 272 },
273 - windowClass: 'center-modal', 273 + windowClass: 'order-option-modal',
274 controller: "GuideboardManageListOrderOptionModalInstanceCtrl", 274 controller: "GuideboardManageListOrderOptionModalInstanceCtrl",
275 controllerAs: "$ctrl", 275 controllerAs: "$ctrl",
276 bindToController: true 276 bindToController: true
@@ -321,6 +321,9 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -321,6 +321,9 @@ angular.module(&#39;ScheduleApp&#39;).controller(
321 var self = this; 321 var self = this;
322 var Gb = service.getGbQueryClass(); 322 var Gb = service.getGbQueryClass();
323 323
  324 + // 小数
  325 + self.float_regex = /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/;
  326 +
324 // 欲保存的表单信息,双向绑定 327 // 欲保存的表单信息,双向绑定
325 self.guideboardManageForForm = new Gb; 328 self.guideboardManageForForm = new Gb;
326 self.guideboardManageForForm.xl = {}; 329 self.guideboardManageForForm.xl = {};
src/main/resources/static/pages/scheduleApp/module/core/rerunManage/module.js
@@ -156,12 +156,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -156,12 +156,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
156 // large方式弹出模态对话框 156 // large方式弹出模态对话框
157 var modalInstance = $uibModal.open({ 157 var modalInstance = $uibModal.open({
158 templateUrl: '/pages/scheduleApp/module/core/rerunManage/orderOptionOpen.html', 158 templateUrl: '/pages/scheduleApp/module/core/rerunManage/orderOptionOpen.html',
159 - size: "sm", 159 + // size: "sm",
160 animation: true, 160 animation: true,
161 backdrop: 'static', 161 backdrop: 'static',
162 resolve: { 162 resolve: {
163 }, 163 },
164 - windowClass: 'center-modal', 164 + windowClass: 'order-option-modal',
165 controller: "RerunManageListOrderOptionModalInstanceCtrl", 165 controller: "RerunManageListOrderOptionModalInstanceCtrl",
166 controllerAs: "$ctrl", 166 controllerAs: "$ctrl",
167 bindToController: true 167 bindToController: true
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/module.js
@@ -222,12 +222,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -222,12 +222,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
222 // large方式弹出模态对话框 222 // large方式弹出模态对话框
223 var modalInstance = $uibModal.open({ 223 var modalInstance = $uibModal.open({
224 templateUrl: '/pages/scheduleApp/module/core/schedulePlanManage/orderOptionOpen.html', 224 templateUrl: '/pages/scheduleApp/module/core/schedulePlanManage/orderOptionOpen.html',
225 - size: "sm", 225 + // size: "sm",
226 animation: true, 226 animation: true,
227 backdrop: 'static', 227 backdrop: 'static',
228 resolve: { 228 resolve: {
229 }, 229 },
230 - windowClass: 'center-modal', 230 + windowClass: 'order-option-modal',
231 controller: "SchedulePlanManageListOrderOptionModalInstanceCtrl", 231 controller: "SchedulePlanManageListOrderOptionModalInstanceCtrl",
232 controllerAs: "$ctrl", 232 controllerAs: "$ctrl",
233 bindToController: true 233 bindToController: true
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/module.js
@@ -277,12 +277,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -277,12 +277,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
277 // large方式弹出模态对话框 277 // large方式弹出模态对话框
278 var modalInstance = $uibModal.open({ 278 var modalInstance = $uibModal.open({
279 templateUrl: '/pages/scheduleApp/module/core/scheduleRuleManage/orderOptionOpen.html', 279 templateUrl: '/pages/scheduleApp/module/core/scheduleRuleManage/orderOptionOpen.html',
280 - size: "sm", 280 + // size: "sm",
281 animation: true, 281 animation: true,
282 backdrop: 'static', 282 backdrop: 'static',
283 resolve: { 283 resolve: {
284 }, 284 },
285 - windowClass: 'center-modal', 285 + windowClass: 'order-option-modal',
286 controller: "ScheduleRuleManageListOrderOptionModalInstanceCtrl", 286 controller: "ScheduleRuleManageListOrderOptionModalInstanceCtrl",
287 controllerAs: "$ctrl", 287 controllerAs: "$ctrl",
288 bindToController: true 288 bindToController: true
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/module.js
@@ -234,12 +234,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -234,12 +234,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
234 // large方式弹出模态对话框 234 // large方式弹出模态对话框
235 var modalInstance = $uibModal.open({ 235 var modalInstance = $uibModal.open({
236 templateUrl: '/pages/scheduleApp/module/core/ttInfoManage/orderOptionOpen.html', 236 templateUrl: '/pages/scheduleApp/module/core/ttInfoManage/orderOptionOpen.html',
237 - size: "sm", 237 + // size: "sm",
238 animation: true, 238 animation: true,
239 backdrop: 'static', 239 backdrop: 'static',
240 resolve: { 240 resolve: {
241 }, 241 },
242 - windowClass: 'center-modal', 242 + windowClass: 'order-option-modal',
243 controller: "TtInfoManageListOrderOptionModalInstanceCtrl", 243 controller: "TtInfoManageListOrderOptionModalInstanceCtrl",
244 controllerAs: "$ctrl", 244 controllerAs: "$ctrl",
245 bindToController: true 245 bindToController: true
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage2/module.js
@@ -234,12 +234,12 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -234,12 +234,12 @@ angular.module(&#39;ScheduleApp&#39;).controller(
234 // large方式弹出模态对话框 234 // large方式弹出模态对话框
235 var modalInstance = $uibModal.open({ 235 var modalInstance = $uibModal.open({
236 templateUrl: '/pages/scheduleApp/module/core/ttInfoManage2/orderOptionOpen.html', 236 templateUrl: '/pages/scheduleApp/module/core/ttInfoManage2/orderOptionOpen.html',
237 - size: "sm", 237 + // size: "sm",
238 animation: true, 238 animation: true,
239 backdrop: 'static', 239 backdrop: 'static',
240 resolve: { 240 resolve: {
241 }, 241 },
242 - windowClass: 'center-modal', 242 + windowClass: 'order-option-modal',
243 controller: "TtInfoManage2ListOrderOptionModalInstanceCtrl", 243 controller: "TtInfoManage2ListOrderOptionModalInstanceCtrl",
244 controllerAs: "$ctrl", 244 controllerAs: "$ctrl",
245 bindToController: true 245 bindToController: true