Commit f386d7bf11064907dec0c42eaf4891450b8a4002
Merge branch 'master' of 192.168.168.201:panzhaov5/bsth_control
Showing
30 changed files
with
1966 additions
and
66 deletions
pom.xml
| ... | ... | @@ -98,7 +98,39 @@ |
| 98 | 98 | <artifactId>guava</artifactId> |
| 99 | 99 | <version>19.0</version> |
| 100 | 100 | </dependency> |
| 101 | + | |
| 102 | + <!-- drools 6依赖 --> | |
| 103 | + <dependency> | |
| 104 | + <groupId>org.kie</groupId> | |
| 105 | + <artifactId>kie-api</artifactId> | |
| 106 | + </dependency> | |
| 107 | + <dependency> | |
| 108 | + <groupId>org.drools</groupId> | |
| 109 | + <artifactId>drools-compiler</artifactId> | |
| 110 | + </dependency> | |
| 111 | + | |
| 112 | + <!-- springboot测试 --> | |
| 113 | + <dependency> | |
| 114 | + <groupId>org.springframework.boot</groupId> | |
| 115 | + <artifactId>spring-boot-starter-test</artifactId> | |
| 116 | + <scope>test</scope> | |
| 117 | + </dependency> | |
| 118 | + | |
| 101 | 119 | </dependencies> |
| 120 | + | |
| 121 | + <dependencyManagement> | |
| 122 | + <dependencies> | |
| 123 | + <!-- drools 6依赖 --> | |
| 124 | + <dependency> | |
| 125 | + <groupId>org.drools</groupId> | |
| 126 | + <artifactId>drools-bom</artifactId> | |
| 127 | + <type>pom</type> | |
| 128 | + <version>6.2.0.Final</version> | |
| 129 | + <scope>import</scope> | |
| 130 | + </dependency> | |
| 131 | + </dependencies> | |
| 132 | + </dependencyManagement> | |
| 133 | + | |
| 102 | 134 | <build> |
| 103 | 135 | <plugins> |
| 104 | 136 | <plugin> | ... | ... |
src/main/java/com/bsth/controller/CarDeviceController.java
0 → 100644
| 1 | +package com.bsth.controller; | |
| 2 | + | |
| 3 | +import com.bsth.entity.CarDevice; | |
| 4 | +import org.springframework.web.bind.annotation.RequestBody; | |
| 5 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 6 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 7 | +import org.springframework.web.bind.annotation.RestController; | |
| 8 | + | |
| 9 | +import java.util.Map; | |
| 10 | + | |
| 11 | +/** | |
| 12 | + * Created by xu on 16/6/15. | |
| 13 | + */ | |
| 14 | +@RestController | |
| 15 | +@RequestMapping("carDevice") | |
| 16 | +public class CarDeviceController extends BaseController<CarDevice, Long> { | |
| 17 | + | |
| 18 | + /** | |
| 19 | + * 覆写方法,因为form提交的方式参数不全,改用 json形式提交 @RequestBody | |
| 20 | + * @Title: save | |
| 21 | + * @Description: TODO(持久化对象) | |
| 22 | + * @param @param t | |
| 23 | + * @param @return 设定文件 | |
| 24 | + * @return Map<String,Object> {status: 1(成功),-1(失败)} | |
| 25 | + * @throws | |
| 26 | + */ | |
| 27 | + @RequestMapping(method = RequestMethod.POST) | |
| 28 | + public Map<String, Object> save(@RequestBody CarDevice t){ | |
| 29 | + return baseService.save(t); | |
| 30 | + } | |
| 31 | +} | ... | ... |
src/main/java/com/bsth/controller/PersonnelController.java
0 → 100644
| 1 | +package com.bsth.controller; | |
| 2 | + | |
| 3 | +import com.bsth.entity.Personnel; | |
| 4 | +import org.springframework.web.bind.annotation.RequestBody; | |
| 5 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 6 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 7 | +import org.springframework.web.bind.annotation.RestController; | |
| 8 | + | |
| 9 | +import java.util.Map; | |
| 10 | + | |
| 11 | +/** | |
| 12 | + * Created by xu on 16/6/15. | |
| 13 | + */ | |
| 14 | +@RestController | |
| 15 | +@RequestMapping("personnel") | |
| 16 | +public class PersonnelController extends BaseController<Personnel, Integer> { | |
| 17 | + /** | |
| 18 | + * 覆写方法,因为form提交的方式参数不全,改用 json形式提交 @RequestBody | |
| 19 | + * @Title: save | |
| 20 | + * @Description: TODO(持久化对象) | |
| 21 | + * @param @param t | |
| 22 | + * @param @return 设定文件 | |
| 23 | + * @return Map<String,Object> {status: 1(成功),-1(失败)} | |
| 24 | + * @throws | |
| 25 | + */ | |
| 26 | + @RequestMapping(method = RequestMethod.POST) | |
| 27 | + public Map<String, Object> save(@RequestBody Personnel t){ | |
| 28 | + return baseService.save(t); | |
| 29 | + } | |
| 30 | +} | ... | ... |
src/main/java/com/bsth/repository/CarDeviceRepository.java
0 → 100644
src/main/java/com/bsth/repository/PersonnelRepository.java
0 → 100644
src/main/java/com/bsth/service/CarDeviceService.java
0 → 100644
src/main/java/com/bsth/service/PersonnelService.java
0 → 100644
src/main/java/com/bsth/service/impl/CarDeviceServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.impl; | |
| 2 | + | |
| 3 | +import com.bsth.entity.CarDevice; | |
| 4 | +import com.bsth.service.CarDeviceService; | |
| 5 | +import org.springframework.stereotype.Service; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * Created by xu on 16/6/15. | |
| 9 | + */ | |
| 10 | +@Service | |
| 11 | +public class CarDeviceServiceImpl extends BaseServiceImpl<CarDevice, Long> implements CarDeviceService { | |
| 12 | +} | ... | ... |
src/main/java/com/bsth/service/impl/PersonnelServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.impl; | |
| 2 | + | |
| 3 | +import com.bsth.entity.Personnel; | |
| 4 | +import com.bsth.service.PersonnelService; | |
| 5 | +import org.springframework.stereotype.Service; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * Created by xu on 16/6/15. | |
| 9 | + */ | |
| 10 | +@Service | |
| 11 | +public class PersonnelServiceImpl extends BaseServiceImpl<Personnel, Integer> implements PersonnelService { | |
| 12 | +} | ... | ... |
src/main/java/com/bsth/service/schedule/rules/Message.java
0 → 100644
| 1 | +package com.bsth.service.schedule.rules; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * Created by xu on 16/6/15. | |
| 5 | + */ | |
| 6 | +public class Message { | |
| 7 | + public static final int HELLO = 0; | |
| 8 | + public static final int GOODBYE = 1; | |
| 9 | + | |
| 10 | + private String message; | |
| 11 | + private int status; | |
| 12 | + public String getMessage() { | |
| 13 | + return message; | |
| 14 | + } | |
| 15 | + public void setMessage(String message) { | |
| 16 | + this.message = message; | |
| 17 | + } | |
| 18 | + public int getStatus() { | |
| 19 | + return status; | |
| 20 | + } | |
| 21 | + public void setStatus(int status) { | |
| 22 | + this.status = status; | |
| 23 | + } | |
| 24 | +} | ... | ... |
src/main/java/com/bsth/service/schedule/rules/MyDroolsConfiguration.java
0 → 100644
| 1 | +package com.bsth.service.schedule.rules; | |
| 2 | + | |
| 3 | +import org.kie.api.KieBase; | |
| 4 | +import org.kie.api.KieBaseConfiguration; | |
| 5 | +import org.kie.api.KieServices; | |
| 6 | +import org.kie.api.builder.*; | |
| 7 | +import org.kie.api.builder.Message; | |
| 8 | +import org.kie.api.builder.model.KieBaseModel; | |
| 9 | +import org.kie.api.builder.model.KieModuleModel; | |
| 10 | +import org.kie.api.builder.model.KieSessionModel; | |
| 11 | +import org.kie.api.conf.EqualityBehaviorOption; | |
| 12 | +import org.kie.api.conf.EventProcessingOption; | |
| 13 | +import org.kie.api.runtime.KieContainer; | |
| 14 | +import org.kie.api.runtime.conf.ClockTypeOption; | |
| 15 | +import org.springframework.context.annotation.Bean; | |
| 16 | +import org.springframework.context.annotation.Configuration; | |
| 17 | + | |
| 18 | +/** | |
| 19 | + * Drools 6配置类。 | |
| 20 | + */ | |
| 21 | +@Configuration | |
| 22 | +public class MyDroolsConfiguration { | |
| 23 | + /** | |
| 24 | + * 返回一个kiebase知识库,直接冲文件系统读入drl规则文件, | |
| 25 | + * TODO:以后需要从数据库读入规则文件,并重新创建kbase知识库。 | |
| 26 | + */ | |
| 27 | + @Bean | |
| 28 | + public KieBase myKieBase() { | |
| 29 | + // Drools 6开始引入kie统一接口(jboss的jbpm工作流也使用kie接口了),整个定义方式和5差别很大 | |
| 30 | + // 这里使用全api方式创建知识库对象,不使用xml的方式,提供最大的灵活性 | |
| 31 | + | |
| 32 | + // 1、创建kieservices | |
| 33 | + KieServices kieServices = KieServices.Factory.get(); | |
| 34 | + // 2、创建KieModuleModel,默认是由kmodule.xml的方式创建,这里使用api方式闯将 | |
| 35 | + KieModuleModel kieModuleModel = kieServices.newKieModuleModel(); | |
| 36 | + // 2.1、创建KieBaseModel,类似kmodule.xml中的kbase标签 | |
| 37 | + KieBaseModel kieBaseModel1 = kieModuleModel.newKieBaseModel("KBase1") | |
| 38 | + .setDefault(true) | |
| 39 | + .setEqualsBehavior(EqualityBehaviorOption.EQUALITY) | |
| 40 | + .setEventProcessingMode(EventProcessingOption.STREAM); | |
| 41 | + // 2.2、创建与kbase关联的KieSessionModel,类似kmodule.xml中的kbase内的ksession标签 | |
| 42 | + kieBaseModel1.newKieSessionModel("KSession1") | |
| 43 | + .setDefault(true) | |
| 44 | + .setType(KieSessionModel.KieSessionType.STATEFUL) | |
| 45 | + .setClockType(ClockTypeOption.get("realtime")); | |
| 46 | + | |
| 47 | + // 3、创建KieFileSystem,将模型xml,drl等写入,TODO:以后考虑从数据库中获取 | |
| 48 | + KieFileSystem kfs = kieServices.newKieFileSystem(); | |
| 49 | + // 3.1、写入KieBaseModel(内部包含了KieSessionModel的内容了,注意之前的KieSessionModel的创建方式) | |
| 50 | + kfs.writeKModuleXML(kieModuleModel.toXML()); | |
| 51 | + | |
| 52 | + // 3.2、写入drl(写法超多,有点混乱) | |
| 53 | + // 这里使用文件的形式写入,TODO:以后考虑从数据库中读drl写入 | |
| 54 | + // 注意kfs写的时候如果指定path,强制为src/main/resources/加上文件名,还有就是文件名不要重复否则会覆盖的 | |
| 55 | + kfs.write("src/main/resources/HelloWorld.drl", kieServices.getResources() | |
| 56 | + .newInputStreamResource(this.getClass().getResourceAsStream( | |
| 57 | + "/rules/HelloWorld.drl"), "UTF-8")); | |
| 58 | + // TODO:还有其他drl.... | |
| 59 | + | |
| 60 | + // 4、创建KieBuilder,使用KieFileSystem构建 | |
| 61 | + KieBuilder kieBuilder = kieServices.newKieBuilder(kfs).buildAll(); | |
| 62 | + Results results = kieBuilder.getResults(); | |
| 63 | + if (results.hasMessages(Message.Level.ERROR)) | |
| 64 | + throw new IllegalStateException("构建drools6错误:" + results.getMessages()); | |
| 65 | + | |
| 66 | + // 5、获取KieContainer | |
| 67 | + // TODO:ReleaseId用处很大,以后再议 | |
| 68 | + ReleaseId releaseId = kieServices.getRepository().getDefaultReleaseId(); | |
| 69 | + KieContainer kieContainer = kieServices.newKieContainer(releaseId); | |
| 70 | + | |
| 71 | + // 6、创建kbase | |
| 72 | + KieBaseConfiguration kieBaseConfiguration = kieServices.newKieBaseConfiguration(); | |
| 73 | + KieBase kieBase = kieContainer.newKieBase("KBase1", kieBaseConfiguration); | |
| 74 | + | |
| 75 | + return kieBase; | |
| 76 | + } | |
| 77 | +} | ... | ... |
src/main/resources/rules/HelloWorld.drl
0 → 100644
| 1 | +package com.bsth.service.schedule | |
| 2 | + | |
| 3 | +//list any import classes here. | |
| 4 | + | |
| 5 | +import com.bsth.service.schedule.rules.Message; | |
| 6 | + | |
| 7 | +//declare any global variables here | |
| 8 | + | |
| 9 | +global java.util.List list | |
| 10 | + | |
| 11 | + | |
| 12 | +rule "Hello World" | |
| 13 | + dialect "mvel" | |
| 14 | + when | |
| 15 | + $m : Message( status == Message.HELLO, $message : message ) | |
| 16 | + then | |
| 17 | + System.out.println($message); | |
| 18 | + $m.status = com.bsth.service.schedule.rules.Message.GOODBYE; | |
| 19 | + $m.message = "Goodbye cruel world"; | |
| 20 | + update($m); | |
| 21 | +end | |
| 22 | + | |
| 23 | +rule "Good bye" | |
| 24 | + dialect "mvel" | |
| 25 | + when | |
| 26 | + $m : Message( status == Message.GOODBYE, $message : message ) | |
| 27 | + then | |
| 28 | + System.out.println($message); | |
| 29 | + list.add("you come on!"); | |
| 30 | +end | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/busInfoManage.js
| ... | ... | @@ -348,7 +348,7 @@ angular.module('ScheduleApp').controller('BusInfoManageFormCtrl', ['BusInfoManag |
| 348 | 348 | busInfoManageService.saveDetail(self.busInfoForSave).then( |
| 349 | 349 | function(result) { |
| 350 | 350 | // TODO:弹出框方式以后改 |
| 351 | - if (result.status == 1) { | |
| 351 | + if (result.status == 'SUCCESS') { | |
| 352 | 352 | alert("保存成功!"); |
| 353 | 353 | $state.go("busInfoManage"); |
| 354 | 354 | } else { | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/edit.html
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/form.html
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/detail.html
| 1 | +<div class="page-head"> | |
| 2 | + <div class="page-title"> | |
| 3 | + <h1>车辆设备详细信息</h1> | |
| 4 | + </div> | |
| 5 | +</div> | |
| 6 | + | |
| 7 | +<ul class="page-breadcrumb breadcrumb"> | |
| 8 | + <li> | |
| 9 | + <a href="/pages/home.html" data-pjax>首页</a> | |
| 10 | + <i class="fa fa-circle"></i> | |
| 11 | + </li> | |
| 12 | + <li> | |
| 13 | + <span class="active">基础信息</span> | |
| 14 | + <i class="fa fa-circle"></i> | |
| 15 | + </li> | |
| 16 | + <li> | |
| 17 | + <a ui-sref="deviceInfoManage">车辆设备信息管理</a> | |
| 18 | + <i class="fa fa-circle"></i> | |
| 19 | + </li> | |
| 20 | + <li> | |
| 21 | + <span class="active">车辆设备详细信息</span> | |
| 22 | + </li> | |
| 23 | +</ul> | |
| 24 | + | |
| 25 | +<div class="portlet light bordered" ng-controller="DeviceInfoManageDetailCtrl as ctrl"> | |
| 26 | + <div class="portlet-title"> | |
| 27 | + <div class="caption"> | |
| 28 | + <i class="icon-equalizer font-red-sunglo"></i> <span | |
| 29 | + class="caption-subject font-red-sunglo bold uppercase" | |
| 30 | + ng-bind="ctrl.title"></span> | |
| 31 | + </div> | |
| 32 | + </div> | |
| 33 | + | |
| 34 | + <div class="portlet-body form"> | |
| 35 | + <form class="form-horizontal" novalidate name="myForm"> | |
| 36 | + <div class="form-body"> | |
| 37 | + <div class="form-group has-success has-feedback"> | |
| 38 | + <label class="col-md-2 control-label">所属公司*:</label> | |
| 39 | + <div class="col-md-3"> | |
| 40 | + <input type="text" class="form-control" name="gsName" | |
| 41 | + ng-model="ctrl.deviceInfoForDetail.gsName" readonly/> | |
| 42 | + </div> | |
| 43 | + </div> | |
| 44 | + <div class="form-group has-success has-feedback"> | |
| 45 | + <label class="col-md-2 control-label">车辆内部编号/自编号*:</label> | |
| 46 | + <div class="col-md-3"> | |
| 47 | + <input type="text" class="form-control" name="clZbh" | |
| 48 | + ng-model="ctrl.deviceInfoForDetail.clZbh" readonly/> | |
| 49 | + </div> | |
| 50 | + </div> | |
| 51 | + <div class="form-group has-success has-feedback"> | |
| 52 | + <label class="col-md-2 control-label">线路*:</label> | |
| 53 | + <div class="col-md-3"> | |
| 54 | + <input type="text" class="form-control" name="xlName" | |
| 55 | + ng-model="ctrl.deviceInfoForDetail.xlName" readonly/> | |
| 56 | + </div> | |
| 57 | + </div> | |
| 58 | + <div class="form-group has-success has-feedback"> | |
| 59 | + <label class="col-md-2 control-label">旧终端号*:</label> | |
| 60 | + <div class="col-md-3"> | |
| 61 | + <input type="text" class="form-control" name="oldDeviceNo" | |
| 62 | + ng-model="ctrl.deviceInfoForDetail.oldDeviceNo" readonly/> | |
| 63 | + </div> | |
| 64 | + </div> | |
| 65 | + <div class="form-group has-success has-feedback"> | |
| 66 | + <label class="col-md-2 control-label">新终端号*:</label> | |
| 67 | + <div class="col-md-3"> | |
| 68 | + <input type="text" class="form-control" name="newDeviceNo" | |
| 69 | + ng-model="ctrl.deviceInfoForDetail.newDeviceNo" readonly/> | |
| 70 | + </div> | |
| 71 | + </div> | |
| 72 | + | |
| 73 | + <div class="form-group"> | |
| 74 | + <label class="col-md-2 control-label">旧SIM卡号:</label> | |
| 75 | + <div class="col-md-4"> | |
| 76 | + <input type="text" class="form-control" name="oldSimNo" | |
| 77 | + ng-model="ctrl.deviceInfoForDetail.oldSimNo" readonly/> | |
| 78 | + </div> | |
| 79 | + </div> | |
| 80 | + <div class="form-group"> | |
| 81 | + <label class="col-md-2 control-label">新SIM卡号:</label> | |
| 82 | + <div class="col-md-4"> | |
| 83 | + <input type="text" class="form-control" name="newSimNo" | |
| 84 | + ng-model="ctrl.deviceInfoForDetail.newSimNo" readonly/> | |
| 85 | + </div> | |
| 86 | + </div> | |
| 87 | + | |
| 88 | + <div class="form-group"> | |
| 89 | + <label class="col-md-2 control-label">故障描述:</label> | |
| 90 | + <div class="col-md-10"> | |
| 91 | + <textarea rows="3" class="form-control" name="troubleDesc" | |
| 92 | + ng-model="ctrl.deviceInfoForDetail.troubleDesc" readonly></textarea> | |
| 93 | + </div> | |
| 94 | + </div> | |
| 95 | + | |
| 96 | + <div class="form-group"> | |
| 97 | + <label class="col-md-2 control-label">保修描述:</label> | |
| 98 | + <div class="col-md-10"> | |
| 99 | + <textarea rows="3" class="form-control" name="guaranteeDesc" | |
| 100 | + ng-model="ctrl.deviceInfoForDetail.guaranteeDesc" readonly></textarea> | |
| 101 | + </div> | |
| 102 | + </div> | |
| 103 | + | |
| 104 | + <!-- 其他form-group --> | |
| 105 | + | |
| 106 | + </div> | |
| 107 | + </form> | |
| 108 | + </div> | |
| 109 | + | |
| 110 | +</div> | |
| 0 | 111 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js
| 1 | 1 | // 设备信息维护 service controller 等写在一起 |
| 2 | 2 | |
| 3 | -angular.module('ScheduleApp').factory('DeviceInfoManageService', ['$resource', function($resource) { | |
| 4 | - // TODO:测试 | |
| 5 | - var pageInfo = { | |
| 6 | - totalItems: 64, | |
| 7 | - currentPage: 4, | |
| 8 | - infos: [] | |
| 9 | - }; | |
| 3 | +angular.module('ScheduleApp').factory('DeviceInfoManageService', ['DeviceInfoManageService_g', function(service) { | |
| 4 | + /** 公司字典 */ | |
| 5 | + var gses = [ | |
| 6 | + {gsdm: "55", gsmc: "上南公司"}, | |
| 7 | + {gsdm: "22", gsmc: "金高公司"}, | |
| 8 | + {gsdm: "05", gsmc: "杨高公司"}, | |
| 9 | + {gsdm: "26", gsmc: "南汇公司"} | |
| 10 | + ]; | |
| 11 | + | |
| 12 | + /** 当前的查询条件信息 */ | |
| 13 | + var currentSearchCondition = {}; | |
| 14 | + | |
| 15 | + /** 当前第几页 */ | |
| 16 | + var currentPageNo = 1; | |
| 10 | 17 | |
| 11 | 18 | return { |
| 12 | - pi: function() { | |
| 13 | - console.log("pi"); | |
| 14 | - return pageInfo; | |
| 19 | + /** | |
| 20 | + * 获取公司字典。 | |
| 21 | + */ | |
| 22 | + getGses: function() { | |
| 23 | + return gses; | |
| 24 | + }, | |
| 25 | + /** | |
| 26 | + * 获取查询条件信息, | |
| 27 | + * 用于给controller用来和页面数据绑定。 | |
| 28 | + */ | |
| 29 | + getSearchCondition: function() { | |
| 30 | + return currentSearchCondition; | |
| 15 | 31 | }, |
| 16 | - setCP: function(cp) { | |
| 17 | - console.log("setCP"); | |
| 18 | - pageInfo.currentPage = cp; | |
| 32 | + /** | |
| 33 | + * 重置查询条件信息。 | |
| 34 | + */ | |
| 35 | + resetSearchCondition: function() { | |
| 36 | + var key; | |
| 37 | + for (key in currentSearchCondition) { | |
| 38 | + currentSearchCondition[key] = ""; | |
| 39 | + } | |
| 40 | + }, | |
| 41 | + /** | |
| 42 | + * 设置当前页码。 | |
| 43 | + * @param cpn 从1开始,后台是从0开始的 | |
| 44 | + */ | |
| 45 | + setCurrentPageNo: function(cpn) { | |
| 46 | + currentPageNo = cpn; | |
| 47 | + }, | |
| 48 | + /** | |
| 49 | + * 组装查询参数,返回一个promise查询结果。 | |
| 50 | + * @param params 查询参数 | |
| 51 | + * @return 返回一个 promise | |
| 52 | + */ | |
| 53 | + getPage: function() { | |
| 54 | + var params = currentSearchCondition; // 查询条件 | |
| 55 | + params.page = currentPageNo - 1; // 服务端页码从0开始 | |
| 56 | + return service.list(params).$promise; | |
| 57 | + }, | |
| 58 | + /** | |
| 59 | + * 获取明细信息。 | |
| 60 | + * @param id 车辆id | |
| 61 | + * @return 返回一个 promise | |
| 62 | + */ | |
| 63 | + getDetail: function(id) { | |
| 64 | + var params = {id: id}; | |
| 65 | + return service.get(params).$promise; | |
| 66 | + }, | |
| 67 | + /** | |
| 68 | + * 保存信息。 | |
| 69 | + * @param obj 车辆详细信息 | |
| 70 | + * @return 返回一个 promise | |
| 71 | + */ | |
| 72 | + saveDetail: function(obj) { | |
| 73 | + return service.save(obj).$promise; | |
| 19 | 74 | } |
| 20 | - } | |
| 75 | + }; | |
| 76 | + | |
| 21 | 77 | }]); |
| 22 | 78 | |
| 23 | -angular.module('ScheduleApp').controller('DeviceInfoManageCtrl', ['DeviceInfoManageService', function(deviceInfoManageService) { | |
| 79 | +angular.module('ScheduleApp').controller('DeviceInfoManageCtrl', ['DeviceInfoManageService', '$state', function(deviceInfoManageService, $state) { | |
| 80 | + var self = this; | |
| 81 | + | |
| 82 | + // 切换到form状态 | |
| 83 | + self.goForm = function() { | |
| 84 | + //alert("切换"); | |
| 85 | + $state.go("deviceInfoManage_form"); | |
| 86 | + } | |
| 87 | + | |
| 24 | 88 | |
| 25 | 89 | }]); |
| 26 | 90 | |
| 27 | 91 | angular.module('ScheduleApp').controller('DeviceInfoManageListCtrl', ['DeviceInfoManageService', function(deviceInfoManageService) { |
| 28 | - // TODO:模拟数据 | |
| 29 | 92 | var self = this; |
| 30 | - self.pi = deviceInfoManageService.pi(); | |
| 93 | + self.pageInfo = { | |
| 94 | + totalItems : 0, | |
| 95 | + currentPage : 1, | |
| 96 | + infos: [] | |
| 97 | + }; | |
| 98 | + | |
| 99 | + // 初始创建的时候,获取一次列表数据 | |
| 100 | + deviceInfoManageService.getPage().then( | |
| 101 | + function(result) { | |
| 102 | + self.pageInfo.totalItems = result.totalElements; | |
| 103 | + self.pageInfo.currentPage = result.number + 1; | |
| 104 | + self.pageInfo.infos = result.content; | |
| 105 | + deviceInfoManageService.setCurrentPageNo(result.number + 1); | |
| 106 | + }, | |
| 107 | + function(result) { | |
| 108 | + alert("出错啦!"); | |
| 109 | + } | |
| 110 | + ); | |
| 111 | + | |
| 112 | + // 翻页的时候调用 | |
| 31 | 113 | self.pageChanaged = function() { |
| 32 | - console.log("go:" + deviceInfoManageService.pi().currentPage); | |
| 114 | + deviceInfoManageService.setCurrentPageNo(self.pageInfo.currentPage); | |
| 115 | + deviceInfoManageService.getPage().then( | |
| 116 | + function(result) { | |
| 117 | + self.pageInfo.totalItems = result.totalElements; | |
| 118 | + self.pageInfo.currentPage = result.number + 1; | |
| 119 | + self.pageInfo.infos = result.content; | |
| 120 | + deviceInfoManageService.setCurrentPageNo(result.number + 1); | |
| 121 | + }, | |
| 122 | + function(result) { | |
| 123 | + alert("出错啦!"); | |
| 124 | + } | |
| 125 | + ); | |
| 126 | + }; | |
| 127 | + // 获取查询条件数据 | |
| 128 | + self.searchCondition = function() { | |
| 129 | + return deviceInfoManageService.getSearchCondition(); | |
| 130 | + }; | |
| 131 | + // 重置查询条件 | |
| 132 | + self.resetSearchCondition = function() { | |
| 133 | + return deviceInfoManageService.resetSearchCondition(); | |
| 33 | 134 | }; |
| 34 | 135 | |
| 35 | 136 | }]); |
| 36 | 137 | |
| 37 | -angular.module('ScheduleApp').controller('DeviceInfoManageFormCtrl', ['DeviceInfoManageService', function(deviceInfoManageService) { | |
| 138 | +angular.module('ScheduleApp').controller('DeviceInfoManageFormCtrl', ['DeviceInfoManageService', '$stateParams', '$state', function(deviceInfoManageService, $stateParams, $state) { | |
| 139 | + var self = this; | |
| 140 | + | |
| 141 | + // 欲保存的busInfo信息,绑定 | |
| 142 | + self.deviceInfoForSave = {}; | |
| 143 | + | |
| 144 | + // 公司 selectedItem | |
| 145 | + self.deviceInfoForSave.gs_selected = null; | |
| 146 | + self.gses = deviceInfoManageService.getGses(); | |
| 147 | + self.gs_selected_change = function($item, $model) { | |
| 148 | + self.deviceInfoForSave.gsName = $item.gsmc; | |
| 149 | + }; | |
| 150 | + self.gs_selected_remove = function() { | |
| 151 | + self.deviceInfoForSave.gs_selected = null; | |
| 152 | + self.deviceInfoForSave.gsName = null; | |
| 153 | + }; | |
| 154 | + | |
| 155 | + // 获取传过来的id,有的话就是修改,获取一遍数据 | |
| 156 | + var id = $stateParams.id; | |
| 157 | + if (id) { | |
| 158 | + self.deviceInfoForSave.id = id; | |
| 159 | + deviceInfoManageService.getDetail(id).then( | |
| 160 | + function(result) { | |
| 161 | + var key; | |
| 162 | + for (key in result) { | |
| 163 | + self.deviceInfoForSave[key] = result[key]; | |
| 164 | + } | |
| 165 | + // 填写所有的 select 控件选中框数据 | |
| 166 | + // 公司字典 | |
| 167 | + if (self.deviceInfoForSave.gsName) { | |
| 168 | + angular.forEach(self.gses, function(data) { | |
| 169 | + if (self.deviceInfoForSave.gsName == data.gsmc) { | |
| 170 | + self.deviceInfoForSave.gs_selected = data; | |
| 171 | + } | |
| 172 | + }); | |
| 173 | + } | |
| 174 | + }, | |
| 175 | + function(result) { | |
| 176 | + alert("出错啦!"); | |
| 177 | + } | |
| 178 | + ); | |
| 179 | + } | |
| 180 | + | |
| 181 | + // 提交方法 | |
| 182 | + self.submit = function() { | |
| 183 | + console.log(self.deviceInfoForSave); | |
| 184 | + deviceInfoManageService.saveDetail(self.deviceInfoForSave).then( | |
| 185 | + function(result) { | |
| 186 | + // TODO:弹出框方式以后改 | |
| 187 | + if (result.status == 'SUCCESS') { | |
| 188 | + alert("保存成功!"); | |
| 189 | + $state.go("deviceInfoManage"); | |
| 190 | + } else { | |
| 191 | + alert("保存异常!"); | |
| 192 | + } | |
| 193 | + }, | |
| 194 | + function(result) { | |
| 195 | + // TODO:弹出框方式以后改 | |
| 196 | + alert("出错啦!"); | |
| 197 | + } | |
| 198 | + ); | |
| 199 | + }; | |
| 38 | 200 | |
| 39 | 201 | }]); |
| 40 | 202 | |
| 41 | -angular.module('ScheduleApp').controller('DeviceInfoManageDetailCtrl', ['DeviceInfoManageService', function(deviceInfoManageService) { | |
| 203 | +angular.module('ScheduleApp').controller('DeviceInfoManageDetailCtrl', ['DeviceInfoManageService', '$stateParams', function(deviceInfoManageService, $stateParams) { | |
| 204 | + var self = this; | |
| 205 | + self.title = ""; | |
| 206 | + self.deviceInfoForDetail = {}; | |
| 207 | + self.deviceInfoForDetail.id = $stateParams.id; | |
| 208 | + | |
| 209 | + // 当转向到此页面时,就获取明细信息并绑定 | |
| 210 | + deviceInfoManageService.getDetail($stateParams.id).then( | |
| 211 | + function(result) { | |
| 212 | + var key; | |
| 213 | + for (key in result) { | |
| 214 | + self.deviceInfoForDetail[key] = result[key]; | |
| 215 | + } | |
| 42 | 216 | |
| 217 | + self.title = "车辆 " + self.deviceInfoForDetail.clZbh + " 详细信息"; | |
| 218 | + }, | |
| 219 | + function(result) { | |
| 220 | + // TODO:弹出框方式以后改 | |
| 221 | + alert("出错啦!"); | |
| 222 | + } | |
| 223 | + ); | |
| 43 | 224 | }]); |
| 44 | 225 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/edit.html
0 → 100644
| 1 | +<div class="page-head"> | |
| 2 | + <div class="page-title"> | |
| 3 | + <h1>修改车辆设备信息</h1> | |
| 4 | + </div> | |
| 5 | +</div> | |
| 6 | + | |
| 7 | +<ul class="page-breadcrumb breadcrumb"> | |
| 8 | + <li> | |
| 9 | + <a href="/pages/home.html" data-pjax>首页</a> | |
| 10 | + <i class="fa fa-circle"></i> | |
| 11 | + </li> | |
| 12 | + <li> | |
| 13 | + <span class="active">基础信息</span> | |
| 14 | + <i class="fa fa-circle"></i> | |
| 15 | + </li> | |
| 16 | + <li> | |
| 17 | + <a ui-sref="deviceInfoManage">车辆设备信息管理</a> | |
| 18 | + <i class="fa fa-circle"></i> | |
| 19 | + </li> | |
| 20 | + <li> | |
| 21 | + <span class="active">修改车辆设备信息</span> | |
| 22 | + </li> | |
| 23 | +</ul> | |
| 24 | + | |
| 25 | +<div class="portlet light bordered" ng-controller="DeviceInfoManageFormCtrl as ctrl"> | |
| 26 | + <div class="portlet-title"> | |
| 27 | + <div class="caption"> | |
| 28 | + <i class="icon-equalizer font-red-sunglo"></i> <span | |
| 29 | + class="caption-subject font-red-sunglo bold uppercase">表单</span> | |
| 30 | + </div> | |
| 31 | + </div> | |
| 32 | + | |
| 33 | + <div class="portlet-body form"> | |
| 34 | + <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm"> | |
| 35 | + <div class="form-body"> | |
| 36 | + <div class="form-group has-success has-feedback"> | |
| 37 | + <label class="col-md-2 control-label">所属公司*:</label> | |
| 38 | + <div class="col-md-3"> | |
| 39 | + <div class="input-group"> | |
| 40 | + <ui-select ng-model="ctrl.deviceInfoForSave.gs_selected" | |
| 41 | + on-select="ctrl.gs_selected_change($item, $model)" | |
| 42 | + theme="bootstrap" name="gs" required> | |
| 43 | + <ui-select-match placeholder="请选择所属公司...">{{$select.selected.gsmc}}</ui-select-match> | |
| 44 | + <ui-select-choices repeat="item in ctrl.gses"> | |
| 45 | + <span ng-bind="item.gsmc"></span> | |
| 46 | + </ui-select-choices> | |
| 47 | + </ui-select> | |
| 48 | + <span class="input-group-btn"> | |
| 49 | + <button type="button" ng-click="ctrl.gs_selected_remove()" class="btn btn-default"> | |
| 50 | + <span class="glyphicon glyphicon-trash"></span> | |
| 51 | + </button> | |
| 52 | + </span> | |
| 53 | + </div> | |
| 54 | + </div> | |
| 55 | + <!-- 隐藏块,显示验证信息 --> | |
| 56 | + <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required"> | |
| 57 | + 公司必须选择 | |
| 58 | + </div> | |
| 59 | + </div> | |
| 60 | + | |
| 61 | + <div class="form-group has-success has-feedback"> | |
| 62 | + <label class="col-md-2 control-label">车辆内部编号/自编号*:</label> | |
| 63 | + <div class="col-md-3"> | |
| 64 | + <input type="text" class="form-control" | |
| 65 | + name="clZbh" ng-model="ctrl.deviceInfoForSave.clZbh" | |
| 66 | + required placeholder="请输入车辆内部编号/自编号"/> | |
| 67 | + </div> | |
| 68 | + <!-- 隐藏块,显示验证信息 --> | |
| 69 | + <div class="alert alert-danger well-sm" ng-show="myForm.clZbh.$error.required"> | |
| 70 | + 车辆内部编号/自编号必须填写 | |
| 71 | + </div> | |
| 72 | + </div> | |
| 73 | + | |
| 74 | + <div class="form-group has-success has-feedback"> | |
| 75 | + <label class="col-md-2 control-label">线路*:</label> | |
| 76 | + <div class="col-md-3"> | |
| 77 | + <input type="text" class="form-control" | |
| 78 | + name="xlName" ng-model="ctrl.deviceInfoForSave.xlName" | |
| 79 | + required placeholder="请输入线路"/> | |
| 80 | + </div> | |
| 81 | + <!-- 隐藏块,显示验证信息 --> | |
| 82 | + <div class="alert alert-danger well-sm" ng-show="myForm.xlName.$error.required"> | |
| 83 | + 线路必须填写 | |
| 84 | + </div> | |
| 85 | + </div> | |
| 86 | + | |
| 87 | + <div class="form-group has-success has-feedback"> | |
| 88 | + <label class="col-md-2 control-label">旧终端号*:</label> | |
| 89 | + <div class="col-md-3"> | |
| 90 | + <input type="text" class="form-control" | |
| 91 | + name="oldDeviceNo" ng-model="ctrl.deviceInfoForSave.oldDeviceNo" | |
| 92 | + required placeholder="请输入旧终端号"/> | |
| 93 | + </div> | |
| 94 | + <!-- 隐藏块,显示验证信息 --> | |
| 95 | + <div class="alert alert-danger well-sm" ng-show="myForm.oldDeviceNo.$error.required"> | |
| 96 | + 旧终端号必须填写 | |
| 97 | + </div> | |
| 98 | + </div> | |
| 99 | + | |
| 100 | + <div class="form-group has-success has-feedback"> | |
| 101 | + <label class="col-md-2 control-label">新终端号*:</label> | |
| 102 | + <div class="col-md-3"> | |
| 103 | + <input type="text" class="form-control" | |
| 104 | + name="newDeviceNo" ng-model="ctrl.deviceInfoForSave.newDeviceNo" | |
| 105 | + required placeholder="请输入新终端号"/> | |
| 106 | + </div> | |
| 107 | + <!-- 隐藏块,显示验证信息 --> | |
| 108 | + <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.required"> | |
| 109 | + 新终端号必须填写 | |
| 110 | + </div> | |
| 111 | + </div> | |
| 112 | + | |
| 113 | + <div class="form-group"> | |
| 114 | + <label class="col-md-2 control-label">旧SIM卡号:</label> | |
| 115 | + <div class="col-md-4"> | |
| 116 | + <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.oldSimNo" | |
| 117 | + placeholder="请输入旧SIM卡号"/> | |
| 118 | + </div> | |
| 119 | + </div> | |
| 120 | + | |
| 121 | + <div class="form-group"> | |
| 122 | + <label class="col-md-2 control-label">新SIM卡号:</label> | |
| 123 | + <div class="col-md-4"> | |
| 124 | + <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.newSimNo" | |
| 125 | + placeholder="请输入新SIM卡号"/> | |
| 126 | + </div> | |
| 127 | + </div> | |
| 128 | + | |
| 129 | + <div class="form-group"> | |
| 130 | + <label class="col-md-2 control-label">故障描述:</label> | |
| 131 | + <div class="col-md-10"> | |
| 132 | + <textarea rows="3" class="form-control" name="descriptions" | |
| 133 | + ng-model="ctrl.deviceInfoForSave.troubleDesc"></textarea> | |
| 134 | + </div> | |
| 135 | + </div> | |
| 136 | + | |
| 137 | + <div class="form-group"> | |
| 138 | + <label class="col-md-2 control-label">保修描述:</label> | |
| 139 | + <div class="col-md-10"> | |
| 140 | + <textarea rows="3" class="form-control" name="descriptions" | |
| 141 | + ng-model="ctrl.deviceInfoForSave.guaranteeDesc"></textarea> | |
| 142 | + </div> | |
| 143 | + </div> | |
| 144 | + | |
| 145 | + <!-- 其他form-group --> | |
| 146 | + | |
| 147 | + </div> | |
| 148 | + | |
| 149 | + <div class="form-actions"> | |
| 150 | + <div class="row"> | |
| 151 | + <div class="col-md-offset-3 col-md-4"> | |
| 152 | + <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> 提交</button> | |
| 153 | + <a type="button" class="btn default" ui-sref="deviceInfoManage" ><i class="fa fa-times"></i> 取消</a> | |
| 154 | + </div> | |
| 155 | + </div> | |
| 156 | + </div> | |
| 157 | + </form> | |
| 158 | + </div> | |
| 159 | + | |
| 160 | +</div> | |
| 0 | 161 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/form.html
| 1 | +<div class="page-head"> | |
| 2 | + <div class="page-title"> | |
| 3 | + <h1>添加车辆设备信息</h1> | |
| 4 | + </div> | |
| 5 | +</div> | |
| 6 | + | |
| 7 | +<ul class="page-breadcrumb breadcrumb"> | |
| 8 | + <li> | |
| 9 | + <a href="/pages/home.html" data-pjax>首页</a> | |
| 10 | + <i class="fa fa-circle"></i> | |
| 11 | + </li> | |
| 12 | + <li> | |
| 13 | + <span class="active">基础信息</span> | |
| 14 | + <i class="fa fa-circle"></i> | |
| 15 | + </li> | |
| 16 | + <li> | |
| 17 | + <a ui-sref="deviceInfoManage">车辆设备信息管理</a> | |
| 18 | + <i class="fa fa-circle"></i> | |
| 19 | + </li> | |
| 20 | + <li> | |
| 21 | + <span class="active">添加车辆设备信息</span> | |
| 22 | + </li> | |
| 23 | +</ul> | |
| 24 | + | |
| 25 | +<div class="portlet light bordered" ng-controller="DeviceInfoManageFormCtrl as ctrl"> | |
| 26 | + <div class="portlet-title"> | |
| 27 | + <div class="caption"> | |
| 28 | + <i class="icon-equalizer font-red-sunglo"></i> <span | |
| 29 | + class="caption-subject font-red-sunglo bold uppercase">表单</span> | |
| 30 | + </div> | |
| 31 | + </div> | |
| 32 | + | |
| 33 | + <div class="portlet-body form"> | |
| 34 | + <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm"> | |
| 35 | + <div class="form-body"> | |
| 36 | + <div class="form-group has-success has-feedback"> | |
| 37 | + <label class="col-md-2 control-label">所属公司*:</label> | |
| 38 | + <div class="col-md-3"> | |
| 39 | + <div class="input-group"> | |
| 40 | + <ui-select ng-model="ctrl.deviceInfoForSave.gs_selected" | |
| 41 | + on-select="ctrl.gs_selected_change($item, $model)" | |
| 42 | + theme="bootstrap" name="gs" required> | |
| 43 | + <ui-select-match placeholder="请选择所属公司...">{{$select.selected.gsmc}}</ui-select-match> | |
| 44 | + <ui-select-choices repeat="item in ctrl.gses"> | |
| 45 | + <span ng-bind="item.gsmc"></span> | |
| 46 | + </ui-select-choices> | |
| 47 | + </ui-select> | |
| 48 | + <span class="input-group-btn"> | |
| 49 | + <button type="button" ng-click="ctrl.gs_selected_remove()" class="btn btn-default"> | |
| 50 | + <span class="glyphicon glyphicon-trash"></span> | |
| 51 | + </button> | |
| 52 | + </span> | |
| 53 | + </div> | |
| 54 | + </div> | |
| 55 | + <!-- 隐藏块,显示验证信息 --> | |
| 56 | + <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required"> | |
| 57 | + 公司必须选择 | |
| 58 | + </div> | |
| 59 | + </div> | |
| 60 | + | |
| 61 | + <div class="form-group has-success has-feedback"> | |
| 62 | + <label class="col-md-2 control-label">车辆内部编号/自编号*:</label> | |
| 63 | + <div class="col-md-3"> | |
| 64 | + <input type="text" class="form-control" | |
| 65 | + name="clZbh" ng-model="ctrl.deviceInfoForSave.clZbh" | |
| 66 | + required placeholder="请输入车辆内部编号/自编号"/> | |
| 67 | + </div> | |
| 68 | + <!-- 隐藏块,显示验证信息 --> | |
| 69 | + <div class="alert alert-danger well-sm" ng-show="myForm.clZbh.$error.required"> | |
| 70 | + 车辆内部编号/自编号必须填写 | |
| 71 | + </div> | |
| 72 | + </div> | |
| 73 | + | |
| 74 | + <div class="form-group has-success has-feedback"> | |
| 75 | + <label class="col-md-2 control-label">线路*:</label> | |
| 76 | + <div class="col-md-3"> | |
| 77 | + <input type="text" class="form-control" | |
| 78 | + name="xlName" ng-model="ctrl.deviceInfoForSave.xlName" | |
| 79 | + required placeholder="请输入线路"/> | |
| 80 | + </div> | |
| 81 | + <!-- 隐藏块,显示验证信息 --> | |
| 82 | + <div class="alert alert-danger well-sm" ng-show="myForm.xlName.$error.required"> | |
| 83 | + 线路必须填写 | |
| 84 | + </div> | |
| 85 | + </div> | |
| 86 | + | |
| 87 | + <div class="form-group has-success has-feedback"> | |
| 88 | + <label class="col-md-2 control-label">旧终端号*:</label> | |
| 89 | + <div class="col-md-3"> | |
| 90 | + <input type="text" class="form-control" | |
| 91 | + name="oldDeviceNo" ng-model="ctrl.deviceInfoForSave.oldDeviceNo" | |
| 92 | + required placeholder="请输入旧终端号"/> | |
| 93 | + </div> | |
| 94 | + <!-- 隐藏块,显示验证信息 --> | |
| 95 | + <div class="alert alert-danger well-sm" ng-show="myForm.oldDeviceNo.$error.required"> | |
| 96 | + 旧终端号必须填写 | |
| 97 | + </div> | |
| 98 | + </div> | |
| 99 | + | |
| 100 | + <div class="form-group has-success has-feedback"> | |
| 101 | + <label class="col-md-2 control-label">新终端号*:</label> | |
| 102 | + <div class="col-md-3"> | |
| 103 | + <input type="text" class="form-control" | |
| 104 | + name="newDeviceNo" ng-model="ctrl.deviceInfoForSave.newDeviceNo" | |
| 105 | + required placeholder="请输入新终端号"/> | |
| 106 | + </div> | |
| 107 | + <!-- 隐藏块,显示验证信息 --> | |
| 108 | + <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.required"> | |
| 109 | + 新终端号必须填写 | |
| 110 | + </div> | |
| 111 | + </div> | |
| 112 | + | |
| 113 | + <div class="form-group"> | |
| 114 | + <label class="col-md-2 control-label">旧SIM卡号:</label> | |
| 115 | + <div class="col-md-4"> | |
| 116 | + <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.oldSimNo" | |
| 117 | + placeholder="请输入旧SIM卡号"/> | |
| 118 | + </div> | |
| 119 | + </div> | |
| 120 | + | |
| 121 | + <div class="form-group"> | |
| 122 | + <label class="col-md-2 control-label">新SIM卡号:</label> | |
| 123 | + <div class="col-md-4"> | |
| 124 | + <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.newSimNo" | |
| 125 | + placeholder="请输入新SIM卡号"/> | |
| 126 | + </div> | |
| 127 | + </div> | |
| 128 | + | |
| 129 | + <div class="form-group"> | |
| 130 | + <label class="col-md-2 control-label">故障描述:</label> | |
| 131 | + <div class="col-md-10"> | |
| 132 | + <textarea rows="3" class="form-control" name="descriptions" | |
| 133 | + ng-model="ctrl.deviceInfoForSave.troubleDesc"></textarea> | |
| 134 | + </div> | |
| 135 | + </div> | |
| 136 | + | |
| 137 | + <div class="form-group"> | |
| 138 | + <label class="col-md-2 control-label">保修描述:</label> | |
| 139 | + <div class="col-md-10"> | |
| 140 | + <textarea rows="3" class="form-control" name="descriptions" | |
| 141 | + ng-model="ctrl.deviceInfoForSave.guaranteeDesc"></textarea> | |
| 142 | + </div> | |
| 143 | + </div> | |
| 144 | + | |
| 145 | + <!-- 其他form-group --> | |
| 146 | + | |
| 147 | + </div> | |
| 148 | + | |
| 149 | + <div class="form-actions"> | |
| 150 | + <div class="row"> | |
| 151 | + <div class="col-md-offset-3 col-md-4"> | |
| 152 | + <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> 提交</button> | |
| 153 | + <a type="button" class="btn default" ui-sref="deviceInfoManage" ><i class="fa fa-times"></i> 取消</a> | |
| 154 | + </div> | |
| 155 | + </div> | |
| 156 | + </div> | |
| 157 | + </form> | |
| 158 | + </div> | |
| 159 | + | |
| 160 | +</div> | |
| 0 | 161 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/index.html
| ... | ... | @@ -27,7 +27,7 @@ |
| 27 | 27 | <span class="caption-subject bold uppercase">设备信息表</span> |
| 28 | 28 | </div> |
| 29 | 29 | <div class="actions"> |
| 30 | - <a href="javascirpt:" class="btn btn-circle blue"> | |
| 30 | + <a href="javascirpt:" class="btn btn-circle blue" ng-click="ctrl.goForm()"> | |
| 31 | 31 | <i class="fa fa-plus"></i> |
| 32 | 32 | 添加设备信息 |
| 33 | 33 | </a> |
| ... | ... | @@ -58,7 +58,7 @@ |
| 58 | 58 | </div> |
| 59 | 59 | |
| 60 | 60 | <div class="portlet-body"> |
| 61 | - <div ui-view="list"></div> | |
| 61 | + <div ui-view="deviceInfoManage_list"></div> | |
| 62 | 62 | </div> |
| 63 | 63 | </div> |
| 64 | 64 | </div> | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/list.html
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | <div ng-controller="DeviceInfoManageListCtrl as ctrl"> |
| 3 | 3 | <table class="table table-striped table-bordered table-hover table-checkable order-column"> |
| 4 | 4 | <thead> |
| 5 | - <tr> | |
| 5 | + <tr role="row" class="heading"> | |
| 6 | 6 | <th> |
| 7 | 7 | <input type="checkbox" class="group-checkable"/> |
| 8 | 8 | </th> |
| ... | ... | @@ -15,16 +15,50 @@ |
| 15 | 15 | <th>旧SIM卡</th> |
| 16 | 16 | <th>新SIM卡</th> |
| 17 | 17 | <th>操作时间</th> |
| 18 | - <th>操作</th> | |
| 18 | + <th width="14%">操作</th> | |
| 19 | + </tr> | |
| 20 | + <tr role="row" class="filter"> | |
| 21 | + <td></td> | |
| 22 | + <td></td> | |
| 23 | + <td> | |
| 24 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().xlName_like"/> | |
| 25 | + </td> | |
| 26 | + <td> | |
| 27 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().clZbh_like"/> | |
| 28 | + </td> | |
| 29 | + <td></td> | |
| 30 | + <td> | |
| 31 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().oldDeviceNo_like"/> | |
| 32 | + </td> | |
| 33 | + <td> | |
| 34 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().newDeviceNo_like"/> | |
| 35 | + </td> | |
| 36 | + <td> | |
| 37 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().oldSimNo_like"/> | |
| 38 | + </td> | |
| 39 | + <td> | |
| 40 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().newSimNo_like"/> | |
| 41 | + </td> | |
| 42 | + <td></td> | |
| 43 | + <td> | |
| 44 | + <button class="btn btn-sm green btn-outline filter-submit margin-bottom" | |
| 45 | + ng-click="ctrl.pageChanaged()"> | |
| 46 | + <i class="fa fa-search"></i> 搜索</button> | |
| 47 | + | |
| 48 | + <button class="btn btn-sm red btn-outline filter-cancel" | |
| 49 | + ng-click="ctrl.resetSearchCondition()"> | |
| 50 | + <i class="fa fa-times"></i> 重置</button> | |
| 51 | + </td> | |
| 52 | + | |
| 19 | 53 | </tr> |
| 20 | 54 | </thead> |
| 21 | 55 | <tbody> |
| 22 | - <tr ng-repeat="info in ctrl.infos" class="odd gradeX"> | |
| 56 | + <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX"> | |
| 23 | 57 | <td> |
| 24 | 58 | <input type="checkbox"/> |
| 25 | 59 | </td> |
| 26 | 60 | <td> |
| 27 | - <span>todo</span> | |
| 61 | + <span ng-bind="$index + 1"></span> | |
| 28 | 62 | </td> |
| 29 | 63 | <td> |
| 30 | 64 | <span ng-bind="info.xlName"></span> |
| ... | ... | @@ -51,7 +85,10 @@ |
| 51 | 85 | <span ng-bind="info.updateDate | date:'yyyy-MM-dd HH:mm:ss'"></span> |
| 52 | 86 | </td> |
| 53 | 87 | <td> |
| 54 | - <span>todo</span> | |
| 88 | + <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> | |
| 89 | + <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> | |
| 90 | + <a ui-sref="deviceInfoManage_detail({id: info.id})" class="btn default blue-stripe btn-sm"> 详细 </a> | |
| 91 | + <a ui-sref="deviceInfoManage_edit({id: info.id})" class="btn default blue-stripe btn-sm"> 修改 </a> | |
| 55 | 92 | </td> |
| 56 | 93 | </tr> |
| 57 | 94 | </tbody> |
| ... | ... | @@ -59,11 +96,16 @@ |
| 59 | 96 | </table> |
| 60 | 97 | |
| 61 | 98 | <div style="text-align: right;"> |
| 62 | - <uib-pagination total-items="ctrl.pi.totalItems" | |
| 63 | - ng-model="ctrl.pi.currentPage" | |
| 64 | - ng-change="ctrl.pageChanged()" | |
| 99 | + <uib-pagination total-items="ctrl.pageInfo.totalItems" | |
| 100 | + ng-model="ctrl.pageInfo.currentPage" | |
| 101 | + ng-change="ctrl.pageChanaged()" | |
| 102 | + rotate="false" | |
| 103 | + max-size="10" | |
| 104 | + boundary-links="true" | |
| 105 | + first-text="首页" | |
| 65 | 106 | previous-text="上一页" |
| 66 | - next-text="下一页"> | |
| 107 | + next-text="下一页" | |
| 108 | + last-text="尾页"> | |
| 67 | 109 | </uib-pagination> |
| 68 | 110 | </div> |
| 69 | 111 | </div> | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/detail.html
| 1 | +<div class="page-head"> | |
| 2 | + <div class="page-title"> | |
| 3 | + <h1>人员详细信息</h1> | |
| 4 | + </div> | |
| 5 | +</div> | |
| 6 | + | |
| 7 | +<ul class="page-breadcrumb breadcrumb"> | |
| 8 | + <li> | |
| 9 | + <a href="/pages/home.html" data-pjax>首页</a> | |
| 10 | + <i class="fa fa-circle"></i> | |
| 11 | + </li> | |
| 12 | + <li> | |
| 13 | + <span class="active">基础信息</span> | |
| 14 | + <i class="fa fa-circle"></i> | |
| 15 | + </li> | |
| 16 | + <li> | |
| 17 | + <a ui-sref="employeeInfoManage">人员信息管理</a> | |
| 18 | + <i class="fa fa-circle"></i> | |
| 19 | + </li> | |
| 20 | + <li> | |
| 21 | + <span class="active">人员详细信息</span> | |
| 22 | + </li> | |
| 23 | +</ul> | |
| 24 | + | |
| 25 | +<div class="portlet light bordered" ng-controller="EmployeeInfoManageDetailCtrl as ctrl"> | |
| 26 | + <div class="portlet-title"> | |
| 27 | + <div class="caption"> | |
| 28 | + <i class="icon-equalizer font-red-sunglo"></i> <span | |
| 29 | + class="caption-subject font-red-sunglo bold uppercase" | |
| 30 | + ng-bind="ctrl.title"></span> | |
| 31 | + </div> | |
| 32 | + </div> | |
| 33 | + | |
| 34 | + <div class="portlet-body form"> | |
| 35 | + <form class="form-horizontal" novalidate name="myForm"> | |
| 36 | + <div class="form-body"> | |
| 37 | + <div class="form-group has-success has-feedback"> | |
| 38 | + <label class="col-md-2 control-label">所属公司*:</label> | |
| 39 | + <div class="col-md-3"> | |
| 40 | + <input type="text" class="form-control" name="company" | |
| 41 | + ng-model="ctrl.employeeInfoForDetail.company" readonly/> | |
| 42 | + </div> | |
| 43 | + </div> | |
| 44 | + <div class="form-group"> | |
| 45 | + <label class="col-md-2 control-label">所属分公司:</label> | |
| 46 | + <div class="col-md-3"> | |
| 47 | + <input type="text" class="form-control" name="brancheCompany" | |
| 48 | + ng-model="ctrl.employeeInfoForDetail.brancheCompany" readonly/> | |
| 49 | + </div> | |
| 50 | + </div> | |
| 51 | + <div class="form-group has-success has-feedback"> | |
| 52 | + <label class="col-md-2 control-label">工号*:</label> | |
| 53 | + <div class="col-md-3"> | |
| 54 | + <input type="text" class="form-control" name="jobCode" | |
| 55 | + ng-model="ctrl.employeeInfoForDetail.jobCode" readonly/> | |
| 56 | + </div> | |
| 57 | + </div> | |
| 58 | + <div class="form-group has-success has-feedback"> | |
| 59 | + <label class="col-md-2 control-label">姓名*:</label> | |
| 60 | + <div class="col-md-3"> | |
| 61 | + <input type="text" class="form-control" name="personnelName" | |
| 62 | + ng-model="ctrl.employeeInfoForDetail.personnelName" readonly/> | |
| 63 | + </div> | |
| 64 | + </div> | |
| 65 | + <div class="form-group"> | |
| 66 | + <label class="col-md-2 control-label">运营服务证书号:</label> | |
| 67 | + <div class="col-md-4"> | |
| 68 | + <input type="text" class="form-control" name="papersCode" | |
| 69 | + ng-model="ctrl.employeeInfoForDetail.papersCode" readonly/> | |
| 70 | + </div> | |
| 71 | + </div> | |
| 72 | + <div class="form-group"> | |
| 73 | + <label class="col-md-2 control-label">一卡通工作卡号:</label> | |
| 74 | + <div class="col-md-4"> | |
| 75 | + <input type="text" class="form-control" name="icCardCode" | |
| 76 | + ng-model="ctrl.employeeInfoForDetail.icCardCode" readonly/> | |
| 77 | + </div> | |
| 78 | + </div> | |
| 79 | + <div class="form-group"> | |
| 80 | + <label class="col-md-2 control-label">性别:</label> | |
| 81 | + <div class="col-md-4"> | |
| 82 | + <label class="radio-inline"> | |
| 83 | + <input type="radio" name="ledScreen" ng-value="'男性'" ng-model="ctrl.employeeInfoForDetail.personnelType" disabled/>男性 | |
| 84 | + </label> | |
| 85 | + <label class="radio-inline"> | |
| 86 | + <input type="radio" name="ledScreen" ng-value="'女性'" ng-model="ctrl.employeeInfoForDetail.personnelType" disabled/>女性 | |
| 87 | + </label> | |
| 88 | + </div> | |
| 89 | + </div> | |
| 90 | + <div class="form-group"> | |
| 91 | + <label class="col-md-2 control-label">工种:</label> | |
| 92 | + <div class="col-md-4"> | |
| 93 | + <input type="text" class="form-control" name="posts" | |
| 94 | + ng-model="ctrl.employeeInfoForDetail.posts" readonly/> | |
| 95 | + </div> | |
| 96 | + </div> | |
| 97 | + | |
| 98 | + <!-- 其他form-group --> | |
| 99 | + | |
| 100 | + </div> | |
| 101 | + </form> | |
| 102 | + </div> | |
| 103 | + | |
| 104 | +</div> | |
| 0 | 105 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/edit.html
0 → 100644
| 1 | +<div class="page-head"> | |
| 2 | + <div class="page-title"> | |
| 3 | + <h1>修改人员信息</h1> | |
| 4 | + </div> | |
| 5 | +</div> | |
| 6 | + | |
| 7 | +<ul class="page-breadcrumb breadcrumb"> | |
| 8 | + <li> | |
| 9 | + <a href="/pages/home.html" data-pjax>首页</a> | |
| 10 | + <i class="fa fa-circle"></i> | |
| 11 | + </li> | |
| 12 | + <li> | |
| 13 | + <span class="active">基础信息</span> | |
| 14 | + <i class="fa fa-circle"></i> | |
| 15 | + </li> | |
| 16 | + <li> | |
| 17 | + <a ui-sref="employeeInfoManage">人员信息管理</a> | |
| 18 | + <i class="fa fa-circle"></i> | |
| 19 | + </li> | |
| 20 | + <li> | |
| 21 | + <span class="active">修改人员信息</span> | |
| 22 | + </li> | |
| 23 | +</ul> | |
| 24 | + | |
| 25 | +<div class="portlet light bordered" ng-controller="EmployeeInfoManageFormCtrl as ctrl"> | |
| 26 | + <div class="portlet-title"> | |
| 27 | + <div class="caption"> | |
| 28 | + <i class="icon-equalizer font-red-sunglo"></i> <span | |
| 29 | + class="caption-subject font-red-sunglo bold uppercase">表单</span> | |
| 30 | + </div> | |
| 31 | + </div> | |
| 32 | + | |
| 33 | + <div class="portlet-body form"> | |
| 34 | + <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm"> | |
| 35 | + <div class="form-body"> | |
| 36 | + <div class="form-group has-success has-feedback"> | |
| 37 | + <label class="col-md-2 control-label">所属公司*:</label> | |
| 38 | + <div class="col-md-3"> | |
| 39 | + <div class="input-group"> | |
| 40 | + <ui-select ng-model="ctrl.employeeInfoForSave.gs_selected" | |
| 41 | + on-select="ctrl.gs_selected_change($item, $model)" | |
| 42 | + theme="bootstrap" name="gs" required> | |
| 43 | + <ui-select-match placeholder="请选择所属公司...">{{$select.selected.gsmc}}</ui-select-match> | |
| 44 | + <ui-select-choices repeat="item in ctrl.gses"> | |
| 45 | + <span ng-bind="item.gsmc"></span> | |
| 46 | + </ui-select-choices> | |
| 47 | + </ui-select> | |
| 48 | + <span class="input-group-btn"> | |
| 49 | + <button type="button" ng-click="ctrl.gs_selected_remove()" class="btn btn-default"> | |
| 50 | + <span class="glyphicon glyphicon-trash"></span> | |
| 51 | + </button> | |
| 52 | + </span> | |
| 53 | + </div> | |
| 54 | + </div> | |
| 55 | + <!-- 隐藏块,显示验证信息 --> | |
| 56 | + <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required"> | |
| 57 | + 公司必须选择 | |
| 58 | + </div> | |
| 59 | + </div> | |
| 60 | + | |
| 61 | + <!-- TODO --> | |
| 62 | + <div class="form-group"> | |
| 63 | + <label class="col-md-2 control-label">分公司:</label> | |
| 64 | + <div class="col-md-3"> | |
| 65 | + <select name="brancheCompanyCode" class="form-control"> | |
| 66 | + <option value="">请选择...</option> | |
| 67 | + <option value="1">分公司1</option> | |
| 68 | + <option value="2">分公司1</option> | |
| 69 | + <option value="3">分公司1</option> | |
| 70 | + <option value="4">分公司1</option> | |
| 71 | + </select> | |
| 72 | + </div> | |
| 73 | + </div> | |
| 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" | |
| 79 | + name="jobCode" ng-model="ctrl.employeeInfoForSave.jobCode" | |
| 80 | + required placeholder="请输入工号"/> | |
| 81 | + </div> | |
| 82 | + <!-- 隐藏块,显示验证信息 --> | |
| 83 | + <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.required"> | |
| 84 | + 工号必须填写 | |
| 85 | + </div> | |
| 86 | + </div> | |
| 87 | + | |
| 88 | + <div class="form-group has-success has-feedback"> | |
| 89 | + <label class="col-md-2 control-label">姓名*:</label> | |
| 90 | + <div class="col-md-3"> | |
| 91 | + <input type="text" class="form-control" | |
| 92 | + name="personnelName" ng-model="ctrl.employeeInfoForSave.personnelName" | |
| 93 | + required placeholder="请输入姓名"/> | |
| 94 | + </div> | |
| 95 | + <!-- 隐藏块,显示验证信息 --> | |
| 96 | + <div class="alert alert-danger well-sm" ng-show="myForm.personnelName.$error.required"> | |
| 97 | + 姓名必须填写 | |
| 98 | + </div> | |
| 99 | + </div> | |
| 100 | + | |
| 101 | + <div class="form-group"> | |
| 102 | + <label class="col-md-2 control-label">运营服务证书号:</label> | |
| 103 | + <div class="col-md-4"> | |
| 104 | + <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.papersCode" | |
| 105 | + placeholder="请输入运营服务证书号"/> | |
| 106 | + </div> | |
| 107 | + </div> | |
| 108 | + | |
| 109 | + <div class="form-group"> | |
| 110 | + <label class="col-md-2 control-label">一卡通号:</label> | |
| 111 | + <div class="col-md-4"> | |
| 112 | + <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.icCardCode" | |
| 113 | + placeholder="请输入一卡通工作卡号"/> | |
| 114 | + </div> | |
| 115 | + </div> | |
| 116 | + | |
| 117 | + <div class="form-group"> | |
| 118 | + <label class="col-md-2 control-label">性别:</label> | |
| 119 | + <div class="col-md-4"> | |
| 120 | + <label class="radio-inline"> | |
| 121 | + <input type="radio" name="personnelType" | |
| 122 | + ng-value="'男性'" ng-model="ctrl.employeeInfoForSave.personnelType"/>男性 | |
| 123 | + </label> | |
| 124 | + <label class="radio-inline"> | |
| 125 | + <input type="radio" name="personnelType" | |
| 126 | + ng-value="'女性'" ng-model="ctrl.employeeInfoForSave.personnelType"/>女性 | |
| 127 | + </label> | |
| 128 | + </div> | |
| 129 | + </div> | |
| 130 | + | |
| 131 | + <div class="form-group"> | |
| 132 | + <label class="col-md-2 control-label">工种:</label> | |
| 133 | + <div class="col-md-4"> | |
| 134 | + <div class="input-group"> | |
| 135 | + <ui-select ng-model="ctrl.employeeInfoForSave.posts_selected" | |
| 136 | + on-select="ctrl.posts_selected_change($item, $model)" | |
| 137 | + theme="bootstrap" name="posts"> | |
| 138 | + <ui-select-match placeholder="请选择工种...">{{$select.selected.type}}</ui-select-match> | |
| 139 | + <ui-select-choices repeat="item in ctrl.postes"> | |
| 140 | + <span ng-bind="item.type"></span> | |
| 141 | + </ui-select-choices> | |
| 142 | + </ui-select> | |
| 143 | + <span class="input-group-btn"> | |
| 144 | + <button type="button" ng-click="ctrl.posts_selected_remove()" class="btn btn-default"> | |
| 145 | + <span class="glyphicon glyphicon-trash"></span> | |
| 146 | + </button> | |
| 147 | + </span> | |
| 148 | + </div> | |
| 149 | + </div> | |
| 150 | + </div> | |
| 151 | + | |
| 152 | + <!-- 其他form-group --> | |
| 153 | + | |
| 154 | + </div> | |
| 155 | + | |
| 156 | + <div class="form-actions"> | |
| 157 | + <div class="row"> | |
| 158 | + <div class="col-md-offset-3 col-md-4"> | |
| 159 | + <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> 提交</button> | |
| 160 | + <a type="button" class="btn default" ui-sref="employeeInfoManage" ><i class="fa fa-times"></i> 取消</a> | |
| 161 | + </div> | |
| 162 | + </div> | |
| 163 | + </div> | |
| 164 | + | |
| 165 | + </form> | |
| 166 | + </div> | |
| 167 | + | |
| 168 | +</div> | |
| 0 | 169 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js
| 1 | 1 | // 人员信息管理 service controller等写在一起 |
| 2 | 2 | |
| 3 | -angular.module('ScheduleApp').factory('EmployeeInfoManageService', ['$resource', function($resource) { | |
| 4 | - // TODO:测试 | |
| 3 | +angular.module('ScheduleApp').factory('EmployeeInfoManageService', ['EmployeeInfoManageService_g', function(service) { | |
| 4 | + /** 公司字典 */ | |
| 5 | + var gses = [ | |
| 6 | + {gsdm: "55", gsmc: "上南公司"}, | |
| 7 | + {gsdm: "22", gsmc: "金高公司"}, | |
| 8 | + {gsdm: "05", gsmc: "杨高公司"}, | |
| 9 | + {gsdm: "26", gsmc: "南汇公司"} | |
| 10 | + ]; | |
| 11 | + /** 工种类型字典 */ | |
| 12 | + var postes = [ | |
| 13 | + {type: "公共汽电车驾驶员"}, | |
| 14 | + {type: "公共汽电车调度员"}, | |
| 15 | + {type: "公共汽电车售票员"}, | |
| 16 | + {type: "站员"}, | |
| 17 | + {type: "管理员"}, | |
| 18 | + {type: "安检员"}, | |
| 19 | + {type: "机务"}, | |
| 20 | + {type: "引导员"}, | |
| 21 | + {type: "乘务员"}, | |
| 22 | + {type: "车队长(线长、主"}, | |
| 23 | + {type: "公司管理人员"}, | |
| 24 | + {type: "警消人员"}, | |
| 25 | + {type: "票务人员"}, | |
| 26 | + {type: "其他服务人员"} | |
| 27 | + ]; | |
| 5 | 28 | |
| 29 | + /** 当前的查询条件信息 */ | |
| 30 | + var currentSearchCondition = { | |
| 31 | + //"carCode_like" : "", | |
| 32 | + //"insideCode_like" : "", | |
| 33 | + //"equipmentCode_like" : "", | |
| 34 | + //"carPlate_like" : "" | |
| 35 | + }; | |
| 6 | 36 | |
| 7 | - return $resource( | |
| 8 | - '/cci', | |
| 9 | - {}, | |
| 10 | - { | |
| 11 | - list: { | |
| 12 | - method: 'GET' | |
| 37 | + /** 当前第几页 */ | |
| 38 | + var currentPageNo = 1; | |
| 39 | + | |
| 40 | + return { | |
| 41 | + /** | |
| 42 | + * 获取公司字典。 | |
| 43 | + */ | |
| 44 | + getGses: function() { | |
| 45 | + return gses; | |
| 46 | + }, | |
| 47 | + /** | |
| 48 | + * 获取工种类型字典。 | |
| 49 | + */ | |
| 50 | + getPostes: function() { | |
| 51 | + return postes; | |
| 52 | + }, | |
| 53 | + /** | |
| 54 | + * 获取查询条件信息, | |
| 55 | + * 用于给controller用来和页面数据绑定。 | |
| 56 | + */ | |
| 57 | + getSearchCondition: function() { | |
| 58 | + return currentSearchCondition; | |
| 59 | + }, | |
| 60 | + /** | |
| 61 | + * 重置查询条件信息。 | |
| 62 | + */ | |
| 63 | + resetSearchCondition: function() { | |
| 64 | + var key; | |
| 65 | + for (key in currentSearchCondition) { | |
| 66 | + currentSearchCondition[key] = ""; | |
| 13 | 67 | } |
| 68 | + }, | |
| 69 | + /** | |
| 70 | + * 设置当前页码。 | |
| 71 | + * @param cpn 从1开始,后台是从0开始的 | |
| 72 | + */ | |
| 73 | + setCurrentPageNo: function(cpn) { | |
| 74 | + currentPageNo = cpn; | |
| 75 | + }, | |
| 76 | + /** | |
| 77 | + * 组装查询参数,返回一个promise查询结果。 | |
| 78 | + * @param params 查询参数 | |
| 79 | + * @return 返回一个 promise | |
| 80 | + */ | |
| 81 | + getPage: function() { | |
| 82 | + var params = currentSearchCondition; // 查询条件 | |
| 83 | + params.page = currentPageNo - 1; // 服务端页码从0开始 | |
| 84 | + return service.list(params).$promise; | |
| 85 | + }, | |
| 86 | + /** | |
| 87 | + * 获取明细信息。 | |
| 88 | + * @param id 车辆id | |
| 89 | + * @return 返回一个 promise | |
| 90 | + */ | |
| 91 | + getDetail: function(id) { | |
| 92 | + var params = {id: id}; | |
| 93 | + return service.get(params).$promise; | |
| 94 | + }, | |
| 95 | + /** | |
| 96 | + * 保存信息。 | |
| 97 | + * @param obj 车辆详细信息 | |
| 98 | + * @return 返回一个 promise | |
| 99 | + */ | |
| 100 | + saveDetail: function(obj) { | |
| 101 | + return service.save(obj).$promise; | |
| 14 | 102 | } |
| 15 | - ); | |
| 103 | + } | |
| 16 | 104 | |
| 17 | 105 | }]); |
| 18 | 106 | |
| 19 | -angular.module('ScheduleApp').controller('EmployeeInfoManageCtrl', ['EmployeeInfoManageService', function(employeeInfoManageService) { | |
| 107 | +angular.module('ScheduleApp').controller('EmployeeInfoManageCtrl', ['EmployeeInfoManageService', '$state', function(employeeInfoManageService, $state) { | |
| 108 | + var self = this; | |
| 20 | 109 | |
| 110 | + // 切换到form状态 | |
| 111 | + self.goForm = function() { | |
| 112 | + //alert("切换"); | |
| 113 | + $state.go("deviceInfoManage_form"); | |
| 114 | + } | |
| 21 | 115 | }]); |
| 22 | 116 | |
| 23 | 117 | angular.module('ScheduleApp').controller('EmployeeInfoManageListCtrl', ['EmployeeInfoManageService', function(employeeInfoManageService) { |
| 24 | - // TODO:模拟数据 | |
| 25 | 118 | var self = this; |
| 26 | - self.totalItems = 64; | |
| 27 | - self.currentPage = 4; | |
| 28 | - self.infos = {}; | |
| 119 | + self.pageInfo = { | |
| 120 | + totalItems : 0, | |
| 121 | + currentPage : 1, | |
| 122 | + infos: [] | |
| 123 | + }; | |
| 124 | + | |
| 125 | + // 初始创建的时候,获取一次列表数据 | |
| 126 | + employeeInfoManageService.getPage().then( | |
| 127 | + function(result) { | |
| 128 | + self.pageInfo.totalItems = result.totalElements; | |
| 129 | + self.pageInfo.currentPage = result.number + 1; | |
| 130 | + self.pageInfo.infos = result.content; | |
| 131 | + employeeInfoManageService.setCurrentPageNo(result.number + 1); | |
| 132 | + }, | |
| 133 | + function(result) { | |
| 134 | + alert("出错啦!"); | |
| 135 | + } | |
| 136 | + ); | |
| 137 | + | |
| 138 | + //$scope.$watch("ctrl.pageInfo.currentPage", function() { | |
| 139 | + // alert("dfdfdf"); | |
| 140 | + //}); | |
| 141 | + | |
| 142 | + // 翻页的时候调用 | |
| 29 | 143 | self.pageChanaged = function() { |
| 30 | - console.log("页面跳转到:" + currentPage.currentPage); | |
| 31 | - } | |
| 144 | + employeeInfoManageService.setCurrentPageNo(self.pageInfo.currentPage); | |
| 145 | + employeeInfoManageService.getPage().then( | |
| 146 | + function(result) { | |
| 147 | + self.pageInfo.totalItems = result.totalElements; | |
| 148 | + self.pageInfo.currentPage = result.number + 1; | |
| 149 | + self.pageInfo.infos = result.content; | |
| 150 | + employeeInfoManageService.setCurrentPageNo(result.number + 1); | |
| 151 | + }, | |
| 152 | + function(result) { | |
| 153 | + alert("出错啦!"); | |
| 154 | + } | |
| 155 | + ); | |
| 156 | + }; | |
| 157 | + // 获取查询条件数据 | |
| 158 | + self.searchCondition = function() { | |
| 159 | + return employeeInfoManageService.getSearchCondition(); | |
| 160 | + }; | |
| 161 | + // 重置查询条件 | |
| 162 | + self.resetSearchCondition = function() { | |
| 163 | + return employeeInfoManageService.resetSearchCondition(); | |
| 164 | + }; | |
| 32 | 165 | }]); |
| 33 | 166 | |
| 34 | -angular.module('ScheduleApp').controller('EmployeeInfoManageFormCtrl', ['EmployeeInfoManageService', function(employeeInfoManageService) { | |
| 167 | +angular.module('ScheduleApp').controller('EmployeeInfoManageFormCtrl', ['EmployeeInfoManageService', '$stateParams', '$state', function(employeeInfoManageService, $stateParams, $state) { | |
| 168 | + var self = this; | |
| 169 | + | |
| 170 | + // 欲保存的busInfo信息,绑定 | |
| 171 | + self.employeeInfoForSave = {}; | |
| 172 | + | |
| 173 | + // 公司 selectedItem | |
| 174 | + self.employeeInfoForSave.gs_selected = null; | |
| 175 | + self.gses = employeeInfoManageService.getGses(); | |
| 176 | + self.gs_selected_change = function($item, $model) { | |
| 177 | + self.employeeInfoForSave.companyCode = $item.gsdm; | |
| 178 | + self.employeeInfoForSave.company = $item.gsmc; | |
| 179 | + }; | |
| 180 | + self.gs_selected_remove = function() { | |
| 181 | + self.employeeInfoForSave.gs_selected = null; | |
| 182 | + self.employeeInfoForSave.companyCode = null; | |
| 183 | + self.employeeInfoForSave.company = null; | |
| 184 | + }; | |
| 185 | + | |
| 186 | + // 工种 selectedItem | |
| 187 | + self.employeeInfoForSave.posts_selected = null; | |
| 188 | + self.postes = employeeInfoManageService.getPostes(); | |
| 189 | + self.posts_selected_change = function($item, $model) { | |
| 190 | + self.employeeInfoForSave.posts = $item.type; | |
| 191 | + }; | |
| 192 | + self.posts_selected_remove = function() { | |
| 193 | + self.employeeInfoForSave.posts_selected = null; | |
| 194 | + self.employeeInfoForSave.posts = null; | |
| 195 | + }; | |
| 196 | + | |
| 197 | + // 获取传过来的id,有的话就是修改,获取一遍数据 | |
| 198 | + var id = $stateParams.id; | |
| 199 | + if (id) { | |
| 200 | + self.employeeInfoForSave.id = id; | |
| 201 | + employeeInfoManageService.getDetail(id).then( | |
| 202 | + function(result) { | |
| 203 | + var key; | |
| 204 | + for (key in result) { | |
| 205 | + self.employeeInfoForSave[key] = result[key]; | |
| 206 | + } | |
| 207 | + // 填写所有的 select 控件选中框数据 | |
| 208 | + // 公司字典 | |
| 209 | + if (self.employeeInfoForSave.companyCode) { | |
| 210 | + angular.forEach(self.gses, function(data) { | |
| 211 | + if (self.employeeInfoForSave.companyCode == data.gsdm) { | |
| 212 | + self.employeeInfoForSave.gs_selected = data; | |
| 213 | + } | |
| 214 | + }); | |
| 215 | + } | |
| 216 | + // 工种字典 | |
| 217 | + if (self.employeeInfoForSave.posts) { | |
| 218 | + angular.forEach(self.postes, function(data) { | |
| 219 | + if (self.employeeInfoForSave.posts == data.type) { | |
| 220 | + self.employeeInfoForSave.posts_selected = data; | |
| 221 | + } | |
| 222 | + }); | |
| 223 | + } | |
| 224 | + | |
| 225 | + }, | |
| 226 | + function(result) { | |
| 227 | + alert("出错啦!"); | |
| 228 | + } | |
| 229 | + ); | |
| 230 | + } | |
| 231 | + | |
| 232 | + // 提交方法 | |
| 233 | + self.submit = function() { | |
| 234 | + console.log(self.employeeInfoForSave); | |
| 235 | + employeeInfoManageService.saveDetail(self.employeeInfoForSave).then( | |
| 236 | + function(result) { | |
| 237 | + // TODO:弹出框方式以后改 | |
| 238 | + if (result.status == 'SUCCESS') { | |
| 239 | + alert("保存成功!"); | |
| 240 | + $state.go("employeeInfoManage"); | |
| 241 | + } else { | |
| 242 | + alert("保存异常!"); | |
| 243 | + } | |
| 244 | + }, | |
| 245 | + function(result) { | |
| 246 | + // TODO:弹出框方式以后改 | |
| 247 | + alert("出错啦!"); | |
| 248 | + } | |
| 249 | + ); | |
| 250 | + }; | |
| 251 | + | |
| 35 | 252 | |
| 36 | 253 | }]); |
| 37 | 254 | |
| 38 | -angular.module('ScheduleApp').controller('EmployeeInfoManageDetailCtrl', ['EmployeeInfoManageService', function(employeeInfoManageService) { | |
| 255 | +angular.module('ScheduleApp').controller('EmployeeInfoManageDetailCtrl', ['EmployeeInfoManageService', '$stateParams', function(employeeInfoManageService, $stateParams) { | |
| 256 | + var self = this; | |
| 257 | + self.title = ""; | |
| 258 | + self.employeeInfoForDetail = {}; | |
| 259 | + self.employeeInfoForDetail.id = $stateParams.id; | |
| 39 | 260 | |
| 261 | + // 当转向到此页面时,就获取明细信息并绑定 | |
| 262 | + employeeInfoManageService.getDetail($stateParams.id).then( | |
| 263 | + function(result) { | |
| 264 | + var key; | |
| 265 | + for (key in result) { | |
| 266 | + self.employeeInfoForDetail[key] = result[key]; | |
| 267 | + } | |
| 268 | + | |
| 269 | + self.title = "员工 " + self.employeeInfoForDetail.personnelName + " 详细信息"; | |
| 270 | + }, | |
| 271 | + function(result) { | |
| 272 | + // TODO:弹出框方式以后改 | |
| 273 | + alert("出错啦!"); | |
| 274 | + } | |
| 275 | + ); | |
| 40 | 276 | }]); |
| 41 | 277 | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/form.html
| 1 | +<div class="page-head"> | |
| 2 | + <div class="page-title"> | |
| 3 | + <h1>添加人员信息</h1> | |
| 4 | + </div> | |
| 5 | +</div> | |
| 6 | + | |
| 7 | +<ul class="page-breadcrumb breadcrumb"> | |
| 8 | + <li> | |
| 9 | + <a href="/pages/home.html" data-pjax>首页</a> | |
| 10 | + <i class="fa fa-circle"></i> | |
| 11 | + </li> | |
| 12 | + <li> | |
| 13 | + <span class="active">基础信息</span> | |
| 14 | + <i class="fa fa-circle"></i> | |
| 15 | + </li> | |
| 16 | + <li> | |
| 17 | + <a ui-sref="employeeInfoManage">人员信息管理</a> | |
| 18 | + <i class="fa fa-circle"></i> | |
| 19 | + </li> | |
| 20 | + <li> | |
| 21 | + <span class="active">添加人员信息</span> | |
| 22 | + </li> | |
| 23 | +</ul> | |
| 24 | + | |
| 25 | +<div class="portlet light bordered" ng-controller="EmployeeInfoManageFormCtrl as ctrl"> | |
| 26 | + <div class="portlet-title"> | |
| 27 | + <div class="caption"> | |
| 28 | + <i class="icon-equalizer font-red-sunglo"></i> <span | |
| 29 | + class="caption-subject font-red-sunglo bold uppercase">表单</span> | |
| 30 | + </div> | |
| 31 | + </div> | |
| 32 | + | |
| 33 | + <div class="portlet-body form"> | |
| 34 | + <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm"> | |
| 35 | + <div class="form-body"> | |
| 36 | + <div class="form-group has-success has-feedback"> | |
| 37 | + <label class="col-md-2 control-label">所属公司*:</label> | |
| 38 | + <div class="col-md-3"> | |
| 39 | + <div class="input-group"> | |
| 40 | + <ui-select ng-model="ctrl.employeeInfoForSave.gs_selected" | |
| 41 | + on-select="ctrl.gs_selected_change($item, $model)" | |
| 42 | + theme="bootstrap" name="gs" required> | |
| 43 | + <ui-select-match placeholder="请选择所属公司...">{{$select.selected.gsmc}}</ui-select-match> | |
| 44 | + <ui-select-choices repeat="item in ctrl.gses"> | |
| 45 | + <span ng-bind="item.gsmc"></span> | |
| 46 | + </ui-select-choices> | |
| 47 | + </ui-select> | |
| 48 | + <span class="input-group-btn"> | |
| 49 | + <button type="button" ng-click="ctrl.gs_selected_remove()" class="btn btn-default"> | |
| 50 | + <span class="glyphicon glyphicon-trash"></span> | |
| 51 | + </button> | |
| 52 | + </span> | |
| 53 | + </div> | |
| 54 | + </div> | |
| 55 | + <!-- 隐藏块,显示验证信息 --> | |
| 56 | + <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required"> | |
| 57 | + 公司必须选择 | |
| 58 | + </div> | |
| 59 | + </div> | |
| 60 | + | |
| 61 | + <!-- TODO --> | |
| 62 | + <div class="form-group"> | |
| 63 | + <label class="col-md-2 control-label">分公司:</label> | |
| 64 | + <div class="col-md-3"> | |
| 65 | + <select name="brancheCompanyCode" class="form-control"> | |
| 66 | + <option value="">请选择...</option> | |
| 67 | + <option value="1">分公司1</option> | |
| 68 | + <option value="2">分公司1</option> | |
| 69 | + <option value="3">分公司1</option> | |
| 70 | + <option value="4">分公司1</option> | |
| 71 | + </select> | |
| 72 | + </div> | |
| 73 | + </div> | |
| 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" | |
| 79 | + name="jobCode" ng-model="ctrl.employeeInfoForSave.jobCode" | |
| 80 | + required placeholder="请输入工号"/> | |
| 81 | + </div> | |
| 82 | + <!-- 隐藏块,显示验证信息 --> | |
| 83 | + <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.required"> | |
| 84 | + 工号必须填写 | |
| 85 | + </div> | |
| 86 | + </div> | |
| 87 | + | |
| 88 | + <div class="form-group has-success has-feedback"> | |
| 89 | + <label class="col-md-2 control-label">姓名*:</label> | |
| 90 | + <div class="col-md-3"> | |
| 91 | + <input type="text" class="form-control" | |
| 92 | + name="personnelName" ng-model="ctrl.employeeInfoForSave.personnelName" | |
| 93 | + required placeholder="请输入姓名"/> | |
| 94 | + </div> | |
| 95 | + <!-- 隐藏块,显示验证信息 --> | |
| 96 | + <div class="alert alert-danger well-sm" ng-show="myForm.personnelName.$error.required"> | |
| 97 | + 姓名必须填写 | |
| 98 | + </div> | |
| 99 | + </div> | |
| 100 | + | |
| 101 | + <div class="form-group"> | |
| 102 | + <label class="col-md-2 control-label">运营服务证书号:</label> | |
| 103 | + <div class="col-md-4"> | |
| 104 | + <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.papersCode" | |
| 105 | + placeholder="请输入运营服务证书号"/> | |
| 106 | + </div> | |
| 107 | + </div> | |
| 108 | + | |
| 109 | + <div class="form-group"> | |
| 110 | + <label class="col-md-2 control-label">一卡通号:</label> | |
| 111 | + <div class="col-md-4"> | |
| 112 | + <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.icCardCode" | |
| 113 | + placeholder="请输入一卡通工作卡号"/> | |
| 114 | + </div> | |
| 115 | + </div> | |
| 116 | + | |
| 117 | + <div class="form-group"> | |
| 118 | + <label class="col-md-2 control-label">性别:</label> | |
| 119 | + <div class="col-md-4"> | |
| 120 | + <label class="radio-inline"> | |
| 121 | + <input type="radio" name="personnelType" | |
| 122 | + ng-value="'男性'" ng-model="ctrl.employeeInfoForSave.personnelType"/>男性 | |
| 123 | + </label> | |
| 124 | + <label class="radio-inline"> | |
| 125 | + <input type="radio" name="personnelType" | |
| 126 | + ng-value="'女性'" ng-model="ctrl.employeeInfoForSave.personnelType"/>女性 | |
| 127 | + </label> | |
| 128 | + </div> | |
| 129 | + </div> | |
| 130 | + | |
| 131 | + <div class="form-group"> | |
| 132 | + <label class="col-md-2 control-label">工种:</label> | |
| 133 | + <div class="col-md-4"> | |
| 134 | + <div class="input-group"> | |
| 135 | + <ui-select ng-model="ctrl.employeeInfoForSave.posts_selected" | |
| 136 | + on-select="ctrl.posts_selected_change($item, $model)" | |
| 137 | + theme="bootstrap" name="posts"> | |
| 138 | + <ui-select-match placeholder="请选择工种...">{{$select.selected.type}}</ui-select-match> | |
| 139 | + <ui-select-choices repeat="item in ctrl.postes"> | |
| 140 | + <span ng-bind="item.type"></span> | |
| 141 | + </ui-select-choices> | |
| 142 | + </ui-select> | |
| 143 | + <span class="input-group-btn"> | |
| 144 | + <button type="button" ng-click="ctrl.posts_selected_remove()" class="btn btn-default"> | |
| 145 | + <span class="glyphicon glyphicon-trash"></span> | |
| 146 | + </button> | |
| 147 | + </span> | |
| 148 | + </div> | |
| 149 | + </div> | |
| 150 | + </div> | |
| 151 | + | |
| 152 | + <!-- 其他form-group --> | |
| 153 | + | |
| 154 | + </div> | |
| 155 | + | |
| 156 | + <div class="form-actions"> | |
| 157 | + <div class="row"> | |
| 158 | + <div class="col-md-offset-3 col-md-4"> | |
| 159 | + <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> 提交</button> | |
| 160 | + <a type="button" class="btn default" ui-sref="employeeInfoManage" ><i class="fa fa-times"></i> 取消</a> | |
| 161 | + </div> | |
| 162 | + </div> | |
| 163 | + </div> | |
| 164 | + | |
| 165 | + </form> | |
| 166 | + </div> | |
| 167 | + | |
| 168 | +</div> | |
| 0 | 169 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/index.html
| ... | ... | @@ -27,7 +27,7 @@ |
| 27 | 27 | <span class="caption-subject bold uppercase">人员信息表</span> |
| 28 | 28 | </div> |
| 29 | 29 | <div class="actions"> |
| 30 | - <a href="javascirpt:" class="btn btn-circle blue"> | |
| 30 | + <a href="javascirpt:" class="btn btn-circle blue" ng-click="ctrl.goForm()"> | |
| 31 | 31 | <i class="fa fa-plus"></i> |
| 32 | 32 | 添加人员信息 |
| 33 | 33 | </a> |
| ... | ... | @@ -58,7 +58,7 @@ |
| 58 | 58 | </div> |
| 59 | 59 | |
| 60 | 60 | <div class="portlet-body"> |
| 61 | - <div ui-view="list"></div> | |
| 61 | + <div ui-view="employeeInfoManage_list"></div> | |
| 62 | 62 | </div> |
| 63 | 63 | </div> |
| 64 | 64 | </div> | ... | ... |
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/list.html
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | <div ng-controller="EmployeeInfoManageListCtrl as ctrl"> |
| 3 | 3 | <table class="table table-striped table-bordered table-hover table-checkable order-column"> |
| 4 | 4 | <thead> |
| 5 | - <tr> | |
| 5 | + <tr role="row" class="heading"> | |
| 6 | 6 | <th> |
| 7 | 7 | <input type="checkbox" class="group-checkable"/> |
| 8 | 8 | </th> |
| ... | ... | @@ -16,16 +16,85 @@ |
| 16 | 16 | <th>工种</th> |
| 17 | 17 | <th>一卡通号</th> |
| 18 | 18 | <th>运营服务证号</th> |
| 19 | - <th>操作</th> | |
| 19 | + <th width="14%">操作</th> | |
| 20 | + </tr> | |
| 21 | + <tr role="row" class="filter"> | |
| 22 | + <td></td> | |
| 23 | + <td></td> | |
| 24 | + <td> | |
| 25 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().personnelCode_like"/> | |
| 26 | + </td> | |
| 27 | + <td> | |
| 28 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().personnelName_like"/> | |
| 29 | + </td> | |
| 30 | + <td> | |
| 31 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().jobCode_like"/> | |
| 32 | + </td> | |
| 33 | + <td> | |
| 34 | + <select class="form-contrl form-filter"> | |
| 35 | + <option value="">请选择</option> | |
| 36 | + <option value="男">男</option> | |
| 37 | + <option value="女">女</option> | |
| 38 | + </select> | |
| 39 | + </td> | |
| 40 | + <td> | |
| 41 | + <select class="form-control form-filter " > | |
| 42 | + <option value="">请选择...</option> | |
| 43 | + <option value="55">上南公司</option> | |
| 44 | + <option value="22">金高公司</option> | |
| 45 | + <option value="05">杨高公司</option> | |
| 46 | + <option value="26">南汇公司</option> | |
| 47 | + </select> | |
| 48 | + </td> | |
| 49 | + <td> | |
| 50 | + <select class="form-control form-filter " > | |
| 51 | + <option value="">请选择...</option> | |
| 52 | + </select> | |
| 53 | + </td> | |
| 54 | + <td> | |
| 55 | + <select class="form-control form-filter " > | |
| 56 | + <option value="">请选择...</option> | |
| 57 | + <option value="公共汽电车驾驶员">公共汽电车驾驶员</option> | |
| 58 | + <option value="公共汽电车调度员">公共汽电车调度员</option> | |
| 59 | + <option value="公共汽电车售票员">公共汽电车售票员</option> | |
| 60 | + <option value="站员">站员</option> | |
| 61 | + <option value="管理员">管理员</option> | |
| 62 | + <option value="安检员">安检员</option> | |
| 63 | + <option value="机务">机务</option> | |
| 64 | + <option value="引导员">引导员</option> | |
| 65 | + <option value="乘务员">乘务员</option> | |
| 66 | + <option value="车队长(线长、主">车队长(线长、主</option> | |
| 67 | + <option value="公司管理人员">公司管理人员</option> | |
| 68 | + <option value="警消人员">警消人员</option> | |
| 69 | + <option value="票务人员">票务人员</option> | |
| 70 | + <option value="其他服务人员">其他服务人员</option> | |
| 71 | + </select> | |
| 72 | + </td> | |
| 73 | + <td> | |
| 74 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().icCardCode_like"/> | |
| 75 | + </td> | |
| 76 | + <td> | |
| 77 | + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().papersCode_like"/> | |
| 78 | + </td> | |
| 79 | + <td> | |
| 80 | + <button class="btn btn-sm green btn-outline filter-submit margin-bottom" | |
| 81 | + ng-click="ctrl.pageChanaged()"> | |
| 82 | + <i class="fa fa-search"></i> 搜索</button> | |
| 83 | + | |
| 84 | + <button class="btn btn-sm red btn-outline filter-cancel" | |
| 85 | + ng-click="ctrl.resetSearchCondition()"> | |
| 86 | + <i class="fa fa-times"></i> 重置</button> | |
| 87 | + </td> | |
| 88 | + | |
| 20 | 89 | </tr> |
| 21 | 90 | </thead> |
| 22 | 91 | <tbody> |
| 23 | - <tr ng-repeat="info in ctrl.infos" class="odd gradeX"> | |
| 92 | + <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX"> | |
| 24 | 93 | <td> |
| 25 | 94 | <input type="checkbox"/> |
| 26 | 95 | </td> |
| 27 | 96 | <td> |
| 28 | - <span>TODO</span> | |
| 97 | + <span ng-bind="$index + 1"></span> | |
| 29 | 98 | </td> |
| 30 | 99 | <td> |
| 31 | 100 | <span ng-bind="info.personnelCode"></span> |
| ... | ... | @@ -46,7 +115,7 @@ |
| 46 | 115 | <span ng-bind="info.brancheCompany"></span> |
| 47 | 116 | </td> |
| 48 | 117 | <td> |
| 49 | - <span>TODO</span> | |
| 118 | + <span ng-bind="info.posts"></span> | |
| 50 | 119 | </td> |
| 51 | 120 | <td> |
| 52 | 121 | <span ng-bind="info.icCardCode"></span> |
| ... | ... | @@ -55,18 +124,26 @@ |
| 55 | 124 | <span ng-bind="info.papersCode"></span> |
| 56 | 125 | </td> |
| 57 | 126 | <td> |
| 58 | - <span>TODO</span> | |
| 127 | + <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> | |
| 128 | + <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> | |
| 129 | + <a ui-sref="employeeInfoManage_detail({id: info.id})" class="btn default blue-stripe btn-sm"> 详细 </a> | |
| 130 | + <a ui-sref="employeeInfoManage_edit({id: info.id})" class="btn default blue-stripe btn-sm"> 修改 </a> | |
| 59 | 131 | </td> |
| 60 | 132 | </tr> |
| 61 | 133 | </tbody> |
| 62 | 134 | </table> |
| 63 | 135 | |
| 64 | 136 | <div style="text-align: right;"> |
| 65 | - <uib-pagination total-items="ctrl.totalItems" | |
| 66 | - ng-model="ctrl.currentPage" | |
| 67 | - ng-change="ctrl.pageChanged()" | |
| 137 | + <uib-pagination total-items="ctrl.pageInfo.totalItems" | |
| 138 | + ng-model="ctrl.pageInfo.currentPage" | |
| 139 | + ng-change="ctrl.pageChanaged()" | |
| 140 | + rotate="false" | |
| 141 | + max-size="10" | |
| 142 | + boundary-links="true" | |
| 143 | + first-text="首页" | |
| 68 | 144 | previous-text="上一页" |
| 69 | - next-text="下一页"> | |
| 145 | + next-text="下一页" | |
| 146 | + last-text="尾页"> | |
| 70 | 147 | </uib-pagination> |
| 71 | 148 | </div> |
| 72 | 149 | </div> |
| 73 | 150 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/main.js
| ... | ... | @@ -131,7 +131,7 @@ ScheduleApp.config(['$stateProvider', '$urlRouterProvider', function($stateProvi |
| 131 | 131 | "": { |
| 132 | 132 | templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/index.html' |
| 133 | 133 | }, |
| 134 | - "list@employeeInfoManage": { | |
| 134 | + "employeeInfoManage_list@employeeInfoManage": { | |
| 135 | 135 | templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/list.html' |
| 136 | 136 | } |
| 137 | 137 | }, |
| ... | ... | @@ -148,6 +148,61 @@ ScheduleApp.config(['$stateProvider', '$urlRouterProvider', function($stateProvi |
| 148 | 148 | }] |
| 149 | 149 | } |
| 150 | 150 | }) |
| 151 | + .state("employeeInfoManage_form", { | |
| 152 | + url: '/employeeInfoManage_form', | |
| 153 | + views: { | |
| 154 | + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/form.html'} | |
| 155 | + }, | |
| 156 | + resolve: { | |
| 157 | + deps: ['$ocLazyLoad', function($ocLazyLoad) { | |
| 158 | + return $ocLazyLoad.load({ | |
| 159 | + name: 'employeeInfoManage_form_module', | |
| 160 | + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置 | |
| 161 | + files: [ | |
| 162 | + "assets/bower_components/angular-ui-select/dist/select.min.css", | |
| 163 | + "assets/bower_components/angular-ui-select/dist/select.min.js", | |
| 164 | + "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js" | |
| 165 | + ] | |
| 166 | + }); | |
| 167 | + }] | |
| 168 | + } | |
| 169 | + }) | |
| 170 | + .state("employeeInfoManage_edit", { | |
| 171 | + url: '/employeeInfoManage_edit/:id', | |
| 172 | + views: { | |
| 173 | + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/edit.html'} | |
| 174 | + }, | |
| 175 | + resolve: { | |
| 176 | + deps: ['$ocLazyLoad', function($ocLazyLoad) { | |
| 177 | + return $ocLazyLoad.load({ | |
| 178 | + name: 'employeeInfoManage_edit_module', | |
| 179 | + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置 | |
| 180 | + files: [ | |
| 181 | + "assets/bower_components/angular-ui-select/dist/select.min.css", | |
| 182 | + "assets/bower_components/angular-ui-select/dist/select.min.js", | |
| 183 | + "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js" | |
| 184 | + ] | |
| 185 | + }); | |
| 186 | + }] | |
| 187 | + } | |
| 188 | + }) | |
| 189 | + .state("employeeInfoManage_detail", { | |
| 190 | + url: '/employeeInfoManage_detail/:id', | |
| 191 | + views: { | |
| 192 | + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/detail.html'} | |
| 193 | + }, | |
| 194 | + resolve: { | |
| 195 | + deps: ['$ocLazyLoad', function($ocLazyLoad) { | |
| 196 | + return $ocLazyLoad.load({ | |
| 197 | + name: 'employeeInfoManage_module', | |
| 198 | + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置 | |
| 199 | + files: [ | |
| 200 | + "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js" | |
| 201 | + ] | |
| 202 | + }); | |
| 203 | + }] | |
| 204 | + } | |
| 205 | + }) | |
| 151 | 206 | |
| 152 | 207 | // 车辆设备信息模块配置 |
| 153 | 208 | .state("deviceInfoManage", { |
| ... | ... | @@ -156,7 +211,7 @@ ScheduleApp.config(['$stateProvider', '$urlRouterProvider', function($stateProvi |
| 156 | 211 | "": { |
| 157 | 212 | templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/index.html' |
| 158 | 213 | }, |
| 159 | - "list@deviceInfoManage": { | |
| 214 | + "deviceInfoManage_list@deviceInfoManage": { | |
| 160 | 215 | templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/list.html' |
| 161 | 216 | } |
| 162 | 217 | }, |
| ... | ... | @@ -173,6 +228,68 @@ ScheduleApp.config(['$stateProvider', '$urlRouterProvider', function($stateProvi |
| 173 | 228 | }] |
| 174 | 229 | } |
| 175 | 230 | }) |
| 231 | + .state("deviceInfoManage_form", { | |
| 232 | + url: '/deviceInfoManage_form', | |
| 233 | + views: { | |
| 234 | + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/form.html'} | |
| 235 | + }, | |
| 236 | + resolve: { | |
| 237 | + deps: ['$ocLazyLoad', function($ocLazyLoad) { | |
| 238 | + return $ocLazyLoad.load({ | |
| 239 | + name: 'deviceInfoManage_form_module', | |
| 240 | + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置 | |
| 241 | + files: [ | |
| 242 | + "assets/bower_components/angular-ui-select/dist/select.min.css", | |
| 243 | + "assets/bower_components/angular-ui-select/dist/select.min.js", | |
| 244 | + "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js" | |
| 245 | + ] | |
| 246 | + }); | |
| 247 | + }] | |
| 248 | + } | |
| 249 | + }) | |
| 250 | + .state("deviceInfoManage_edit", { | |
| 251 | + url: '/deviceInfoManage_edit/:id', | |
| 252 | + views: { | |
| 253 | + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/edit.html'} | |
| 254 | + }, | |
| 255 | + resolve: { | |
| 256 | + deps: ['$ocLazyLoad', function($ocLazyLoad) { | |
| 257 | + return $ocLazyLoad.load({ | |
| 258 | + name: 'deviceInfoManage_edit_module', | |
| 259 | + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置 | |
| 260 | + files: [ | |
| 261 | + "assets/bower_components/angular-ui-select/dist/select.min.css", | |
| 262 | + "assets/bower_components/angular-ui-select/dist/select.min.js", | |
| 263 | + "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js" | |
| 264 | + ] | |
| 265 | + }); | |
| 266 | + }] | |
| 267 | + } | |
| 268 | + }) | |
| 269 | + .state("deviceInfoManage_detail", { | |
| 270 | + url: '/deviceInfoManage_detail/:id', | |
| 271 | + views: { | |
| 272 | + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/detail.html'} | |
| 273 | + }, | |
| 274 | + resolve: { | |
| 275 | + deps: ['$ocLazyLoad', function($ocLazyLoad) { | |
| 276 | + return $ocLazyLoad.load({ | |
| 277 | + name: 'deviceInfoManage_module', | |
| 278 | + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置 | |
| 279 | + files: [ | |
| 280 | + "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js" | |
| 281 | + ] | |
| 282 | + }); | |
| 283 | + }] | |
| 284 | + } | |
| 285 | + }) | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 176 | 293 | |
| 177 | 294 | // 车辆配置模块 |
| 178 | 295 | .state("busConfig", { |
| ... | ... | @@ -273,6 +390,48 @@ angular.module('ScheduleApp').factory('BusInfoManageService_g', ['$resource', fu |
| 273 | 390 | } |
| 274 | 391 | ); |
| 275 | 392 | }]); |
| 393 | +// 人员信息service | |
| 394 | +angular.module('ScheduleApp').factory('EmployeeInfoManageService_g', ['$resource', function($resource) { | |
| 395 | + return $resource( | |
| 396 | + '/personnel/:id', | |
| 397 | + {order: 'jobCode', direction: 'ASC', id: '@id_route'}, | |
| 398 | + { | |
| 399 | + list: { | |
| 400 | + method: 'GET', | |
| 401 | + params: { | |
| 402 | + page: 0 | |
| 403 | + } | |
| 404 | + }, | |
| 405 | + get: { | |
| 406 | + method: 'GET' | |
| 407 | + }, | |
| 408 | + save: { | |
| 409 | + method: 'POST' | |
| 410 | + } | |
| 411 | + } | |
| 412 | + ); | |
| 413 | +}]); | |
| 414 | +// 车辆设备信息service | |
| 415 | +angular.module('ScheduleApp').factory('DeviceInfoManageService_g', ['$resource', function($resource) { | |
| 416 | + return $resource( | |
| 417 | + '/carDevice/:id', | |
| 418 | + {order: 'createDate', direction: 'DESC', id: '@id_route'}, | |
| 419 | + { | |
| 420 | + list: { | |
| 421 | + method: 'GET', | |
| 422 | + params: { | |
| 423 | + page: 0 | |
| 424 | + } | |
| 425 | + }, | |
| 426 | + get: { | |
| 427 | + method: 'GET' | |
| 428 | + }, | |
| 429 | + save: { | |
| 430 | + method: 'POST' | |
| 431 | + } | |
| 432 | + } | |
| 433 | + ); | |
| 434 | +}]); | |
| 276 | 435 | |
| 277 | 436 | |
| 278 | 437 | ... | ... |
src/test/java/com/bsth/service/schedule/rules/DroolsRulesTest.java
0 → 100644
| 1 | +package com.bsth.service.schedule.rules; | |
| 2 | + | |
| 3 | +import com.bsth.Application; | |
| 4 | +import org.junit.Test; | |
| 5 | +import org.junit.runner.RunWith; | |
| 6 | +import org.kie.api.KieBase; | |
| 7 | +import org.kie.api.runtime.KieSession; | |
| 8 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 9 | +import org.springframework.boot.test.SpringApplicationConfiguration; | |
| 10 | +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; | |
| 11 | + | |
| 12 | +import java.util.ArrayList; | |
| 13 | +import java.util.List; | |
| 14 | + | |
| 15 | +@RunWith(SpringJUnit4ClassRunner.class) | |
| 16 | +@SpringApplicationConfiguration(classes = {Application.class}) | |
| 17 | +public class DroolsRulesTest { | |
| 18 | + | |
| 19 | + @Autowired | |
| 20 | + private KieBase kieBase; | |
| 21 | + | |
| 22 | + @Test | |
| 23 | + public void helloWorldDrlTest() throws Exception { | |
| 24 | + // 1、创建session,内部配置的是stateful | |
| 25 | + KieSession session = kieBase.newKieSession(); | |
| 26 | + | |
| 27 | + // 1.1 设置gloable对象,在drl中通过别名使用 | |
| 28 | + List<String> gloableList = new ArrayList<String>(); | |
| 29 | + session.setGlobal("list", gloableList); | |
| 30 | + | |
| 31 | + // 1.2 可以设置一些监听器,再议 | |
| 32 | + | |
| 33 | + // 2、创建fact对象 | |
| 34 | + Message message = new Message(); | |
| 35 | + message.setMessage("Hello World"); | |
| 36 | + message.setStatus(Message.HELLO); | |
| 37 | + session.insert(message); | |
| 38 | + | |
| 39 | + // 3、执行rule | |
| 40 | + session.fireAllRules(); | |
| 41 | + | |
| 42 | + System.out.println(gloableList); | |
| 43 | + | |
| 44 | + // 4、执行完毕销毁,有日志的也要关闭 | |
| 45 | + session.dispose(); | |
| 46 | + } | |
| 47 | +} | ... | ... |
src/test/resources/.gitkeep
0 → 100644