Commit ac5b06cc authored by gaozhentao's avatar gaozhentao

完成了,改了点数据库,页面等等,具体忘了

parent 9132c687

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

......@@ -25,8 +25,6 @@
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.6.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.5" level="project" />
......@@ -138,5 +136,27 @@
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
<orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.4.0" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-test:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-test:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
<orderEntry type="library" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" name="Maven: org.assertj:assertj-core:3.9.1" level="project" />
<orderEntry type="library" name="Maven: org.mockito:mockito-core:2.15.0" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy-agent:1.7.11" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-test:5.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.xmlunit:xmlunit-core:2.5.1" level="project" />
<orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
</component>
</module>
\ No newline at end of file
......@@ -104,5 +104,21 @@
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
......@@ -15,14 +15,15 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
public class Main {
@Bean
/* @Bean
public ServletRegistrationBean jerseyServlet() {
ServletRegistrationBean registration = new ServletRegistrationBean(
new ServletContainer(), "/rest/*");
new ServletContainer(), "/");
registration.addInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS,
JerseyConfig.class.getName());
return registration;
}
}*/
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
......
......@@ -3,13 +3,19 @@ package com.yingxin.prms.api;
import com.yingxin.prms.service.business.Manager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.util.List;
@Component
@Path("perf")
@RestController
@RequestMapping("/rest/perf")
@CrossOrigin(origins = "*")
public class PerformanceApi {
private final Manager manager;
......@@ -25,9 +31,7 @@ public class PerformanceApi {
*
* @return 返回 JSON(查询结果及查询条件)
*/
@GET
@Path("selectSecondIpAndPort")
@Produces(MediaType.APPLICATION_JSON)
@GetMapping("selectSecondIpAndPort")
public List selectSecondIpAndPort() {
return manager.selectSecondIpAndPort();
}
......
......@@ -5,7 +5,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.task.AsyncTaskExecutor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.*;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
......@@ -14,8 +14,10 @@ import javax.ws.rs.core.MediaType;
import java.util.HashMap;
import java.util.Map;
@Component
@Path("rel")
@RestController
@RequestMapping("/rest/rel")
@CrossOrigin(origins = "*")
public class ReliabilityApi {
private final Manager manager;
......@@ -32,16 +34,16 @@ public class ReliabilityApi {
*
* @return 集群信息json字符串
*/
@GET
@Path("selectClusterStatus")
@Produces(MediaType.APPLICATION_JSON)
@GetMapping("selectClusterStatus")
public Map selectClusterStatus() {
return manager.selectClusterStatus();
}
@GetMapping("ddmo")
public void ddmo() {
manager.ddemo();
}
@GET
@Path("getThreadPoolStatus")
@Produces(MediaType.APPLICATION_JSON)
@GetMapping("getThreadPoolStatus")
public Map<String, Object> getThreadPoolStus() {
ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor)taskExecutor;
int activeCount = executor.getActiveCount();
......@@ -58,9 +60,7 @@ public class ReliabilityApi {
return map;
}
@GET
@Path("getAlarmLog")
@Produces(MediaType.APPLICATION_JSON)
@PostMapping("getAlarmLog")
public Map<String, Object> getAlarmLog(@RequestBody String json) {
return manager.getAlarmLog(json);
}
......
package com.yingxin.prms.domain;
import org.springframework.data.cassandra.core.mapping.Column;
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.Table;
......@@ -18,8 +19,10 @@ public class AlarmLog {
private String ip;
private String port;
/* ok 正常 unstable 不稳定 down 宕机 */
@Column("alarm_level")
private String alarmLevel;
/* */
@Column("alarm_message")
private String alarmMessage;
/* 告警时间 */
private String alatime;
......@@ -28,7 +31,6 @@ public class AlarmLog {
/* 1 告警 0 告警恢复 -1 告警发生变化*/
private String state;
public String getSerialnum() {
return serialnum;
}
......
......@@ -29,9 +29,11 @@ public class Server_Host_Info {
private String service_password;
private String layer;
public Server_Host_Info(String service_method, String cluster_name, String host_name,
String service_path, String host_ip, short host_port, String request_body,
String response_body, String service_password) {
String response_body, String service_password,String layer) {
this.service_method = service_method;
this.cluster_name = cluster_name;
this.host_name = host_name;
......@@ -41,6 +43,7 @@ public class Server_Host_Info {
this.request_body = request_body;
this.response_body = response_body;
this.service_password = service_password;
this.layer = layer;
}
@Override
......@@ -55,6 +58,7 @@ public class Server_Host_Info {
", request_body='" + request_body + '\'' +
", response_body='" + response_body + '\'' +
", service_password='" + service_password + '\'' +
", layer='" + layer + '\'' +
'}';
}
......@@ -129,4 +133,12 @@ public class Server_Host_Info {
public void setService_password(String service_password) {
this.service_password = service_password;
}
public String getLayer() {
return layer;
}
public void setLayer(String layer) {
this.layer = layer;
}
}
......@@ -54,4 +54,6 @@ public class AuthModeAndHostList {
public ConcurrentHashMap<String, String> getAlarmHost() {
return alarmHost;
}
}
......@@ -49,9 +49,11 @@ public class AlarmTask {
List<DataPoint> dataPoints5Min = heartbeat5Min.getQueries().get(0).getResults().get(0).getDataPoints();
List<DataPoint> dataPoints1Min = heartbeat1Min.getQueries().get(0).getResults().get(0).getDataPoints();
long faultCount5Min = dataPoints5Min.get(0).longValue();
long faultCount5Min = 0;
long faultCount1Min = 0;
if(dataPoints5Min.size() != 0){
faultCount5Min = dataPoints5Min.get(0).longValue();
}
if (dataPoints1Min.size() != 0) {
faultCount1Min = dataPoints1Min.get(0).longValue();
}
......@@ -68,35 +70,44 @@ public class AlarmTask {
alarmLog.setSerialnum(uuid);
alarmLog.setIp(hostInfo.getHost_ip());
alarmLog.setPort(String.valueOf(hostInfo.getHost_port()));
AlarmLog alarmCheck = cassandraDao.checkAlarm(hostInfo.getHost_ip(), String.valueOf(hostInfo.getHost_port()));
String msg = "";
boolean flag = true;
if (faultCount5Min != 0) {
/* 不稳定告警 */
alarmLog.setAlatime(TimeUtil.getDate());
alarmLog.setState(Constant.ALARM_ING);
alarmLog.setAlarmLevel(Constant.ALARM_UNSTABLE);
String msg ="系统不稳当"+" " + hostInfo.getCluster_name() + " " + hostInfo.getHost_name()
msg ="系统不稳定"+" " + hostInfo.getCluster_name() + " " + hostInfo.getHost_name()
+ " " + hostInfo.getHost_ip() + " 5分钟内服务存在调用失败";
alarmLog.setAlarmMessage(msg);
}else if(faultCount1Min >= correctCount1Min) {
flag = false;
}
if(faultCount1Min >= correctCount1Min) {
/* 宕机告警 */
alarmLog.setAlatime(TimeUtil.getDate());
alarmLog.setState(Constant.ALARM_ING);
alarmLog.setAlarmLevel(Constant.ALARM_DOWN);
String msg ="系统宕机"+ " " + hostInfo.getCluster_name() + " " + hostInfo.getHost_name()
msg ="系统宕机"+ " " + hostInfo.getCluster_name() + " " + hostInfo.getHost_name()
+ " " + hostInfo.getHost_ip() + " 连续1分钟服务调用失败";
alarmLog.setAlarmMessage(msg);
}else {
/* 校验是否存在告警 */
AlarmLog alarmCheck = cassandraDao.checkAlarm(hostInfo.getHost_ip(), String.valueOf(hostInfo.getHost_port()));
flag = false;
}
if(flag){
if(alarmCheck != null){
/* 如果存在告警 则恢复 */
cassandraDao.updateAlarm(alarmCheck.getSerialnum());
}
}else{
if(alarmCheck == null){
/* 如果不存在告警 新增数据 */
cassandraDao.insertAlarm(alarmLog);
}
}
/* 宕机告警 */
} catch (IOException | DataFormatException e) {
logger.error("告警校验发生错误。inMonitoring返回false");
logger.error(e.getMessage());
......@@ -111,4 +122,8 @@ public class AlarmTask {
.addAggregator(aggregator);
return queryBuilder;
}
public static void main(String[] args) {
}
}
......@@ -59,9 +59,6 @@ public class HttpTask extends BasicTask{
responseEntity = restTemplate.getForEntity(hostInfo.getService_path(), String.class);
}
dur = System.currentTimeMillis() - start;
System.out.println("====================测试===================================");
System.out.println(responseEntity.getBody());
System.out.println("================================================================================");
} catch (RestClientException e) {
insertToKairos(httpClient, hostInfo.getHost_ip(), hostInfo.getHost_port(), dur, false);
logger.info("httpTask to {}", hostInfo.getService_path());
......
package com.yingxin.prms.service.asyncTask;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import com.yingxin.prms.domain.Server_Host_Info;
import com.yingxin.prms.dto.SingleHostStatus;
import org.kairosdb.client.HttpClient;
......@@ -9,10 +10,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import java.util.*;
import java.util.concurrent.Callable;
public class QueryHostStatusTask implements Callable<SingleHostStatus> {
......@@ -56,8 +54,8 @@ public class QueryHostStatusTask implements Callable<SingleHostStatus> {
List<DataPoint> dataPoints5Min = heartbeat5Min.getQueries().get(0).getResults().get(0).getDataPoints();
List<DataPoint> dataPoints1Min = heartbeat1Min.getQueries().get(0).getResults().get(0).getDataPoints();
List<DataPoint> dataPointsDur = dur.getQueries().get(0).getResults().get(0).getDataPoints();
long faultCountDay = dataPointsDay.size() == 0 ? 0 : dataPointsDay.get(dataPointsDay.size() - 1).longValue();
if (dataPointsDay.size() == 0 || dataPoints5Min.size() == 0 || dataPointsDur.size() == 0) {
hostStatusMap.put("inMonitoring", false);
hostStatusMap.put("value", "down");
......
......@@ -46,25 +46,76 @@ public class Manager {
}
/**
* 查询所有集群状态
* 获取二包的服务器ip和port
*
* @return 集群状态
* @return 服务器ip和port列表
*/
public Map<String, Object> selectClusterStatus() {
public List selectSecondIpAndPort() {
List<Map> hostInfos = new ArrayList<>();
for (CTID_Process_Host_Dic processHost : authModeAndHostList.getProcessHostList()) {
HashMap<String, Object> hostInfo = new HashMap<>();
hostInfo.put("ip", processHost.getIp());
hostInfo.put("port", processHost.getPort());
hostInfos.add(hostInfo);
}
return hostInfos;
List<SingleHostStatus> hostStatusList = new ArrayList<>();
List<Future> futureList = new ArrayList<>();
}
public Map<String, Object> getAlarmLog(String json) {
Map<String,Object> map = new HashMap();
List<AlarmLog> alarmList = cassandraDao.getAlarmList();
map.put("alarm",alarmList);
JSONObject jsonObject = JSONObject.fromObject(json);
int pageNum = jsonObject.getInt("pageNum");
int pageSize = jsonObject.getInt("pageSize");
int i = 0;
String flag = "";
Map total = cassandraDao.getAlarmLogSize();
List<AlarmLog> logList = null;
do{
logList = cassandraDao.getAlarmLog(pageSize,flag);
if (logList.size()==0){
break;
}
AlarmLog alarmLog = logList.get(logList.size()-1);
flag = alarmLog.getSerialnum();
i++;
}while(i<pageNum);
map.put("log",logList);
map.put("logSize",total.get("count"));
return map;
}
public void ddemo(){
List<Server_Host_Info> host_info_List = authModeAndHostList.getClusterBeMonitoredList();
System.out.println(host_info_List.size());
}
public Map selectClusterStatus() {
/*查询集群监控列表*/
List<Server_Host_Info> host_info_List = authModeAndHostList.getClusterBeMonitoredList();
List<SingleHostStatus> accessList = new ArrayList<>();
List<SingleHostStatus> serviceList = new ArrayList<>();
List<Future> accessFuture = new ArrayList<>();
List<Future> serviceFuture = new ArrayList<>();
List<Future> futureList = new ArrayList<>();
List<SingleHostStatus> hostStatusList = new ArrayList<>();
/*线程池*/
ExecutorService service = Executors.newFixedThreadPool(THREADPOOLSIZE);
for (Server_Host_Info hostInfo : host_info_List) {
Future<SingleHostStatus> result = service.submit(new QueryHostStatusTask(hostInfo, httpClient));
futureList.add(result);
if (hostInfo.getLayer().equals("接入区")){
accessFuture.add(result);
}else {
serviceFuture.add(result);
}
}
service.shutdown();
try {
......@@ -73,10 +124,27 @@ public class Manager {
SingleHostStatus singleHostStatus = (SingleHostStatus) future.get();
hostStatusList.add(singleHostStatus);
}
for (Future future : accessFuture) {
SingleHostStatus singleHostStatus = (SingleHostStatus) future.get();
accessList.add(singleHostStatus);
}
for (Future future : serviceFuture) {
SingleHostStatus singleHostStatus = (SingleHostStatus) future.get();
serviceList.add(singleHostStatus);
}
}
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
Map accessMap = selectClusterStatusBylayer(accessList);
Map serviceMap = selectClusterStatusBylayer(serviceList);
Map map = new HashMap();
map.put("接入区",accessMap);
map.put("服务区",serviceMap);
return map;
}
public Map selectClusterStatusBylayer(List<SingleHostStatus> hostStatusList){
if (hostStatusList.size() != 0) {
Map<String, Object> clusterStatus = new HashMap<>();
Map<String, List<SingleHostStatus>> listMap = hostStatusList.stream().collect(Collectors.groupingBy(SingleHostStatus::getClusterName));
......@@ -94,55 +162,65 @@ public class Manager {
return null;
}
/**
* 获取二包的服务器ip和port
*
* @return 服务器ip和port列表
*/
public List selectSecondIpAndPort() {
List<Map> hostInfos = new ArrayList<>();
for (CTID_Process_Host_Dic processHost : authModeAndHostList.getProcessHostList()) {
HashMap<String, Object> hostInfo = new HashMap<>();
hostInfo.put("ip", processHost.getIp());
hostInfo.put("port", processHost.getPort());
hostInfos.add(hostInfo);
/*
public Map selectClusterStatus() {
List<Server_Host_Info> host_info_List = authModeAndHostList.getClusterBeMonitoredList();
List<Server_Host_Info> accessList = new ArrayList<>();
List<Server_Host_Info> serviceList = new ArrayList<>();
for(Server_Host_Info hostInfo : host_info_List){
if (hostInfo.getLayer().equals("接入区")){
accessList.add(hostInfo);
}else {
serviceList.add(hostInfo);
}
}
return hostInfos;
Map accessMap = selectClusterStatusBylayer(accessList);
Map serviceMap = selectClusterStatusBylayer(serviceList);
Map map = new HashMap();
map.put("接入区",accessMap);
map.put("服务区",serviceMap);
return map;
}
public Map<String, Object> getAlarmLog(String json) {
Map<String,Object> map = new HashMap();
List<AlarmLog> alarmList = cassandraDao.getAlarmList();
System.out.println(alarmList.size());
map.put("alarm",alarmList);
JSONObject jsonObject = JSONObject.fromObject(json);
int pageNum = jsonObject.getInt("pageNum");
int pageSize = jsonObject.getInt("pageSize");
public Map selectClusterStatusBylayer(List<Server_Host_Info> host_info_List){
List<SingleHostStatus> hostStatusList = new ArrayList<>();
List<Future> futureList = new ArrayList<>();
System.out.println("111"+pageNum+":::"+pageSize);
int i = 0;
String flag = "";
Map total = cassandraDao.getAlarmLogSize();
List<AlarmLog> logList = null;
do{
logList = cassandraDao.getAlarmLog(pageSize,flag);
System.out.println("aa:"+logList.size());
if (logList.size()==0){
break;
}
AlarmLog alarmLog = logList.get(logList.size()-1);
flag = alarmLog.getSerialnum();
i++;
}while(i<pageNum);
ExecutorService service = Executors.newFixedThreadPool(THREADPOOLSIZE);
map.put("log",logList);
map.put("logSize",total.get("count"));
return map;
for (Server_Host_Info hostInfo : host_info_List) {
Future<SingleHostStatus> result = service.submit(new QueryHostStatusTask(hostInfo, httpClient));
futureList.add(result);
}
service.shutdown();
try {
if (service.awaitTermination(3, TimeUnit.MINUTES)) {
for (Future future : futureList) {
SingleHostStatus singleHostStatus = (SingleHostStatus) future.get();
hostStatusList.add(singleHostStatus);
}
}
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
if (hostStatusList.size() != 0) {
Map<String, Object> clusterStatus = new HashMap<>();
Map<String, List<SingleHostStatus>> listMap = hostStatusList.stream().collect(Collectors.groupingBy(SingleHostStatus::getClusterName));
for (Map.Entry<String, List<SingleHostStatus>> singleClusterStatusEntry : listMap.entrySet()) {
String clusterName = singleClusterStatusEntry.getKey();
Map<String, Object> singleClusterStatus = new HashMap<>();
List<SingleHostStatus> singleHostStatusList = singleClusterStatusEntry.getValue();
for (SingleHostStatus singleHostStatus : singleHostStatusList) {
singleClusterStatus.put(singleHostStatus.getHostName(), singleHostStatus.getHostStatus());
}
clusterStatus.put(clusterName, singleClusterStatus);
}
return clusterStatus;
}
return null;
}
* */
// /**
// * 获取一包基准值
......
......@@ -59,7 +59,6 @@ public class CassandraDaoImpl {
public List<AlarmLog> getAlarmLog(int size,String flag) {
String cql="select * from ctid_prof.alarm_log where token(serialnum) > token( '"+flag+"' ) and state < '"+Constant.ALARM_ING+"' limit "+size+ " allow filtering;";
System.out.println(cql);
return template.select(cql, AlarmLog.class);
}
......@@ -69,7 +68,7 @@ public class CassandraDaoImpl {
}
public AlarmLog checkAlarm(String ip,String port) {
String cql="select * from ctid_prof.alarm_log where ip = "+ip+" and port = "+port+" and state = '" +Constant.ALARM_ING+"' allow filtering";
String cql="select * from ctid_prof.alarm_log where ip = '"+ip+"' and port = '"+port+"' and state = '" +Constant.ALARM_ING+"' allow filtering";
return template.selectOne(cql, AlarmLog.class);
}
......@@ -77,7 +76,9 @@ public class CassandraDaoImpl {
String cql="update from ctid_prof.alarm_log set state = '" +Constant.ALARM_RECOVERY +"' and alarm_level = "+Constant.ALARM_OK+" where serialnum = "+serialnum ;
return template.getCqlOperations().execute(cql);
}
public void insertAlarm(AlarmLog alarmLog) {
template.insert(alarmLog);
}
public Map getAlarmLogSize() {
String cql="select count(*) from ctid_prof.alarm_log where state < '" +Constant.ALARM_ING+"' allow filtering";
return template.selectOne(cql,Map.class);
......
......@@ -54,7 +54,6 @@ public class Schedule {
public void alarm() {
logger.info("开始告警判断");
List<Server_Host_Info> server_host_infos = list.getClusterBeMonitoredList();
ConcurrentHashMap<String, String> alarmHost = list.getAlarmHost();
for (Server_Host_Info hostInfo : server_host_infos) {
alarmTask.doTask(hostInfo);
}
......
server:
port: 8090
spring:
data:
cassandra:
keyspace-name: ctid_prof
contact-points: 192.168.189.130
# contact-points: 172.16.15.3
# contact-points: 121.22.111.251
# contact-points: 15.1.8.51
# contact-points: 192.168.189.130
contact-points: 172.16.15.7
port: 9042
# port: 9002
security:
user:
name: user
......@@ -31,9 +26,8 @@ jwt:
demo:
kairosdb:
# url: "http://192.168.209.128:8080"
# url: "http://172.16.15.3:8080"
url: "http://192.168.189.130:8080"
url: "http://172.16.15.7:8080"
# url: "http://192.168.189.130:8080"
maxConnTotal: 50
maxConnPerRoute: 30
......
/**
* An Angular module that gives you access to the browsers local storage
* @version v0.7.1 - 2017-06-21
* @link https://github.com/grevory/angular-local-storage
* @author grevory <greg@gregpike.ca>
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
!function(a,b){var c=b.isDefined,d=b.isUndefined,e=b.isNumber,f=b.isObject,g=b.isArray,h=b.isString,i=b.extend,j=b.toJson;b.module("LocalStorageModule",[]).provider("localStorageService",function(){this.prefix="ls",this.storageType="localStorage",this.cookie={expiry:30,path:"/",secure:!1},this.defaultToCookie=!0,this.notify={setItem:!0,removeItem:!1},this.setPrefix=function(a){return this.prefix=a,this},this.setStorageType=function(a){return this.storageType=a,this},this.setDefaultToCookie=function(a){return this.defaultToCookie=!!a,this},this.setStorageCookie=function(a,b,c){return this.cookie.expiry=a,this.cookie.path=b,this.cookie.secure=c,this},this.setStorageCookieDomain=function(a){return this.cookie.domain=a,this},this.setNotify=function(a,b){return this.notify={setItem:a,removeItem:b},this},this.$get=["$rootScope","$window","$document","$parse","$timeout",function(a,b,k,l,m){function n(c){if(c||(c=b.event),s.setItem&&h(c.key)&&w(c.key)){var d=v(c.key);m(function(){a.$broadcast("LocalStorageModule.notification.changed",{key:d,newvalue:c.newValue,storageType:p.storageType})})}}var o,p=this,q=p.prefix,r=p.cookie,s=p.notify,t=p.storageType;k?k[0]&&(k=k[0]):k=document,"."!==q.substr(-1)&&(q=q?q+".":"");var u=function(a){return q+a},v=function(a){return a.replace(new RegExp("^"+q,"g"),"")},w=function(a){return 0===a.indexOf(q)},x=function(){try{var c=t in b&&null!==b[t],d=u("__"+Math.round(1e7*Math.random()));return c&&(o=b[t],o.setItem(d,""),o.removeItem(d)),c}catch(b){return p.defaultToCookie&&(t="cookie"),a.$broadcast("LocalStorageModule.notification.error",b.message),!1}},y=x(),z=function(b,c,e){var f=J();try{if(K(e),c=d(c)?null:j(c),!y&&p.defaultToCookie||"cookie"===p.storageType)return y||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),s.setItem&&a.$broadcast("LocalStorageModule.notification.setitem",{key:b,newvalue:c,storageType:"cookie"}),F(b,c);try{o&&o.setItem(u(b),c),s.setItem&&a.$broadcast("LocalStorageModule.notification.setitem",{key:b,newvalue:c,storageType:p.storageType})}catch(d){return a.$broadcast("LocalStorageModule.notification.error",d.message),F(b,c)}return!0}finally{K(f)}},A=function(b,c){var d=J();try{if(K(c),!y&&p.defaultToCookie||"cookie"===p.storageType)return y||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),G(b);var e=o?o.getItem(u(b)):null;if(!e||"null"===e)return null;try{return JSON.parse(e)}catch(a){return e}}finally{K(d)}},B=function(){var b=J();try{var c=0;arguments.length>=1&&("localStorage"===arguments[arguments.length-1]||"sessionStorage"===arguments[arguments.length-1])&&(c=1,K(arguments[arguments.length-1]));var d,e;for(d=0;d<arguments.length-c;d++)if(e=arguments[d],!y&&p.defaultToCookie||"cookie"===p.storageType)y||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),s.removeItem&&a.$broadcast("LocalStorageModule.notification.removeitem",{key:e,storageType:"cookie"}),H(e);else try{o.removeItem(u(e)),s.removeItem&&a.$broadcast("LocalStorageModule.notification.removeitem",{key:e,storageType:p.storageType})}catch(b){a.$broadcast("LocalStorageModule.notification.error",b.message),H(e)}}finally{K(b)}},C=function(b){var c=J();try{if(K(b),!y)return a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),[];var d=q.length,e=[];for(var f in o)if(f.substr(0,d)===q)try{e.push(f.substr(d))}catch(b){return a.$broadcast("LocalStorageModule.notification.error",b.Description),[]}return e}finally{K(c)}},D=function(b,c){var d=J();try{K(c);var e=q?new RegExp("^"+q):new RegExp,f=b?new RegExp(b):new RegExp;if(!y&&p.defaultToCookie||"cookie"===p.storageType)return y||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),I();if(!y&&!p.defaultToCookie)return!1;var g=q.length;for(var h in o)if(e.test(h)&&f.test(h.substr(g)))try{B(h.substr(g))}catch(b){return a.$broadcast("LocalStorageModule.notification.error",b.message),I()}return!0}finally{K(d)}},E=function(){try{return b.navigator.cookieEnabled||"cookie"in k&&(k.cookie.length>0||(k.cookie="test").indexOf.call(k.cookie,"test")>-1)}catch(b){return a.$broadcast("LocalStorageModule.notification.error",b.message),!1}}(),F=function(b,c,h,i){if(d(c))return!1;if((g(c)||f(c))&&(c=j(c)),!E)return a.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;try{var l="",m=new Date,n="";if(null===c?(m.setTime(m.getTime()+-864e5),l="; expires="+m.toGMTString(),c=""):e(h)&&0!==h?(m.setTime(m.getTime()+24*h*60*60*1e3),l="; expires="+m.toGMTString()):0!==r.expiry&&(m.setTime(m.getTime()+24*r.expiry*60*60*1e3),l="; expires="+m.toGMTString()),b){var o="; path="+r.path;r.domain&&(n="; domain="+r.domain),"boolean"==typeof i?i===!0&&(n+="; secure"):r.secure===!0&&(n+="; secure"),k.cookie=u(b)+"="+encodeURIComponent(c)+l+o+n}}catch(b){return a.$broadcast("LocalStorageModule.notification.error",b.message),!1}return!0},G=function(b){if(!E)return a.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;for(var c=k.cookie&&k.cookie.split(";")||[],d=0;d<c.length;d++){for(var e=c[d];" "===e.charAt(0);)e=e.substring(1,e.length);if(0===e.indexOf(u(b)+"=")){var f=decodeURIComponent(e.substring(q.length+b.length+1,e.length));try{var g=JSON.parse(f);return"number"==typeof g?f:g}catch(a){return f}}}return null},H=function(a){F(a,null)},I=function(){for(var a=null,b=q.length,c=k.cookie.split(";"),d=0;d<c.length;d++){for(a=c[d];" "===a.charAt(0);)a=a.substring(1,a.length);var e=a.substring(b,a.indexOf("="));H(e)}},J=function(){return t},K=function(a){return a&&t!==a&&(t=a,y=x()),y},L=function(a,b,d,e,g){e=e||b;var h=A(e,g);return null===h&&c(d)?h=d:f(h)&&f(d)&&(h=i(h,d)),l(b).assign(a,h),a.$watch(b,function(a){z(e,a,g)},f(a[b]))};y&&(b.addEventListener?(b.addEventListener("storage",n,!1),a.$on("$destroy",function(){b.removeEventListener("storage",n)})):b.attachEvent&&(b.attachEvent("onstorage",n),a.$on("$destroy",function(){b.detachEvent("onstorage",n)})));var M=function(a){var c=J();try{K(a);for(var d=0,e=b[t],f=0;f<e.length;f++)0===e.key(f).indexOf(q)&&d++;return d}finally{K(c)}},N=function(a){q=a};return{isSupported:y,getStorageType:J,setStorageType:K,setPrefix:N,set:z,add:z,get:A,keys:C,remove:B,clearAll:D,bind:L,deriveKey:u,underiveKey:v,length:M,defaultToCookie:this.defaultToCookie,cookie:{isSupported:E,set:F,add:F,get:G,remove:H,clearAll:I}}}]})}(window,window.angular);
//# sourceMappingURL=angular-local-storage.min.js.map
\ No newline at end of file
{"version":3,"sources":["angular-local-storage.js"],"names":["window","angular","isDefined","isUndefined","isNumber","isObject","isArray","isString","extend","toJson","module","provider","this","prefix","storageType","cookie","expiry","path","secure","defaultToCookie","notify","setItem","removeItem","setPrefix","setStorageType","setDefaultToCookie","shouldDefault","setStorageCookie","exp","setStorageCookieDomain","domain","setNotify","itemSet","itemRemove","$get","$rootScope","$window","$document","$parse","$timeout","handleStorageChangeCallback","e","event","key","isKeyPrefixOurs","underiveQualifiedKey","$broadcast","newvalue","newValue","self","webStorage","document","substr","deriveQualifiedKey","replace","RegExp","indexOf","checkSupport","supported","Math","round","random","message","browserSupportsLocalStorage","addToLocalStorage","value","type","previousType","getStorageType","addToCookies","getFromLocalStorage","getFromCookies","item","getItem","JSON","parse","removeFromLocalStorage","consumed","arguments","length","i","removeFromCookies","getKeysForLocalStorage","prefixLength","keys","push","Description","clearAllFromLocalStorage","regularExpression","prefixRegex","testRegex","clearAllFromCookies","test","browserSupportsCookies","navigator","cookieEnabled","call","daysToExpiry","expiryDate","Date","cookieDomain","setTime","getTime","toGMTString","cookiePath","encodeURIComponent","cookies","split","thisCookie","charAt","substring","storedValues","decodeURIComponent","parsedValue","bindToScope","scope","def","lsKey","assign","$watch","newVal","addEventListener","$on","removeEventListener","attachEvent","detachEvent","lengthOfLocalStorage","count","storage","changePrefix","localStoragePrefix","isSupported","set","add","get","remove","clearAll","bind","deriveKey","underiveKey"],"mappings":"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","file":"angular-local-storage.min.js"}
\ No newline at end of file
/*
AngularJS v1.6.5
(c) 2010-2017 Google, Inc. http://angularjs.org
License: MIT
*/
(function(J,d){'use strict';function A(d){k&&d.get("$route")}function B(t,u,g){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,f,b,c,m){function v(){l&&(g.cancel(l),l=null);n&&(n.$destroy(),n=null);p&&(l=g.leave(p),l.done(function(a){!1!==a&&(l=null)}),p=null)}function E(){var b=t.current&&t.current.locals;if(d.isDefined(b&&b.$template)){var b=a.$new(),c=t.current;p=m(b,function(b){g.enter(b,null,p||f).done(function(b){!1===b||!d.isDefined(w)||w&&!a.$eval(w)||u()});
v()});n=c.scope=b;n.$emit("$viewContentLoaded");n.$eval(k)}else v()}var n,p,l,w=b.autoscroll,k=b.onload||"";a.$on("$routeChangeSuccess",E);E()}}}function C(d,k,g){return{restrict:"ECA",priority:-400,link:function(a,f){var b=g.current,c=b.locals;f.html(c.$template);var m=d(f.contents());if(b.controller){c.$scope=a;var v=k(b.controller,c);b.controllerAs&&(a[b.controllerAs]=v);f.data("$ngControllerController",v);f.children().data("$ngControllerController",v)}a[b.resolveAs||"$resolve"]=c;m(a)}}}var x,
y,F,G,z=d.module("ngRoute",[]).info({angularVersion:"1.6.5"}).provider("$route",function(){function t(a,f){return d.extend(Object.create(a),f)}function u(a,d){var b=d.caseInsensitiveMatch,c={originalPath:a,regexp:a},g=c.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[?*])?/g,function(a,b,d,c){a="?"===c||"*?"===c?"?":null;c="*"===c||"*?"===c?"*":null;g.push({name:d,optional:!!a});b=b||"";return""+(a?"":b)+"(?:"+(a?b:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([/$*])/g,
"\\$1");c.regexp=new RegExp("^"+a+"$",b?"i":"");return c}x=d.isArray;y=d.isObject;F=d.isDefined;G=d.noop;var g={};this.when=function(a,f){var b;b=void 0;if(x(f)){b=b||[];for(var c=0,m=f.length;c<m;c++)b[c]=f[c]}else if(y(f))for(c in b=b||{},f)if("$"!==c.charAt(0)||"$"!==c.charAt(1))b[c]=f[c];b=b||f;d.isUndefined(b.reloadOnSearch)&&(b.reloadOnSearch=!0);d.isUndefined(b.caseInsensitiveMatch)&&(b.caseInsensitiveMatch=this.caseInsensitiveMatch);g[a]=d.extend(b,a&&u(a,b));a&&(c="/"===a[a.length-1]?a.substr(0,
a.length-1):a+"/",g[c]=d.extend({redirectTo:a},u(c,b)));return this};this.caseInsensitiveMatch=!1;this.otherwise=function(a){"string"===typeof a&&(a={redirectTo:a});this.when(null,a);return this};k=!0;this.eagerInstantiationEnabled=function(a){return F(a)?(k=a,this):k};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce","$browser",function(a,f,b,c,m,k,u,n){function p(e){var h=q.current;(y=(s=C())&&h&&s.$$route===h.$$route&&d.equals(s.pathParams,h.pathParams)&&
!s.reloadOnSearch&&!D)||!h&&!s||a.$broadcast("$routeChangeStart",s,h).defaultPrevented&&e&&e.preventDefault()}function l(){var e=q.current,h=s;if(y)e.params=h.params,d.copy(e.params,b),a.$broadcast("$routeUpdate",e);else if(h||e){D=!1;q.current=h;var H=c.resolve(h);n.$$incOutstandingRequestCount();H.then(w).then(z).then(function(c){return c&&H.then(A).then(function(c){h===q.current&&(h&&(h.locals=c,d.copy(h.params,b)),a.$broadcast("$routeChangeSuccess",h,e))})}).catch(function(b){h===q.current&&a.$broadcast("$routeChangeError",
h,e,b)}).finally(function(){n.$$completeOutstandingRequest(G)})}}function w(e){var a={route:e,hasRedirection:!1};if(e)if(e.redirectTo)if(d.isString(e.redirectTo))a.path=x(e.redirectTo,e.params),a.search=e.params,a.hasRedirection=!0;else{var b=f.path(),g=f.search();e=e.redirectTo(e.pathParams,b,g);d.isDefined(e)&&(a.url=e,a.hasRedirection=!0)}else if(e.resolveRedirectTo)return c.resolve(m.invoke(e.resolveRedirectTo)).then(function(e){d.isDefined(e)&&(a.url=e,a.hasRedirection=!0);return a});return a}
function z(a){var b=!0;if(a.route!==q.current)b=!1;else if(a.hasRedirection){var d=f.url(),c=a.url;c?f.url(c).replace():c=f.path(a.path).search(a.search).replace().url();c!==d&&(b=!1)}return b}function A(a){if(a){var b=d.extend({},a.resolve);d.forEach(b,function(a,e){b[e]=d.isString(a)?m.get(a):m.invoke(a,null,null,e)});a=B(a);d.isDefined(a)&&(b.$template=a);return c.all(b)}}function B(a){var b,c;d.isDefined(b=a.template)?d.isFunction(b)&&(b=b(a.params)):d.isDefined(c=a.templateUrl)&&(d.isFunction(c)&&
(c=c(a.params)),d.isDefined(c)&&(a.loadedTemplateUrl=u.valueOf(c),b=k(c)));return b}function C(){var a,b;d.forEach(g,function(c,g){var r;if(r=!b){var k=f.path();r=c.keys;var m={};if(c.regexp)if(k=c.regexp.exec(k)){for(var l=1,n=k.length;l<n;++l){var p=r[l-1],q=k[l];p&&q&&(m[p.name]=q)}r=m}else r=null;else r=null;r=a=r}r&&(b=t(c,{params:d.extend({},f.search(),a),pathParams:a}),b.$$route=c)});return b||g[null]&&t(g[null],{params:{},pathParams:{}})}function x(a,b){var c=[];d.forEach((a||"").split(":"),
function(a,d){if(0===d)c.push(a);else{var e=a.match(/(\w+)(?:[?*])?(.*)/),f=e[1];c.push(b[f]);c.push(e[2]||"");delete b[f]}});return c.join("")}var D=!1,s,y,q={routes:g,reload:function(){D=!0;var b={defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0;D=!1}};a.$evalAsync(function(){p(b);b.defaultPrevented||l()})},updateParams:function(a){if(this.current&&this.current.$$route)a=d.extend({},this.current.params,a),f.path(x(this.current.$$route.originalPath,a)),f.search(a);else throw I("norout");
}};a.$on("$locationChangeStart",p);a.$on("$locationChangeSuccess",l);return q}]}).run(A),I=d.$$minErr("ngRoute"),k;A.$inject=["$injector"];z.provider("$routeParams",function(){this.$get=function(){return{}}});z.directive("ngView",B);z.directive("ngView",C);B.$inject=["$route","$anchorScroll","$animate"];C.$inject=["$compile","$controller","$route"]})(window,window.angular);
//# sourceMappingURL=angular-route.min.js.map
.ui-pagination-container {
height: 34px;
line-height: 34px;
}
.ui-pagination-container .ui-pagination-page-item {
font-size: 14px;
padding: 4px 10px;
background: #fff;
border: 1px solid #c5b7b7;
color: #888;
margin: 0 3px;
text-decoration: none;
}
.ui-pagination-container .ui-pagination-page-item:hover {
border-color: #568dbd;
color: #568dbd;
text-decoration: none;
}
.ui-pagination-container .ui-pagination-page-item.active {
background: #568dbd;
border-color: #568dbd;
color: #fff;
cursor: default;
}
\ No newline at end of file
!function(t,a,e,i){var n=function(a,e){this.ele=a,this.defaults={currentPage:1,totalPage:10,isShow:!0,count:5,homePageText:"首页",endPageText:"尾页",prevPageText:"上一页",nextPageText:"下一页",callback:function(){}},this.opts=t.extend({},this.defaults,e),this.current=this.opts.currentPage,this.init()};n.prototype={init:function(){this.isRender=!0,this.render(),this.eventBind()},render:function(){var t=this.opts,a=this.current,e=t.totalPage,i=this.getPagesTpl();this.homePage='<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="1">'+t.homePageText+"</a>",this.prevPage='<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="'+(a-1)+'">'+t.prevPageText+"</a>",this.nextPage='<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="'+(a+1)+'">'+t.nextPageText+"</a>",this.endPage='<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="'+e+'">'+t.endPageText+"</a>",this.checkPage(),this.isRender&&this.ele.html("<div class='ui-pagination-container'>"+this.homePage+this.prevPage+i+this.nextPage+this.endPage+"</div>")},checkPage:function(){var t=this.opts,a=t.totalPage,e=this.current;t.isShow||(this.homePage=this.endPage=""),1===e&&(this.homePage=this.prevPage=""),e===a&&(this.endPage=this.nextPage=""),1===a&&(this.homePage=this.prevPage=this.endPage=this.nextPage=""),a<=1&&(this.isRender=!1)},getPagesTpl:function(){var t=this.opts,a=t.totalPage,e=this.current,i="",n=t.count;if(a<=n)for(g=1;g<=a;g++)i+=g===e?'<a href="javascript:void(0);" class="ui-pagination-page-item active" data-current="'+g+'">'+g+"</a>":'<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="'+g+'">'+g+"</a>";else{var s=n/2;if(e<=s)for(g=1;g<=n;g++)i+=g===e?'<a href="javascript:void(0);" class="ui-pagination-page-item active" data-current="'+g+'">'+g+"</a>":'<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="'+g+'">'+g+"</a>";else{var r=Math.floor(s),c=e+r,h=e-r,o=n%2==0;c>a&&(o?(h-=c-a-1,c=a+1):(h-=c-a,c=a)),o||c++;for(var g=h;g<c;g++)i+=g===e?'<a href="javascript:void(0);" class="ui-pagination-page-item active" data-current="'+g+'">'+g+"</a>":'<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="'+g+'">'+g+"</a>"}}return i},eventBind:function(){var a=this,e=this.opts.callback;this.ele.on("click",".ui-pagination-page-item",function(){var i=t(this).data("current");a.current!=i&&(a.current=i,a.render(),e&&"function"==typeof e&&e(i))})}},t.fn.pagination=function(t){return new n(this,t),this}}(jQuery,window,document);
\ No newline at end of file
@keyframes ngdialog-flyin {
0% {
opacity: 0;
transform: translateY(-40px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
@keyframes ngdialog-flyout {
0% {
opacity: 1;
transform: translateY(0);
}
100% {
opacity: 0;
transform: translateY(-40px);
}
}
.ngdialog.ngdialog-theme-default {
padding-bottom: 160px;
padding-top: 60px;
}
.ngdialog.ngdialog-theme-default.ngdialog-closing .ngdialog-content {
animation: ngdialog-flyout .5s;
}
.ngdialog.ngdialog-theme-default .ngdialog-content {
animation: ngdialog-flyin .5s;
background: #f0f0f0;
border-radius: 5px;
color: #444;
font-family: 'Helvetica',sans-serif;
font-size: 1.1em;
line-height: 1.5em;
margin: 0 auto;
max-width: 100%;
padding: 1em;
position: relative;
width: 450px;
}
.ngdialog.ngdialog-theme-default .ngdialog-close {
border-radius: 5px;
cursor: pointer;
position: absolute;
right: 0;
top: 0;
}
.ngdialog.ngdialog-theme-default .ngdialog-close:before {
background: transparent;
border-radius: 3px;
color: #bbb;
content: '\00D7';
font-size: 26px;
font-weight: 400;
height: 30px;
line-height: 26px;
position: absolute;
right: 3px;
text-align: center;
top: 3px;
width: 30px;
}
.ngdialog.ngdialog-theme-default .ngdialog-close:hover:before,.ngdialog.ngdialog-theme-default .ngdialog-close:active:before {
color: #777;
}
.ngdialog.ngdialog-theme-default .ngdialog-message {
margin-bottom: .5em;
}
.ngdialog.ngdialog-theme-default .ngdialog-input {
margin-bottom: 1em;
}
.ngdialog.ngdialog-theme-default .ngdialog-input textarea,.ngdialog.ngdialog-theme-default .ngdialog-input input[type="text"],.ngdialog.ngdialog-theme-default .ngdialog-input input[type="password"],.ngdialog.ngdialog-theme-default .ngdialog-input input[type="email"],.ngdialog.ngdialog-theme-default .ngdialog-input input[type="url"] {
background: #fff;
border: 0;
border-radius: 3px;
font-family: inherit;
font-size: inherit;
font-weight: inherit;
margin: 0 0 .25em;
min-height: 2.5em;
padding: .25em .67em;
width: 100%;
}
.ngdialog.ngdialog-theme-default .ngdialog-input textarea:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type="text"]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type="password"]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type="email"]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type="url"]:focus {
box-shadow: inset 0 0 0 2px #8dbdf1;
outline: none;
}
.ngdialog.ngdialog-theme-default .ngdialog-buttons {
*zoom: 1;
}
.ngdialog.ngdialog-theme-default .ngdialog-buttons:after {
content: '';
display: table;
clear: both;
}
.ngdialog.ngdialog-theme-default .ngdialog-button {
border: 0;
border-radius: 3px;
cursor: pointer;
float: right;
font-family: inherit;
font-size: .8em;
letter-spacing: .1em;
line-height: 1em;
margin: 0 0 0 .5em;
padding: .75em 2em;
text-transform: uppercase;
}
.ngdialog.ngdialog-theme-default .ngdialog-button:focus {
animation: ngdialog-pulse 1.1s infinite;
outline: none;
}
@media (max-width: 568px) {
.ngdialog.ngdialog-theme-default .ngdialog-button:focus {
animation: none;
}
}
.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-primary {
background: #3288e6;
color: #fff;
}
.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-secondary {
background: #e0e0e0;
color: #777;
}
.ngdialog.ngdialog-theme-plain.custom-width .ngdialog-content {
width: 150px;
}
@-webkit-keyframes ngdialog-flyin{0%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes ngdialog-flyin{0%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes ngdialog-flyout{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes ngdialog-flyout{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}.ngdialog.ngdialog-theme-default{padding-bottom:160px;padding-top:160px}.ngdialog.ngdialog-theme-default.ngdialog-closing .ngdialog-content{-webkit-animation:ngdialog-flyout .5s;animation:ngdialog-flyout .5s}.ngdialog.ngdialog-theme-default .ngdialog-content{-webkit-animation:ngdialog-flyin .5s;animation:ngdialog-flyin .5s;background:#f0f0f0;border-radius:5px;color:#444;font-family:Helvetica,sans-serif;font-size:1.1em;line-height:1.5em;margin:0 auto;max-width:100%;padding:1em;position:relative;width:450px}.ngdialog.ngdialog-theme-default .ngdialog-close{border-radius:5px;cursor:pointer;position:absolute;right:0;top:0}.ngdialog.ngdialog-theme-default .ngdialog-close:before{background:0 0;border-radius:3px;color:#bbb;content:'\00D7';font-size:26px;font-weight:400;height:30px;line-height:26px;position:absolute;right:3px;text-align:center;top:3px;width:30px}.ngdialog.ngdialog-theme-default .ngdialog-close:active:before,.ngdialog.ngdialog-theme-default .ngdialog-close:hover:before{color:#777}.ngdialog.ngdialog-theme-default .ngdialog-message{margin-bottom:.5em}.ngdialog.ngdialog-theme-default .ngdialog-input{margin-bottom:1em}.ngdialog.ngdialog-theme-default .ngdialog-input input[type=text],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=password],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=email],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=url],.ngdialog.ngdialog-theme-default .ngdialog-input textarea{background:#fff;border:0;border-radius:3px;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0 0 .25em;min-height:2.5em;padding:.25em .67em;width:100%}.ngdialog.ngdialog-theme-default .ngdialog-input input[type=text]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=password]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=email]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=url]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input textarea:focus{box-shadow:inset 0 0 0 2px #8dbdf1;outline:0}.ngdialog.ngdialog-theme-default .ngdialog-buttons:after{content:'';display:table;clear:both}.ngdialog.ngdialog-theme-default .ngdialog-button{border:0;border-radius:3px;cursor:pointer;float:right;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;margin:0 0 0 .5em;padding:.75em 2em;text-transform:uppercase}.ngdialog.ngdialog-theme-default .ngdialog-button:focus{-webkit-animation:ngdialog-pulse 1.1s infinite;animation:ngdialog-pulse 1.1s infinite;outline:0}@media (max-width:568px){.ngdialog.ngdialog-theme-default .ngdialog-button:focus{-webkit-animation:none;animation:none}}.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-primary{background:#3288e6;color:#fff}.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-secondary{background:#e0e0e0;color:#777}
\ No newline at end of file
.ngdialog.ngdialog-theme-plain{padding-bottom:160px;padding-top:160px}.ngdialog.ngdialog-theme-plain .ngdialog-content{background:#fff;color:#444;font-family:'Helvetica Neue',sans-serif;font-size:1.1em;line-height:1.5em;margin:0 auto;max-width:100%;padding:1em;position:relative;width:450px}.ngdialog.ngdialog-theme-plain .ngdialog-content h1,.ngdialog.ngdialog-theme-plain .ngdialog-content h2,.ngdialog.ngdialog-theme-plain .ngdialog-content h3,.ngdialog.ngdialog-theme-plain .ngdialog-content h4,.ngdialog.ngdialog-theme-plain .ngdialog-content h5,.ngdialog.ngdialog-theme-plain .ngdialog-content h6,.ngdialog.ngdialog-theme-plain .ngdialog-content li,.ngdialog.ngdialog-theme-plain .ngdialog-content p,.ngdialog.ngdialog-theme-plain .ngdialog-content ul{color:inherit}.ngdialog.ngdialog-theme-plain .ngdialog-close{cursor:pointer;position:absolute;right:0;top:0}.ngdialog.ngdialog-theme-plain .ngdialog-close:before{background:0 0;color:#bbb;content:"\00D7";font-size:26px;font-weight:400;height:30px;line-height:26px;position:absolute;right:3px;text-align:center;top:3px;width:30px}.ngdialog.ngdialog-theme-plain .ngdialog-close:active:before,.ngdialog.ngdialog-theme-plain .ngdialog-close:hover:before{color:#777}.ngdialog.ngdialog-theme-plain .ngdialog-message{margin-bottom:.5em}.ngdialog.ngdialog-theme-plain .ngdialog-input{margin-bottom:1em}.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=text],.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=password],.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=email],.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=url],.ngdialog.ngdialog-theme-plain .ngdialog-input textarea{background:#f0f0f0;border:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0 0 .25em;min-height:2.5em;padding:.25em .67em;width:100%}.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=text]:focus,.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=password]:focus,.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=email]:focus,.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=url]:focus,.ngdialog.ngdialog-theme-plain .ngdialog-input textarea:focus{box-shadow:inset 0 0 0 2px rgba(0,0,0,.2);outline:0}.ngdialog.ngdialog-theme-plain .ngdialog-buttons:after{clear:both;content:'';display:table}.ngdialog.ngdialog-theme-plain .ngdialog-button{border:0;cursor:pointer;float:right;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;margin:0 0 0 .5em;padding:.75em 2em;text-transform:uppercase}.ngdialog.ngdialog-theme-plain .ngdialog-button:focus{-webkit-animation:ngdialog-pulse 1.1s infinite;animation:ngdialog-pulse 1.1s infinite;outline:0}@media (max-width:568px){.ngdialog.ngdialog-theme-plain .ngdialog-button:focus{-webkit-animation:none;animation:none}}.ngdialog.ngdialog-theme-plain .ngdialog-button.ngdialog-button-primary{background:#3288e6;color:#fff}.ngdialog.ngdialog-theme-plain .ngdialog-button.ngdialog-button-secondary{background:#e0e0e0;color:#777}
\ No newline at end of file
.ngdialog,.ngdialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0}@-webkit-keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}@keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}.ngdialog{box-sizing:border-box;overflow:auto;-webkit-overflow-scrolling:touch;z-index:10000}.ngdialog *,.ngdialog :after,.ngdialog :before{box-sizing:inherit}.ngdialog.ngdialog-disabled-animation,.ngdialog.ngdialog-disabled-animation .ngdialog-content,.ngdialog.ngdialog-disabled-animation .ngdialog-overlay{-webkit-animation:none!important;animation:none!important}.ngdialog-overlay{background:rgba(0,0,0,.4);-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s}.ngdialog-no-overlay{pointer-events:none}.ngdialog.ngdialog-closing .ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadeout .5s;animation:ngdialog-fadeout .5s}.ngdialog-content{background:#fff;-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s;pointer-events:all}.ngdialog.ngdialog-closing .ngdialog-content{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadeout .5s;animation:ngdialog-fadeout .5s}.ngdialog-close:before{font-family:Helvetica,Arial,sans-serif;content:'\00D7';cursor:pointer}body.ngdialog-open,html.ngdialog-open{overflow:hidden}
\ No newline at end of file
This diff is collapsed.
.ui-dialog-title{
padding-bottom:10px;
margin-bottom: 15px;
font-size: 1.2em;
}
.ui-dialog-content{
}
.ui-dialog-confirm{
border-top:1px solid #DEDEDE;
padding-top: 10px;
text-align: right;
}
.ngdialog {
text-align: left;
}
\ No newline at end of file
<div class="ui-dialog-title">
提示
</div>
<div class="ui-dialog-content">
<div>{{msgText}}</div>
</div>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
!function(r){var n=window.webpackJsonp;window.webpackJsonp=function(e,u,c){for(var f,i,p,a=0,l=[];a<e.length;a++)i=e[a],o[i]&&l.push(o[i][0]),o[i]=0;for(f in u)Object.prototype.hasOwnProperty.call(u,f)&&(r[f]=u[f]);for(n&&n(e,u,c);l.length;)l.shift()();if(c)for(a=0;a<c.length;a++)p=t(t.s=c[a]);return p};var e={},o={2:0};function t(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return r[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=r,t.c=e,t.d=function(r,n,e){t.o(r,n)||Object.defineProperty(r,n,{configurable:!1,enumerable:!0,get:e})},t.n=function(r){var n=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(n,"a",n),n},t.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},t.p="/",t.oe=function(r){throw console.error(r),r}}([]);
//# sourceMappingURL=manifest.1766e3c7586055624ca0.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap 995643eab169948884f2"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAT,EAGAE,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACAhB,OAAAmB,eAAAT,EAAAM,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMAX,EAAAiB,EAAA,SAAAZ,GACA,IAAAM,EAAAN,KAAAa,WACA,WAA2B,OAAAb,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAO,EAAAC,GAAsD,OAAA1B,OAAAC,UAAAC,eAAAC,KAAAsB,EAAAC,IAGtDpB,EAAAqB,EAAA,IAGArB,EAAAsB,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"js/manifest.1766e3c7586055624ca0.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 995643eab169948884f2"],"sourceRoot":""}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment