jichaobo 4 سال پیش
والد
کامیت
89e567722f
100فایلهای تغییر یافته به همراه8095 افزوده شده و 0 حذف شده
  1. 71 0
      WebRoot/view/efireAnalysis/api/request.js
  2. 459 0
      WebRoot/view/efireAnalysis/css/index.css
  3. 537 0
      WebRoot/view/efireAnalysis/css/index.less
  4. 361 0
      WebRoot/view/efireAnalysis/eleFireIndex.html
  5. BIN
      WebRoot/view/efireAnalysis/font/IMPACT.TTF
  6. BIN
      WebRoot/view/efireAnalysis/images/3d-bg.png
  7. BIN
      WebRoot/view/efireAnalysis/images/bg.jpg
  8. 1 0
      WebRoot/view/efireAnalysis/images/export-icon.svg
  9. BIN
      WebRoot/view/efireAnalysis/images/favicon.ico
  10. BIN
      WebRoot/view/efireAnalysis/images/head_bg.png
  11. BIN
      WebRoot/view/efireAnalysis/images/summary-bg.png
  12. BIN
      WebRoot/view/efireAnalysis/images/title-bg.png
  13. BIN
      WebRoot/view/efireAnalysis/images/title-bg2.png
  14. 59 0
      WebRoot/view/efireAnalysis/index.jsp
  15. 0 0
      WebRoot/view/efireAnalysis/js/echarts-gl.min.js
  16. 34 0
      WebRoot/view/efireAnalysis/js/echarts.min.js
  17. 2382 0
      WebRoot/view/efireAnalysis/js/eleFire.js
  18. 43 0
      WebRoot/view/efireAnalysis/js/flexible.js
  19. 1 0
      WebRoot/view/efireAnalysis/js/jquery.js
  20. 16 0
      WebRoot/view/efireAnalysis/js/util.js
  21. 2051 0
      WebRoot/view/efireAnalysis/js/water.js
  22. 1395 0
      WebRoot/view/efireAnalysis/layui/css/layui.css
  23. 191 0
      WebRoot/view/efireAnalysis/layui/css/layui.mobile.css
  24. 23 0
      WebRoot/view/efireAnalysis/layui/css/modules/code.css
  25. 16 0
      WebRoot/view/efireAnalysis/layui/css/modules/laydate/default/font.css
  26. 155 0
      WebRoot/view/efireAnalysis/layui/css/modules/laydate/default/laydate.css
  27. BIN
      WebRoot/view/efireAnalysis/layui/css/modules/layer/default/icon-ext.png
  28. BIN
      WebRoot/view/efireAnalysis/layui/css/modules/layer/default/icon.png
  29. 181 0
      WebRoot/view/efireAnalysis/layui/css/modules/layer/default/layer.css
  30. BIN
      WebRoot/view/efireAnalysis/layui/css/modules/layer/default/loading-0.gif
  31. BIN
      WebRoot/view/efireAnalysis/layui/css/modules/layer/default/loading-1.gif
  32. BIN
      WebRoot/view/efireAnalysis/layui/css/modules/layer/default/loading-2.gif
  33. 94 0
      WebRoot/view/efireAnalysis/layui/date.html
  34. BIN
      WebRoot/view/efireAnalysis/layui/font/iconfont.eot
  35. 25 0
      WebRoot/view/efireAnalysis/layui/font/iconfont.svg
  36. BIN
      WebRoot/view/efireAnalysis/layui/font/iconfont.ttf
  37. BIN
      WebRoot/view/efireAnalysis/layui/font/iconfont.woff
  38. BIN
      WebRoot/view/efireAnalysis/layui/font/iconfont.woff2
  39. BIN
      WebRoot/view/efireAnalysis/layui/images/face/0.gif
  40. BIN
      WebRoot/view/efireAnalysis/layui/images/face/1.gif
  41. BIN
      WebRoot/view/efireAnalysis/layui/images/face/10.gif
  42. BIN
      WebRoot/view/efireAnalysis/layui/images/face/11.gif
  43. BIN
      WebRoot/view/efireAnalysis/layui/images/face/12.gif
  44. BIN
      WebRoot/view/efireAnalysis/layui/images/face/13.gif
  45. BIN
      WebRoot/view/efireAnalysis/layui/images/face/14.gif
  46. BIN
      WebRoot/view/efireAnalysis/layui/images/face/15.gif
  47. BIN
      WebRoot/view/efireAnalysis/layui/images/face/16.gif
  48. BIN
      WebRoot/view/efireAnalysis/layui/images/face/17.gif
  49. BIN
      WebRoot/view/efireAnalysis/layui/images/face/18.gif
  50. BIN
      WebRoot/view/efireAnalysis/layui/images/face/19.gif
  51. BIN
      WebRoot/view/efireAnalysis/layui/images/face/2.gif
  52. BIN
      WebRoot/view/efireAnalysis/layui/images/face/20.gif
  53. BIN
      WebRoot/view/efireAnalysis/layui/images/face/21.gif
  54. BIN
      WebRoot/view/efireAnalysis/layui/images/face/22.gif
  55. BIN
      WebRoot/view/efireAnalysis/layui/images/face/23.gif
  56. BIN
      WebRoot/view/efireAnalysis/layui/images/face/24.gif
  57. BIN
      WebRoot/view/efireAnalysis/layui/images/face/25.gif
  58. BIN
      WebRoot/view/efireAnalysis/layui/images/face/26.gif
  59. BIN
      WebRoot/view/efireAnalysis/layui/images/face/27.gif
  60. BIN
      WebRoot/view/efireAnalysis/layui/images/face/28.gif
  61. BIN
      WebRoot/view/efireAnalysis/layui/images/face/29.gif
  62. BIN
      WebRoot/view/efireAnalysis/layui/images/face/3.gif
  63. BIN
      WebRoot/view/efireAnalysis/layui/images/face/30.gif
  64. BIN
      WebRoot/view/efireAnalysis/layui/images/face/31.gif
  65. BIN
      WebRoot/view/efireAnalysis/layui/images/face/32.gif
  66. BIN
      WebRoot/view/efireAnalysis/layui/images/face/33.gif
  67. BIN
      WebRoot/view/efireAnalysis/layui/images/face/34.gif
  68. BIN
      WebRoot/view/efireAnalysis/layui/images/face/35.gif
  69. BIN
      WebRoot/view/efireAnalysis/layui/images/face/36.gif
  70. BIN
      WebRoot/view/efireAnalysis/layui/images/face/37.gif
  71. BIN
      WebRoot/view/efireAnalysis/layui/images/face/38.gif
  72. BIN
      WebRoot/view/efireAnalysis/layui/images/face/39.gif
  73. BIN
      WebRoot/view/efireAnalysis/layui/images/face/4.gif
  74. BIN
      WebRoot/view/efireAnalysis/layui/images/face/40.gif
  75. BIN
      WebRoot/view/efireAnalysis/layui/images/face/41.gif
  76. BIN
      WebRoot/view/efireAnalysis/layui/images/face/42.gif
  77. BIN
      WebRoot/view/efireAnalysis/layui/images/face/43.gif
  78. BIN
      WebRoot/view/efireAnalysis/layui/images/face/44.gif
  79. BIN
      WebRoot/view/efireAnalysis/layui/images/face/45.gif
  80. BIN
      WebRoot/view/efireAnalysis/layui/images/face/46.gif
  81. BIN
      WebRoot/view/efireAnalysis/layui/images/face/47.gif
  82. BIN
      WebRoot/view/efireAnalysis/layui/images/face/48.gif
  83. BIN
      WebRoot/view/efireAnalysis/layui/images/face/49.gif
  84. BIN
      WebRoot/view/efireAnalysis/layui/images/face/5.gif
  85. BIN
      WebRoot/view/efireAnalysis/layui/images/face/50.gif
  86. BIN
      WebRoot/view/efireAnalysis/layui/images/face/51.gif
  87. BIN
      WebRoot/view/efireAnalysis/layui/images/face/52.gif
  88. BIN
      WebRoot/view/efireAnalysis/layui/images/face/53.gif
  89. BIN
      WebRoot/view/efireAnalysis/layui/images/face/54.gif
  90. BIN
      WebRoot/view/efireAnalysis/layui/images/face/55.gif
  91. BIN
      WebRoot/view/efireAnalysis/layui/images/face/56.gif
  92. BIN
      WebRoot/view/efireAnalysis/layui/images/face/57.gif
  93. BIN
      WebRoot/view/efireAnalysis/layui/images/face/58.gif
  94. BIN
      WebRoot/view/efireAnalysis/layui/images/face/59.gif
  95. BIN
      WebRoot/view/efireAnalysis/layui/images/face/6.gif
  96. BIN
      WebRoot/view/efireAnalysis/layui/images/face/60.gif
  97. BIN
      WebRoot/view/efireAnalysis/layui/images/face/61.gif
  98. BIN
      WebRoot/view/efireAnalysis/layui/images/face/62.gif
  99. BIN
      WebRoot/view/efireAnalysis/layui/images/face/63.gif
  100. BIN
      WebRoot/view/efireAnalysis/layui/images/face/64.gif

+ 71 - 0
WebRoot/view/efireAnalysis/api/request.js

@@ -0,0 +1,71 @@
+//url
+const URL = document.location.protocol+"//"+window.location.host;
+//const URL = window.location.host;
+//本地测试
+// const URL = "";
+// const ELE_FIRE_DATA = "api/data1.json"; //电气火灾
+
+//这里登陆用户名、密码 
+const aaa = sessionStorage.getItem('V_LOGINNAME');
+const bbb = sessionStorage.getItem('V_PASSWORD');
+const LOGIN_NAME = aaa;
+const LOGIN_PASSWORD = bbb;
+
+
+const ELE_FIRE_DATA = "/YtIoT/iot/analysis/view/getEfAnalysisList"; //电气火灾
+const WATER_DATA = "/YtIoT/iot/analysis/view/getWaterAnalysisList"; //水系统
+const GET_NAME_LIST_DATA = "/YtIoT/iot/company/view/getNameList"; //建筑下拉
+
+
+function ajaxRequest(path, method, data, success, error, type = 1) {
+
+    let url = URL + path;
+
+    let loginUser = {
+
+        "V_LOGINNAME": LOGIN_NAME,
+        "V_PASSWORD": LOGIN_PASSWORD,
+    }
+
+    if (type == 1) { //不传用户名密码
+
+        let paramJson = {};
+
+        for (key in data) {
+            paramJson[key] = data[key];
+        }
+
+        data = {}
+        data.queryJson = JSON.stringify(paramJson);
+
+
+    } else { //传用户名密码
+
+        let paramJson = {};
+
+        for (key in loginUser) {
+            paramJson[key] = loginUser[key];
+        }
+
+        for (key in data) {
+            paramJson[key] = data[key];
+        }
+
+        data = {}
+        data.queryJson = JSON.stringify(paramJson);
+    }
+
+    $.ajax({
+        async: false, //同步
+        data: data,
+        url: url,
+        type: method, //请求方式 post get delete put
+        dataType: "json",
+        beforeSend: function(XMLHttpRequest) {
+
+        },
+        success: success,
+        error: error
+    });
+
+}

+ 459 - 0
WebRoot/view/efireAnalysis/css/index.css

@@ -0,0 +1,459 @@
+* {
+  margin: 0;
+  padding: 0;
+  box-sizing: border-box;
+}
+li {
+  list-style: none;
+}
+select,
+input {
+  outline: none;
+}
+.text-left {
+  text-align: left;
+}
+/* 溢出滚动样式 */
+.summary ::-webkit-scrollbar {
+  height: 7px !important;
+  width: 7px !important;
+}
+/*定义了滚动条滑块的样式*/
+.summary ::-webkit-scrollbar-thumb {
+  border-radius: 5px;
+  border-style: dashed;
+  background-color: #28BEFC;
+  border-color: #e2242400;
+  border-width: 1.5px;
+  background-clip: padding-box;
+}
+/*定义了轨道的样式*/
+.summary ::-webkit-scrollbar-track {
+  /*滚动条里面轨道*/
+  -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0);
+  border-radius: 5px;
+  background: rgba(0, 0, 0, 0);
+}
+@font-face {
+  font-family: IMPACT;
+  src: url(../font/IMPACT.TTF);
+}
+body {
+  font-family: Arial, Helvetica, sans-serif;
+  margin: 0;
+  padding: 0;
+  /*  背景图定位 / 背景图尺寸  cover 完全铺满容器  contain 完整显示在容器内 */
+  background: url(../images/bg.jpg) no-repeat #000;
+  background-size: cover;
+  /* 行高是字体1.15倍 */
+  line-height: 1.15;
+  position: relative;
+}
+body .page-container {
+  font-family: Arial, Helvetica, sans-serif;
+  margin: 0;
+  padding: 0;
+  /*  背景图定位 / 背景图尺寸  cover 完全铺满容器  contain 完整显示在容器内 */
+  background: url(../images/bg.jpg) no-repeat #000;
+  background-size: cover;
+  /* 行高是字体1.15倍 */
+  line-height: 1.15;
+  position: relative;
+}
+header {
+  position: relative;
+  height: 1rem;
+  background: url(../images/head_bg.png) no-repeat top center;
+  background-size: 100% 100%;
+  min-width: 1024px;
+  max-width: 1920px;
+}
+header h1 {
+  font-size: 0.35rem;
+  color: #fff;
+  text-align: center;
+  line-height: 1rem;
+  font-weight: normal;
+}
+header .filterSec {
+  position: absolute;
+  top: 0;
+  right: 0.375rem;
+  line-height: 0.9375rem;
+  font-size: 0.25rem;
+  color: rgba(255, 255, 255, 0.7);
+}
+.mainbox {
+  min-width: 1024px;
+  max-width: 1920px;
+  padding: 0.225rem 0.225rem 0 0.2625rem;
+}
+.mainbox .topSection,
+.mainbox .bottomSection {
+  display: flex;
+}
+.mainbox.eleFire .topSection .column {
+  flex: 2;
+}
+.mainbox.eleFire .topSection .column:nth-child(2) {
+  flex: 5;
+  margin: 0 0 0 0.275rem;
+  overflow: hidden;
+}
+.mainbox .bottomSection .column {
+  flex: 1;
+}
+.mainbox .bottomSection .column:nth-child(2) {
+  flex: 1;
+  margin: 0 0 0 0.275rem;
+  overflow: hidden;
+}
+.panel {
+  position: relative;
+  height: 5.9rem;
+  border: 1px solid rgba(25, 140, 186, 0.5);
+  background: rgba(8, 26, 50, 0.6);
+  padding: 0 0.5375rem;
+  margin-bottom: 0.2rem;
+}
+.panel::before {
+  position: absolute;
+  top: 0;
+  left: 0;
+  content: "";
+  width: 10px;
+  height: 10px;
+  border-top: 2px solid #28BEFC;
+  border-left: 2px solid #28BEFC;
+}
+.panel::after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  content: "";
+  width: 10px;
+  height: 10px;
+  border-top: 2px solid #28BEFC;
+  border-right: 2px solid #28BEFC;
+}
+.panel .panel-footer {
+  position: absolute;
+  left: 0;
+  bottom: 0;
+  width: 100%;
+}
+.panel .panel-footer::before {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  content: "";
+  width: 10px;
+  height: 10px;
+  border-bottom: 2px solid #28BEFC;
+  border-left: 2px solid #28BEFC;
+}
+.panel .panel-footer::after {
+  position: absolute;
+  bottom: 0;
+  right: 0;
+  content: "";
+  width: 10px;
+  height: 10px;
+  border-bottom: 2px solid #28BEFC;
+  border-right: 2px solid #28BEFC;
+}
+.panel h2 {
+  height: 0.6rem;
+  line-height: 0.6rem;
+  text-align: center;
+  color: #0096FF;
+  font-size: 0.25rem;
+  font-weight: 400;
+  position: relative;
+}
+.panel h2 .line {
+  height: 1px;
+  background: rgba(25, 140, 186, 0.5);
+  position: relative;
+  width: 100%;
+  margin: 0 auto;
+}
+.panel h2 .line:before {
+  content: '';
+  top: 0.07rem;
+  left: -0.37rem;
+  width: 0.375rem;
+  height: 1px;
+  border-bottom: 1px solid rgba(25, 140, 186, 0.5);
+  display: inline-block;
+  transform: rotate(335deg);
+  position: absolute;
+}
+.panel h2 .line:after {
+  content: '';
+  top: 0.07rem;
+  right: -0.35rem;
+  width: 0.375rem;
+  height: 1px;
+  border-bottom: 1px solid rgba(25, 140, 186, 0.5);
+  display: inline-block;
+  transform: rotate(25deg);
+  position: absolute;
+}
+.panel h2 img {
+  height: 0.125rem;
+  vertical-align: middle;
+}
+.panel h2 span {
+  margin: 0 0.1875rem;
+}
+.panel .chart {
+  height: calc(100% - 0.6rem);
+}
+.tab-line {
+  height: 0.6rem;
+  margin: 0.25rem 0;
+  display: inline-block;
+}
+.tab-line a {
+  font-size: 0.175rem;
+  color: #0090F5;
+  padding: 0.125rem 0.45rem;
+  display: block;
+  float: left;
+  border: 1px solid #0096ff;
+  text-decoration: none;
+}
+.tab-line a.active {
+  background: #0096FF;
+  color: #fff;
+}
+@media screen and (max-width: 1024px) {
+  html {
+    font-size: 42px !important;
+  }
+}
+@media screen and (min-width: 1920) {
+  html {
+    font-size: 80px !important;
+  }
+}
+.line.panel {
+  text-align: center;
+}
+.line.panel .chart {
+  height: 50%;
+}
+.hotAnalysis.panel .chart,
+.data_fluctuation.panel .chart {
+  height: 62%;
+  margin-top: 0.5rem;
+}
+/* 搜索区域样式 */
+.filterSec {
+  position: absolute;
+  bottom: -0.0625rem;
+  right: 0;
+  font-size: 0.175rem;
+}
+.filterSec select,
+.filterSec input {
+  border: 1px solid #64A7D4;
+  width: 2.1rem;
+  height: 0.35rem;
+  color: #fff;
+  line-height: 0.35rem;
+  background: rgba(0, 0, 0, 0);
+  margin-right: 0.4rem;
+  font-size: 0.175rem;
+}
+.filterSec span {
+  display: inline-block;
+  margin-right: 0.125rem;
+  font-size: 0.175rem;
+}
+a.button {
+  padding: 0 0.15rem;
+  height: 0.35rem;
+  line-height: 0.35rem;
+  text-align: center;
+  border: 1px solid #64A7D4;
+  color: #fff;
+  display: inline-block;
+  text-decoration: none;
+  background: #034854;
+  cursor: pointer;
+  font-size: 0.175rem;
+}
+a.button img {
+  width: 0.25rem;
+  margin-top: -2px;
+  position: relative;
+  vertical-align: middle;
+}
+a.button text {
+  vertical-align: middle;
+  display: inline-block;
+}
+.mainbox.water .topSection .column:first-child {
+  flex: 1;
+}
+.mainbox.water .topSection .column:nth-child(2) {
+  flex: 2;
+  margin: 0 0.275rem;
+  overflow: hidden;
+}
+.mainbox.water .topSection .column:last-child {
+  flex: 1;
+}
+.water .divergence .chart {
+  margin-top: 0.5rem;
+  height: 60%;
+}
+.water .hiddenCheck .chart {
+  margin-top: 0.5rem;
+  height: 60%;
+}
+.summary {
+  color: #fff;
+  font-size: 0.175rem;
+  text-align: left;
+  width: 100%;
+  margin-top: 0.1rem;
+  height: 0.825rem;
+  padding: 0.15rem;
+  background-image: url(../images/summary-bg.png);
+  background-size: 100% 100%;
+  background-repeat: no-repeat;
+  display: flex;
+  align-items: top;
+}
+.summary div:first-child {
+  width: 0.85rem;
+}
+.summary div:last-child {
+  width: calc(100% - 0.85rem);
+  padding-right: 0.2rem;
+  height: 0.57rem;
+  overflow: auto;
+}
+.summary p {
+  line-height: 1.38;
+}
+.summary div {
+  display: inline-block;
+}
+.bar-3d .chart {
+  height: 50%;
+  background: url(../images/3d-bg.png);
+  background-repeat: no-repeat;
+  background-position: 50% 80%;
+}
+.bar-3d ul {
+  color: #fff;
+  font-size: 0.2rem;
+  display: flex;
+  margin: 0.5625rem 0;
+}
+.bar-3d ul li {
+  flex: 1;
+  text-align: center;
+}
+.bar-3d ul li .num {
+  font-size: 0.375rem;
+  margin-bottom: 0.1rem;
+  font-family: IMPACT;
+}
+.bar-3d ul li .num.total {
+  color: #FF3E3E;
+}
+.bar-3d ul li .num.unsolve {
+  color: #FA742B;
+}
+.bar-3d ul li .num.solved {
+  color: #1DD9E5;
+}
+.exportBox {
+  position: absolute;
+  left: 0;
+  right: 0;
+  bottom: 1rem;
+  top: 1rem;
+  font-size: 14px;
+  width: 100%;
+  height: 90%;
+  z-index: -1;
+}
+.exportBox table,
+.exportBox table tr th,
+.exportBox table tr td {
+  border: 1px solid #eee;
+  margin: 0 auto;
+}
+.exportBox td,
+.exportBox th {
+  padding: 3px 0;
+}
+.exportBox .exportContainer {
+  z-index: 19000;
+  width: 650px;
+  margin: 0 auto;
+  box-shadow: #888888 0px 0px 4px;
+  display: block;
+  background: #1f2833;
+  color: #fff;
+  height: calc(100% - 1rem);
+  overflow: auto;
+  padding: 15px;
+}
+.exportBox h3.title {
+  text-align: center;
+  background: #1f2833;
+  font-size: 16px;
+}
+.exportBox section {
+  padding-bottom: 30px;
+}
+.exportBox section .table-sub {
+  margin-top: 10px;
+  font-size: 13px;
+}
+.exportBox section .innerChart {
+  width: 100%;
+  height: 220px;
+  padding: 10px 0;
+}
+.exportBox section .summary2 {
+  display: flex;
+  margin: 0 10px;
+  line-height: 1.5;
+}
+.exportBox section .summary2 > div:first-child {
+  width: 60px;
+}
+.exportBox section .summary2 > div:last-child {
+  width: calc(100% - 30px);
+}
+.exportBox section .big-tit {
+  padding: 10px 0;
+  background: #1f2833;
+}
+.exportBox .section1 {
+  background: #1f2833;
+}
+.layui-layer-title {
+  background: #081A32 !important;
+  color: #fff !important;
+  border-bottom: 1px solid #1E9FFF !important;
+}
+.layui-layer {
+  background: #072442 !important;
+  color: #fff;
+}
+.layui-layer-ico {
+  border-radius: 50%;
+}
+.layui-layer-btn .layui-layer-btn0 {
+  font-size: 0.2rem;
+   border-radius:6px;
+}

+ 537 - 0
WebRoot/view/efireAnalysis/css/index.less

@@ -0,0 +1,537 @@
+* {
+  margin: 0;
+  padding: 0;
+  box-sizing: border-box;
+}
+
+li {
+  list-style: none;
+}
+select,input{
+  outline:none;
+}
+
+.text-left{
+  text-align:left
+}
+
+/* 溢出滚动样式 */
+
+.summary ::-webkit-scrollbar {
+  height: 7px !important;
+  width: 7px !important;
+}
+
+/*定义了滚动条滑块的样式*/
+
+.summary ::-webkit-scrollbar-thumb {
+  border-radius: 5px;
+  border-style: dashed;
+  background-color: #28BEFC;
+  border-color: #e2242400;
+  border-width: 1.5px;
+  background-clip: padding-box;
+}
+
+/*定义了轨道的样式*/
+.summary ::-webkit-scrollbar-track {
+  /*滚动条里面轨道*/
+  -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0);
+  border-radius: 5px;
+  background: rgba(0, 0, 0, 0);
+}
+
+
+
+@font-face {
+  font-family: IMPACT;
+  src: url(../font/IMPACT.TTF);
+}
+
+body {
+  font-family: Arial, Helvetica, sans-serif;
+  margin: 0;
+  padding: 0;
+  /*  背景图定位 / 背景图尺寸  cover 完全铺满容器  contain 完整显示在容器内 */
+  background: url(../images/bg.jpg) no-repeat #000;
+  background-size: cover;
+  /* 行高是字体1.15倍 */
+  line-height: 1.15;
+  position:relative;
+}
+body .page-container {
+  font-family: Arial, Helvetica, sans-serif;
+  margin: 0;
+  padding: 0;
+  /*  背景图定位 / 背景图尺寸  cover 完全铺满容器  contain 完整显示在容器内 */
+  background: url(../images/bg.jpg) no-repeat #000;
+  background-size: cover;
+  /* 行高是字体1.15倍 */
+  line-height: 1.15;
+  position:relative;
+}
+
+header {
+  position: relative;
+  height: 1rem;
+  background: url(../images/head_bg.png) no-repeat top center;
+  background-size: 100% 100%;
+  min-width: 1024px;
+  max-width: 1920px;
+
+  h1 {
+    font-size: .35rem;
+    color: #fff;
+    text-align: center;
+    line-height: 1rem;
+    font-weight: normal
+  }
+  .filterSec {
+    position: absolute;
+    top: 0;
+    right: 0.375rem;
+    line-height: 0.9375rem;
+    font-size: 0.25rem;
+    color: rgba(255, 255, 255, 0.7);
+  }
+}
+
+.mainbox {
+  min-width: 1024px;
+  max-width: 1920px;
+  padding: .225rem .225rem 0 .2625rem ;
+}
+
+.mainbox .topSection,
+.mainbox .bottomSection {
+  display: flex
+}
+
+.mainbox.eleFire .topSection .column {
+  flex: 2;
+}
+
+.mainbox.eleFire .topSection .column:nth-child(2) {
+  flex: 5;
+  margin: 0 0 0 .275rem;
+  overflow: hidden;
+}
+
+
+
+.mainbox .bottomSection .column {
+  flex: 1;
+}
+
+.mainbox .bottomSection .column:nth-child(2) {
+  flex: 1;
+  margin: 0 0 0 .275rem ;
+  overflow: hidden;
+}
+
+
+.panel {
+  position: relative;
+  height: 5.9rem;  
+  border: 1px solid rgba(25, 140, 186, 0.5);
+  background: rgba(8,26,50,0.60);
+  padding: 0 .5375rem ;
+  margin-bottom: .2rem;
+}
+
+.panel::before {
+  position: absolute;
+  top: 0;
+  left: 0;
+  content: "";
+  width: 10px;
+  height: 10px;
+  border-top: 2px solid #28BEFC;
+  border-left: 2px solid #28BEFC;
+}
+
+.panel::after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  content: "";
+  width: 10px;
+  height: 10px;
+  border-top: 2px solid #28BEFC;
+  border-right: 2px solid #28BEFC;
+}
+
+.panel .panel-footer {
+  position: absolute;
+  left: 0;
+  bottom: 0;
+  width: 100%;
+}
+
+.panel .panel-footer::before {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  content: "";
+  width: 10px;
+  height: 10px;
+  border-bottom: 2px solid #28BEFC;
+  border-left: 2px solid #28BEFC;
+}
+
+.panel .panel-footer::after {
+  position: absolute;
+  bottom: 0;
+  right: 0;
+  content: "";
+  width: 10px;
+  height: 10px;
+  border-bottom: 2px solid #28BEFC;
+  border-right: 2px solid #28BEFC;
+}
+
+.panel h2 {
+  height: 0.6rem;
+  line-height: 0.6rem;
+  text-align: center;
+  color: #0096FF;
+  font-size: 0.25rem;
+  font-weight: 400;
+  position: relative;
+}
+
+.panel h2 .line {
+  height: 1px;
+  background: rgba(25, 140, 186, 0.5);
+  position: relative;
+  width: 100%;
+  margin: 0 auto
+}
+
+.panel h2 .line:before {
+  content: '';
+  height: 1px;
+  top: .07rem;
+  left: -0.37rem;
+  width: .375rem;
+  height: 1px;
+  border-bottom: 1px solid rgba(25, 140, 186, 0.5);
+  display: inline-block;
+  transform: rotate(335deg);
+  position: absolute;
+}
+
+.panel h2 .line:after {
+  content: '';
+  height: 1px;
+  top: .07rem;
+  right: -0.35rem;
+  width: .375rem;
+  height: 1px;
+  border-bottom: 1px solid rgba(25, 140, 186, 0.5);
+  display: inline-block;
+  transform: rotate(25deg);
+  position: absolute;
+}
+
+.panel h2 img {
+  height: .125rem;
+  vertical-align: middle
+}
+
+.panel h2 span {
+  margin: 0 0.1875rem;
+}
+
+.panel .chart {
+ 
+  height:calc(100% - 0.6rem);
+  // border:1px solid pink;
+
+}
+
+.tab-line{
+  height: .6rem;
+  margin: .25rem 0;
+  display:inline-block;
+  a{
+    font-size: .175rem;
+    color:#0090F5;
+    
+    padding: .125rem .45rem;
+    display:block;
+    float:left;
+    border: 1px solid #0096ff;
+    text-decoration: none;
+  }
+  a.active{
+    background:#0096FF;
+    color:#fff
+
+  }
+} 
+
+
+@media screen and (max-width: 1024px) {
+  html {
+      font-size: 42px !important;
+  }
+}
+
+@media screen and (min-width: 1920) {
+  html {
+      font-size: 80px !important;
+  }
+}
+
+
+// 电老化分析
+
+
+.line.panel {
+  text-align:center;
+  .chart{
+    height:50%;
+  }
+
+}
+.hotAnalysis.panel .chart,.data_fluctuation.panel .chart{
+  height:62%;
+  margin-top:.5rem
+}
+
+/* 搜索区域样式 */
+
+.filterSec {
+  position: absolute;
+  bottom: -0.0625rem;
+  right: 0;
+  font-size: .175rem
+}
+
+.filterSec select,
+.filterSec input {
+  border: 1px solid #64A7D4;
+  width: 2.1rem;
+  height:.35rem;
+  color: #fff;
+  line-height: .35rem;
+  background: rgba(0, 0, 0, 0);
+  margin-right: .4rem;
+  font-size: .175rem
+}
+
+
+.filterSec span {
+  display: inline-block;
+  margin-right: .125rem;
+  font-size: .175rem
+}
+
+a.button {
+ padding:0 .15rem;
+  height: .35rem;
+  line-height: .35rem;
+  text-align: center;
+  border: 1px solid #64A7D4;
+  color: #fff;
+  display: inline-block;
+  text-decoration: none;
+  background: #034854;
+  cursor: pointer;
+  font-size: .175rem;
+  img{
+    width: .25rem;
+     margin-top:-2px;
+    position:relative;
+    vertical-align: middle;
+  }
+  text{
+    vertical-align: middle;
+    display:inline-block;
+  }
+}
+// 水系统
+.mainbox.water .topSection .column:first-child {
+  flex: 1;
+}
+.mainbox.water .topSection .column:nth-child(2) {
+  flex: 2;
+  margin: 0 .275rem;
+  overflow: hidden;
+}
+.mainbox.water .topSection .column:last-child{
+  flex: 1;
+}
+
+.water .divergence .chart{
+  margin-top:0.5rem;
+  height: 60%;
+}
+.water .hiddenCheck .chart{
+  margin-top:0.5rem;
+   height:60%
+ }
+
+
+ .summary{
+   color:#fff;
+   font-size: .175rem;
+   text-align:left;
+   width:100%;
+   margin-top:.1rem;
+   height: .825rem;
+  //  overflow-y:auto;
+   padding:  .15rem;
+   background-image:url(../images/summary-bg.png) ;
+   background-size:100% 100%;
+   background-repeat: no-repeat;
+   display: flex;
+   align-items:top;
+   
+   div:first-child{
+    width: .85rem;
+    
+   }
+   div:last-child{
+    width: calc(100% - .85rem);
+    padding-right:.2rem;
+    height: .57rem;
+    overflow: auto;
+   }
+   p{
+     line-height: 1.38
+   }
+   div{
+     display:inline-block;
+    // vertical-align: middle;
+   }
+ }
+ .bar-3d{
+  .chart{
+    height:50%;
+    // background:pink
+    background:url(../images/3d-bg.png);
+    background-repeat: no-repeat;
+    background-position: 50% 80%;
+  }
+  ul{
+    color:#fff;
+    font-size: .2rem;
+    display:flex;
+    margin: .5625rem 0;
+   
+    li{
+      flex:1;
+      text-align:center;
+      .num{
+        font-size: .375rem;
+        margin-bottom: .1rem;
+        font-family: IMPACT;
+      }
+      .num.total{
+        color:#FF3E3E
+      }
+      .num.unsolve{
+        color:#FA742B
+      }
+      .num.solved{
+        color:#1DD9E5
+      }
+    }
+  }
+ } 
+
+//  导出排版
+.exportBox{
+  position: absolute;
+  left: 0;
+  right: 0;
+  bottom: 1rem;
+  top:1rem;
+  font-size:14px;
+  width: 100%;
+  height: 90%;
+  // background:#aaa;
+  z-index: -1;
+
+  table,
+  table tr th,
+  table tr td {
+      border: 1px solid #eee;
+      margin:0 auto
+  }
+  td,th{
+    padding:3px 0
+   
+  }
+  .exportContainer {
+      z-index: 19000;
+      width: 650px;
+      margin: 0 auto;
+      box-shadow: rgb(136 136 136) 0px 0px 4px;
+      display: block;
+      background: #1f2833;
+      color: #fff;
+      height: calc(100% - 1rem);
+      overflow: auto;
+      // margin-top: 30px;
+      padding: 15px;
+  }
+
+  h3.title {
+      text-align: center;
+      background: #1f2833;
+      font-size:16px
+  }
+  section {
+    padding-bottom:30px;
+    .table-sub{
+      margin-top:10px;
+      font-size:13px;
+    }
+    .innerChart{
+      width:100%;
+      height:220px;
+      // background:#fff;
+      padding:10px 0;
+    }
+    .summary2{
+      display:flex;
+      margin:0 10px;
+      line-height:1.5;
+      >div:first-child {
+          width:60px;
+      }
+      >div:last-child {
+        width: calc(100% - 30px );
+    }
+    }
+    .big-tit {
+      padding: 10px 0;
+      background: #1f2833;
+  }
+}
+  .section1 {
+      background: #1f2833
+  }
+}
+
+//弹框按钮样式调整
+.layui-layer-title{
+  background:#081A32!important;
+  color:#fff!important;
+  border-bottom:1px solid #1E9FFF!important
+}
+
+.layui-layer{
+  background:rgba(7,36,66, 1)!important;
+  color:#fff
+}
+.layui-layer-ico{
+  border-radius:50%
+  // display:none!important
+}
+.layui-layer-btn .layui-layer-btn0 {
+  font-size: .3rem;
+}

+ 361 - 0
WebRoot/view/efireAnalysis/eleFireIndex.html

@@ -0,0 +1,361 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>杨浦二期(电气火灾)</title>
+    <script src="js/flexible.js"></script>
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="stylesheet" href="layui/css/layui.css">
+    <link rel="stylesheet" href="css/index.css" />
+
+</head>
+
+<body>
+
+    <div class="exportBox">
+        <div class="exportContainer" id="printArea">
+
+            <h3 style="text-align:center">电气火灾隐患分析报告</h3>
+
+            <section class="section">
+                <h4 class="big-tit">1 基本情况</h4>
+
+                <div>
+                    <h4 class="big-tit">1.1 项目情况</h4>
+                    <table width="100%" border=1 style="text-align: center;border-collapse: collapse;
+                    border-spacing: 0;" id="project_situation">
+                        <!-- <tr>
+                            <td>单位名称</td>
+                            <td colspan="5">中建广场</td>
+
+                        </tr>
+                        <tr>
+                            <td>进场日期</td>
+                            <td>2018-12-26 </td>
+                            <td>完工日期</td>
+                            <td>2019-01-22</td>
+                            <td>验收日期</td>
+                            <td>2019-01-25</td>
+                        </tr> -->
+                    </table>
+                    <p class="table-sub" style="text-align:center">表1:基本情况</p>
+                </div>
+
+                <div>
+                    <h4 class="big-tit">1.2 安装设备清单</h4>
+                    <table width="100%" border=1 style="text-align: center;border-collapse: collapse;
+                    border-spacing: 0;">
+                        <tr>
+                            <td>设备名称</td>
+                            <td>设备位置</td>
+                            <td>设备编号</td>
+                            <td>备注</td>
+                        </tr>
+                        <tbody id="equipment_list">
+                            <!-- <tr>
+                                <td>1-8层电气火灾</td>
+                                <td>1楼配电间内</td>
+                                <td>11902191670097</td>
+                                <td></td>
+                            </tr>
+                            <tr>
+                                <td>9-16层电气火灾</td>
+                                <td>1楼配电间内</td>
+                                <td>11902191670033</td>
+                                <td></td>
+                            </tr>
+                            <tr>
+                                <td>电梯(备用)电气火灾</td>
+                                <td>1楼配电间内</td>
+                                <td>11902191670058</td>
+                                <td></td>
+                            </tr>
+                            <tr>
+                                <td>公灯2电气火灾</td>
+                                <td>1楼配电间内</td>
+                                <td>11902191670069</td>
+                                <td></td>
+                            </tr> -->
+                        </tbody>
+
+                    </table>
+                    <p class="table-sub" style="text-align:center">表2:安装设备清单</p>
+                </div>
+
+
+                <div class="text-left">
+                    <h4 class="big-tit">1.3 统计时段</h4>
+                    <div id="statistical_period"></div>
+                    <!-- <div>统计起始日期:2020-12-01</div>
+                    <div>统计截止日期:2020-12-31</div>
+                    <div>统计时段时长:31</div> -->
+                </div>
+
+
+
+            </section>
+
+            <section class="">
+                <h4 class="big-tit">2 数据统计计算</h4>
+                <table width="100%" border=1 style="text-align: center;border-collapse: collapse;
+                border-spacing: 0;">
+                    <tr>
+                        <td>报警总数</td>
+                        <td>处理数</td>
+                        <td>未处理数</td>
+                        <td>处置率</td>
+                        <td>未处置率</td>
+                    </tr>
+                    <tbody id="data_statistics"></tbody>
+                    <!-- <tr>
+                        <td>1568</td>
+                        <td>1300</td>
+                        <td>268</td>
+                        <td>30%</td>
+                        <td>备注信息</td>
+                    </tr> -->
+                </table>
+
+                <p class="table-sub" style="text-align:center">表3:数据统计计算</p>
+            </section>
+
+            <section class="divergence">
+                <h4 class="big-tit">3 数据离散率挖掘</h4>
+                <h4 class="big-tit">3.1 三相电压</h4>
+                <div id="divergenceChart1" class="innerChart"></div>
+                <img id="divergenceChart1_img" style="width:100%;display:none;">
+
+                <h4 class="big-tit">3.2 三相电流</h4>
+                <div id="divergenceChart2" class=" innerChart"></div>
+                <img id="divergenceChart2_img" style="width:100%;display:none;">
+
+                <h4 class="big-tit">3.3 三相温度</h4>
+                <div id="divergenceChart3" class=" innerChart"></div>
+                <img id="divergenceChart3_img" style="width:100%;display:none;">
+
+                <h4 class="big-tit">3.4 漏电电流</h4>
+                <div id="divergenceChart4" class=" innerChart"></div>
+                <img id="divergenceChart4_img" style="width:100%;display:none;">
+
+                <div class="summary2 ">
+                    <div>
+                        <p>结论:</p>
+                    </div>
+                    <div class="summaryDetail">
+                        <!-- <div>1、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</div>
+                        <div>2、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</div>
+                        <div>3、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</div>
+                        <div>4、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</div> -->
+                    </div>
+                </div>
+
+            </section>
+
+
+            <section class="oldAnalysis">
+                <h4 class="big-tit">4 电老化分析</h4>
+
+                <h4 class="big-tit">4.1 异常设备监控电缆数据</h4>
+                <div id="oldAnalysisChart1" class="innerChart"></div>
+                <img id="oldAnalysisChart1_img" style="width:100%;display:none;">
+
+                <h4 class="big-tit">4.2 漏电告警数据</h4>
+                <div id="oldAnalysisChart2" class="innerChart"></div>
+                <img id="oldAnalysisChart2_img" style="width:100%;display:none;">
+
+                <div class="summary2">
+                    <div>
+                        <p>结论:</p>
+                    </div>
+                    <div class="summaryDetail">
+                        <!-- <div>1、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</div> -->
+                    </div>
+                </div>
+
+            </section>
+
+            <section class="hotAnalysis">
+                <h4 class="big-tit">5 热老化分析</h4>
+
+                <div id="hotAnalysisChart1" class="innerChart"></div>
+                <img id="hotAnalysisChart1_img" style="width:100%;display:none;">
+
+
+                <div class="summary2">
+                    <div>
+                        <p>结论:</p>
+                    </div>
+                    <div class="summaryDetail">
+                        <!-- <div>1、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;1、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;1、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;1、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</div> -->
+                    </div>
+                </div>
+
+            </section>
+
+
+
+
+        </div>
+    </div>
+
+    <div class="page-container">
+        <header>
+            <h1>分析报告及数据可视化</h1>
+            <div class="filterSec">
+                <span>建筑</span>
+                <select name="" id="building">
+                    <option value="10246" style="background-color: #666666">建筑一</option>
+                    <option value="10062" style="background-color: #666666">建筑二</option>
+                </select>
+                <span>时间</span>
+                <div class="layui-inline"><input type="text" id="chooseTime" class="layui-input test-item"></div>
+
+                <a class="button">
+                    <img src="images/export-icon.svg" alt="">
+                    <text id="btnPrint">导出</text>
+                </a>
+            </div>
+
+        </header>
+
+        <section class="mainbox eleFire">
+
+            <div class="topSection">
+                <div class="column">
+                    <div class="panel bar-3d">
+                        <h2>
+                            <img src="images/title-bg.png" alt="">
+                            <span>数据统计计算</span>
+                            <img src="images/title-bg2.png" alt="">
+                            <div class="line"></div>
+                        </h2>
+                        <ul>
+                            <li>
+                                <p class="num total"></p>
+                                <p>报警总数</p>
+                            </li>
+                            <li>
+                                <p class="num solved"></p>
+                                <p>处理数</p>
+                            </li>
+                            <li>
+                                <p class="num unsolve"></p>
+                                <p>未处理数</p>
+                            </li>
+                        </ul>
+                        <div class="chart">
+                        </div>
+                        <div class="panel-footer"></div>
+                    </div>
+                </div>
+                <div class="column">
+                    <div class="panel line divergence">
+                        <h2>
+                            <img src="images/title-bg.png" alt="">
+                            <span>数据离散率挖掘</span>
+                            <img src="images/title-bg2.png" alt="">
+                            <div class="line"></div>
+                        </h2>
+
+                        <div class="tab-line">
+                            <a href="javascript:;" class="active">三相电压</a>
+                            <a href="javascript:;">三相电流</a>
+                            <a href="javascript:;">三相温度</a>
+                            <a href="javascript:;">漏电电流</a>
+                        </div>
+
+                        <div class="chart"></div>
+
+                        <div class="summary">
+                            <div>
+                                <p>结论:</p>
+                            </div>
+                            <div class="summaryDetail">
+                                <p>1、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</p>
+                                <p>2、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</p>
+                                <p>3、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</p>
+                                <p>4、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</p>
+                            </div>
+                        </div>
+                        <div class="panel-footer"></div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="bottomSection">
+                <div class="column">
+                    <div class="panel line oldAnalysis">
+                        <h2>
+                            <img src="images/title-bg.png" alt="">
+                            <span>电老化分析</span>
+                            <img src="images/title-bg2.png" alt="">
+                            <div class="line"></div>
+                        </h2>
+                        <div class="tab-line">
+                            <a href="javascript:;" class="active" id="active">异常设备监控电缆数据</a>
+                            <a href="javascript:;">漏电告警数据</a>
+                        </div>
+
+                        <div class="chart"></div>
+
+                        <div class="summary">
+                            <div>
+                                <p>结论:</p>
+                            </div>
+                            <div class="summaryDetail">
+                                <p>1、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</p>
+                                <p>2、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</p>
+                            </div>
+                        </div>
+                        <div class="panel-footer"></div>
+                    </div>
+                </div>
+                <div class="column">
+                    <div class="panel line hotAnalysis">
+                        <h2>
+                            <img src="images/title-bg.png" alt="">
+                            <span>热老化分析</span>
+                            <img src="images/title-bg2.png" alt="">
+                            <div class="line"></div>
+                        </h2>
+
+                        <div class="chart"></div>
+
+                        <div class="summary">
+                            <div>
+                                <p>结论:</p>
+                            </div>
+                            <div class="summaryDetail">
+                                <p>1、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</p>
+                                <p>2、请检查绝缘皮出现硬化、裂纹;接触电阻变大,现硬化、裂纹;</p>
+                            </div>
+                        </div>
+                        <div class="panel-footer"></div>
+                    </div>
+                </div>
+            </div>
+
+        </section>
+    </div>
+
+
+
+    <script src="js/jquery.js"></script>
+    <script src="layui/layui.js"></script>
+
+    <script src="js/echarts.min.js"></script>
+    <script src="js/echarts-gl.min.js"></script>
+
+    <script src="api/request.js"></script>
+    <script src="js/util.js"></script>
+
+    <script src="js/eleFire.js"></script>
+
+
+    <script>
+    </script>
+</body>
+
+</html>

BIN
WebRoot/view/efireAnalysis/font/IMPACT.TTF


BIN
WebRoot/view/efireAnalysis/images/3d-bg.png


BIN
WebRoot/view/efireAnalysis/images/bg.jpg


+ 1 - 0
WebRoot/view/efireAnalysis/images/export-icon.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1618192139499" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5348" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 784c-17.6 0-32-14.4-32-32V144h64v608c0 17.6-14.4 32-32 32zM864 960H160c-17.6 0-32-14.4-32-32s14.4-32 32-32h704c17.6 0 32 14.4 32 32s-14.4 32-32 32z" fill="#ffffff" p-id="5349"></path><path d="M240 380.8c12.8 12.8 32 12.8 44.8 0L512 155.2l225.6 225.6c12.8 12.8 32 12.8 44.8 0 12.8-12.8 12.8-32 0-44.8L512 64 240 336c-12.8 12.8-12.8 32 0 44.8z" fill="#ffffff" p-id="5350"></path></svg>

BIN
WebRoot/view/efireAnalysis/images/favicon.ico


BIN
WebRoot/view/efireAnalysis/images/head_bg.png


BIN
WebRoot/view/efireAnalysis/images/summary-bg.png


BIN
WebRoot/view/efireAnalysis/images/title-bg.png


BIN
WebRoot/view/efireAnalysis/images/title-bg2.png


+ 59 - 0
WebRoot/view/efireAnalysis/index.jsp

@@ -0,0 +1,59 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<%@ page session="true" %>
+<%
+    String path = request.getContextPath();
+    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+    String baseUrl = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/";
+    String t = String.valueOf(System.currentTimeMillis());
+    String theme = request.getParameter("theme");
+    String css_name = "ext-all-access.css";
+    if(theme!=null){
+    	if(theme.equals("gray"))
+    		css_name = "ext-all-gray.css";
+    	else if(theme.equals("access"))
+    		css_name = "ext-all-access.css";
+    	else if(theme.equals("neptune"))
+    		css_name = "ext-neptune.css";
+    	else if(theme.equals("default"))
+    		css_name = "ext-all.css";
+    	else if(theme.equals("scoped"))
+    		css_name = "ext-all-scoped";
+    	else if(theme.equals("ie"))
+    		css_name = "ext-ie.css";
+    	else if(theme.equals("sandbox"))
+    		css_name = "ext-sandbox.css";
+    	else if(theme.equals("standard"))
+    		css_name = "ext-standard.css";
+    }else
+    	theme = "";
+%>
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link type="text/css" rel="stylesheet" href="<%=basePath+"res/extjs/resources/css/"+css_name+"?t="+t %>"/>
+<link type="text/css" rel="stylesheet" href="<%=basePath+"res/img/myImages.css?t="+t %>"/>
+<script type="text/javascript" src ="<%=basePath+"res/extjs/ext-all.js" %>"></script>
+<script type="text/javascript" src ="<%=basePath+"res/extjs/locale/ext-lang-zh_CN.js" %>"></script>
+<script type="text/javascript" src="<%=basePath+"res/jquery/jquery-3.3.1.min.js" %>"></script>
+<script type="text/javascript" src="<%=basePath+"res/jquery/html2canvas.min.js" %>"></script>
+<script type="text/javascript" src="<%=basePath+"res/jquery/canvas2image.js" %>"></script>
+<script type="text/javascript" src="<%=basePath+"res/jquery/base64.js" %>"></script>
+<script type="text/javascript" src="<%=basePath+"res/jquery/echarts.simple.min.js" %>"></script>
+<script type="text/javascript" src="<%=basePath+"res/jquery/highcharts.js"%>"></script>
+<script type="text/javascript" src="<%=basePath+"res/jquery/exporting.js" %>"></script>
+<script type="text/javascript" src ="<%=basePath+"view/efireAnalysis/scripts/projectWoker.js" %>"></script>
+<title>IoT-02型永天消防综合监控系统</title>
+</head>
+<body style="font-size:18pt;font-family:'微软雅黑', Microsoft YaHei; ">
+<input type="hidden" id="theme" name="theme" value="<%=theme %>"/>
+<input type="hidden" id="basePath" name="basePath" value="<%=basePath %>"/>
+<input type="hidden" id="viewAlarmType" name="viewAlarmType" value="11110010"/>
+<input type="hidden" id="pieAlarmType" name="pieAlarmType" value="11110010"/>
+<input type="hidden" id="statusType" name="statusType" value="11110010"/>
+<input type="hidden" id="V_LOGINNAME" name="V_LOGINNAME" value=""/>
+<input type="hidden" id="V_PASSWORD" name="V_PASSWORD" value=""/>
+<input type="hidden" id="company_code" name="company_code" value=""/>
+</body>
+</html>

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
WebRoot/view/efireAnalysis/js/echarts-gl.min.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 34 - 0
WebRoot/view/efireAnalysis/js/echarts.min.js


+ 2382 - 0
WebRoot/view/efireAnalysis/js/eleFire.js

@@ -0,0 +1,2382 @@
+/* 
+     电气火灾数据对接
+*/
+
+
+//建筑下拉
+getNameList();
+
+function getNameList(queryParam = {}) {
+
+    ajaxRequest(GET_NAME_LIST_DATA, "POST", queryParam, function(result) {
+        let data = result.RESULT;
+        let items = '';
+
+        data.forEach(function(item, key) {
+
+            items += `<option value="${item.owner_id}" style="background-color: #666666">${item.owner_name}</option>`
+
+        })
+        $('#building').html(items);
+
+    }, function(errorMsg) {
+        // alert("请求数据失败!");
+    }, 2)
+};
+
+//日期筛选
+layui.use('laydate', function() {
+    var laydate = layui.laydate;
+    ///年月选择器
+    laydate.render({
+        elem: '#chooseTime',
+        type: 'month',
+        max: -30, //7天后
+        trigger: 'click', //呼出事件改成click
+        done: function(value, date, endDate) {
+            setTimeout(function() {
+                getListData(getSearchParamObj());
+            }, 100)
+        }
+
+    });
+
+});
+
+//建筑筛选
+$("#building").change(function() {
+    setTimeout(function() {
+        getListData(getSearchParamObj());
+    }, 100)
+
+});
+
+// 数据请求传参
+getListData(getSearchParamObj());
+
+function getListData(queryParam = {}) {
+
+    ajaxRequest(ELE_FIRE_DATA, "POST", queryParam, function(result) {
+
+        if (result.totalCount != 0) {
+
+            /* 
+                 主页面数据对接 start
+            */
+
+            //数据统计
+            var data_statistics = result.RESULT[0].data_statistics;
+            $('.total').html(data_statistics.alarm_number);
+            $('.solved').html(data_statistics.processing_number);
+            $('.unsolve').html(data_statistics.unprocessed_number);
+
+            // 环状饼图定制 (数据统计计算)
+            (function() {
+                // 实例化对象
+                var myChart = echarts.init(document.querySelector(".bar-3d .chart"));
+
+                // 生成扇形的曲面参数方程,用于 series-surface.parametricEquation
+                function getParametricEquation(startRatio, endRatio, isSelected, isHovered, k, height) {
+
+                    // 计算
+                    let midRatio = (startRatio + endRatio) / 2;
+
+                    let startRadian = startRatio * Math.PI * 2;
+                    let endRadian = endRatio * Math.PI * 2;
+                    let midRadian = midRatio * Math.PI * 2;
+
+                    // 如果只有一个扇形,则不实现选中效果。
+                    if (startRatio === 0 && endRatio === 1) {
+                        isSelected = false;
+                    }
+
+                    // 通过扇形内径/外径的值,换算出辅助参数 k(默认值 1/3)
+                    k = typeof k !== 'undefined' ? k : 1 / 3;
+
+                    // 计算选中效果分别在 x 轴、y 轴方向上的位移(未选中,则位移均为 0)
+                    let offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0;
+                    let offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0;
+
+                    // 计算高亮效果的放大比例(未高亮,则比例为 1)
+                    let hoverRate = isHovered ? 1.05 : 1;
+
+                    // 返回曲面参数方程
+                    return {
+
+                        u: {
+                            min: -Math.PI,
+                            max: Math.PI * 3,
+                            step: Math.PI / 32
+                        },
+
+                        v: {
+                            min: 0,
+                            max: Math.PI * 2,
+                            step: Math.PI / 20
+                        },
+
+                        x: function(u, v) {
+                            if (u < startRadian) {
+                                return offsetX + Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                            }
+                            if (u > endRadian) {
+                                return offsetX + Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                            }
+                            return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate;
+                        },
+
+                        y: function(u, v) {
+                            if (u < startRadian) {
+                                return offsetY + Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                            }
+                            if (u > endRadian) {
+                                return offsetY + Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                            }
+                            return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate;
+                        },
+
+                        z: function(u, v) {
+                            if (u < -Math.PI * 0.5) {
+                                return Math.sin(u);
+                            }
+                            if (u > Math.PI * 2.5) {
+                                return Math.sin(u);
+                            }
+                            return Math.sin(v) > 0 ? 1 : -1;
+                        }
+                    };
+                }
+
+                // 生成模拟 3D 饼图的配置项
+                function getPie3D(pieData, internalDiameterRatio) {
+
+                    let series = [];
+                    let sumValue = 0;
+                    let startValue = 0;
+                    let endValue = 0;
+                    let legendData = [];
+                    let k = typeof internalDiameterRatio !== 'undefined' ? (1 - internalDiameterRatio) / (1 + internalDiameterRatio) : 1 / 3;
+
+                    // 为每一个饼图数据,生成一个 series-surface 配置
+                    for (let i = 0; i < pieData.length; i++) {
+
+                        sumValue += pieData[i].value;
+
+                        let seriesItem = {
+                            name: typeof pieData[i].name === 'undefined' ? `series${i}` : pieData[i].name,
+                            type: 'surface',
+                            parametric: true,
+                            wireframe: {
+                                show: false
+                            },
+                            pieData: pieData[i],
+                            pieStatus: {
+                                selected: false,
+                                hovered: false,
+                                k: k
+                            }
+                        };
+
+                        if (typeof pieData[i].itemStyle != 'undefined') {
+
+                            let itemStyle = {};
+
+                            typeof pieData[i].itemStyle.color != 'undefined' ? itemStyle.color = pieData[i].itemStyle.color : null;
+                            typeof pieData[i].itemStyle.opacity != 'undefined' ? itemStyle.opacity = pieData[i].itemStyle.opacity : null;
+
+                            seriesItem.itemStyle = itemStyle;
+                        }
+                        series.push(seriesItem);
+                    }
+
+                    // 使用上一次遍历时,计算出的数据和 sumValue,调用 getParametricEquation 函数,
+                    // 向每个 series-surface 传入不同的参数方程 series-surface.parametricEquation,也就是实现每一个扇形。
+                    for (let i = 0; i < series.length; i++) {
+                        endValue = startValue + series[i].pieData.value;
+                        // console.log(series[i]);
+                        series[i].pieData.startRatio = startValue / sumValue;
+                        series[i].pieData.endRatio = endValue / sumValue;
+                        series[i].parametricEquation = getParametricEquation(series[i].pieData.startRatio, series[i].pieData.endRatio, false, false, k, series[i].pieData.value);
+
+                        startValue = endValue;
+
+                        legendData.push(series[i].name);
+                    }
+
+
+
+                    // 准备待返回的配置项,把准备好的 legendData、series 传入。
+                    let option = {
+
+                        tooltip: {
+                            backgroundColor: '#12DFE0',
+                            formatter: params => {
+                                if (params.seriesName !== 'mouseoutSeries') {
+                                    // return `${params.seriesName}<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${params.color};"></span>${option.series[params.seriesIndex].pieData.value}%`;
+                                    return `${params.seriesName}: ${option.series[params.seriesIndex].pieData.value}%`;
+                                }
+                            }
+                        },
+
+                        xAxis3D: {
+                            min: -1,
+                            max: 1
+                        },
+                        yAxis3D: {
+                            min: -1,
+                            max: 1
+                        },
+                        zAxis3D: {
+                            min: -1,
+                            max: 1
+                        },
+                        grid3D: {
+
+
+                            show: false,
+                            boxHeight: 40,
+                            top: '-10%',
+                            // bottom: '80%',
+                            // environment: '../images/3d-bg.png', //aa背景色
+
+                            viewControl: {
+                                distance: 170, //aa距离
+                                alpha: 21, //aa角度
+                                beta: 60, //aa角度
+                                zoomSensitivity: false //是否开启缩放和平移
+                            },
+                        },
+                        series: series
+                    };
+                    return option;
+                }
+
+                // 传入数据生成 option
+                var option = getPie3D([{
+                        name: '已处理率',
+                        value: data_statistics.treatment_rate,
+                        itemStyle: {
+                            opacity: 0.5,
+                            color: 'rgba(0,127,244,.8)',
+                        }
+                    }, {
+                        name: '未处理率',
+                        value: data_statistics.untreated_rate,
+                        itemStyle: {
+                            opacity: 0.5,
+                            color: 'rgba(209,126,23,.8)',
+                        }
+                    }
+
+                ], 2);
+
+                // 把配置给实例对象
+                myChart.setOption(option);
+                window.addEventListener("resize", function() {
+                    myChart.resize();
+                });
+
+            })();
+
+            // 折线图定制 (数据离散率挖掘)
+            (function() {
+
+                let dispersion_rate = result.RESULT[0].dispersion_rate;
+
+                // 结论数据渲染
+                var items = '';
+                var conclusion = dispersion_rate.conclusion
+                for (x in conclusion) {
+                    xIndex = x.substr(x.length - 1, 1);
+                    items += `<p>${xIndex}、${conclusion[x]}</p>`
+                }
+                $('.divergence .summaryDetail').html(items);
+
+                // 三相电压
+                let a = [];
+                let b = [];
+                let c = [];
+                let d = [];
+                let voltage = dispersion_rate.voltage;
+                voltage.forEach(function(item, index) {
+                    a.push(item.variance)
+                    b.push(item.standard_deviation)
+                    c.push(item.average_value)
+                    d.push(item.data_time)
+                });
+
+                // 三相电流
+                let a2 = [];
+                let b2 = [];
+                let c2 = [];
+                let d2 = [];
+                let electric_current = dispersion_rate.electric_current;
+                electric_current.forEach(function(item, index) {
+                    a2.push(item.variance)
+                    b2.push(item.standard_deviation)
+                    c2.push(item.average_value)
+                    d2.push(item.data_time)
+                });
+
+                // 三相温度
+                let a3 = [];
+                let b3 = [];
+                let c3 = [];
+                let d3 = [];
+                let temperature = dispersion_rate.temperature;
+                temperature.forEach(function(item, index) {
+                    a3.push(item.variance)
+                    b3.push(item.standard_deviation)
+                    c3.push(item.average_value)
+                    d3.push(item.data_time)
+                });
+
+                //  漏电电流
+                let a4 = [];
+                let b4 = [];
+                let c4 = [];
+                let d4 = [];
+                let leakage_current = dispersion_rate.leakage_current;
+                leakage_current.forEach(function(item, index) {
+                    a4.push(item.variance)
+                    b4.push(item.standard_deviation)
+                    c4.push(item.average_value)
+                    d4.push(item.data_time)
+                });
+
+                var sortData = [{
+                        sortName: "三相电压",
+                        data: [a, b, c, d]
+                    },
+                    {
+                        sortName: "三相电流",
+                        data: [a2, b2, c2, d2]
+                    },
+                    {
+                        sortName: "三相温度",
+                        data: [a3, b3, c3, d3]
+                    }, {
+                        sortName: "漏电电流",
+                        data: [a4, b4, c4, d4]
+                    },
+                ];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < leakage_current.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector(".divergence .chart"));
+                // 2.指定配置
+                var option = {
+
+                    color: [{
+                            colorStops: [{
+                                offset: 0,
+                                color: '#F9860C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#fff' // 100% 处的颜色
+                            }],
+                        },
+
+                        {
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#07E1F1' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#0456CB' // 100% 处的颜色
+                            }],
+
+                        },
+
+                        {
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#11F90C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#3FC713' // 100% 处的颜色
+                            }],
+
+                        }
+
+                    ],
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        formatter: '{a0}: {c0}<br />{a1}: {c1}<br />{a2}: {c2}<br />时间:{b}'
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#fff"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "20%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: d,
+                        axisTick: {
+                            show: true
+                        },
+                        axisLabel: {
+                            interval: 0,
+                            show: false,
+                            // color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            lineStyle: {
+                                color: 'rgba(255,255,255,.3)'
+                            }
+                        },
+                        splitNumber: 8,
+                        splitLine: {
+                            show: false
+                        },
+                        splitArea: {
+                            show: true,
+                            areaStyle: {
+                                color: ["rgba(250,250,250,0.05)", "rgba(250,250,250,0.0)"]
+                            }
+                        }
+                    },
+
+                    yAxis: {
+                        // scale: true,
+                        // min: 'dataMin',
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#012f4a" // 分割线颜色
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "方差",
+                            type: "line",
+                            data: a
+                        },
+                        {
+                            symbol: "none",
+                            name: "标准差",
+                            type: "line",
+                            data: b
+                        }, {
+                            symbol: "none",
+                            name: "平均值",
+                            type: "line",
+                            data: c
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                window.addEventListener("resize", function() {
+                    myChart.resize();
+                });
+
+                // 点击切换效果
+                $(".divergence .tab-line").on("click", "a", function() {
+                    $(this).addClass('active').siblings().removeClass('active')
+                    var obj = sortData[$(this).index()];
+                    option.series[0].data = obj.data[0];
+                    option.series[1].data = obj.data[1];
+                    option.series[2].data = obj.data[2];
+
+                    // 重新渲染
+                    myChart.setOption(option);
+
+                });
+            })();
+
+            // 折线图定制 (电老化分析)
+            (function() {
+
+                let electrical_aging = result.RESULT[0].electrical_aging;
+                // console.log(electrical_aging)
+
+                // 结论数据渲染
+                var items = '';
+                var conclusion = electrical_aging.conclusion
+                for (x in conclusion) {
+                    xIndex = x.substr(x.length - 1, 1);
+                    items += `<p>${xIndex}、${conclusion[x]}</p>`
+                }
+                $('.oldAnalysis .summaryDetail').html(items);
+
+
+                // 异常设备监控电缆数据
+                let a = [];
+                let b = [];
+                let data_time = [];
+
+                let abnormal_equipment = electrical_aging.abnormal_equipment;
+                abnormal_equipment.forEach(function(item, index) {
+                    a.push(item.electric_current)
+                    b.push(item.voltage)
+                    data_time.push(item.data_time)
+                });
+                // console.log(data_time)
+
+                // 漏电告警数据
+                let a2 = [];
+                let b2 = [];
+                let data_time2 = [];
+
+                let leakage_alarm = electrical_aging.leakage_alarm;
+                leakage_alarm.forEach(function(item, index) {
+                    a2.push(item.electric_current)
+                    b2.push(item.voltage)
+                    data_time2.push(item.data_time)
+                });
+                // console.log(data_time2)
+
+                var sortData = [{
+                        sortName: "异常设备",
+                        data: [a, b]
+
+                    },
+                    {
+                        sortName: "漏电告警",
+                        data: [a2, b2]
+                    }
+                ];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < leakage_alarm.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector(".oldAnalysis .chart"));
+                // 2.指定配置
+                var option = {
+
+                    color: ["#FF9C00", "#0096FF"], // 通过这个color修改两条线的颜色
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+
+                        formatter: function(params) {
+                            if ($('#active').hasClass('active')) {
+                                var res = params[0].seriesName + ':' + params[0].value + 'mA<br />' + params[1].seriesName + ':' + params[1].value + 'V<br />时间:' + data_time[params[0].dataIndex];
+                            } else {
+                                var res = params[0].seriesName + ':' + params[0].value + 'mA<br />' + params[1].seriesName + ':' + params[1].value + 'V<br />时间:' + data_time2[params[0].dataIndex];
+                            }
+                            return res;
+                        },
+                        // formatter: '{a0}: {c0}<br />{a1}: {c1}<br />时间:' + chooseTime + ''
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#fff"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "15%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xData,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#012f4a" // 分割线颜色
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "电流",
+                            type: "line",
+                            smooth: true, // true 可以让我们的折线显示带有弧度
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(255,156,0, 0.4)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(255,156,0, 0.3)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "电压",
+                            type: "line",
+                            smooth: true,
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(0,150,255,0.5)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(0,150,255, 0.1)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+                            data: sortData[0].data[1]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                window.addEventListener("resize", function() {
+                    myChart.resize();
+                });
+
+                // 点击切换效果
+                $(".oldAnalysis .tab-line").on("click", "a", function() {
+                    $(this).addClass('active').siblings().removeClass('active')
+                    var obj = sortData[$(this).index()];
+                    option.series[0].data = obj.data[0];
+                    option.series[1].data = obj.data[1];
+                    // 重新渲染
+                    myChart.setOption(option);
+
+                });
+            })();
+
+            // 折线图定制 (热老化分析)
+            (function() {
+
+                let thermal_aging = result.RESULT[0].thermal_aging;
+
+                // 结论数据渲染
+                var items = '';
+                var conclusion = thermal_aging.conclusion
+                for (x in conclusion) {
+                    xIndex = x.substr(x.length - 1, 1);
+                    items += `<p>${xIndex}、${conclusion[x]}</p>`
+                }
+                $('.hotAnalysis .summaryDetail').html(items);
+
+
+                // 热老化
+                let a = [];
+                let b = [];
+                let c = [];
+                let data_time = [];
+                let visualization = thermal_aging.visualization;
+                visualization.forEach(function(item, index) {
+                    a.push(item.generation_temperature)
+                    b.push(item.ambient_temperature)
+                    c.push(item.Cable_temperature)
+                    data_time.push(item.data_time)
+                });
+
+                var sortData = [{
+                    data: [
+                        // 三个数组是因为有3条线
+                        a, b, c
+                    ]
+                }];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < visualization.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector(".hotAnalysis .chart"));
+                // 2.指定配置
+                var option = {
+
+                    color: ["#05EEE7", "#9999FF", "#FE92B3"], // 通过这个color修改三条线的颜色
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        // formatter: '{a0}: {c0}°C<br />{a1}: {c1}°C<br />{a2}: {c2}°C<br />时间:' + chooseTime + ''
+                        formatter: function(params) {
+                            var res = params[0].seriesName + ':' + params[0].value + '°C<br />' + params[1].seriesName + ':' + params[1].value + '°C<br />' + params[2].seriesName + ':' + params[2].value + '°C<br />时间:' + data_time[params[2].dataIndex];
+                            return res;
+                        },
+
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#fff"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "15%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xData,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#012f4a" // 分割线颜色
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "线缆产生的温度",
+                            type: "line",
+                            smooth: true, // true 可以让我们的折线显示带有弧度
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(5,238,231,.6)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(5,238,231, 0.4)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                }
+                            },
+
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "环境温度",
+                            type: "line",
+                            smooth: true,
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(153,153,255,.6)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(153,153,255, 0.4)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                }
+                            },
+
+                            data: sortData[0].data[1]
+                        },
+                        {
+                            symbol: "none",
+                            name: "线缆温度",
+                            type: "line",
+                            smooth: true,
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(255,147,180,.6)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(255,147,180, 0.4)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                }
+                            },
+
+                            data: sortData[0].data[2]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                window.addEventListener("resize", function() {
+                    myChart.resize();
+                });
+
+
+            })();
+
+            /* 
+                 主页面数据对接 end
+            */
+
+
+            /* 
+                 导出数据对接 start
+            */
+
+
+            //项目情况
+            var project_situation = result.RESULT[0].project_situation;
+            var items = '';
+            items = `<tr>
+                    <td>单位名称</td>
+                    <td colspan="5">${project_situation.company_name}</td>
+                </tr>
+                <tr>
+                    <td>进场日期</td>
+                    <td>${project_situation.entry_date} </td>
+                    <td>完工日期</td>
+                    <td>${project_situation.completion_date}</td>
+                    <td>验收日期</td>
+                    <td>${project_situation.acceptance_date}</td>
+                </tr>`
+            $('#project_situation').html(items);
+
+            //设备清单
+            var equipment_list = result.RESULT[0].equipment_list;
+            var items2 = '';
+            if (equipment_list) {
+                equipment_list.forEach(function(item, key) {
+                    items2 += `<tr>
+                                <td>${item.device_name}</td>  
+                                <td>${item.device_info}</td>
+                                <td>${item.device_code}</td>
+                                <td>${item.remarks}</td>
+                            </tr>`;
+                })
+                $('#equipment_list').html(items2)
+            }
+
+            //统计时段
+            var statistical_period = result.RESULT[0].statistical_period;
+            var items3 = '';
+            items3 = `<div>统计起始日期:${statistical_period.start_date}</div>
+                <div>统计截止日期:${statistical_period.closing_date}</div>
+                <div>统计时段时长:${statistical_period.duration}</div>`;
+            $('#statistical_period').html(items3)
+
+            //数据统计计算
+            var data_statistics = result.RESULT[0].data_statistics;
+            var items4 = '';
+            items4 = `<tr>
+                    <td>${data_statistics.alarm_number}</td>
+                    <td>${data_statistics.processing_number}</td>
+                    <td>${data_statistics.unprocessed_number}</td>
+                    <td>${data_statistics.treatment_rate}</td>
+                    <td>${data_statistics.untreated_rate}</td>
+                </tr>`;
+            $('#data_statistics').html(items4);
+
+
+            // 数据离散率挖掘
+            let dispersion_rate = result.RESULT[0].dispersion_rate;
+
+            // 结论数据渲染
+            var items = '';
+            var conclusion = dispersion_rate.conclusion
+            for (x in conclusion) {
+                xIndex = x.substr(x.length - 1, 1);
+                items += `<div>${xIndex}、${conclusion[x]}</div>`
+            }
+            $('.exportBox .divergence .summaryDetail').html(items);
+
+            // 数据离散率挖掘1
+            (function() {
+                // 三相电压
+                let a = [];
+                let b = [];
+                let c = [];
+                let d = [];
+                let voltage = dispersion_rate.voltage;
+                voltage.forEach(function(item, index) {
+                    a.push(item.variance)
+                    b.push(item.standard_deviation)
+                    c.push(item.average_value)
+                    d.push(item.data_time)
+                });
+                var sortData = [{
+                    sortName: "三相电压",
+                    data: [
+                        a, b, c, d
+                    ]
+                }, ];
+
+                // var xData = function() {
+                //     var data = [];
+                //     for (var i = 1; i < voltage.length + 1; i++) {
+                //         data.push(i);
+                //     }
+                //     return data;
+                // }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#divergenceChart1"));
+                // 2.指定配置
+                var option = {
+
+                    color: [{
+                            colorStops: [{
+                                offset: 0,
+                                color: '#F9860C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#fff' // 100% 处的颜色
+                            }],
+                        },
+
+                        {
+                            colorStops: [{
+                                offset: 0,
+                                color: '#07E1F1' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#0456CB' // 100% 处的颜色
+                            }],
+
+                        },
+
+                        {
+                            colorStops: [{
+                                offset: 0,
+                                color: '#11F90C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#3FC713' // 100% 处的颜色
+                            }],
+
+                        }
+
+                    ],
+
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        formatter: '{a0}: {c0}<br />{a1}: {c1}<br />{a2}: {c2}<br />时间:{b}'
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#aaa"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "20%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: d,
+                        axisTick: {
+                            lineStyle: { color: 'rgb(150,150,150)' }
+                            // show: true // 去除刻度线
+                        },
+                        axisLabel: {
+                            interval: 0,
+                            show: false,
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            lineStyle: {
+                                color: 'rgba(255,255,255,.3)'
+                            }
+                        },
+                        splitLine: {
+                            show: false
+                        },
+                        splitArea: {
+                            show: true,
+                            areaStyle: {
+                                color: ["rgba(250,250,250,0.05)", "rgba(250,250,250,0.0)"]
+                            }
+                        }
+                    },
+
+                    yAxis: {
+                        splitNumber: 8,
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: .2
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "方差",
+                            type: "line",
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "标准差",
+                            type: "line",
+                            data: sortData[0].data[1]
+                        }, {
+                            symbol: "none",
+                            name: "平均值",
+                            type: "line",
+                            data: sortData[0].data[2]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+
+                //echarts赋值到src
+                var img1 = document.getElementById('divergenceChart1_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+
+            })();
+
+            // 数据离散率挖掘2
+            (function() {
+
+                // 三相电流
+                let a2 = [];
+                let b2 = [];
+                let c2 = [];
+                let d2 = [];
+                let electric_current = dispersion_rate.electric_current;
+                electric_current.forEach(function(item, index) {
+                    a2.push(item.variance)
+                    b2.push(item.standard_deviation)
+                    c2.push(item.average_value)
+                    d2.push(item.data_time)
+                });
+
+
+
+
+                var sortData = [{
+                        sortName: "三相电流",
+                        data: [
+                            a2, b2, c2
+                        ]
+                    },
+
+                ];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < electric_current.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#divergenceChart2"));
+                // 2.指定配置
+                var option = {
+
+                    color: [{
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#F9860C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#fff' // 100% 处的颜色
+                            }],
+
+                        },
+
+                        {
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#07E1F1' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#0456CB' // 100% 处的颜色
+                            }],
+
+                        },
+
+                        {
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#11F90C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#3FC713' // 100% 处的颜色
+                            }],
+
+                        }
+
+                    ],
+
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        formatter: '{a0}: {c0}<br />{a1}: {c1}<br />{a2}: {c2}<br />时间:{b}'
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#aaa"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "20%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: d2,
+                        axisTick: {
+                            lineStyle: { color: 'rgb(150,150,150)' },
+                            show: true
+                        },
+                        axisLabel: {
+                            interval: 0,
+                            show: false,
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            lineStyle: {
+                                color: 'rgba(255,255,255,.3)'
+                            }
+                        },
+                        splitNumber: 8,
+                        splitLine: {
+                            show: false
+                        },
+                        splitArea: {
+                            show: true,
+                            areaStyle: {
+                                color: ["rgba(250,250,250,0.05)", "rgba(250,250,250,0.0)"]
+                            }
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        splitNumber: 8,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: .2
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "方差",
+                            type: "line",
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "标准差",
+                            type: "line",
+                            data: sortData[0].data[1]
+                        }, {
+                            symbol: "none",
+                            name: "平均值",
+                            type: "line",
+                            data: sortData[0].data[2]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+
+                //echarts赋值到src
+                var img1 = document.getElementById('divergenceChart2_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+            })();
+
+            // 数据离散率挖掘3
+            (function() {
+                // 三相温度
+                let a3 = [];
+                let b3 = [];
+                let c3 = [];
+                let d3 = [];
+                let temperature = dispersion_rate.temperature;
+                temperature.forEach(function(item, index) {
+                    a3.push(item.variance)
+                    b3.push(item.standard_deviation)
+                    c3.push(item.average_value)
+                    d3.push(item.data_time)
+                });
+
+
+                var sortData = [{
+                    sortName: "三相温度",
+                    data: [
+                        a3, b3, c3
+                    ]
+                }, ];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < temperature.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#divergenceChart3"));
+                // 2.指定配置
+                var option = {
+
+                    color: [{
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#F9860C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#fff' // 100% 处的颜色
+                            }],
+
+                        },
+
+                        {
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#07E1F1' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#0456CB' // 100% 处的颜色
+                            }],
+
+                        },
+
+                        {
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#11F90C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#3FC713' // 100% 处的颜色
+                            }],
+
+                        }
+
+                    ],
+
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        formatter: '{a0}: {c0}<br />{a1}: {c1}<br />{a2}: {c2}<br />时间:{b}'
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#aaa"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "20%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: d3,
+                        axisTick: {
+                            lineStyle: { color: 'rgb(150,150,150)' },
+                            show: true
+                        },
+                        axisLabel: {
+                            interval: 0,
+                            show: false,
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            lineStyle: {
+                                color: 'rgba(255,255,255,.3)'
+                            }
+                        },
+                        splitNumber: 8,
+                        splitLine: {
+                            show: false
+                        },
+                        splitArea: {
+                            show: true,
+                            areaStyle: {
+                                color: ["rgba(250,250,250,0.05)", "rgba(250,250,250,0.0)"]
+                            }
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        axisTick: {
+
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: .2
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "方差",
+                            type: "line",
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "标准差",
+                            type: "line",
+                            data: sortData[0].data[1]
+                        }, {
+                            symbol: "none",
+                            name: "平均值",
+                            type: "line",
+                            data: sortData[0].data[2]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                //echarts赋值到src
+                var img1 = document.getElementById('divergenceChart3_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+            })();
+
+            // 数据离散率挖掘4
+            (function() {
+                //  漏电电流
+                let a4 = [];
+                let b4 = [];
+                let c4 = [];
+                let d4 = [];
+                let leakage_current = dispersion_rate.leakage_current;
+                leakage_current.forEach(function(item, index) {
+                    a4.push(item.variance)
+                    b4.push(item.standard_deviation)
+                    c4.push(item.average_value)
+                    d4.push(item.data_time)
+                });
+                var sortData = [{
+                    sortName: "三相电流",
+                    data: [
+                        a4, b4, c4
+                    ]
+                }, ];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < leakage_current.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#divergenceChart4"));
+                // 2.指定配置
+                var option = {
+
+                    color: [{
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#F9860C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#fff' // 100% 处的颜色
+                            }],
+
+                        },
+
+                        {
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#07E1F1' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#0456CB' // 100% 处的颜色
+                            }],
+
+                        },
+
+                        {
+
+                            colorStops: [{
+                                offset: 0,
+                                color: '#11F90C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#3FC713' // 100% 处的颜色
+                            }],
+
+                        }
+
+                    ],
+
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        formatter: '{a0}: {c0}<br />{a1}: {c1}<br />{a2}: {c2}<br />时间:{b}'
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#aaa"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "20%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: d4,
+                        axisTick: {
+                            lineStyle: { color: 'rgb(150,150,150)' },
+                            show: true
+                        },
+                        axisLabel: {
+                            interval: 0,
+                            show: false,
+                            // color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            lineStyle: {
+                                color: 'rgba(255,255,255,.3)'
+                            }
+                        },
+                        splitNumber: 8,
+                        splitLine: {
+                            show: false
+                        },
+                        splitArea: {
+                            show: true,
+                            areaStyle: {
+                                color: ["rgba(250,250,250,0.05)", "rgba(250,250,250,0.0)"]
+                            }
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: .2
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "方差",
+                            type: "line",
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "标准差",
+                            type: "line",
+                            data: sortData[0].data[1]
+                        }, {
+                            symbol: "none",
+                            name: "平均值",
+                            type: "line",
+                            data: sortData[0].data[2]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                //echarts赋值到src
+                var img1 = document.getElementById('divergenceChart4_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+            })();
+
+
+            // 电老化分析
+            let electrical_aging = result.RESULT[0].electrical_aging;
+
+            // 结论数据渲染
+            var items = '';
+            var conclusion = electrical_aging.conclusion
+            for (x in conclusion) {
+                xIndex = x.substr(x.length - 1, 1);
+                items += `<div>${xIndex}、${conclusion[x]}</div>`
+            }
+            $('.exportBox .oldAnalysis .summaryDetail').html(items);
+
+            // 电老化分析1
+            (function() {
+                // 异常设备监控电缆数据
+                let a = [];
+                let b = [];
+                let data_time = [];
+
+                let abnormal_equipment = electrical_aging.abnormal_equipment;
+                abnormal_equipment.forEach(function(item, index) {
+                    a.push(item.electric_current)
+                    b.push(item.voltage)
+                    data_time.push(item.data_time)
+                });
+
+                var sortData = [{
+                        sortName: "异常设备",
+                        data: [a, b]
+                    },
+
+                ];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < abnormal_equipment.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#oldAnalysisChart1"));
+                // 2.指定配置
+                var option = {
+
+                    color: ["#FF9C00", "#0096FF"], // 通过这个color修改两条线的颜色
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+
+                        // formatter: '{a0}: {c0}<br />{a1}: {c1}<br />时间:' + chooseTime + ''
+                        formatter: function(params) {
+                            var res = params[0].seriesName + ':' + params[0].value + 'mA<br />' + params[1].seriesName + ':' + params[1].value + 'V<br />时间:' + data_time[params[0].dataIndex];
+                            return res;
+                        },
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#aaa"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "15%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xData,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: .2
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "电流",
+                            type: "line",
+                            smooth: true, // true 可以让我们的折线显示带有弧度
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(255,156,0, 0.4)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(255,156,0, 0.3)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "电压",
+                            type: "line",
+                            smooth: true,
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(0,150,255,0.5)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(0,150,255, 0.1)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+                            data: sortData[0].data[1]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                var img1 = document.getElementById('oldAnalysisChart1_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+
+            })();
+
+            // 电老化分析2
+            (function() {
+
+                // 漏电告警数据
+                let a2 = [];
+                let b2 = [];
+                let data_time2 = [];
+
+                let leakage_alarm = electrical_aging.leakage_alarm;
+                leakage_alarm.forEach(function(item, index) {
+                    a2.push(item.electric_current)
+                    b2.push(item.voltage)
+                    data_time2.push(item.data_time)
+                });
+
+
+                var sortData = [{
+                    sortName: "漏电告警",
+                    data: [a2, b2]
+                }];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < leakage_alarm.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#oldAnalysisChart2"));
+                // 2.指定配置
+                var option = {
+
+                    color: ["#FF9C00", "#0096FF"], // 通过这个color修改两条线的颜色
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        // formatter: '{a0}: {c0}<br />{a1}: {c1}<br />时间:' + chooseTime + ''
+                        formatter: function(params) {
+                            var res = params[0].seriesName + ':' + params[0].value + 'mA<br />' + params[1].seriesName + ':' + params[1].value + 'V<br />时间:' + data_time2[params[0].dataIndex];
+                            return res;
+                        },
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#aaa"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "15%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xData,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: .2
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "电流",
+                            type: "line",
+                            smooth: true, // true 可以让我们的折线显示带有弧度
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(255,156,0, 0.4)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(255,156,0, 0.3)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "电压",
+                            type: "line",
+                            smooth: true,
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(0,150,255,0.5)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(0,150,255, 0.1)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+                            data: sortData[0].data[1]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                var img1 = document.getElementById('oldAnalysisChart2_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+            })();
+
+            // 热老化分析
+            let thermal_aging = result.RESULT[0].thermal_aging;
+
+            // 结论数据渲染
+            var items = '';
+            var conclusion = thermal_aging.conclusion
+            for (x in conclusion) {
+                xIndex = x.substr(x.length - 1, 1);
+                items += `<div>${xIndex}、${conclusion[x]}</div>`
+            }
+            $('.exportBox .hotAnalysis .summaryDetail').html(items);
+
+            // 热老化
+            (function() {
+
+                let a = [];
+                let b = [];
+                let c = [];
+                let data_time = [];
+                let visualization = thermal_aging.visualization;
+                visualization.forEach(function(item, index) {
+                    a.push(item.generation_temperature)
+                    b.push(item.ambient_temperature)
+                    c.push(item.Cable_temperature)
+                    data_time.push(item.data_time)
+                });
+
+                var sortData = [{
+                    data: [a, b, c]
+                }];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < visualization.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#hotAnalysisChart1"));
+                // 2.指定配置
+                var option = {
+
+                    color: ["#05EEE7", "#9999FF", "#FE92B3"], // 通过这个color修改三条线的颜色
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        // formatter: '{a0}: {c0}°C<br />{a1}: {c1}°C<br />{a2}: {c2}°C<br />时间:' + chooseTime + ''
+                        formatter: function(params) {
+                            var res = params[0].seriesName + ':' + params[0].value + '°C<br />' + params[1].seriesName + ':' + params[1].value + '°C<br />' + params[1].seriesName + ':' + params[1].value + '°C<br />时间:' + data_time[params[0].dataIndex];
+                            return res;
+                        },
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#aaa"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "15%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xData,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: .2
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "线缆产生的温度",
+                            type: "line",
+                            smooth: true, // true 可以让我们的折线显示带有弧度
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(5,238,231,.6)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(5,238,231, 0.4)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                }
+                            },
+
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "环境温度",
+                            type: "line",
+                            smooth: true,
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(153,153,255,.6)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(153,153,255, 0.4)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                }
+                            },
+
+                            data: sortData[0].data[1]
+                        },
+                        {
+                            symbol: "none",
+                            name: "线缆温度",
+                            type: "line",
+                            smooth: true,
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(255,147,180,.6)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(255,147,180, 0.4)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                }
+                            },
+
+                            data: sortData[0].data[2]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                var img1 = document.getElementById('hotAnalysisChart1_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+
+
+            })();
+
+            /* 
+                 导出数据对接 end
+            */
+
+        } else {
+            // alert('暂无数据')
+            layui.use('layer', function() {
+                var layer = layui.layer;
+
+                layer.alert('暂无数据', { icon: 5 });
+            });
+        }
+
+    }, function(errorMsg) {
+        layui.use('layer', function() {
+            var layer = layui.layer;
+            layer.alert('数据请求失败', { icon: 5 });
+        });
+    }, 1)
+};
+
+function getSearchParamObj() {
+    let queryParam = {};
+    let buildingVal = $('#building').val();
+    let chooseTime = $('#chooseTime').val();
+    queryParam.company_code = buildingVal;
+    queryParam.generation_time = chooseTime;
+    return queryParam;
+
+}
+
+// 打印
+(function() {
+
+    $("#btnPrint").click(function() {
+
+        print_detail()
+
+    });
+
+    var print_detail = function() {
+
+        //打印前echarts图表转换成图片 start 
+        $('#divergenceChart1_img,#divergenceChart2_img,#divergenceChart3_img,#divergenceChart4_img').show()
+        $('#divergenceChart1,#divergenceChart2,#divergenceChart3,#divergenceChart4').hide()
+        $('#oldAnalysisChart1_img,#oldAnalysisChart2_img').show()
+        $('#oldAnalysisChart1,#oldAnalysisChart2').hide()
+        $('#hotAnalysisChart1_img').show()
+        $('#hotAnalysisChart1').hide()
+            //  end
+
+        var div1_label1 = document.getElementById('printArea').innerHTML;
+        var hkey_key;
+        var hkey_root = 'HKEY_CURRENT_USER';
+        var hkey_path = '\\Software\\Micorsoft\\Internet Explorer\\PageSetup\\';
+        var print_win = window.open('打印窗口', '_blank');
+        var div = document.createElement('div');
+        div.setAttribute('width', '100%');
+        div.setAttribute('height', '100%');
+        var div_print = document.createElement('div');
+        div_print.setAttribute('style', 'width:595px;height:842px;padding:50px 20px;margin:0px auto 0px auto');
+        div_print.innerHTML = div1_label1;
+        div.appendChild(div_print);
+
+        print_win.document.write(div.innerHTML);
+        print_win.document.close();
+        try {
+            var RegWsh = new ActiveXObject('WScript.Shell');
+            hkey_key = 'header';
+            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, '');
+            hkey_key = 'footer';
+            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, '');
+        } catch (e) {}
+        print_win.print();
+        print_win.close();
+    }
+})()

+ 43 - 0
WebRoot/view/efireAnalysis/js/flexible.js

@@ -0,0 +1,43 @@
+(function flexible(window, document) {
+  var docEl = document.documentElement;
+  var dpr = window.devicePixelRatio || 1;
+
+  // adjust body font size
+  function setBodyFontSize() {
+    if (document.body) {
+      document.body.style.fontSize = 12 * dpr + "px";
+    } else {
+      document.addEventListener("DOMContentLoaded", setBodyFontSize);
+    }
+  }
+  setBodyFontSize();
+
+  // set 1rem = viewWidth / 10
+  function setRemUnit() {
+    var rem = docEl.clientWidth / 24;
+    docEl.style.fontSize = rem + "px";
+  }
+
+  setRemUnit();
+
+  // reset rem unit on page resize
+  window.addEventListener("resize", setRemUnit);
+  window.addEventListener("pageshow", function(e) {
+    if (e.persisted) {
+      setRemUnit();
+    }
+  });
+
+  // detect 0.5px supports
+  if (dpr >= 2) {
+    var fakeBody = document.createElement("body");
+    var testElement = document.createElement("div");
+    testElement.style.border = ".5px solid transparent";
+    fakeBody.appendChild(testElement);
+    docEl.appendChild(fakeBody);
+    if (testElement.offsetHeight === 1) {
+      docEl.classList.add("hairlines");
+    }
+    docEl.removeChild(fakeBody);
+  }
+})(window, document);

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
WebRoot/view/efireAnalysis/js/jquery.js


+ 16 - 0
WebRoot/view/efireAnalysis/js/util.js

@@ -0,0 +1,16 @@
+// 给时间选择中input的value赋值
+var time = new Date();
+var y = time.getFullYear();
+var m = time.getMonth();
+var getTime = y + '-' + add0(m);
+$('#chooseTime').attr('value', getTime)
+
+
+
+
+// 公共变量
+var chooseTime = $('#chooseTime').val()
+
+
+// 公共函数封装
+function add0(m) { return m < 10 ? '0' + m : m }

+ 2051 - 0
WebRoot/view/efireAnalysis/js/water.js

@@ -0,0 +1,2051 @@
+//建筑下拉
+getNameList();
+
+function getNameList(queryParam = {}) {
+
+    ajaxRequest(GET_NAME_LIST_DATA, "POST", queryParam, function(result) {
+        let data = result.RESULT;
+        let items = '';
+
+        data.forEach(function(item, key) {
+
+            items += `<option value="${item.owner_id}" style="background-color: #666666">${item.owner_name}</option>`
+
+        })
+        $('#building').html(items);
+
+    }, function(errorMsg) {
+        // alert("请求数据失败!");
+    }, 2)
+};
+
+// 数据请求传参
+getListData(getSearchParamObj());
+
+function getListData(queryParam = {}) {
+
+    ajaxRequest(WATER_DATA, "POST", queryParam, function(result) {
+
+        if (result.totalCount != 0) {
+
+            /* 
+                 主页面数据对接 start
+            */
+
+            //数据统计
+            var data_statistics = result.RESULT[0].data_statistics;
+
+            $('.total').html(data_statistics.alarm_number);
+            $('.solved').html(data_statistics.processing_number);
+            $('.unsolve').html(data_statistics.unprocessed_number);
+
+            // 环状饼图定制 (数据统计计算)
+            (function() {
+                // 实例化对象
+                var myChart = echarts.init(document.querySelector(".bar-3d .chart"));
+
+                // 生成扇形的曲面参数方程,用于 series-surface.parametricEquation
+                function getParametricEquation(startRatio, endRatio, isSelected, isHovered, k, height) {
+
+                    // 计算
+                    let midRatio = (startRatio + endRatio) / 2;
+
+                    let startRadian = startRatio * Math.PI * 2;
+                    let endRadian = endRatio * Math.PI * 2;
+                    let midRadian = midRatio * Math.PI * 2;
+
+                    // 如果只有一个扇形,则不实现选中效果。
+                    if (startRatio === 0 && endRatio === 1) {
+                        isSelected = false;
+                    }
+
+                    // 通过扇形内径/外径的值,换算出辅助参数 k(默认值 1/3)
+                    k = typeof k !== 'undefined' ? k : 1 / 3;
+
+                    // 计算选中效果分别在 x 轴、y 轴方向上的位移(未选中,则位移均为 0)
+                    let offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0;
+                    let offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0;
+
+                    // 计算高亮效果的放大比例(未高亮,则比例为 1)
+                    let hoverRate = isHovered ? 1.05 : 1;
+
+                    // 返回曲面参数方程
+                    return {
+
+                        u: {
+                            min: -Math.PI,
+                            max: Math.PI * 3,
+                            step: Math.PI / 32
+                        },
+
+                        v: {
+                            min: 0,
+                            max: Math.PI * 2,
+                            step: Math.PI / 20
+                        },
+
+                        x: function(u, v) {
+                            if (u < startRadian) {
+                                return offsetX + Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                            }
+                            if (u > endRadian) {
+                                return offsetX + Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                            }
+                            return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate;
+                        },
+
+                        y: function(u, v) {
+                            if (u < startRadian) {
+                                return offsetY + Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                            }
+                            if (u > endRadian) {
+                                return offsetY + Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                            }
+                            return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate;
+                        },
+
+                        z: function(u, v) {
+                            if (u < -Math.PI * 0.5) {
+                                return Math.sin(u);
+                            }
+                            if (u > Math.PI * 2.5) {
+                                return Math.sin(u);
+                            }
+                            return Math.sin(v) > 0 ? 1 : -1;
+                        }
+                    };
+                }
+
+                // 生成模拟 3D 饼图的配置项
+                function getPie3D(pieData, internalDiameterRatio) {
+
+                    let series = [];
+                    let sumValue = 0;
+                    let startValue = 0;
+                    let endValue = 0;
+                    let legendData = [];
+                    let k = typeof internalDiameterRatio !== 'undefined' ? (1 - internalDiameterRatio) / (1 + internalDiameterRatio) : 1 / 3;
+
+                    // 为每一个饼图数据,生成一个 series-surface 配置
+                    for (let i = 0; i < pieData.length; i++) {
+
+                        sumValue += pieData[i].value;
+
+                        let seriesItem = {
+                            name: typeof pieData[i].name === 'undefined' ? `series${i}` : pieData[i].name,
+                            type: 'surface',
+                            parametric: true,
+                            wireframe: {
+                                show: false
+                            },
+                            pieData: pieData[i],
+                            pieStatus: {
+                                selected: false,
+                                hovered: false,
+                                k: k
+                            }
+                        };
+
+                        if (typeof pieData[i].itemStyle != 'undefined') {
+
+                            let itemStyle = {};
+
+                            typeof pieData[i].itemStyle.color != 'undefined' ? itemStyle.color = pieData[i].itemStyle.color : null;
+                            typeof pieData[i].itemStyle.opacity != 'undefined' ? itemStyle.opacity = pieData[i].itemStyle.opacity : null;
+
+                            seriesItem.itemStyle = itemStyle;
+                        }
+                        series.push(seriesItem);
+                    }
+
+                    // 使用上一次遍历时,计算出的数据和 sumValue,调用 getParametricEquation 函数,
+                    // 向每个 series-surface 传入不同的参数方程 series-surface.parametricEquation,也就是实现每一个扇形。
+                    for (let i = 0; i < series.length; i++) {
+                        endValue = startValue + series[i].pieData.value;
+                        // console.log(series[i]);
+                        series[i].pieData.startRatio = startValue / sumValue;
+                        series[i].pieData.endRatio = endValue / sumValue;
+                        series[i].parametricEquation = getParametricEquation(series[i].pieData.startRatio, series[i].pieData.endRatio, false, false, k, series[i].pieData.value);
+
+                        startValue = endValue;
+
+                        legendData.push(series[i].name);
+                    }
+
+
+
+                    // 准备待返回的配置项,把准备好的 legendData、series 传入。
+                    let option = {
+
+                        tooltip: {
+                            backgroundColor: '#12DFE0',
+                            formatter: params => {
+                                if (params.seriesName !== 'mouseoutSeries') {
+                                    // return `${params.seriesName}<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${params.color};"></span>${option.series[params.seriesIndex].pieData.value}%`;
+                                    return `${params.seriesName}: ${option.series[params.seriesIndex].pieData.value}%`;
+                                }
+                            }
+                        },
+
+                        xAxis3D: {
+                            min: -1,
+                            max: 1
+                        },
+                        yAxis3D: {
+                            min: -1,
+                            max: 1
+                        },
+                        zAxis3D: {
+                            min: -1,
+                            max: 1
+                        },
+                        grid3D: {
+                            show: false,
+                            boxHeight: 40,
+                            top: '-10%',
+                            // bottom: '80%',
+                            // environment: '../images/3d-bg.png', //aa背景色
+
+                            viewControl: {
+                                distance: 170, //aa距离
+                                alpha: 21, //aa角度
+                                beta: 60, //aa角度
+                                zoomSensitivity: false //是否开启缩放和平移
+                            },
+                        },
+                        series: series
+                    };
+                    return option;
+                }
+
+                // 传入数据生成 option
+                var option = getPie3D([{
+                    name: '已处理率',
+                    value: data_statistics.treatment_rate,
+                    itemStyle: {
+                        opacity: 0.5,
+                        color: 'rgba(0,127,244,.8)',
+                    }
+                }, {
+                    name: '未处理率',
+                    value: data_statistics.untreated_rate,
+                    itemStyle: {
+                        opacity: 0.5,
+                        color: 'rgba(209,126,23,.8)',
+                    }
+                }], 2);
+
+                // 把配置给实例对象
+                myChart.setOption(option);
+                window.addEventListener("resize", function() {
+                    myChart.resize();
+                });
+
+            })();
+
+            // 折线图定制 (数据离散率挖掘)
+            (function() {
+
+                let dispersion_rate = result.RESULT[0].dispersion_rate;
+
+                // 结论数据渲染
+                var items = '';
+                var conclusion = dispersion_rate.conclusion
+                for (x in conclusion) {
+                    xIndex = x.substr(x.length - 1, 1);
+                    items += `<p>${xIndex}、${conclusion[x]}</p>`
+                }
+                $('.divergence .summaryDetail').html(items);
+
+                let a = [];
+                let b = [];
+                let c = [];
+                let data_time = [];
+                let hydraulic_pressure = dispersion_rate.hydraulic_pressure;
+                hydraulic_pressure.forEach(function(item, index) {
+                    a.push(item.variance)
+                    b.push(item.standard_deviation)
+                    c.push(item.average_value)
+                    data_time.push(item.data_time)
+                });
+
+                var sortData = [{
+                    data: [a, b, c]
+                }];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < hydraulic_pressure.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector(".divergence .chart"));
+                // 2.指定配置
+                var option = {
+
+                    color: [{
+                            colorStops: [{
+                                offset: 0,
+                                color: '#F9860C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#fff' // 100% 处的颜色
+                            }],
+                        },
+
+                        {
+                            colorStops: [{
+                                offset: 0,
+                                color: '#07E1F1' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#0456CB' // 100% 处的颜色
+                            }],
+                        },
+                        {
+                            colorStops: [{
+                                offset: 0,
+                                color: '#11F90C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#3FC713' // 100% 处的颜色
+                            }],
+                        }
+
+                    ],
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        formatter: function(params) {
+                            var res = params[0].seriesName + ':' + params[0].value + '<br />' + params[1].seriesName + ':' + params[1].value + '<br />' + params[2].seriesName + ':' + params[2].value + '<br />时间:' + data_time[params[2].dataIndex];
+                            return res;
+                        },
+                        // formatter: '{a0}: {c0}<br />{a1}: {c1}<br />{a2}: {c2}<br />时间:' + chooseTime + ''
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#fff"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "15%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xData,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            lineStyle: {
+                                color: 'rgba(255,255,255,.3)'
+                            }
+                        },
+                        splitNumber: 8,
+                        splitLine: {
+                            show: false
+                        },
+                        splitArea: {
+                            show: true,
+                            areaStyle: {
+                                color: ["rgba(250,250,250,0.05)", "rgba(250,250,250,0.0)"]
+                            }
+                        }
+                    },
+                    yAxis: {
+                        // scale: true,
+                        // min: 'dataMin',
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#012f4a" // 分割线颜色
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "方差",
+                            type: "line",
+                            data: a
+                        },
+                        {
+                            symbol: "none",
+                            name: "标准差",
+                            type: "line",
+                            data: b
+                        }, {
+                            symbol: "none",
+                            name: "平均值",
+                            type: "line",
+                            data: c
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                window.addEventListener("resize", function() {
+                    myChart.resize();
+                });
+
+
+            })();
+
+            // 渗漏隐患排查
+            (function() {
+
+                let leakage_investigation = result.RESULT[0].leakage_investigation;
+
+                // 结论数据渲染
+                var items = '';
+                var conclusion = leakage_investigation.conclusion
+                for (x in conclusion) {
+                    xIndex = x.substr(x.length - 1, 1);
+                    items += `<p>${xIndex}、${conclusion[x]}</p>`
+                }
+                $('.hiddenCheck .summaryDetail').html(items);
+
+                let abnormal_pressure = [];
+                let location_description = [];
+                let start_pressure = [];
+                let end_pressure = [];
+                let data_time = [];
+                let leakage_data = leakage_investigation.leakage_data;
+                leakage_data.forEach(function(item, index) {
+                    //异常值
+                    abnormal_pressure.push(item.abnormal_pressure)
+                        //楼层
+                    location_description.push(item.location_description)
+                        //开始值
+                    start_pressure.push(item.start_pressure)
+                        //结束值
+                    end_pressure.push(item.end_pressure)
+                        //时间
+                    data_time.push(item.data_time)
+                });
+
+                var xData = location_description;
+
+                // 基于准备好的dom,初始化echarts实例
+                var myChart = echarts.init(document.querySelector(".bar.hiddenCheck .chart"));
+
+
+                var option = {
+                    backgroundColor: 'transparent',
+                    color: ['rgba(0,150,255,.5)', 'rgba(255,156,0,.5)'],
+                    tooltip: {
+                        backgroundColor: '#12DFE0',
+                        //提示框组件
+                        trigger: 'axis',
+                        formatter: function(params) {
+                            var res = '位置:' + params[0].axisValue + '<br />异常水压值 :' + abnormal_pressure[params[0].dataIndex] + 'Mpa<br />时间:' + data_time[params[0].dataIndex];
+                            return res;
+                        },
+                        axisPointer: {
+                            type: 'shadow',
+                        },
+                        textStyle: {
+                            fontStyle: 'normal',
+                            fontFamily: '微软雅黑',
+                        },
+                    },
+                    grid: {
+                        left: '0',
+                        right: '0',
+                        bottom: '40',
+                        top: '0',
+                        containLabel: true,
+                    },
+
+                    //添加横线滚动条
+                    dataZoom: {
+                        start: 0, //默认为0
+                        end: 100 - 1500 / 12, //默认为100
+                        type: 'slider',
+                        show: xData.length > 4 ? true : false,
+                        xAxisIndex: [0],
+                        handleSize: 0, //滑动条的 左右2个滑动条的大小
+                        height: 4, //组件高度
+                        left: 20, //左边的距离
+                        right: 20, //右边的距离
+                        bottom: 20, //右边的距离
+                        handleColor: '#CBBCDB', //h滑动图标的颜色
+                        handleStyle: {
+                            borderColor: "#CBBCDB",
+                            borderWidth: "1",
+                            shadowBlur: 2,
+                            background: "#CBBCDB",
+                            shadowColor: "#CBBCDB",
+                        },
+                        textStyle: {
+                            color: "#fff"
+                        },
+
+                        backgroundColor: 'rgba(37, 46, 100, 0.45)', //两边未选中的滑动条区域的颜色
+                        showDataShadow: false, //是否显示数据阴影 默认auto
+                        // showDetail: false, //即拖拽时候是否显示详细数值信息 默认true
+                        filterMode: 'filter',
+                    },
+
+
+                    xAxis: [{
+                        type: 'category',
+                        //	boundaryGap: true,//坐标轴两边留白
+                        data: xData,
+                        axisLabel: {
+                            interval: 0,
+                            // rotate: 340,
+                            // formatter: function(val) {
+                            //     return val.split("").join("\n");
+                            // }, //横轴信息文字竖直显示
+                            textStyle: {
+                                color: '#AADDFF',
+                                fontStyle: 'normal',
+                                fontFamily: '微软雅黑',
+                                fontSize: 12,
+                            },
+                        },
+
+                        axisTick: {
+                            //坐标轴刻度相关设置。
+                            show: false,
+                        },
+                        axisLine: {
+                            //坐标轴轴线相关设置
+                        },
+                        splitLine: {
+                            //坐标轴在 grid 区域中的分隔线。
+                            show: false,
+                        },
+                    }, ],
+                    yAxis: [{
+                        type: 'value',
+
+                        axisLabel: false,
+                        axisLine: {
+                            show: false,
+                        },
+                        axisTick: {
+                            show: false,
+                        },
+                        splitLine: {
+                            show: true,
+                            lineStyle: {
+                                color: ['#204C6F'],
+                                opacity: 0.3,
+                            },
+                        },
+                        boundaryGap: ['0', '10%'],
+                    }],
+                    series: [{
+                            name: '起层',
+                            type: 'bar',
+                            data: start_pressure,
+                            barMaxWidth: '11',
+                            itemStyle: {
+                                borderColor: "#0096FF",
+                            },
+                            barGap: '50%',
+                        },
+                        {
+                            name: '始层',
+                            type: 'bar',
+                            data: end_pressure,
+                            barMaxWidth: '11',
+                            itemStyle: {
+                                borderColor: "#FF9C00",
+                            },
+                        },
+                    ],
+                };
+
+                // 使用刚指定的配置项和数据显示图表。
+                myChart.setOption(option);
+                window.addEventListener("resize", function() {
+                    myChart.resize();
+                });
+            })();
+
+            // 折线图定制 (跨设备数据关联)
+            (function() {
+
+                let device_association = result.RESULT[0].device_association;
+
+                // 结论数据渲染
+                var items = '';
+                var conclusion = device_association.conclusion
+                for (x in conclusion) {
+                    xIndex = x.substr(x.length - 1, 1);
+                    items += `<p>${xIndex}、${conclusion[x]}</p>`
+                }
+                $('.device_association .summaryDetail').html(items);
+
+                // 喷淋末端、消火栓与水泵启停关联
+                let spray_end = [];
+                let fire_hydrant = [];
+                let pump_status = [];
+                let data_time = [];
+
+                let pump_associated_data = device_association.pump_associated_data;
+                pump_associated_data.forEach(function(item, index) {
+                    spray_end.push(item.spray_end)
+                    fire_hydrant.push(item.fire_hydrant)
+                    pump_status.push(item.pump_status)
+                    data_time.push(item.data_time)
+                });
+
+                // 喷淋末端、消火栓屋顶水箱液位关联
+                let spray_end2 = [];
+                let fire_hydrant2 = [];
+                let water_tank_level = [];
+                let data_time2 = [];
+
+                let water_associated_data = device_association.water_associated_data;
+                water_associated_data.forEach(function(item, index) {
+                    spray_end2.push(item.spray_end)
+                    fire_hydrant2.push(item.fire_hydrant)
+                    water_tank_level.push(item.water_tank_level)
+                    data_time2.push(item.data_time)
+                });
+
+                var sortData = [{
+                        sortName: "喷淋末端、消火栓与水泵启停关联",
+                        data: [
+                            spray_end, fire_hydrant
+                        ]
+                    },
+                    {
+                        sortName: "喷淋末端、消火栓屋顶水箱液位关联",
+                        data: [
+                            spray_end2, fire_hydrant2
+                        ]
+                    }
+                ];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < water_associated_data.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector(".device_association .chart"));
+
+                // 2.指定配置
+                var option = {
+
+                    color: ["#FF9C00", "#0096FF"], // 通过这个color修改两条线的颜色
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        formatter: function(params) {
+                            if ($('#active').hasClass('active')) {
+                                var res = params[0].seriesName + ':' + params[0].value + 'Mpa<br />' + params[1].seriesName + ':' + params[1].value + 'Mpa<br />水泵启动状态 :' + pump_status[params[0].dataIndex] + '<br />时间:' + data_time[params[0].dataIndex] + '';
+                            } else {
+                                var res = params[0].seriesName + ':' + params[0].value + 'Mpa<br />' + params[1].seriesName + ':' + params[1].value + 'Mpa<br /> 水箱液位 :' + water_tank_level[params[0].dataIndex] + 'm<br />时间:' + data_time2[params[0].dataIndex] + '';
+                            }
+                            return res;
+                        },
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#fff"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "15%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xData,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#012f4a" // 分割线颜色
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "喷淋末端",
+                            type: "line",
+                            smooth: true, // true 可以让我们的折线显示带有弧度
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(255,156,0, 0.4)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(255,156,0, 0.3)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "消防栓",
+                            type: "line",
+                            smooth: true,
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(0,150,255,0.5)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(0,150,255, 0.1)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+                            data: sortData[0].data[1]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                window.addEventListener("resize", function() {
+                    myChart.resize();
+                });
+
+                // 点击切换效果
+                $(".device_association .tab-line").on("click", "a", function() {
+                    $(this).addClass('active').siblings().removeClass('active')
+                    var obj = sortData[$(this).index()];
+                    option.series[0].data = obj.data[0];
+                    option.series[1].data = obj.data[1];
+
+                    // 重新渲染
+                    myChart.setOption(option);
+
+                });
+            })();
+
+            // 折线图定制 (数据波动关联)
+            (function() {
+
+                let data_fluctuation = result.RESULT[0].data_fluctuation;
+                console.log('data_fluctuation')
+                console.log(data_fluctuation)
+
+                // 结论数据渲染
+                var items = '';
+                var conclusion = data_fluctuation.conclusion
+                for (x in conclusion) {
+                    xIndex = x.substr(x.length - 1, 1);
+                    items += `<p>${xIndex}、${conclusion[x]}</p>`
+                }
+                $('.data_fluctuation .summaryDetail').html(items);
+
+                let position = [];
+                let before_fluctuation = [];
+                let after_fluctuation = [];
+                let data_time = [];
+                let volatility_data = data_fluctuation.volatility_data;
+                volatility_data.forEach(function(item, index) {
+
+                    //楼层
+                    position.push(item.position)
+
+                    //开始值
+                    before_fluctuation.push(item.before_fluctuation)
+
+                    //结束值
+                    after_fluctuation.push(item.after_fluctuation)
+
+                    //时间
+                    data_time.push(item.data_time)
+
+                });
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector(".data_fluctuation .chart"));
+                var xData = position;
+
+                // 2.指定配置
+                var option = {
+                    backgroundColor: 'transparent',
+                    color: ['rgba(0,150,255,.5)', 'rgba(255,156,0,.5)'],
+                    tooltip: {
+                        backgroundColor: '#12DFE0',
+                        //提示框组件
+                        trigger: 'axis',
+                        formatter: function(params) {
+                            var res = params[0].seriesName + ':' + params[0].value + 'Mpa<br />' + params[1].seriesName + ':' + params[1].value + 'Mpa<br />' + data_time[params[1].dataIndex];
+                            return res;
+                        },
+                        // formatter: '{a0}: {c0}<span>Mpa</span><br />{a1}: {c1}<span>Mpa</span><br />时间:' + chooseTime + '',
+                        axisPointer: {
+                            type: 'shadow',
+                        },
+
+                        textStyle: {
+                            fontStyle: 'normal',
+                            fontFamily: '微软雅黑',
+                            align: 'left' //图例左对齐
+                        },
+                    },
+                    grid: {
+                        left: '0',
+                        right: '0',
+                        bottom: '40',
+                        top: '0',
+                        containLabel: true,
+                    },
+
+                    //添加横线滚动条
+                    dataZoom: {
+                        start: 0, //默认为0
+                        end: 100 - 1500 / 8, //默认为100
+                        type: 'slider',
+                        show: xData.length > 5 ? true : false,
+                        xAxisIndex: [0],
+                        handleSize: 0, //滑动条的 左右2个滑动条的大小
+                        height: 4, //组件高度
+                        left: 20, //左边的距离
+                        right: 20, //右边的距离
+                        bottom: 20, //右边的距离
+                        handleColor: '#CBBCDB', //h滑动图标的颜色
+                        handleStyle: {
+                            borderColor: "#CBBCDB",
+                            borderWidth: "1",
+                            shadowBlur: 2,
+                            background: "#CBBCDB",
+                            shadowColor: "#CBBCDB",
+                        },
+                        textStyle: {
+                            color: "#fff"
+                        },
+
+                        backgroundColor: 'rgba(37, 46, 100, 0.45)', //两边未选中的滑动条区域的颜色
+                        showDataShadow: false, //是否显示数据阴影 默认auto
+                        // showDetail: false, //即拖拽时候是否显示详细数值信息 默认true
+                        filterMode: 'filter',
+                    },
+
+                    xAxis: [{
+                        type: 'category',
+                        //	boundaryGap: true,//坐标轴两边留白
+                        data: xData,
+                        axisLabel: {
+                            interval: 0,
+                            // rotate: 340,
+                            // formatter: function(val) {
+                            //     return val.split("").join("\n");
+                            // }, //横轴信息文字竖直显示
+                            textStyle: {
+                                color: '#AADDFF',
+                                fontStyle: 'normal',
+                                fontFamily: '微软雅黑',
+                                fontSize: 12,
+                            },
+                        },
+
+                        axisTick: {
+                            //坐标轴刻度相关设置。
+                            show: false,
+                        },
+                        axisLine: {
+                            //坐标轴轴线相关设置
+                        },
+                        splitLine: {
+                            //坐标轴在 grid 区域中的分隔线。
+                            show: false,
+                        },
+                    }, ],
+                    yAxis: [{
+                        type: 'value',
+
+                        axisLabel: false,
+                        axisLine: {
+                            show: false,
+                        },
+                        axisTick: {
+                            show: false,
+                        },
+                        splitLine: {
+                            show: true,
+                            lineStyle: {
+                                color: ['#204C6F'],
+                                opacity: 0.3,
+                            },
+                        },
+                        boundaryGap: ['0', '10%'],
+                    }],
+                    series: [{
+                            name: '波动前水压值',
+                            type: 'bar',
+                            data: before_fluctuation,
+                            barMaxWidth: '11',
+                            itemStyle: {
+                                borderColor: "#0096FF",
+                            },
+                            barGap: '50%',
+                        },
+                        {
+                            name: '波动后水压值',
+                            type: 'bar',
+                            data: after_fluctuation,
+                            barMaxWidth: '11',
+                            itemStyle: {
+                                borderColor: "#FF9C00",
+                            },
+                        },
+                    ],
+                };
+
+                myChart.setOption(option);
+                window.addEventListener("resize", function() {
+                    myChart.resize();
+                });
+
+
+            })();
+
+            /* 
+                 主页面数据对接 end
+            */
+
+
+            /* 
+                 导出数据对接 start
+            */
+
+            //项目情况
+            var project_situation = result.RESULT[0].project_situation;
+            var items = '';
+            items = `<tr>
+                    <td>单位名称</td>
+                    <td colspan="5">${project_situation.company_name}</td>
+                </tr>
+                <tr>
+                    <td>进场日期</td>
+                    <td>${project_situation.entry_date} </td>
+                    <td>完工日期</td>
+                    <td>${project_situation.completion_date}</td>
+                    <td>验收日期</td>
+                    <td>${project_situation.acceptance_date}</td>
+                </tr>`
+            $('#project_situation').html(items);
+
+            //设备清单
+            var equipment_list = result.RESULT[0].equipment_list;
+            var items2 = '';
+            if (equipment_list) {
+                equipment_list.forEach(function(item, key) {
+                    items2 += `<tr>
+                                <td>${item.device_name}</td>  
+                                <td>${item.device_info}</td>
+                                <td>${item.device_code}</td>
+                                <td>${item.remarks}</td>
+                            </tr>`;
+                })
+                $('#equipment_list').html(items2)
+            }
+
+            //统计时段
+            var statistical_period = result.RESULT[0].statistical_period;
+            var items3 = '';
+            items3 = `<div>统计起始日期:${statistical_period.start_date}</div>
+                <div>统计截止日期:${statistical_period.closing_date}</div>
+                <div>统计时段时长:${statistical_period.duration}</div>`;
+            $('#statistical_period').html(items3)
+
+            //数据统计计算
+            var data_statistics = result.RESULT[0].data_statistics;
+            var items4 = '';
+            items4 = `<tr>
+                    <td>${data_statistics.alarm_number}</td>
+                    <td>${data_statistics.processing_number}</td>
+                    <td>${data_statistics.unprocessed_number}</td>
+                    <td>${data_statistics.treatment_rate}</td>
+                    <td>${data_statistics.untreated_rate}</td>
+                </tr>`;
+            $('#data_statistics').html(items4);
+
+            // 数据离散率挖掘
+            let dispersion_rate = result.RESULT[0].dispersion_rate;
+            console.log(result.RESULT[0].dispersion_rate)
+                // 结论数据渲染
+            var items = '';
+            var conclusion = dispersion_rate.conclusion
+            for (x in conclusion) {
+                xIndex = x.substr(x.length - 1, 1);
+                items += `<div>${xIndex}、${conclusion[x]}</div>`
+            }
+            $('.exportBox .divergence .summaryDetail').html(items);
+
+            // 数据离散率挖掘1
+            (function() {
+                let a = [];
+                let b = [];
+                let c = [];
+                let data_time = [];
+                let hydraulic_pressure = dispersion_rate.hydraulic_pressure;
+                hydraulic_pressure.forEach(function(item, index) {
+                    a.push(item.variance)
+                    b.push(item.standard_deviation)
+                    c.push(item.average_value)
+                    data_time.push(item.data_time)
+                });
+
+                var sortData = [{
+                    data: [a, b, c]
+                }];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < hydraulic_pressure.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#divergenceChart1"));
+                // 2.指定配置
+                var option = {
+
+                    color: [{
+                            colorStops: [{
+                                offset: 0,
+                                color: '#F9860C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#fff' // 100% 处的颜色
+                            }],
+
+                        },
+                        {
+                            colorStops: [{
+                                offset: 0,
+                                color: '#07E1F1' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#0456CB' // 100% 处的颜色
+                            }],
+                        },
+                        {
+                            colorStops: [{
+                                offset: 0,
+                                color: '#11F90C' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#3FC713' // 100% 处的颜色
+                            }],
+                        }
+                    ],
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        formatter: function(params) {
+                            var res = params[0].seriesName + ':' + params[0].value + '<br />' + params[1].seriesName + ':' + params[1].value + '<br />' + params[2].seriesName + ':' + params[2].value + '<br />时间:' + data_time[params[2].dataIndex];
+                            return res;
+                        },
+                        // formatter: '{a0}: {c0}<br />{a1}: {c1}<br />{a2}: {c2}<br />时间:2021年3月{b}日'
+
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#aaa"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "15%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xData,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            lineStyle: {
+                                color: 'rgba(255,255,255,.3)'
+                            }
+                        },
+                        splitNumber: 8,
+                        splitLine: {
+                            show: false
+                        },
+                        splitArea: {
+                            show: true,
+                            areaStyle: {
+                                color: ["rgba(250,250,250,0.05)", "rgba(250,250,250,0.0)"]
+                            }
+                        }
+                    },
+
+                    yAxis: {
+                        splitNumber: 8,
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: '0.1'
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "方差",
+                            type: "line",
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "标准差",
+                            type: "line",
+                            data: sortData[0].data[1]
+                        }, {
+                            symbol: "none",
+                            name: "平均值",
+                            type: "line",
+                            data: sortData[0].data[2]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+
+                //echarts赋值到src
+                var img1 = document.getElementById('divergenceChart1_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+
+            })();
+
+            // 渗漏隐患排查
+            let leakage_investigation = result.RESULT[0].leakage_investigation;
+
+            // 结论数据渲染
+            var items = '';
+            var conclusion = leakage_investigation.conclusion
+            for (x in conclusion) {
+                xIndex = x.substr(x.length - 1, 1);
+                items += `<div>${xIndex}、${conclusion[x]}</div>`
+            }
+            $('.exportBox .hiddenCheck .summaryDetail').html(items);
+
+            // 渗漏隐患排查
+            (function() {
+
+                let abnormal_pressure = [];
+                let location_description = [];
+                let start_pressure = [];
+                let end_pressure = [];
+                let data_time = [];
+                let leakage_data = leakage_investigation.leakage_data;
+                leakage_data.forEach(function(item, index) {
+
+                    //异常值
+                    abnormal_pressure.push(item.abnormal_pressure)
+
+                    //楼层
+                    location_description.push(item.location_description)
+
+                    //开始值
+                    start_pressure.push(item.start_pressure)
+
+                    //结束值
+                    end_pressure.push(item.end_pressure)
+
+                    //时间
+                    data_time.push(item.data_time)
+                });
+
+                var xData = location_description;
+
+                // 基于准备好的dom,初始化echarts实例
+                var myChart = echarts.init(document.querySelector("#hiddenCheckChart1"));
+
+                var option = {
+                    backgroundColor: 'transparent',
+                    color: ['rgba(0,150,255,.5)', 'rgba(255,156,0,.5)'],
+                    tooltip: {
+                        backgroundColor: '#12DFE0',
+                        //提示框组件
+                        trigger: 'axis',
+                        formatter: function(params) {
+                            var res = '位置:' + params[0].axisValue + '<br />异常水压值 :' + abnormal_pressure[params[0].dataIndex] + 'Mpa<br />时间:' + data_time[params[0].dataIndex];
+                            return res;
+                        },
+
+                        axisPointer: {
+                            type: 'shadow',
+                        },
+                        textStyle: {
+
+                            fontStyle: 'normal',
+                            fontFamily: '微软雅黑',
+
+                        },
+                    },
+                    grid: {
+                        left: '0',
+                        right: '0',
+                        bottom: '40',
+                        top: '0',
+                        containLabel: true,
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#AAA"
+                        },
+                        top: "bottom",
+                    },
+
+                    xAxis: [{
+                        type: 'category',
+                        //	boundaryGap: true,//坐标轴两边留白
+                        data: xData,
+                        axisLabel: {
+                            interval: 0,
+                            // rotate: 340,
+                            // formatter: function(val) {
+                            //     return val.split("").join("\n");
+                            // }, //横轴信息文字竖直显示
+                            textStyle: {
+                                color: '#AAA',
+                                fontStyle: 'normal',
+                                fontFamily: '微软雅黑',
+                                fontSize: 12,
+                            },
+                        },
+
+                        axisTick: {
+                            //坐标轴刻度相关设置。
+                            show: false,
+                        },
+                        axisLine: {
+                            //坐标轴轴线相关设置
+
+                        },
+                        splitLine: {
+                            //坐标轴在 grid 区域中的分隔线。
+                            show: false,
+                        },
+                    }, ],
+                    yAxis: [{
+                        type: 'value',
+
+                        axisLabel: false,
+                        axisLine: {
+                            show: false,
+                        },
+                        axisTick: {
+                            show: false,
+                        },
+                        splitLine: {
+                            show: true,
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: '0.2'
+                            }
+                        },
+                        boundaryGap: ['0', '10%'],
+                    }],
+                    series: [{
+                            name: '起层',
+                            type: 'bar',
+                            data: start_pressure,
+                            barMaxWidth: '11',
+                            itemStyle: {
+                                borderColor: "#0096FF",
+                            },
+                            barGap: '50%',
+                        },
+                        {
+                            name: '始层',
+                            type: 'bar',
+                            data: end_pressure,
+                            barMaxWidth: '11',
+                            itemStyle: {
+                                borderColor: "#FF9C00",
+                            },
+                        },
+                    ],
+                };
+
+                myChart.setOption(option);
+
+                //echarts赋值到src
+                var img1 = document.getElementById('hiddenCheckChart1_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+
+            })();
+
+            // 跨设备数据关联
+            let device_association = result.RESULT[0].device_association;
+
+            // 结论数据渲染
+            var items = '';
+            var conclusion = device_association.conclusion
+            for (x in conclusion) {
+                xIndex = x.substr(x.length - 1, 1);
+                items += `<div>${xIndex}、${conclusion[x]}</div>`
+            }
+            $('.exportBox .device_association .summaryDetail').html(items);
+            // 跨设备数据关联1
+
+            // 喷淋末端、消火栓与水泵启停关联
+            let spray_end = [];
+            let fire_hydrant = [];
+            let pump_status = [];
+            let data_time = [];
+
+            let pump_associated_data = device_association.pump_associated_data;
+            pump_associated_data.forEach(function(item, index) {
+                spray_end.push(item.spray_end)
+                fire_hydrant.push(item.fire_hydrant)
+                pump_status.push(item.pump_status)
+                data_time.push(item.data_time)
+            });
+
+            (function() {
+                var sortData = [{
+                    sortName: "喷淋末端、消火栓与水泵启停关联",
+                    data: [
+                        spray_end, fire_hydrant
+                    ]
+                }, ];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < spray_end.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#deviceLinkChart1"));
+                // 2.指定配置
+                var option = {
+
+                    color: ["#FF9C00", "#0096FF"], // 通过这个color修改两条线的颜色
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        formatter: function(params) {
+                            var res = params[0].seriesName + ':' + params[0].value + 'Mpa<br />' + params[1].seriesName + ':' + params[1].value + '<br />水泵启动状态 :' + pump_status[params[0].dataIndex] + 'Mpa<br />时间:' + data_time[params[0].dataIndex] + '';
+                            return res;
+                        },
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#aaa"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "15%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xData,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: '0.2'
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "喷淋末端",
+                            type: "line",
+                            smooth: true, // true 可以让我们的折线显示带有弧度
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(255,156,0, 0.4)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(255,156,0, 0.3)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "消防栓",
+                            type: "line",
+                            smooth: true,
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(0,150,255,0.5)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(0,150,255, 0.1)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+                            data: sortData[0].data[1]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                var img1 = document.getElementById('deviceLinkChart1_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+
+            })();
+
+
+            // 跨设备数据关联2
+
+            // 喷淋末端、消火栓屋顶水箱液位关联
+            let spray_end2 = [];
+            let fire_hydrant2 = [];
+            let data_time2 = [];
+            let water_tank_level = []
+
+            let water_associated_data = device_association.water_associated_data;
+            water_associated_data.forEach(function(item, index) {
+                spray_end2.push(item.spray_end)
+                fire_hydrant2.push(item.fire_hydrant)
+                data_time2.push(item.data_time)
+                water_tank_level.push(item.water_tank_level)
+            });
+            (function() {
+
+                var sortData = [{
+                    sortName: "喷淋末端、消火栓屋顶水箱液位关联",
+                    data: [
+                        spray_end2, fire_hydrant2
+                    ]
+                }];
+
+                var xData = function() {
+                    var data = [];
+                    for (var i = 1; i < water_associated_data.length + 1; i++) {
+                        data.push(i);
+                    }
+                    return data;
+                }();
+
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#deviceLinkChart2"));
+                // 2.指定配置
+                var option = {
+
+                    color: ["#FF9C00", "#0096FF"], // 通过这个color修改两条线的颜色
+                    tooltip: {
+                        trigger: "axis",
+                        textStyle: {
+                            align: 'left' //图例左对齐
+                        },
+                        backgroundColor: '#12DFE0',
+                        formatter: function(params) {
+                            var res = params[0].seriesName + ':' + params[0].value + 'Mpa<br />' + params[1].seriesName + ':' + params[1].value + 'Mpa<br /> 水箱液位 :' + water_tank_level[params[0].dataIndex] + 'm<br />时间:' + data_time[params[0].dataIndex] + '';
+
+                            return res;
+                        },
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#aaa"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        top: "0%",
+                        left: "1%",
+                        right: "1%",
+                        bottom: "15%",
+                        show: true, // 显示边框
+                        borderWidth: '0', //去除边框
+                        containLabel: true // 包含刻度文字在内
+                    },
+
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xData,
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            color: "#AADDFF" // 文本颜色
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        }
+                    },
+
+                    yAxis: {
+                        type: "value",
+                        axisTick: {
+                            show: false // 去除刻度线
+                        },
+                        axisLabel: {
+                            show: false // 去除文本
+                        },
+                        axisLine: {
+                            show: false // 去除轴线
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: '0.2'
+                            }
+                        }
+                    },
+                    series: [{
+                            symbol: "none",
+                            name: "喷淋末端",
+                            type: "line",
+                            smooth: true, // true 可以让我们的折线显示带有弧度
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(255,156,0, 0.4)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(255,156,0, 0.3)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+                            data: sortData[0].data[0]
+                        },
+                        {
+                            symbol: "none",
+                            name: "消防栓",
+                            type: "line",
+                            smooth: true,
+                            areaStyle: {
+                                normal: {
+                                    color: new echarts.graphic.LinearGradient(
+                                        0,
+                                        0,
+                                        0,
+                                        1, [{
+                                                offset: 0,
+                                                color: "rgba(0,150,255,0.5)"
+                                            },
+                                            {
+                                                offset: 0.8,
+                                                color: "rgba(0,150,255, 0.1)"
+                                            }
+                                        ],
+                                        false
+                                    ),
+                                    shadowColor: "rgba(0, 0, 0, 0.1)"
+                                }
+                            },
+
+                            data: sortData[0].data[1]
+                        }
+                    ]
+                };
+
+                myChart.setOption(option);
+                var img1 = document.getElementById('deviceLinkChart2_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+
+            })();
+
+
+            //数据波动关联
+
+            let data_fluctuation = result.RESULT[0].data_fluctuation;
+
+            // 结论数据渲染
+            var items = '';
+            var conclusion = data_fluctuation.conclusion
+            for (x in conclusion) {
+                xIndex = x.substr(x.length - 1, 1);
+                items += `<div>${xIndex}、${conclusion[x]}</div>`
+            }
+            $('.exportBox .data_fluctuation .summaryDetail').html(items);
+
+            // 数据波动关联
+            (function() {
+
+                let position = [];
+                let before_fluctuation = [];
+                let after_fluctuation = [];
+                let data_time = [];
+                let volatility_data = data_fluctuation.volatility_data;
+                volatility_data.forEach(function(item, index) {
+
+                    //楼层
+                    position.push(item.position)
+
+                    //开始值
+                    before_fluctuation.push(item.before_fluctuation)
+
+                    //结束值
+                    after_fluctuation.push(item.after_fluctuation)
+
+                    data_time.push(item.data_time)
+                });
+                // 1. 实例化对象
+                var myChart = echarts.init(document.querySelector("#dataChangeChart1"));
+                var xData = position;
+                // 2.指定配置
+                var option = {
+                    backgroundColor: 'transparent',
+                    color: ['rgba(0,150,255,.5)', 'rgba(255,156,0,.5)'],
+                    tooltip: {
+                        backgroundColor: '#12DFE0',
+                        //提示框组件
+                        trigger: 'axis',
+                        // formatter: '{a0}: {c0}<br />{a1}: {c1}<br />时间:' + chooseTime + '',
+                        formatter: function(params) {
+                            var res = params[0].seriesName + ':' + params[0].value + 'Mpa<br />' + params[1].seriesName + ':' + params[1].value + 'Mpa<br />' + data_time[params[1].dataIndex];
+                            return res;
+                        },
+                        axisPointer: {
+                            type: 'shadow',
+                        },
+                        textStyle: {
+                            fontStyle: 'normal',
+                            fontFamily: '微软雅黑',
+                            align: 'left' //图例左对齐
+                        },
+                    },
+                    legend: {
+                        // 如果series 对象有name 值,则 legend可以不用写data
+                        itemGap: 20,
+                        itemHeight: 2,
+                        itemWidth: 15,
+                        icon: 'rect',
+                        textStyle: {
+                            color: "#AAA"
+                        },
+                        top: "bottom",
+                    },
+                    grid: {
+                        left: '0',
+                        right: '0',
+                        bottom: '40',
+                        top: '0',
+                        containLabel: true,
+                    },
+
+                    //添加横线滚动条
+                    dataZoom: {
+                        start: 0, //默认为0
+                        end: 100 - 1500 / 1, //默认为100
+                        type: 'slider',
+                        show: xData.length > 10 ? true : false,
+                        xAxisIndex: [0],
+                        handleSize: 0, //滑动条的 左右2个滑动条的大小
+                        height: 4, //组件高度
+                        left: 20, //左边的距离
+                        right: 20, //右边的距离
+                        bottom: 20, //右边的距离
+                        handleColor: '#CBBCDB', //h滑动图标的颜色
+                        handleStyle: {
+                            borderColor: "#CBBCDB",
+                            borderWidth: "1",
+                            shadowBlur: 2,
+                            background: "#CBBCDB",
+                            shadowColor: "#CBBCDB",
+                        },
+                        textStyle: {
+                            color: "#fff"
+                        },
+
+                        backgroundColor: 'rgba(37, 46, 100, 0.45)', //两边未选中的滑动条区域的颜色
+                        showDataShadow: false, //是否显示数据阴影 默认auto
+                        // showDetail: false, //即拖拽时候是否显示详细数值信息 默认true
+                        filterMode: 'filter',
+                    },
+
+                    xAxis: [{
+                        type: 'category',
+                        //	boundaryGap: true,//坐标轴两边留白
+                        data: xData,
+                        axisLabel: {
+                            interval: 0,
+                            // rotate: 340,
+                            // formatter: function(val) {
+                            //     return val.split("").join("\n");
+                            // }, //横轴信息文字竖直显示
+                            textStyle: {
+                                color: '#AADDFF',
+                                fontStyle: 'normal',
+                                fontFamily: '微软雅黑',
+                                fontSize: 12,
+                            },
+                        },
+
+                        axisTick: {
+                            //坐标轴刻度相关设置。
+                            show: false,
+                        },
+                        axisLine: {
+                            //坐标轴轴线相关设置
+                        },
+                        splitLine: {
+                            //坐标轴在 grid 区域中的分隔线。
+                            show: false,
+                        },
+                    }, ],
+                    yAxis: [{
+                        type: 'value',
+
+                        axisLabel: false,
+                        axisLine: {
+                            show: false,
+                        },
+                        axisTick: {
+                            show: false,
+                        },
+                        splitLine: {
+                            show: true,
+                            lineStyle: {
+                                color: "#aaa", // 分割线颜色
+                                opacity: '0.2'
+                            },
+                        },
+                        boundaryGap: ['0', '10%'],
+                    }],
+                    series: [{
+                            name: '波动前水压值',
+                            type: 'bar',
+                            data: before_fluctuation,
+                            barMaxWidth: '11',
+                            itemStyle: {
+                                borderColor: "#0096FF",
+                            },
+                            barGap: '50%',
+                        },
+                        {
+                            name: '波动后水压值',
+                            type: 'bar',
+                            data: after_fluctuation,
+                            barMaxWidth: '11',
+                            itemStyle: {
+                                borderColor: "#FF9C00",
+                            },
+                        },
+                    ],
+                };
+
+                myChart.setOption(option);
+                var img1 = document.getElementById('dataChangeChart1_img');
+                setTimeout(function() {
+                    img1.src = myChart.getDataURL();
+                }, 1000)
+            })();
+
+            /* 
+                 导出数据对接 end
+            */
+
+
+        } else {
+            layui.use('layer', function() {
+                var layer = layui.layer;
+                layer.alert('暂无数据', { icon: 5 });
+            });
+        }
+    }, function(errorMsg) {
+        layui.use('layer', function() {
+            var layer = layui.layer;
+            layer.alert('数据请求失败', { icon: 5 });
+        });
+    }, 1)
+};
+
+function getSearchParamObj() {
+    let queryParam = {};
+    let buildingVal = $('#building').val();
+    let chooseTime = $('#chooseTime').val();
+    queryParam.company_code = buildingVal;
+    queryParam.generation_time = chooseTime;
+    return queryParam;
+};
+
+//日期筛选
+layui.use('laydate', function() {
+    var laydate = layui.laydate;
+    ///年月选择器
+    laydate.render({
+        elem: '#chooseTime',
+        type: 'month',
+        max: -30, //7天后
+        trigger: 'click', //呼出事件改成click
+
+        done: function(value, date, endDate) {
+            setTimeout(function() {
+                getListData(getSearchParamObj());
+            }, 100)
+        }
+
+    });
+
+});
+
+//建筑筛选
+$("#building").change(function() {
+    setTimeout(function() {
+        getListData(getSearchParamObj());
+    }, 100)
+
+});
+
+// 打印
+(function() {
+
+    $("#btnPrint").click(function() {
+        print_detail()
+    });
+
+    var print_detail = function() {
+
+        //打印前echarts图表转换成图片 start   
+        $('#divergenceChart1_img').show()
+        $('#divergenceChart1').hide()
+
+        $('#hiddenCheckChart1_img').show()
+        $('#hiddenCheckChart1').hide()
+
+        $('#deviceLinkChart1_img,#deviceLinkChart2_img').show()
+        $('#deviceLinkChart1,#deviceLinkChart2').hide()
+
+        $('#dataChangeChart1_img').show()
+        $('#dataChangeChart1').hide()
+            //  end
+
+        var div1_label1 = document.getElementById('printArea').innerHTML;
+        var hkey_key;
+        var hkey_root = 'HKEY_CURRENT_USER';
+        var hkey_path = '\\Software\\Micorsoft\\Internet Explorer\\PageSetup\\';
+        var print_win = window.open('打印窗口', '_blank');
+        var div = document.createElement('div');
+        div.setAttribute('width', '100%');
+        div.setAttribute('height', '100%');
+        var div_print = document.createElement('div');
+        div_print.setAttribute('style', 'width:595px;height:842px;padding:50px 20px;margin:0px auto 0px auto');
+        div_print.innerHTML = div1_label1;
+        div.appendChild(div_print);
+
+        print_win.document.write(div.innerHTML);
+        print_win.document.close();
+        try {
+            var RegWsh = new ActiveXObject('WScript.Shell');
+            hkey_key = 'header';
+            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, '');
+            hkey_key = 'footer';
+            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, '');
+        } catch (e) {}
+        print_win.print();
+        print_win.close();
+    }
+})()

+ 1395 - 0
WebRoot/view/efireAnalysis/layui/css/layui.css

@@ -0,0 +1,1395 @@
+/**
+ 
+ @Name: layui
+ @Author: 贤心
+ @Site: www.layui.com
+ 
+ */
+
+
+/** 初始化 **/
+body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,input,button,textarea,p,blockquote,th,td,form,pre{margin: 0; padding: 0; -webkit-tap-highlight-color:rgba(0,0,0,0);}
+a:active,a:hover{outline:0}
+img{display: inline-block; border: none; vertical-align: middle;}
+li{list-style:none;}
+table{border-collapse: collapse; border-spacing: 0;}
+h1,h2,h3{font-weight: 400;}
+h4, h5, h6{font-size: 100%; font-weight: 400;}
+button,input,select,textarea{font-size: 100%; }
+input,button,textarea,select,optgroup,option{font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; outline: 0;}
+pre{white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;}
+
+/** 初始化全局标签 **/
+body{line-height: 24px; font: 14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif;}
+hr{height: 1px; margin: 10px 0; border: 0; clear: both;}
+a{color: #333; text-decoration:none; }
+a:hover{color: #777;}
+a cite{font-style: normal; *cursor:pointer;}
+
+/** 基础通用 **/
+.layui-border-box, .layui-border-box *{box-sizing: border-box;}
+/* 消除第三方ui可能造成的冲突 */.layui-box, .layui-box *{box-sizing: content-box;}
+.layui-clear{clear: both; *zoom: 1;}
+.layui-clear:after{content:'\20'; clear:both; *zoom:1; display:block; height:0;}
+.layui-inline{position: relative; display: inline-block; *display:inline; *zoom:1; vertical-align: middle;}
+/* 三角形 */.layui-edge{position: relative; display: inline-block; vertical-align: middle; width: 0; height: 0; border-width: 6px; border-style: dashed; border-color: transparent; overflow: hidden;}
+.layui-edge-top{top: -4px; border-bottom-color: #999; border-bottom-style: solid;}
+.layui-edge-right{border-left-color: #999; border-left-style: solid;}
+.layui-edge-bottom{top: 2px; border-top-color: #999; border-top-style: solid;}
+.layui-edge-left{border-right-color: #999; border-right-style: solid;}
+/* 单行溢出省略 */.layui-elip{text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
+/* 屏蔽选中 */.layui-unselect,.layui-icon, .layui-disabled{-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;}
+/* 禁用 */.layui-disabled,.layui-disabled:hover{color: #d2d2d2 !important; cursor: not-allowed !important;}
+/* 纯圆角 */.layui-circle{border-radius: 100%;}
+.layui-show{display: block !important;}
+.layui-hide{display: none !important;}
+
+/** 图标字体 **/
+@font-face {
+  font-family: 'layui-icon';
+  src: url('../font/iconfont.eot?v=256');
+  src: url('../font/iconfont.eot?v=256#iefix') format('embedded-opentype'),
+       url('../font/iconfont.woff2?v=256') format('woff2'),
+       url('../font/iconfont.woff?v=256') format('woff'),
+       url('../font/iconfont.ttf?v=256') format('truetype'),
+       url('../font/iconfont.svg?v=256#layui-icon') format('svg');
+}
+                    
+.layui-icon{
+  font-family:"layui-icon" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+/* font-class */
+.layui-icon-reply-fill:before{content:"\e611"}
+.layui-icon-set-fill:before{content:"\e614"}
+.layui-icon-menu-fill:before{content:"\e60f"}
+.layui-icon-search:before{content:"\e615"}
+.layui-icon-share:before{content:"\e641"}
+.layui-icon-set-sm:before{content:"\e620"}
+.layui-icon-engine:before{content:"\e628"}
+.layui-icon-close:before{content:"\1006"}
+.layui-icon-close-fill:before{content:"\1007"}
+.layui-icon-chart-screen:before{content:"\e629"}
+.layui-icon-star:before{content:"\e600"}
+.layui-icon-circle-dot:before{content:"\e617"}
+.layui-icon-chat:before{content:"\e606"}
+.layui-icon-release:before{content:"\e609"}
+.layui-icon-list:before{content:"\e60a"}
+.layui-icon-chart:before{content:"\e62c"}
+.layui-icon-ok-circle:before{content:"\1005"}
+.layui-icon-layim-theme:before{content:"\e61b"}
+.layui-icon-table:before{content:"\e62d"}
+.layui-icon-right:before{content:"\e602"}
+.layui-icon-left:before{content:"\e603"}
+.layui-icon-cart-simple:before{content:"\e698"}
+.layui-icon-face-cry:before{content:"\e69c"}
+.layui-icon-face-smile:before{content:"\e6af"}
+.layui-icon-survey:before{content:"\e6b2"}
+.layui-icon-tree:before{content:"\e62e"}
+.layui-icon-ie:before{content:"\e7bb"}
+.layui-icon-upload-circle:before{content:"\e62f"}
+.layui-icon-add-circle:before{content:"\e61f"}
+.layui-icon-download-circle:before{content:"\e601"}
+.layui-icon-templeate-1:before{content:"\e630"}
+.layui-icon-util:before{content:"\e631"}
+.layui-icon-face-surprised:before{content:"\e664"}
+.layui-icon-edit:before{content:"\e642"}
+.layui-icon-speaker:before{content:"\e645"}
+.layui-icon-down:before{content:"\e61a"}
+.layui-icon-file:before{content:"\e621"}
+.layui-icon-layouts:before{content:"\e632"}
+.layui-icon-rate-half:before{content:"\e6c9"}
+.layui-icon-add-circle-fine:before{content:"\e608"}
+.layui-icon-prev-circle:before{content:"\e633"}
+.layui-icon-read:before{content:"\e705"}
+.layui-icon-404:before{content:"\e61c"}
+.layui-icon-carousel:before{content:"\e634"}
+.layui-icon-help:before{content:"\e607"}
+.layui-icon-code-circle:before{content:"\e635"}
+.layui-icon-windows:before{content:"\e67f"}
+.layui-icon-water:before{content:"\e636"}
+.layui-icon-username:before{content:"\e66f"}
+.layui-icon-find-fill:before{content:"\e670"}
+.layui-icon-about:before{content:"\e60b"}
+.layui-icon-location:before{content:"\e715"}
+.layui-icon-up:before{content:"\e619"}
+.layui-icon-pause:before{content:"\e651"}
+.layui-icon-date:before{content:"\e637"}
+.layui-icon-layim-uploadfile:before{content:"\e61d"}
+.layui-icon-delete:before{content:"\e640"}
+.layui-icon-play:before{content:"\e652"}
+.layui-icon-top:before{content:"\e604"}
+.layui-icon-firefox:before{content:"\e686"}
+.layui-icon-friends:before{content:"\e612"}
+.layui-icon-refresh-3:before{content:"\e9aa"}
+.layui-icon-ok:before{content:"\e605"}
+.layui-icon-layer:before{content:"\e638"}
+.layui-icon-face-smile-fine:before{content:"\e60c"}
+.layui-icon-dollar:before{content:"\e659"}
+.layui-icon-group:before{content:"\e613"}
+.layui-icon-layim-download:before{content:"\e61e"}
+.layui-icon-picture-fine:before{content:"\e60d"}
+.layui-icon-link:before{content:"\e64c"}
+.layui-icon-diamond:before{content:"\e735"}
+.layui-icon-log:before{content:"\e60e"}
+.layui-icon-key:before{content:"\e683"}
+.layui-icon-rate-solid:before{content:"\e67a"}
+.layui-icon-fonts-del:before{content:"\e64f"}
+.layui-icon-unlink:before{content:"\e64d"}
+.layui-icon-fonts-clear:before{content:"\e639"}
+.layui-icon-triangle-r:before{content:"\e623"}
+.layui-icon-circle:before{content:"\e63f"}
+.layui-icon-radio:before{content:"\e643"}
+.layui-icon-align-center:before{content:"\e647"}
+.layui-icon-align-right:before{content:"\e648"}
+.layui-icon-align-left:before{content:"\e649"}
+.layui-icon-loading-1:before{content:"\e63e"}
+.layui-icon-return:before{content:"\e65c"}
+.layui-icon-fonts-strong:before{content:"\e62b"}
+.layui-icon-upload:before{content:"\e67c"}
+.layui-icon-dialogue:before{content:"\e63a"}
+.layui-icon-video:before{content:"\e6ed"}
+.layui-icon-headset:before{content:"\e6fc"}
+.layui-icon-cellphone-fine:before{content:"\e63b"}
+.layui-icon-add-1:before{content:"\e654"}
+.layui-icon-face-smile-b:before{content:"\e650"}
+.layui-icon-fonts-html:before{content:"\e64b"}
+.layui-icon-screen-full:before{content:"\e622"}
+.layui-icon-form:before{content:"\e63c"}
+.layui-icon-cart:before{content:"\e657"}
+.layui-icon-camera-fill:before{content:"\e65d"}
+.layui-icon-tabs:before{content:"\e62a"}
+.layui-icon-heart-fill:before{content:"\e68f"}
+.layui-icon-fonts-code:before{content:"\e64e"}
+.layui-icon-ios:before{content:"\e680"}
+.layui-icon-at:before{content:"\e687"}
+.layui-icon-fire:before{content:"\e756"}
+.layui-icon-set:before{content:"\e716"}
+.layui-icon-fonts-u:before{content:"\e646"}
+.layui-icon-triangle-d:before{content:"\e625"}
+.layui-icon-tips:before{content:"\e702"}
+.layui-icon-picture:before{content:"\e64a"}
+.layui-icon-more-vertical:before{content:"\e671"}
+.layui-icon-bluetooth:before{content:"\e689"}
+.layui-icon-flag:before{content:"\e66c"}
+.layui-icon-loading:before{content:"\e63d"}
+.layui-icon-fonts-i:before{content:"\e644"}
+.layui-icon-refresh-1:before{content:"\e666"}
+.layui-icon-rmb:before{content:"\e65e"}
+.layui-icon-addition:before{content:"\e624"}
+.layui-icon-home:before{content:"\e68e"}
+.layui-icon-time:before{content:"\e68d"}
+.layui-icon-user:before{content:"\e770"}
+.layui-icon-notice:before{content:"\e667"}
+.layui-icon-chrome:before{content:"\e68a"}
+.layui-icon-edge:before{content:"\e68b"}
+.layui-icon-login-weibo:before{content:"\e675"}
+.layui-icon-voice:before{content:"\e688"}
+.layui-icon-upload-drag:before{content:"\e681"}
+.layui-icon-login-qq:before{content:"\e676"}
+.layui-icon-snowflake:before{content:"\e6b1"}
+.layui-icon-heart:before{content:"\e68c"}
+.layui-icon-logout:before{content:"\e682"}
+.layui-icon-file-b:before{content:"\e655"}
+.layui-icon-template:before{content:"\e663"}
+.layui-icon-transfer:before{content:"\e691"}
+.layui-icon-auz:before{content:"\e672"}
+.layui-icon-console:before{content:"\e665"}
+.layui-icon-app:before{content:"\e653"}
+.layui-icon-prev:before{content:"\e65a"}
+.layui-icon-website:before{content:"\e7ae"}
+.layui-icon-next:before{content:"\e65b"}
+.layui-icon-component:before{content:"\e857"}
+.layui-icon-android:before{content:"\e684"}
+.layui-icon-more:before{content:"\e65f"}
+.layui-icon-login-wechat:before{content:"\e677"}
+.layui-icon-shrink-right:before{content:"\e668"}
+.layui-icon-spread-left:before{content:"\e66b"}
+.layui-icon-camera:before{content:"\e660"}
+.layui-icon-note:before{content:"\e66e"}
+.layui-icon-refresh:before{content:"\e669"}
+.layui-icon-female:before{content:"\e661"}
+.layui-icon-male:before{content:"\e662"}
+.layui-icon-screen-restore:before{content:"\e758"}
+.layui-icon-password:before{content:"\e673"}
+.layui-icon-senior:before{content:"\e674"}
+.layui-icon-theme:before{content:"\e66a"}
+.layui-icon-tread:before{content:"\e6c5"}
+.layui-icon-praise:before{content:"\e6c6"}
+.layui-icon-star-fill:before{content:"\e658"}
+.layui-icon-rate:before{content:"\e67b"}
+.layui-icon-template-1:before{content:"\e656"}
+.layui-icon-vercode:before{content:"\e679"}
+.layui-icon-service:before{content:"\e626"}
+.layui-icon-cellphone:before{content:"\e678"}
+.layui-icon-print:before{content:"\e66d"}
+.layui-icon-cols:before{content:"\e610"}
+.layui-icon-wifi:before{content:"\e7e0"}
+.layui-icon-export:before{content:"\e67d"}
+.layui-icon-rss:before{content:"\e808"}
+.layui-icon-slider:before{content:"\e714"}
+.layui-icon-email:before{content:"\e618"}
+.layui-icon-subtraction:before{content:"\e67e"}
+.layui-icon-mike:before{content:"\e6dc"}
+.layui-icon-light:before{content:"\e748"}
+.layui-icon-gift:before{content:"\e627"}
+.layui-icon-mute:before{content:"\e685"}
+.layui-icon-reduce-circle:before{content:"\e616"}
+.layui-icon-music:before{content:"\e690"}
+
+/* 基本布局 */
+.layui-main{position: relative; width: 1140px; margin: 0 auto;}
+.layui-header{position: relative; z-index: 1000; height: 60px;}
+.layui-header a:hover{transition: all .5s; -webkit-transition: all .5s;}
+.layui-side{position: fixed; left: 0; top: 0; bottom: 0; z-index: 999; width: 200px; overflow-x: hidden;}
+.layui-side-scroll{position: relative; width: 220px; height: 100%; overflow-x: hidden;}
+.layui-body{position: absolute; left: 200px; right: 0; top: 0; bottom: 0; z-index: 998; width: auto; overflow: hidden; overflow-y: auto; box-sizing: border-box;}
+
+/* 后台框架大布局 */.layui-layout-body{overflow: hidden;}
+.layui-layout-admin .layui-header{background-color: #23262E;}
+.layui-layout-admin .layui-side{top: 60px; width: 200px; overflow-x: hidden;}
+.layui-layout-admin .layui-body{position: fixed; top: 60px; bottom: 44px;}
+.layui-layout-admin .layui-main{width: auto; margin: 0 15px;}
+.layui-layout-admin .layui-footer{position: fixed; left: 200px; right: 0; bottom: 0; height: 44px; line-height: 44px; padding: 0 15px; background-color: #eee;}
+.layui-layout-admin .layui-logo{position: absolute; left: 0; top: 0; width: 200px; height: 100%; line-height: 60px; text-align: center; color: #009688; font-size: 16px;}
+.layui-layout-admin .layui-header .layui-nav{background: none;}
+.layui-layout-left{position: absolute !important; left: 200px; top: 0;}
+.layui-layout-right{position: absolute !important; right: 0; top: 0;}
+
+/* 栅格布局 */
+.layui-container{position: relative; margin: 0 auto; padding: 0 15px; box-sizing: border-box;}
+.layui-fluid{position: relative; margin: 0 auto; padding: 0 15px;}
+
+.layui-row:before, .layui-row:after{content: ''; display: block; clear: both;}
+.layui-col-xs1, .layui-col-xs2, .layui-col-xs3, .layui-col-xs4, .layui-col-xs5, .layui-col-xs6, .layui-col-xs7, .layui-col-xs8, .layui-col-xs9, .layui-col-xs10, .layui-col-xs11, .layui-col-xs12
+,.layui-col-sm1, .layui-col-sm2, .layui-col-sm3, .layui-col-sm4, .layui-col-sm5, .layui-col-sm6, .layui-col-sm7, .layui-col-sm8, .layui-col-sm9, .layui-col-sm10, .layui-col-sm11, .layui-col-sm12
+,.layui-col-md1, .layui-col-md2, .layui-col-md3, .layui-col-md4, .layui-col-md5, .layui-col-md6, .layui-col-md7, .layui-col-md8, .layui-col-md9, .layui-col-md10, .layui-col-md11, .layui-col-md12
+,.layui-col-lg1, .layui-col-lg2, .layui-col-lg3, .layui-col-lg4, .layui-col-lg5, .layui-col-lg6, .layui-col-lg7, .layui-col-lg8, .layui-col-lg9, .layui-col-lg10, .layui-col-lg11, .layui-col-lg12
+{position: relative; display: block; box-sizing: border-box;}
+
+.layui-col-xs1, .layui-col-xs2, .layui-col-xs3, .layui-col-xs4, .layui-col-xs5, .layui-col-xs6, .layui-col-xs7, .layui-col-xs8, .layui-col-xs9, .layui-col-xs10, .layui-col-xs11, .layui-col-xs12{float: left;}
+.layui-col-xs1{width: 8.33333333%;}
+.layui-col-xs2{width: 16.66666667%;}
+.layui-col-xs3{width: 25%;}
+.layui-col-xs4{width: 33.33333333%;}
+.layui-col-xs5{width: 41.66666667%;}
+.layui-col-xs6{width: 50%;}
+.layui-col-xs7{width: 58.33333333%;}
+.layui-col-xs8{width: 66.66666667%;}
+.layui-col-xs9{width: 75%;}
+.layui-col-xs10{width: 83.33333333%;}
+.layui-col-xs11{width: 91.66666667%;}
+.layui-col-xs12{width: 100%;}
+
+.layui-col-xs-offset1{margin-left: 8.33333333%;}
+.layui-col-xs-offset2{margin-left: 16.66666667%;}
+.layui-col-xs-offset3{margin-left: 25%;}
+.layui-col-xs-offset4{margin-left: 33.33333333%;}
+.layui-col-xs-offset5{margin-left: 41.66666667%;}
+.layui-col-xs-offset6{margin-left: 50%;}
+.layui-col-xs-offset7{margin-left: 58.33333333%;}
+.layui-col-xs-offset8{margin-left: 66.66666667%;}
+.layui-col-xs-offset9{margin-left: 75%;}
+.layui-col-xs-offset10{margin-left: 83.33333333%;}
+.layui-col-xs-offset11{margin-left: 91.66666667%;}
+.layui-col-xs-offset12{margin-left: 100%;}
+
+/* 超小屏幕(手机) */
+@media screen and (max-width: 768px) {
+  .layui-hide-xs{display: none!important;}
+  .layui-show-xs-block{display: block!important;}
+  .layui-show-xs-inline{display: inline!important;}
+  .layui-show-xs-inline-block{display: inline-block!important;}
+}
+
+/* 小型屏幕(平板) */
+@media screen and (min-width: 768px) {
+  .layui-container{width: 750px;}
+  .layui-hide-sm{display: none!important;}
+  .layui-show-sm-block{display: block!important;}
+  .layui-show-sm-inline{display: inline!important;}
+  .layui-show-sm-inline-block{display: inline-block!important;}
+
+  .layui-col-sm1, .layui-col-sm2, .layui-col-sm3, .layui-col-sm4, .layui-col-sm5, .layui-col-sm6, .layui-col-sm7, .layui-col-sm8, .layui-col-sm9, .layui-col-sm10, .layui-col-sm11, .layui-col-sm12{float: left;}
+  .layui-col-sm1{width: 8.33333333%;}
+  .layui-col-sm2{width: 16.66666667%;}
+  .layui-col-sm3{width: 25%;}
+  .layui-col-sm4{width: 33.33333333%;}
+  .layui-col-sm5{width: 41.66666667%;}
+  .layui-col-sm6{width: 50%;}
+  .layui-col-sm7{width: 58.33333333%;}
+  .layui-col-sm8{width: 66.66666667%;}
+  .layui-col-sm9{width: 75%;}
+  .layui-col-sm10{width: 83.33333333%;}
+  .layui-col-sm11{width: 91.66666667%;}
+  .layui-col-sm12{width: 100%;}
+  /* 列偏移 */
+  .layui-col-sm-offset1{margin-left: 8.33333333%;}
+  .layui-col-sm-offset2{margin-left: 16.66666667%;}
+  .layui-col-sm-offset3{margin-left: 25%;}
+  .layui-col-sm-offset4{margin-left: 33.33333333%;}
+  .layui-col-sm-offset5{margin-left: 41.66666667%;}
+  .layui-col-sm-offset6{margin-left: 50%;}
+  .layui-col-sm-offset7{margin-left: 58.33333333%;}
+  .layui-col-sm-offset8{margin-left: 66.66666667%;}
+  .layui-col-sm-offset9{margin-left: 75%;}
+  .layui-col-sm-offset10{margin-left: 83.33333333%;}
+  .layui-col-sm-offset11{margin-left: 91.66666667%;}
+  .layui-col-sm-offset12{margin-left: 100%;}
+}
+/* 中型屏幕(桌面) */
+@media screen and (min-width: 992px) {
+  .layui-container{width: 970px;}
+  .layui-hide-md{display: none!important;}
+  .layui-show-md-block{display: block!important;}
+  .layui-show-md-inline{display: inline!important;}
+  .layui-show-md-inline-block{display: inline-block!important;}
+  
+  .layui-col-md1, .layui-col-md2, .layui-col-md3, .layui-col-md4, .layui-col-md5, .layui-col-md6, .layui-col-md7, .layui-col-md8, .layui-col-md9, .layui-col-md10, .layui-col-md11, .layui-col-md12{float: left;}
+  .layui-col-md1{width: 8.33333333%;}
+  .layui-col-md2{width: 16.66666667%;}
+  .layui-col-md3{width: 25%;}
+  .layui-col-md4{width: 33.33333333%;}
+  .layui-col-md5{width: 41.66666667%;}
+  .layui-col-md6{width: 50%;}
+  .layui-col-md7{width: 58.33333333%;}
+  .layui-col-md8{width: 66.66666667%;}
+  .layui-col-md9{width: 75%;}
+  .layui-col-md10{width: 83.33333333%;}
+  .layui-col-md11{width: 91.66666667%;}
+  .layui-col-md12{width: 100%;}
+  /* 列偏移 */
+  .layui-col-md-offset1{margin-left: 8.33333333%;}
+  .layui-col-md-offset2{margin-left: 16.66666667%;}
+  .layui-col-md-offset3{margin-left: 25%;}
+  .layui-col-md-offset4{margin-left: 33.33333333%;}
+  .layui-col-md-offset5{margin-left: 41.66666667%;}
+  .layui-col-md-offset6{margin-left: 50%;}
+  .layui-col-md-offset7{margin-left: 58.33333333%;}
+  .layui-col-md-offset8{margin-left: 66.66666667%;}
+  .layui-col-md-offset9{margin-left: 75%;}
+  .layui-col-md-offset10{margin-left: 83.33333333%;}
+  .layui-col-md-offset11{margin-left: 91.66666667%;}
+  .layui-col-md-offset12{margin-left: 100%;}
+}
+/* 大型屏幕(桌面) */
+@media screen and (min-width: 1200px) {
+  .layui-container{width: 1170px;}
+  .layui-hide-lg{display: none!important;}
+  .layui-show-lg-block{display: block!important;}
+  .layui-show-lg-inline{display: inline!important;}
+  .layui-show-lg-inline-block{display: inline-block!important;}
+  
+  .layui-col-lg1, .layui-col-lg2, .layui-col-lg3, .layui-col-lg4, .layui-col-lg5, .layui-col-lg6, .layui-col-lg7, .layui-col-lg8, .layui-col-lg9, .layui-col-lg10, .layui-col-lg11, .layui-col-lg12{float: left;}
+  .layui-col-lg1{width: 8.33333333%;}
+  .layui-col-lg2{width: 16.66666667%;}
+  .layui-col-lg3{width: 25%;}
+  .layui-col-lg4{width: 33.33333333%;}
+  .layui-col-lg5{width: 41.66666667%;}
+  .layui-col-lg6{width: 50%;}
+  .layui-col-lg7{width: 58.33333333%;}
+  .layui-col-lg8{width: 66.66666667%;}
+  .layui-col-lg9{width: 75%;}
+  .layui-col-lg10{width: 83.33333333%;}
+  .layui-col-lg11{width: 91.66666667%;}
+  .layui-col-lg12{width: 100%;}
+  /* 列偏移 */
+  .layui-col-lg-offset1{margin-left: 8.33333333%;}
+  .layui-col-lg-offset2{margin-left: 16.66666667%;}
+  .layui-col-lg-offset3{margin-left: 25%;}
+  .layui-col-lg-offset4{margin-left: 33.33333333%;}
+  .layui-col-lg-offset5{margin-left: 41.66666667%;}
+  .layui-col-lg-offset6{margin-left: 50%;}
+  .layui-col-lg-offset7{margin-left: 58.33333333%;}
+  .layui-col-lg-offset8{margin-left: 66.66666667%;}
+  .layui-col-lg-offset9{margin-left: 75%;}
+  .layui-col-lg-offset10{margin-left: 83.33333333%;}
+  .layui-col-lg-offset11{margin-left: 91.66666667%;}
+  .layui-col-lg-offset12{margin-left: 100%;}
+}
+
+/* 列间隔 */
+.layui-col-space1{margin: -0.5px;}
+.layui-col-space1>*{padding: 0.5px;}
+.layui-col-space2{margin: -1px;}
+.layui-col-space2>*{padding: 1px;}
+.layui-col-space4{margin: -2px;}
+.layui-col-space4>*{padding: 2px;}
+.layui-col-space5{margin: -2.5px;}
+.layui-col-space5>*{padding: 2.5px;}
+.layui-col-space6{margin: -3px;}
+.layui-col-space6>*{padding: 3px;}
+.layui-col-space8{margin: -4px;}
+.layui-col-space8>*{padding: 4px;}
+.layui-col-space10{margin: -5px;}
+.layui-col-space10>*{padding: 5px;}
+.layui-col-space12{margin: -6px;}
+.layui-col-space12>*{padding: 6px;}
+.layui-col-space14{margin: -7px;}
+.layui-col-space14>*{padding: 7px;}
+.layui-col-space15{margin: -7.5px;}
+.layui-col-space15>*{padding: 7.5px;}
+.layui-col-space16{margin: -8px;}
+.layui-col-space16>*{padding: 8px;}
+.layui-col-space18{margin: -9px;}
+.layui-col-space18>*{padding: 9px;}
+.layui-col-space20{margin: -10px;}
+.layui-col-space20>*{padding: 10px;}
+.layui-col-space22{margin: -11px;}
+.layui-col-space22>*{padding: 11px;}
+.layui-col-space24{margin: -12px;}
+.layui-col-space24>*{padding: 12px;}
+.layui-col-space25{margin: -12.5px;}
+.layui-col-space25>*{padding: 12.5px;}
+.layui-col-space26{margin: -13px;}
+.layui-col-space26>*{padding: 13px;}
+.layui-col-space28{margin: -14px;}
+.layui-col-space28>*{padding: 14px;}
+.layui-col-space30{margin: -15px;}
+.layui-col-space30>*{padding: 15px;}
+
+
+/** 页面元素 **/
+.layui-btn, .layui-input, .layui-textarea, .layui-upload-button, .layui-select{outline: none; -webkit-appearance: none; transition: all .3s; -webkit-transition: all .3s; box-sizing: border-box;}
+
+/* 引用 */.layui-elem-quote{margin-bottom: 10px; padding: 15px; line-height: 22px; border-left: 5px solid #009688; border-radius: 0 2px 2px 0; background-color: #f2f2f2;}
+.layui-quote-nm{border-style: solid; border-width: 1px; border-left-width: 5px; background: none;}
+/* 字段集合 */.layui-elem-field{margin-bottom: 10px; padding: 0; border-width: 1px; border-style: solid;}
+.layui-elem-field legend{margin-left: 20px; padding: 0 10px; font-size: 20px; font-weight: 300;}
+.layui-field-title{margin: 10px 0 20px; border-width: 0; border-top-width: 1px;}
+.layui-field-box{padding: 10px 15px;}
+.layui-field-title .layui-field-box{padding: 10px 0;}
+
+/* 进度条 */
+.layui-progress{position: relative; height: 6px; border-radius: 20px; background-color: #e2e2e2;}
+.layui-progress-bar{position: absolute; left: 0; top: 0; width: 0; max-width: 100%; height: 6px; border-radius: 20px; text-align: right; background-color: #5FB878; transition: all .3s; -webkit-transition: all .3s;}
+.layui-progress-big,
+.layui-progress-big .layui-progress-bar{height: 18px; line-height: 18px;}
+.layui-progress-text{position: relative; top: -20px; line-height: 18px; font-size: 12px; color: #666}
+.layui-progress-big .layui-progress-text{position: static; padding: 0 10px; color: #fff;}
+
+
+/*
+
+  面板
+ 
+*/
+
+
+/* 折叠面板 */
+.layui-collapse{border-width: 1px; border-style: solid; border-radius: 2px;}
+.layui-colla-item,
+.layui-colla-content{border-top-width: 1px; border-top-style: solid;}
+.layui-colla-item:first-child{border-top: none;}
+.layui-colla-title{position: relative; height: 42px; line-height: 42px; padding: 0 15px 0 35px; color: #333; background-color: #f2f2f2; cursor: pointer; font-size: 14px; overflow: hidden;}
+.layui-colla-content{display: none; padding: 10px 15px; line-height: 22px; color: #666;}
+.layui-colla-icon{position: absolute; left: 15px; top: 0; font-size: 14px;}
+
+/* 卡片面板 */
+.layui-card{margin-bottom: 15px; border-radius: 2px; background-color: #fff; box-shadow: 0 1px 2px 0 rgba(0,0,0,.05);}
+.layui-card:last-child{margin-bottom: 0;}
+.layui-card-header{position: relative; height: 42px; line-height: 42px; padding: 0 15px; border-bottom: 1px solid #f6f6f6; color: #333; border-radius: 2px 2px 0 0; font-size: 14px;}
+.layui-card-body{position: relative; padding: 10px 15px; line-height: 24px;}
+.layui-card-body[pad15]{padding: 15px;}
+.layui-card-body[pad20]{padding: 20px;}
+.layui-card-body .layui-table{margin: 5px 0;}
+.layui-card .layui-tab{margin: 0;}
+
+/* 常规面板 */
+.layui-panel{}
+
+/* 窗口面板 */
+.layui-panel-window{position: relative; padding: 15px; border-radius: 0; border-top: 5px solid #E6E6E6; background-color: #fff;}
+
+/* 其它辅助 */
+.layui-auxiliar-moving{position: fixed; left: 0; right: 0; top: 0; bottom: 0; width: 100%; height: 100%; background: none; z-index: 9999999999;}
+
+
+/* 
+
+  默认主题 
+  
+*/
+
+
+/* 背景颜色 */
+.layui-bg-red{background-color: #FF5722 !important; color: #fff!important;} /*赤*/
+.layui-bg-orange{background-color: #FFB800!important; color: #fff!important;} /*橙*/
+.layui-bg-green{background-color: #009688!important; color: #fff!important;} /*绿*/
+.layui-bg-cyan{background-color: #2F4056!important; color: #fff!important;} /*青*/
+.layui-bg-blue{background-color: #1E9FFF!important; color: #fff!important;} /*蓝*/
+.layui-bg-black{background-color: #393D49!important; color: #fff!important;} /*黑*/
+.layui-bg-gray{background-color: #eee!important; color: #666!important;} /*灰*/
+
+/* 边框 */
+.layui-quote-nm, 
+.layui-elem-field,
+.layui-collapse, 
+.layui-colla-item, 
+.layui-colla-content,
+.layui-badge-rim,
+.layui-tab-title,
+.layui-tab-title .layui-this:after,
+.layui-tab-bar,
+.layui-tab-card,
+
+.layui-input, .layui-textarea, .layui-select,
+.layui-form-pane .layui-form-label, 
+.layui-form-pane .layui-form-item[pane],
+.layui-layedit, .layui-layedit-tool{border-color: #e6e6e6}
+
+/* 背景边框 */
+hr, .layui-timeline-item:before{background-color: #e6e6e6;}
+
+/* 文本区域 */
+.layui-text{line-height: 22px; font-size: 14px; color: #666;}
+.layui-text h1,
+.layui-text h2,
+.layui-text h3{font-weight: 500; color: #333;}
+.layui-text h1{font-size: 30px;}
+.layui-text h2{font-size: 24px;}
+.layui-text h3{font-size: 18px;}
+.layui-text a:not(.layui-btn){color: #01AAED;}
+.layui-text a:not(.layui-btn):hover{text-decoration: underline;}
+.layui-text ul{padding: 5px 0 5px 15px;}
+.layui-text ul li{margin-top: 5px; list-style-type: disc;}
+.layui-text em,
+.layui-word-aux{color: #999 !important; padding-left: 5px !important; padding-right: 5px !important;}
+
+/*
+ 
+  按钮 
+
+*/
+
+.layui-btn{display: inline-block; vertical-align: middle; height: 38px; line-height: 38px; padding: 0 18px; background-color: #009688; color: #fff; white-space: nowrap; text-align: center; font-size: 14px; border: none; border-radius: 2px; cursor: pointer; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;}
+.layui-btn:hover{opacity: 0.8; filter:alpha(opacity=80); color: #fff;}
+.layui-btn:active{opacity: 1; filter:alpha(opacity=100);}
+.layui-btn+.layui-btn{margin-left: 10px;}
+
+/* 按钮容器 */
+.layui-btn-container{font-size: 0;}
+.layui-btn-container .layui-btn{margin-right: 10px; margin-bottom: 10px;}
+.layui-btn-container .layui-btn+.layui-btn{margin-left: 0;}
+.layui-table .layui-btn-container .layui-btn{margin-bottom: 9px;}
+
+
+/* 圆角 */.layui-btn-radius{border-radius: 100px;}
+.layui-btn .layui-icon{margin-right: 3px; font-size: 18px; vertical-align: bottom; vertical-align: middle\0;}
+
+/* 原始 */.layui-btn-primary{border: 1px solid #C9C9C9; background-color: #fff; color: #555;}
+.layui-btn-primary:hover{border-color: #009688; color: #333}
+/* 百搭 */.layui-btn-normal{background-color: #1E9FFF;}
+/* 暖色 */.layui-btn-warm{background-color: #FFB800;}
+/* 警告 */.layui-btn-danger{background-color: #FF5722;}
+/* 选中 */.layui-btn-checked{background-color: #5FB878;}
+/* 禁用 */.layui-btn-disabled,.layui-btn-disabled:hover,.layui-btn-disabled:active{border: 1px solid #e6e6e6; background-color: #FBFBFB; color: #C9C9C9; cursor: not-allowed; opacity: 1;}
+
+/* 大型 */.layui-btn-lg{height: 44px; line-height: 44px; padding: 0 25px; font-size: 16px;}
+/* 小型 */.layui-btn-sm{height: 30px; line-height: 30px; padding: 0 10px; font-size: 12px;}
+.layui-btn-sm i{font-size: 16px !important;}
+/* 超小 */.layui-btn-xs{height: 22px; line-height: 22px; padding: 0 5px; font-size: 12px;}
+.layui-btn-xs i{font-size: 14px !important;}
+/* 按钮组 */.layui-btn-group{display: inline-block; vertical-align: middle; font-size: 0;}
+.layui-btn-group .layui-btn{margin-left: 0!important; margin-right: 0!important; border-left: 1px solid rgba(255,255,255,.5); border-radius: 0;}
+.layui-btn-group .layui-btn-primary{border-left: none;}
+.layui-btn-group .layui-btn-primary:hover{border-color: #C9C9C9; color: #009688;}
+.layui-btn-group .layui-btn:first-child{border-left: none; border-radius: 2px 0 0 2px;}
+.layui-btn-group .layui-btn-primary:first-child{border-left: 1px solid #c9c9c9;}
+.layui-btn-group .layui-btn:last-child{border-radius: 0 2px 2px 0;}
+.layui-btn-group .layui-btn+.layui-btn{margin-left: 0;}
+.layui-btn-group+.layui-btn-group{margin-left: 10px;}
+/* 流体 */.layui-btn-fluid{width: 100%;}
+
+/** 表单 **/
+.layui-input, .layui-textarea, .layui-select{height: 38px; line-height: 1.3; line-height: 38px\9; border-width: 1px; border-style: solid; background-color: #fff; border-radius: 2px;}
+.layui-input::-webkit-input-placeholder,
+.layui-textarea::-webkit-input-placeholder,
+.layui-select::-webkit-input-placeholder{line-height: 1.3;}
+.layui-input, .layui-textarea{display: block; width: 100%; padding-left: 10px;}
+.layui-input:hover, .layui-textarea:hover{border-color: #D2D2D2 !important;}
+.layui-input:focus, .layui-textarea:focus{border-color: #C9C9C9 !important;}
+.layui-textarea{position: relative; min-height: 100px; height: auto; line-height: 20px; padding: 6px 10px; resize: vertical;}
+.layui-select{padding: 0 10px;}
+.layui-form select, 
+.layui-form input[type=checkbox],
+.layui-form input[type=radio]{display: none;}
+.layui-form *[lay-ignore]{display: initial;}
+
+.layui-form-item{margin-bottom: 15px; clear: both; *zoom: 1;}
+.layui-form-item:after{content:'\20'; clear: both; *zoom: 1; display: block; height:0;}
+.layui-form-label{position: relative; float: left; display: block; padding: 9px 15px;  width: 80px; font-weight: 400; line-height: 20px; text-align: right;}
+.layui-form-label-col{display: block; float: none; padding: 9px 0; line-height: 20px; text-align: left;}
+.layui-form-item .layui-inline{margin-bottom: 5px; margin-right: 10px;}
+.layui-input-block, .layui-input-inline{position: relative;}
+.layui-input-block{margin-left: 110px; min-height: 36px;}
+.layui-input-inline{display: inline-block; vertical-align: middle;}
+.layui-form-item .layui-input-inline{float: left; width: 190px; margin-right: 10px;}
+.layui-form-text .layui-input-inline{width: auto;}
+
+/* 分割块 */.layui-form-mid{position: relative; float: left; display: block; padding: 9px 0 !important; line-height: 20px; margin-right: 10px;}
+/* 警告域 */.layui-form-danger:focus
+,.layui-form-danger+.layui-form-select .layui-input{border-color: #FF5722 !important;}
+
+
+/* 下拉选择 */.layui-form-select{position: relative;}
+.layui-form-select .layui-input{padding-right: 30px; cursor: pointer;}
+.layui-form-select .layui-edge{position: absolute; right: 10px; top: 50%; margin-top: -3px; cursor: pointer; border-width: 6px; border-top-color: #c2c2c2; border-top-style: solid; transition: all .3s; -webkit-transition: all .3s;}
+.layui-form-select dl{display: none; position: absolute; left: 0; top: 42px; padding: 5px 0; z-index: 899; min-width: 100%; border: 1px solid #d2d2d2; max-height: 300px; overflow-y: auto; background-color: #fff; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.12); box-sizing: border-box;}
+.layui-form-select dl dt,
+.layui-form-select dl dd{padding: 0 10px; line-height: 36px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
+.layui-form-select dl dt{font-size: 12px; color: #999;}
+.layui-form-select dl dd{cursor: pointer;}
+.layui-form-select dl dd:hover{background-color: #f2f2f2; -webkit-transition: .5s all; transition: .5s all;}
+.layui-form-select .layui-select-group dd{padding-left: 20px;}
+.layui-form-select dl dd.layui-select-tips{padding-left: 10px !important; color: #999;}
+.layui-form-select dl dd.layui-this{background-color: #5FB878; color: #fff;}
+.layui-form-select dl dd.layui-disabled{background-color: #fff;}
+.layui-form-selected dl{display: block;}
+.layui-form-selected .layui-edge{margin-top: -9px; -webkit-transform:rotate(180deg); transform: rotate(180deg);}
+.layui-form-selected .layui-edge{margin-top: -3px\0; }
+:root .layui-form-selected .layui-edge{margin-top: -9px\0/IE9;}
+.layui-form-selectup dl{top: auto; bottom: 42px;}
+.layui-select-none{margin: 5px 0; text-align: center; color: #999;}
+
+.layui-select-disabled .layui-disabled{border-color: #eee !important;}
+.layui-select-disabled .layui-edge{border-top-color: #d2d2d2}
+
+/* 复选框 */.layui-form-checkbox{position: relative; display: inline-block; vertical-align: middle; height: 30px; line-height: 30px; margin-right: 10px; padding-right: 30px; background-color: #fff; cursor: pointer; font-size: 0;  -webkit-transition: .1s linear; transition: .1s linear; box-sizing: border-box;}
+.layui-form-checkbox:hover{}
+.layui-form-checkbox *{display: inline-block; vertical-align: middle;}
+.layui-form-checkbox span{padding: 0 10px; height: 100%; font-size: 14px; border-radius: 2px 0 0 2px; background-color: #d2d2d2; color: #fff; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+.layui-form-checkbox:hover span{background-color: #c2c2c2;}
+.layui-form-checkbox i{position: absolute; right: 0; top: 0; width: 30px; height: 28px; border: 1px solid #d2d2d2; border-left: none; border-radius: 0 2px 2px 0; color: #fff; font-size: 20px; text-align: center;}
+.layui-form-checkbox:hover i{border-color: #c2c2c2; color: #c2c2c2;}
+.layui-form-checked, .layui-form-checked:hover{border-color: #5FB878;}
+.layui-form-checked span, .layui-form-checked:hover span{background-color: #5FB878;}
+.layui-form-checked i, .layui-form-checked:hover i{color: #5FB878;}
+.layui-form-item .layui-form-checkbox{margin-top: 4px;}
+
+/* 复选框-原始风格 */.layui-form-checkbox[lay-skin="primary"]{height: auto!important; line-height: normal!important; min-width: 18px; min-height: 18px; border: none!important; margin-right: 0; padding-left: 28px; padding-right: 0; background: none;}
+.layui-form-checkbox[lay-skin="primary"] span{padding-left: 0; padding-right: 15px; line-height: 18px; background: none; color: #666;}
+.layui-form-checkbox[lay-skin="primary"] i{right: auto; left: 0; width: 16px; height: 16px; line-height: 16px; border: 1px solid #d2d2d2; font-size: 12px; border-radius: 2px; background-color: #fff; -webkit-transition: .1s linear; transition: .1s linear;}
+.layui-form-checkbox[lay-skin="primary"]:hover i{border-color: #5FB878; color: #fff;}
+.layui-form-checked[lay-skin="primary"] i{border-color: #5FB878 !important; background-color: #5FB878; color: #fff;}
+.layui-checkbox-disbaled[lay-skin="primary"] span{background: none!important; color: #c2c2c2;}
+.layui-checkbox-disbaled[lay-skin="primary"]:hover i{border-color: #d2d2d2;}
+.layui-form-item .layui-form-checkbox[lay-skin="primary"]{margin-top: 10px;}
+
+/* 复选框-开关风格 */.layui-form-switch{position: relative; display: inline-block; vertical-align: middle; height: 22px; line-height: 22px; min-width: 35px; padding: 0 5px; margin-top: 8px; border: 1px solid #d2d2d2; border-radius: 20px; cursor: pointer; background-color: #fff; -webkit-transition: .1s linear; transition: .1s linear;}
+.layui-form-switch i{position: absolute; left: 5px; top: 3px; width: 16px; height: 16px; border-radius: 20px; background-color: #d2d2d2; -webkit-transition: .1s linear; transition: .1s linear;}
+.layui-form-switch em{position: relative; top: 0; width: 25px; margin-left: 21px; padding: 0!important; text-align: center!important; color: #999!important; font-style: normal!important; font-size: 12px;}
+.layui-form-onswitch{border-color: #5FB878; background-color: #5FB878;}
+.layui-form-onswitch i{left: 100%; margin-left: -21px; background-color: #fff;}
+.layui-form-onswitch em{margin-left: 5px; margin-right: 21px; color: #fff!important;}
+
+.layui-checkbox-disbaled{border-color: #e2e2e2 !important;}
+.layui-checkbox-disbaled span{background-color: #e2e2e2 !important;}
+.layui-checkbox-disbaled i{border-color: #e2e2e2 !important;}
+.layui-checkbox-disbaled:hover i{color: #fff !important;}
+
+/* 单选框 */
+*[lay-radio]{display: none;}
+.layui-form-radio{display: inline-block; vertical-align: middle; line-height: 28px; margin: 6px 10px 0 0; padding-right: 10px; cursor: pointer; font-size: 0;}
+.layui-form-radio *{display: inline-block; vertical-align: middle; font-size: 14px;}
+.layui-form-radio>i{margin-right: 8px; font-size: 22px; color: #c2c2c2;}
+.layui-form-radioed>i,.layui-form-radio>i:hover{color: #5FB878;}
+.layui-radio-disbaled>i{color: #e2e2e2 !important;}
+
+/* 表单方框风格 */.layui-form-pane .layui-form-label{width: 110px; padding: 8px 15px; height: 38px; line-height: 20px; border-width: 1px; border-style: solid; border-radius: 2px 0 0 2px; text-align: center; background-color: #FBFBFB; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; box-sizing: border-box;}
+.layui-form-pane .layui-input-inline{margin-left: -1px;}
+.layui-form-pane .layui-input-block{margin-left: 110px; left: -1px;}
+.layui-form-pane .layui-input{border-radius: 0 2px 2px 0;}
+.layui-form-pane .layui-form-text .layui-form-label{float: none; width: 100%; border-radius: 2px; box-sizing: border-box; text-align: left;}
+.layui-form-pane .layui-form-text .layui-input-inline{display: block; margin: 0; top: -1px; clear: both;}
+.layui-form-pane .layui-form-text .layui-input-block{margin: 0; left: 0; top: -1px;}
+.layui-form-pane .layui-form-text .layui-textarea{min-height: 100px; border-radius: 0 0 2px 2px;}
+.layui-form-pane .layui-form-checkbox{margin: 4px 0 4px 10px;}
+.layui-form-pane .layui-form-switch, 
+.layui-form-pane .layui-form-radio{margin-top: 6px; margin-left: 10px; }
+.layui-form-pane .layui-form-item[pane]{position: relative; border-width: 1px; border-style: solid;}
+.layui-form-pane .layui-form-item[pane] .layui-form-label{position: absolute; left: 0; top: 0; height: 100%; border-width: 0px; border-right-width: 1px;}
+.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left: 110px;}
+
+/** 表单响应式 **/
+@media screen and (max-width: 450px) {
+  .layui-form-item .layui-form-label{text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
+  .layui-form-item .layui-inline{display: block; margin-right: 0; margin-bottom: 20px; clear: both;}
+  .layui-form-item .layui-inline:after{content:'\20'; clear:both; display:block; height:0;}
+  .layui-form-item .layui-input-inline{display: block; float: none; left: -3px; width: auto; margin: 0 0 10px 112px; }
+  .layui-form-item .layui-input-inline+.layui-form-mid{margin-left: 110px; top: -5px; padding: 0;}
+  .layui-form-item .layui-form-checkbox{margin-right: 5px; margin-bottom: 5px;}
+}
+
+/** 富文本编辑器 **/
+.layui-layedit{border-width: 1px; border-style: solid; border-radius: 2px;}
+.layui-layedit-tool{padding: 3px 5px; border-bottom-width: 1px; border-bottom-style: solid; font-size: 0;}
+.layedit-tool-fixed{position: fixed; top: 0; border-top: 1px solid #e2e2e2;}
+.layui-layedit-tool .layedit-tool-mid,
+.layui-layedit-tool .layui-icon{display: inline-block; vertical-align: middle; text-align: center; font-size: 14px;}
+.layui-layedit-tool .layui-icon{position: relative; width: 32px; height: 30px; line-height: 30px; margin: 3px 5px; border-radius: 2px; color: #777; cursor: pointer; border-radius: 2px;}
+.layui-layedit-tool .layui-icon:hover{color: #393D49;}
+.layui-layedit-tool .layui-icon:active{color: #000;}
+.layui-layedit-tool .layedit-tool-active{background-color: #e2e2e2; color: #000;}
+.layui-layedit-tool .layui-disabled,
+.layui-layedit-tool .layui-disabled:hover{color: #d2d2d2; cursor: not-allowed;}
+.layui-layedit-tool .layedit-tool-mid{width: 1px; height: 18px; margin: 0 10px; background-color: #d2d2d2;}
+
+.layedit-tool-html{width: 50px !important; font-size: 30px !important;}
+.layedit-tool-b,
+.layedit-tool-code,
+.layedit-tool-help{font-size: 16px !important;}
+.layedit-tool-d,
+.layedit-tool-unlink,
+.layedit-tool-face,
+.layedit-tool-image{font-size: 18px !important;}
+.layedit-tool-image input{position: absolute; font-size: 0; left: 0; top: 0; width: 100%; height: 100%; opacity: 0.01; filter: Alpha(opacity=1); cursor: pointer;}
+
+.layui-layedit-iframe iframe{display: block; width: 100%;}
+#LAY_layedit_code{overflow: hidden;}
+
+/** 分页 **/
+.layui-laypage{display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; margin: 10px 0; font-size: 0;}
+.layui-laypage>a:first-child,
+.layui-laypage>a:first-child em{border-radius: 2px 0 0 2px;}
+.layui-laypage>a:last-child,
+.layui-laypage>a:last-child em{border-radius: 0 2px 2px 0;}
+.layui-laypage>*:first-child{margin-left: 0!important;}
+.layui-laypage>*:last-child{margin-right: 0!important;}
+.layui-laypage a,
+.layui-laypage span,
+.layui-laypage input, 
+.layui-laypage button,
+.layui-laypage select{border: 1px solid #e2e2e2;}
+.layui-laypage a,
+.layui-laypage span{display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; padding: 0 15px; height: 28px; line-height: 28px; margin: 0 -1px 5px 0; background-color: #fff; color: #333; font-size: 12px;}
+.layui-laypage a:hover{color: #009688;}
+.layui-laypage em{font-style: normal;}
+.layui-laypage .layui-laypage-spr{color:#999; font-weight: 700;}
+.layui-laypage a{ text-decoration: none;}
+.layui-laypage .layui-laypage-curr{position: relative;}
+.layui-laypage .layui-laypage-curr em{position: relative; color: #fff;}
+.layui-laypage .layui-laypage-curr .layui-laypage-em{position: absolute; left: -1px; top: -1px; padding: 1px; width: 100%; height: 100%; background-color: #009688; }
+.layui-laypage-em{border-radius: 2px;}
+.layui-laypage-prev em,
+.layui-laypage-next em{font-family: Sim sun; font-size: 16px;}
+
+.layui-laypage .layui-laypage-count,
+.layui-laypage .layui-laypage-limits,
+.layui-laypage .layui-laypage-refresh,
+.layui-laypage .layui-laypage-skip{margin-left: 10px; margin-right: 10px; padding: 0; border: none;}
+.layui-laypage .layui-laypage-limits,
+.layui-laypage .layui-laypage-refresh{vertical-align: top;}
+.layui-laypage .layui-laypage-refresh i{font-size: 18px; cursor: pointer;}
+.layui-laypage select{height: 22px; padding: 3px; border-radius: 2px; cursor: pointer;}
+.layui-laypage .layui-laypage-skip{height: 30px; line-height: 30px; color: #999;}
+.layui-laypage input, .layui-laypage button{height: 30px; line-height: 30px; border-radius: 2px; vertical-align: top;  background-color: #fff; box-sizing: border-box;}
+.layui-laypage input{display: inline-block; width: 40px; margin: 0 10px; padding: 0 3px; text-align: center;}
+.layui-laypage input:focus,
+.layui-laypage select:focus{border-color: #009688!important;}
+.layui-laypage button{margin-left: 10px; padding: 0 10px; cursor: pointer;}
+
+/** 流加载 **/
+.layui-flow-more{margin: 10px 0; text-align: center; color: #999; font-size: 14px;}
+.layui-flow-more a{ height: 32px; line-height: 32px;  }
+.layui-flow-more a *{display: inline-block; vertical-align: top;}
+.layui-flow-more a cite{padding: 0 20px; border-radius: 3px; background-color: #eee; color: #333; font-style: normal;}
+.layui-flow-more a cite:hover{opacity: 0.8;}
+.layui-flow-more a i{font-size: 30px; color: #737383;}
+
+/** 表格 **/
+.layui-table{width: 100%; margin: 10px 0; background-color: #fff; color: #666;}
+.layui-table tr{transition: all .3s; -webkit-transition: all .3s;}
+.layui-table th{text-align: left; font-weight: 400;}
+
+.layui-table thead tr,
+.layui-table-header,
+.layui-table-tool,
+.layui-table-total,
+.layui-table-total tr,
+.layui-table-patch,
+.layui-table-mend,
+.layui-table[lay-even] tr:nth-child(even),
+.layui-table tbody tr:hover,
+.layui-table-hover,
+.layui-table-click{background-color: #f2f2f2;}
+
+.layui-table th,
+.layui-table td,
+.layui-table[lay-skin="line"],
+.layui-table[lay-skin="row"],
+.layui-table-view,
+.layui-table-tool,
+.layui-table-header,
+.layui-table-col-set,
+.layui-table-total,
+.layui-table-page,
+.layui-table-fixed-r,
+.layui-table-tips-main,
+.layui-table-grid-down{border-width: 1px; border-style: solid; border-color: #e6e6e6;}
+
+.layui-table th, .layui-table td{position: relative; padding: 9px 15px; min-height: 20px; line-height: 20px;  font-size: 14px;}
+
+.layui-table[lay-skin="line"] th, .layui-table[lay-skin="line"] td{border-width: 0; border-bottom-width: 1px;}
+.layui-table[lay-skin="row"] th, .layui-table[lay-skin="row"] td{border-width: 0;border-right-width: 1px;}
+.layui-table[lay-skin="nob"] th, .layui-table[lay-skin="nob"] td{border: none;}
+
+.layui-table img{max-width:100px;}
+
+/* 大表格 */.layui-table[lay-size="lg"] th,
+.layui-table[lay-size="lg"] td{padding-top: 15px; padding-right: 30px; padding-bottom: 15px; padding-left: 30px;}
+.layui-table-view .layui-table[lay-size="lg"] .layui-table-cell{height: 40px; line-height: 40px;}  
+/* 小表格 */.layui-table[lay-size="sm"] th,
+.layui-table[lay-size="sm"] td{padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; font-size: 12px;}
+.layui-table-view .layui-table[lay-size="sm"] .layui-table-cell{height: 20px; line-height: 20px;} 
+
+/* 数据表格 */
+.layui-table[lay-data]{display: none;}
+.layui-table-box{position: relative; overflow: hidden;}
+.layui-table-view{margin: 10px 0;}
+.layui-table-view .layui-table{position: relative; width: auto; margin: 0;}
+.layui-table-view .layui-table[lay-skin="line"]{border-width: 0; border-right-width: 1px;}
+.layui-table-view .layui-table[lay-skin="row"]{border-width: 0; border-bottom-width: 1px;}
+.layui-table-view .layui-table th,
+.layui-table-view .layui-table td{padding: 5px 0; border-top: none; border-left: none;}
+.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor: pointer;}
+.layui-table-view .layui-table td{cursor: default;}
+.layui-table-view .layui-table td[data-edit="text"]{cursor: text;}
+.layui-table-view .layui-form-checkbox[lay-skin="primary"] i{width: 18px; height: 18px;}
+.layui-table-view .layui-form-radio{line-height: 0; padding: 0;}
+.layui-table-view .layui-form-radio>i{margin: 0; font-size: 20px;}
+.layui-table-init{position: absolute; left: 0; top: 0; width: 100%; height: 100%; text-align: center; z-index: 110;}
+.layui-table-init .layui-icon{position: absolute; left: 50%; top: 50%; margin: -15px 0 0 -15px; font-size: 30px; color: #c2c2c2;}
+.layui-table-header{border-width: 0; border-bottom-width: 1px; overflow: hidden;}
+.layui-table-header .layui-table{margin-bottom: -1px;}
+
+.layui-table-tool .layui-inline[lay-event]{position: relative; width: 26px; height: 26px; padding: 5px; line-height: 16px; margin-right: 10px; text-align: center; color: #333; border: 1px solid #ccc; cursor: pointer; -webkit-transition: .5s all; transition: .5s all;}
+.layui-table-tool .layui-inline[lay-event]:hover{border: 1px solid #999;}
+.layui-table-tool-temp{padding-right: 120px;}
+.layui-table-tool-self{position: absolute; right: 17px; top: 10px;}
+.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin: 0 0 0 10px;}
+.layui-table-tool-panel{position: absolute; top: 29px; left: -1px; padding: 5px 0; min-width: 150px; min-height: 40px; border: 1px solid #d2d2d2; text-align: left; overflow-y: auto; background-color: #fff; box-shadow: 0 2px 4px rgba(0,0,0,.12);}
+.layui-table-tool-panel li{padding: 0 10px; line-height: 30px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; -webkit-transition: .5s all; transition: .5s all;}
+.layui-table-tool-panel li .layui-form-checkbox[lay-skin="primary"]{width: 100%;}
+.layui-table-tool-panel li:hover{background-color: #f2f2f2;}
+.layui-table-tool-panel li .layui-form-checkbox[lay-skin="primary"]{padding-left: 28px;}
+.layui-table-tool-panel li .layui-form-checkbox[lay-skin="primary"] i{position: absolute; left: 0; top: 0;}
+.layui-table-tool-panel li .layui-form-checkbox[lay-skin="primary"] span{padding: 0;}
+.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left: auto; right: -1px;}
+
+.layui-table-col-set{position: absolute; right: 0; top: 0; width: 20px; height: 100%; border-width: 0; border-left-width: 1px; background-color: #fff;}
+
+.layui-table-sort{width: 10px; height: 20px; margin-left: 5px; cursor: pointer!important;}
+.layui-table-sort .layui-edge{position: absolute; left: 5px; border-width: 5px;}
+.layui-table-sort .layui-table-sort-asc{top: 3px; border-top: none; border-bottom-style: solid; border-bottom-color: #b2b2b2;}
+.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color: #666;}
+.layui-table-sort .layui-table-sort-desc{bottom: 5px; border-bottom: none; border-top-style: solid; border-top-color: #b2b2b2;}
+.layui-table-sort .layui-table-sort-desc:hover{border-top-color: #666;}
+.layui-table-sort[lay-sort="asc"] .layui-table-sort-asc{border-bottom-color: #000;}
+.layui-table-sort[lay-sort="desc"] .layui-table-sort-desc{border-top-color: #000;}
+
+.layui-table-cell{height: 28px; line-height: 28px; padding: 0 15px; position: relative; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; box-sizing: border-box;}
+.layui-table-cell .layui-form-checkbox[lay-skin="primary"]{top: -1px; padding: 0;}
+.layui-table-cell .layui-table-link{color: #01AAED;}
+
+.laytable-cell-checkbox,
+.laytable-cell-radio,
+.laytable-cell-space,
+.laytable-cell-numbers{padding: 0; text-align: center;}
+
+.layui-table-body{position: relative; overflow: auto; margin-right: -1px; margin-bottom: -1px;}
+.layui-table-body .layui-none{line-height: 26px; padding: 15px; text-align: center; color: #999;}
+.layui-table-fixed{position: absolute; left: 0; top: 0; z-index: 101;}
+.layui-table-fixed .layui-table-body{overflow: hidden;}
+.layui-table-fixed-l{box-shadow: 0 -1px 8px rgba(0,0,0,.08);}
+.layui-table-fixed-r{left: auto; right: -1px; border-width: 0; border-left-width: 1px; box-shadow: -1px 0 8px rgba(0,0,0,.08);}
+.layui-table-fixed-r .layui-table-header{position: relative; overflow: visible;}
+.layui-table-mend{position: absolute; right: -49px; top: 0; height: 100%; width: 50px;}
+
+.layui-table-tool{position: relative; z-index: 890; width: 100%; min-height: 50px; line-height: 30px; padding: 10px 15px; border-width: 0; border-bottom-width: 1px;}
+.layui-table-tool .layui-btn-container{margin-bottom: -10px;}
+
+.layui-table-total{margin-bottom: -1px; border-width: 0; border-top-width: 1px; overflow: hidden;}
+
+
+.layui-table-page{position: relative; width: 100%; padding: 7px 7px 0; border-width: 0; border-top-width: 1px; height: 41px; margin-bottom: -1px; font-size: 12px; white-space: nowrap; overflow: hidden;}
+.layui-table-page>div{height: 26px;}
+.layui-table-page .layui-laypage{margin: 0;}
+.layui-table-page .layui-laypage a,
+.layui-table-page .layui-laypage span{height: 26px; line-height: 26px; margin-bottom: 10px; border: none; background: none;}
+.layui-table-page .layui-laypage a,
+.layui-table-page .layui-laypage span.layui-laypage-curr{padding: 0 12px;}
+.layui-table-page .layui-laypage span{margin-left: 0; padding: 0;}
+.layui-table-page .layui-laypage .layui-laypage-prev{margin-left: -7px!important;}
+.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em{left: 0; top: 0; padding: 0;}
+.layui-table-page .layui-laypage input,
+.layui-table-page .layui-laypage button{height: 26px; line-height: 26px; }
+.layui-table-page .layui-laypage input{width: 40px;}
+.layui-table-page .layui-laypage button{padding: 0 10px;}
+.layui-table-page select{height: 18px;}
+.layui-table-view select[lay-ignore]{display: inline-block;}
+
+.layui-table-patch .layui-table-cell{padding: 0; width: 30px;}
+
+.layui-table-edit{position: absolute; left: 0; top: 0; width: 100%; height: 100%; padding: 0 14px 1px; border-radius: 0; box-shadow: 1px 1px 20px rgba(0,0,0,.15)}
+.layui-table-edit:focus{border-color: #5FB878!important;}
+select.layui-table-edit{padding: 0 0 0 10px; border-color: #C9C9C9;}
+.layui-table-view .layui-form-switch,
+.layui-table-view .layui-form-checkbox,
+.layui-table-view .layui-form-radio{top: 0; margin: 0; box-sizing: content-box;}
+.layui-table-view .layui-form-checkbox{top: -1px; height: 26px; line-height: 26px;}
+.layui-table-view .layui-form-checkbox i{height: 26px;}
+
+/* 展开溢出的单元格 */
+.layui-table-grid .layui-table-cell{overflow: visible;}
+.layui-table-grid-down{position: absolute; top: 0; right: 0; width: 26px; height: 100%; padding: 5px 0; border-width: 0; border-left-width: 1px; text-align: center; background-color: #fff; color: #999; cursor: pointer;}
+.layui-table-grid-down .layui-icon{position: absolute; top: 50%; left: 50%; margin: -8px 0 0 -8px;}
+.layui-table-grid-down:hover{background-color: #fbfbfb;}
+
+body .layui-table-tips .layui-layer-content{background: none; padding: 0; box-shadow: 0 1px 6px rgba(0,0,0,.12);}
+.layui-table-tips-main{margin: -44px 0 0 -1px; max-height: 150px; padding: 8px 15px; font-size: 14px; overflow-y: scroll; background-color: #fff; color: #666;}
+.layui-table-tips-c{position: absolute; right: -3px; top: -13px; width: 20px; height: 20px; padding: 3px; cursor: pointer; background-color: #666; border-radius: 50%; color: #fff;}
+.layui-table-tips-c:hover{background-color: #777;}
+.layui-table-tips-c:before{position: relative; right: -2px;}
+
+/** 文件上传 **/
+.layui-upload-file{display: none!important; opacity: .01; filter: Alpha(opacity=1);}
+.layui-upload-list{margin: 10px 0;}
+.layui-upload-choose{padding: 0 10px; color: #999;}
+.layui-upload-drag{position: relative; display: inline-block; padding: 30px; border: 1px dashed #e2e2e2; background-color: #fff; text-align: center; cursor: pointer; color: #999;}
+.layui-upload-drag .layui-icon{font-size: 50px; color: #009688;}
+.layui-upload-drag[lay-over]{border-color: #009688}
+.layui-upload-form{display: inline-block;}
+.layui-upload-iframe{position: absolute; width: 0; height: 0; border: 0; visibility: hidden}
+.layui-upload-wrap{position: relative; display: inline-block; vertical-align: middle;}
+.layui-upload-wrap .layui-upload-file{display: block!important; position: absolute; left: 0; top: 0; z-index: 10; font-size: 100px; width: 100%; height: 100%; opacity: .01; filter: Alpha(opacity=1); cursor: pointer;}
+
+/** 穿梭框 **/
+.layui-transfer-box,
+.layui-transfer-header,
+.layui-transfer-search{border-width: 0; border-style: solid; border-color: #e6e6e6}
+.layui-transfer-box{position: relative; display: inline-block; vertical-align: middle; border-width: 1px; width: 200px; height: 360px; border-radius: 2px; background-color:#fff;}
+.layui-transfer-box .layui-form-checkbox{width: 100%; margin: 0 !important;}
+.layui-transfer-header{height: 38px; line-height: 38px; padding: 0 10px; border-bottom-width: 1px;}
+.layui-transfer-search{position:relative; padding: 10px; border-bottom-width: 1px;}
+.layui-transfer-search .layui-input{height: 32px; padding-left: 30px; font-size: 12px;}
+.layui-transfer-search .layui-icon-search{position: absolute; left: 20px; top: 50%; margin-top: -8px; color: #666;}
+.layui-transfer-active{margin: 0 15px; display: inline-block; vertical-align: middle;}
+.layui-transfer-active .layui-btn{display: block; margin: 0; padding: 0 15px; background-color: #5FB878; border-color: #5FB878; color: #fff;}
+.layui-transfer-active .layui-btn-disabled{background-color: #FBFBFB; border-color: #e6e6e6; color: #C9C9C9;}
+.layui-transfer-active .layui-btn:first-child{margin-bottom: 15px;}
+.layui-transfer-active .layui-btn .layui-icon{margin: 0; font-size: 14px !important;}
+.layui-transfer-data{padding: 5px 0; overflow: auto;}
+.layui-transfer-data li{height: 32px; line-height: 32px; padding: 0 10px;}
+.layui-transfer-data li:hover{background-color: #f2f2f2; transition: .5s all;}
+.layui-transfer-data .layui-none{padding: 15px 10px; text-align: center; color: #999;}
+
+
+/** 导航菜单 **/
+.layui-nav{position: relative; padding: 0 20px; background-color: #393D49; color: #fff; border-radius: 2px; font-size: 0; box-sizing: border-box;}
+.layui-nav *{font-size: 14px;}
+.layui-nav .layui-nav-item{position: relative; display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; line-height: 60px;}
+.layui-nav .layui-nav-item a{display: block; padding: 0 20px; color: #fff; color: rgba(255,255,255,.7); transition: all .3s; -webkit-transition: all .3s;}
+.layui-nav-bar,
+.layui-nav .layui-this:after,
+.layui-nav-tree .layui-nav-itemed:after{position: absolute; left: 0; top: 0; width: 0; height: 5px; background-color: #5FB878; transition: all .2s; -webkit-transition: all .2s;}
+.layui-nav-bar{z-index: 1000;}
+.layui-nav .layui-this a
+,.layui-nav .layui-nav-item a:hover{color: #fff;}
+.layui-nav .layui-this:after{content: ''; top: auto; bottom: 0; width: 100%;}
+.layui-nav-img{width: 30px; height: 30px; margin-right: 10px; border-radius: 50%;}
+
+.layui-nav .layui-nav-more{content:''; width: 0; height: 0; border-style: dashed; border-color: transparent; overflow: hidden; cursor: pointer; transition: all .2s; -webkit-transition: all .2s;}
+.layui-nav .layui-nav-more{position: absolute; top: 50%; right: 3px; margin-top: -4px; border-width: 6px; border-top-style: solid; border-top-color: #fff; border-top-color: rgba(255,255,255,.7);}
+.layui-nav .layui-nav-mored,
+.layui-nav-itemed > a .layui-nav-more{margin-top: -9px; border-style: dashed; border-color: transparent; border-bottom-style: solid; border-bottom-color: #fff;}
+
+
+.layui-nav-child{display: none; position: absolute; left: 0; top: 65px; min-width: 100%; line-height: 36px; padding: 5px 0;  box-shadow: 0 2px 4px rgba(0,0,0,.12); border: 1px solid #d2d2d2; background-color: #fff; z-index: 100; border-radius: 2px; white-space: nowrap;}
+.layui-nav .layui-nav-child a{color: #333;}
+.layui-nav .layui-nav-child a:hover{background-color: #f2f2f2; color: #000;}
+.layui-nav-child dd{position: relative;}
+.layui-nav-child dd.layui-this{background-color: #5FB878; color: #fff;}
+.layui-nav .layui-nav-child dd.layui-this a{background-color: #5FB878; color: #fff;}
+.layui-nav-child dd.layui-this:after{display: none;}
+
+/* 垂直导航菜单 */.layui-nav-tree{width: 200px; padding: 0;}
+.layui-nav-tree .layui-nav-item{display: block; width: 100%; line-height: 45px;}
+.layui-nav-tree .layui-nav-item a{position: relative; height: 45px; line-height: 45px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
+.layui-nav-tree .layui-nav-item a:hover{background-color: #4E5465;}
+.layui-nav-tree .layui-nav-bar{width: 5px; height: 0;}
+.layui-nav-tree .layui-this,
+.layui-nav-tree .layui-this>a,
+.layui-nav-tree .layui-this>a:hover,
+.layui-nav-tree .layui-nav-child dd.layui-this,
+.layui-nav-tree .layui-nav-child dd.layui-this a{background-color: #009688; color: #fff;}
+.layui-nav-tree .layui-this:after{display: none;}
+.layui-nav-tree .layui-nav-title a,
+.layui-nav-tree .layui-nav-title a:hover,
+.layui-nav-itemed>a{color: #fff !important;}
+.layui-nav-tree .layui-nav-bar{background-color: #009688;}
+
+.layui-nav-tree .layui-nav-child{position: relative; z-index: 0; top: 0; border: none; box-shadow: none;}
+.layui-nav-tree .layui-nav-child a{height: 40px; line-height: 40px;}
+.layui-nav-tree .layui-nav-child a{color: #fff; color: rgba(255,255,255,.7);}
+.layui-nav-tree .layui-nav-child a:hover,
+.layui-nav-tree .layui-nav-child{background: none; color: #fff;}
+.layui-nav-tree .layui-nav-more{right: 10px;}
+
+.layui-nav-itemed>.layui-nav-child{display: block; padding: 0; background-color: rgba(0,0,0,.3) !important;} 
+.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display: block;}
+
+/* 侧边 */.layui-nav-side{position: fixed; top: 0; bottom: 0; left: 0; overflow-x: hidden; z-index: 999;}
+
+/* 导航主题色 */.layui-bg-blue .layui-nav-bar,
+.layui-bg-blue .layui-this:after,
+.layui-bg-blue .layui-nav-itemed:after{background-color: #93D1FF;}
+.layui-bg-blue .layui-nav-child dd.layui-this{background-color: #1E9FFF;}
+.layui-nav-tree.layui-bg-blue .layui-nav-title a,
+.layui-nav-tree.layui-bg-blue .layui-nav-title a:hover, 
+.layui-bg-blue .layui-nav-itemed>a{background-color: #007DDB !important;}
+
+
+/** 面包屑 **/
+.layui-breadcrumb{visibility: hidden; font-size: 0;}
+.layui-breadcrumb>*{font-size: 14px;}
+.layui-breadcrumb a{color: #999 !important;}
+.layui-breadcrumb a:hover{color: #5FB878 !important;}
+.layui-breadcrumb a cite{color: #666; font-style: normal;}
+.layui-breadcrumb span[lay-separator]{margin: 0 10px; color: #999;}
+
+/** Tab选项卡 **/
+.layui-tab{margin: 10px 0; text-align: left !important;}
+.layui-tab[overflow]>.layui-tab-title{overflow: hidden;}
+.layui-tab-title{position: relative; left: 0; height: 40px; white-space: nowrap; font-size: 0; border-bottom-width: 1px; border-bottom-style: solid; transition: all .2s; -webkit-transition: all .2s;}
+.layui-tab-title li{display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; font-size: 14px; transition: all .2s; -webkit-transition: all .2s;}
+.layui-tab-title li{position: relative; line-height: 40px; min-width: 65px; padding: 0 15px; text-align: center; cursor: pointer;}
+.layui-tab-title li a{display: block;}
+.layui-tab-title .layui-this{color: #000;}
+
+.layui-tab-title .layui-this:after{position: absolute; left:0; top: 0; content: ''; width:100%; height: 41px; border-width: 1px; border-style: solid; border-bottom-color: #fff; border-radius: 2px 2px 0 0; box-sizing: border-box; pointer-events: none;}
+.layui-tab-bar{position: absolute; right: 0; top: 0; z-index: 10; width: 30px; height: 39px; line-height: 39px; border-width: 1px; border-style: solid; border-radius: 2px; text-align: center; background-color: #fff; cursor: pointer;}
+.layui-tab-bar .layui-icon{position: relative; display: inline-block; top: 3px; transition: all .3s; -webkit-transition: all .3s;}
+.layui-tab-item{display: none;}
+.layui-tab-more{padding-right: 30px; height: auto !important; white-space: normal !important;}
+.layui-tab-more li.layui-this:after{border-bottom-color: #e2e2e2; border-radius: 2px;}
+.layui-tab-more .layui-tab-bar .layui-icon{top: -2px; top: 3px\0; -webkit-transform: rotate(180deg); transform: rotate(180deg);}
+:root .layui-tab-more .layui-tab-bar .layui-icon{top: -2px\0/IE9;}
+
+.layui-tab-content{padding: 10px;}
+
+/* Tab关闭 */.layui-tab-title li .layui-tab-close{position: relative; display: inline-block; width: 18px; height: 18px; line-height: 20px; margin-left: 8px; top: 1px; text-align: center; font-size: 14px; color: #c2c2c2; transition: all .2s; -webkit-transition: all .2s;}
+.layui-tab-title li .layui-tab-close:hover{border-radius: 2px; background-color: #FF5722; color: #fff;}
+
+/* Tab简洁风格 */.layui-tab-brief > .layui-tab-title .layui-this{color: #009688;}
+.layui-tab-brief > .layui-tab-title .layui-this:after
+,.layui-tab-brief > .layui-tab-more li.layui-this:after{border: none; border-radius: 0; border-bottom: 2px solid #5FB878;}
+.layui-tab-brief[overflow] > .layui-tab-title .layui-this:after{top: -1px;}
+
+/* Tab卡片风格 */.layui-tab-card{border-width: 1px; border-style: solid; border-radius: 2px; box-shadow: 0 2px 5px 0 rgba(0,0,0,.1);}
+.layui-tab-card > .layui-tab-title{ background-color: #f2f2f2;}
+.layui-tab-card > .layui-tab-title li{margin-right: -1px; margin-left: -1px;}
+.layui-tab-card > .layui-tab-title .layui-this{background-color: #fff;     }
+.layui-tab-card > .layui-tab-title .layui-this:after{border-top: none; border-width: 1px; border-bottom-color: #fff;}
+.layui-tab-card > .layui-tab-title .layui-tab-bar{height: 40px; line-height: 40px; border-radius: 0; border-top: none; border-right: none;}
+.layui-tab-card > .layui-tab-more .layui-this{background: none; color: #5FB878;}
+.layui-tab-card > .layui-tab-more .layui-this:after{border: none;}
+
+/* 时间线 */
+.layui-timeline{padding-left: 5px;}
+.layui-timeline-item{position: relative; padding-bottom: 20px;}
+.layui-timeline-axis{position: absolute; left: -5px; top: 0; z-index: 10; width: 20px; height: 20px; line-height: 20px; background-color: #fff; color: #5FB878; border-radius: 50%; text-align: center; cursor: pointer;}
+.layui-timeline-axis:hover{color: #FF5722;}
+.layui-timeline-item:before{content: ''; position: absolute; left: 5px; top: 0; z-index: 0; width: 1px; height: 100%;}
+.layui-timeline-item:last-child:before{display: none;}
+.layui-timeline-item:first-child:before{display: block;}
+.layui-timeline-content{padding-left: 25px;;}
+.layui-timeline-title{position: relative; margin-bottom: 10px;}
+
+/* 小徽章 */
+.layui-badge,
+.layui-badge-dot,
+.layui-badge-rim{position:relative; display: inline-block; padding: 0 6px; font-size: 12px; text-align: center; background-color: #FF5722; color: #fff; border-radius: 2px;}
+.layui-badge{height: 18px; line-height: 18px;}
+.layui-badge-dot{width: 8px; height: 8px; padding: 0; border-radius: 50%;}
+.layui-badge-rim{height: 18px; line-height: 18px; border-width: 1px; border-style: solid; background-color: #fff; color: #666;}
+
+.layui-btn .layui-badge,
+.layui-btn .layui-badge-dot{margin-left: 5px;}
+.layui-nav .layui-badge,
+.layui-nav .layui-badge-dot{position: absolute; top: 50%; margin: -5px 6px 0;}
+.layui-nav .layui-badge{margin-top: -10px;}
+.layui-tab-title .layui-badge,
+.layui-tab-title .layui-badge-dot{left: 5px; top: -2px;}
+
+/* carousel 轮播 */
+.layui-carousel{position: relative; left: 0; top: 0; background-color: #f8f8f8;}
+.layui-carousel>*[carousel-item]{position: relative; width: 100%; height: 100%; overflow: hidden;}
+.layui-carousel>*[carousel-item]:before{position: absolute; content: '\e63d'; left: 50%; top: 50%; width: 100px; line-height: 20px; margin: -10px 0 0 -50px; text-align: center; color: #c2c2c2; font-family:"layui-icon" !important; font-size: 30px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}
+.layui-carousel>*[carousel-item] > *{display: none; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-color: #f8f8f8; transition-duration: .3s; -webkit-transition-duration: .3s;}
+.layui-carousel-updown > *{-webkit-transition: .3s ease-in-out up; transition: .3s ease-in-out up;}
+.layui-carousel-arrow{display: none\0; opacity: 0; position: absolute; left: 10px; top: 50%; margin-top: -18px; width: 36px; height: 36px; line-height: 36px; text-align: center; font-size: 20px; border: none 0; border-radius: 50%; background-color: rgba(0,0,0,.2); color: #fff; -webkit-transition-duration: .3s; transition-duration: .3s; cursor: pointer;}
+.layui-carousel-arrow[lay-type="add"]{left: auto!important; right: 10px;}
+.layui-carousel[lay-arrow="always"] .layui-carousel-arrow{opacity: 1; left: 20px;}
+.layui-carousel[lay-arrow="always"] .layui-carousel-arrow[lay-type="add"]{right: 20px;}
+.layui-carousel[lay-arrow="none"] .layui-carousel-arrow{display: none;}
+.layui-carousel-arrow:hover,
+.layui-carousel-ind ul:hover{background-color: rgba(0,0,0,.35);}
+.layui-carousel:hover .layui-carousel-arrow{display: block\0; opacity: 1; left: 20px;}
+.layui-carousel:hover .layui-carousel-arrow[lay-type="add"]{right: 20px;}
+.layui-carousel-ind{position: relative; top: -35px; width: 100%; line-height: 0!important; text-align: center; font-size: 0;}
+.layui-carousel[lay-indicator="outside"]{margin-bottom: 30px;}
+.layui-carousel[lay-indicator="outside"] .layui-carousel-ind{top: 10px;}
+.layui-carousel[lay-indicator="outside"] .layui-carousel-ind ul{background-color: rgba(0,0,0,.5);}
+.layui-carousel[lay-indicator="none"] .layui-carousel-ind{display: none;}
+.layui-carousel-ind ul{display: inline-block; padding: 5px; background-color: rgba(0,0,0,.2); border-radius: 10px; -webkit-transition-duration: .3s; transition-duration: .3s;}
+.layui-carousel-ind li{display: inline-block; width: 10px; height: 10px; margin: 0 3px; font-size: 14px; background-color: #e2e2e2; background-color: rgba(255,255,255,.5); border-radius: 50%; cursor: pointer; -webkit-transition-duration: .3s; transition-duration: .3s;}
+.layui-carousel-ind li:hover{background-color: rgba(255,255,255,.7);}
+.layui-carousel-ind li.layui-this{background-color: #fff;}
+.layui-carousel>*[carousel-item]>.layui-this,
+.layui-carousel>*[carousel-item]>.layui-carousel-prev,
+.layui-carousel>*[carousel-item]>.layui-carousel-next{display: block}
+.layui-carousel>*[carousel-item]>.layui-this{left: 0;}
+.layui-carousel>*[carousel-item]>.layui-carousel-prev{left: -100%;}
+.layui-carousel>*[carousel-item]>.layui-carousel-next{left: 100%;}
+.layui-carousel>*[carousel-item]>.layui-carousel-prev.layui-carousel-right,
+.layui-carousel>*[carousel-item]>.layui-carousel-next.layui-carousel-left{left: 0;}
+.layui-carousel>*[carousel-item]>.layui-this.layui-carousel-left{left: -100%;}
+.layui-carousel>*[carousel-item]>.layui-this.layui-carousel-right{left: 100%;}
+
+/* 上下切换 */.layui-carousel[lay-anim="updown"] .layui-carousel-arrow{left: 50%!important; top: 20px; margin: 0 0 0 -18px;}
+.layui-carousel[lay-anim="updown"] .layui-carousel-arrow[lay-type="add"]{top: auto!important; bottom: 20px;}
+.layui-carousel[lay-anim="updown"] .layui-carousel-ind{position: absolute; top: 50%; right: 20px; width: auto; height: auto;}
+.layui-carousel[lay-anim="updown"] .layui-carousel-ind ul{padding: 3px 5px;}
+.layui-carousel[lay-anim="updown"] .layui-carousel-ind li{display: block; margin: 6px 0;}
+
+.layui-carousel[lay-anim="updown"]>*[carousel-item]>*{left: 0!important;}
+.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-this{top: 0;}
+.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-carousel-prev{top: -100%;}
+.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-carousel-next{top: 100%;}
+.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-carousel-prev.layui-carousel-right,
+.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-carousel-next.layui-carousel-left{top: 0;}
+.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-this.layui-carousel-left{top: -100%;}
+.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-this.layui-carousel-right{top: 100%;}
+
+/* 渐显切换 */.layui-carousel[lay-anim="fade"]>*[carousel-item]>*{left: 0!important;}
+.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-carousel-prev,
+.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-carousel-next{opacity: 0;}
+.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-carousel-prev.layui-carousel-right,
+.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-carousel-next.layui-carousel-left{opacity: 1;}
+.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-this.layui-carousel-left,
+.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-this.layui-carousel-right{opacity: 0}
+
+/** fixbar **/
+.layui-fixbar{position: fixed; right: 15px; bottom: 15px; z-index: 999999;}
+.layui-fixbar li{width: 50px; height: 50px; line-height: 50px; margin-bottom: 1px; text-align:center; cursor: pointer; font-size:30px; background-color: #9F9F9F; color:#fff; border-radius: 2px; opacity: 0.95;}
+.layui-fixbar li:hover{opacity: 0.85;}
+.layui-fixbar li:active{opacity: 1;}
+.layui-fixbar .layui-fixbar-top{display: none; font-size: 40px;}
+
+/** 表情面板 **/
+body .layui-util-face{border: none; background: none;}
+body .layui-util-face  .layui-layer-content{padding:0; background-color:#fff; color:#666; box-shadow:none}
+.layui-util-face .layui-layer-TipsG{display:none;}
+.layui-util-face ul{position:relative; width:372px; padding:10px; border:1px solid #D9D9D9; background-color:#fff; box-shadow: 0 0 20px rgba(0,0,0,.2);}
+.layui-util-face ul li{cursor: pointer; float: left; border: 1px solid #e8e8e8; height: 22px; width: 26px; overflow: hidden; margin: -1px 0 0 -1px; padding: 4px 2px; text-align: center;}
+.layui-util-face ul li:hover{position: relative; z-index: 2; border: 1px solid #eb7350; background: #fff9ec;}
+
+/** 代码修饰器 **/
+.layui-code{position: relative; margin: 10px 0; padding: 15px; line-height: 20px; border: 1px solid #ddd; border-left-width: 6px; background-color: #F2F2F2; color: #333; font-family: Courier New; font-size: 12px;}
+
+/** 评分组件 By star1029 **/
+.layui-rate,
+.layui-rate *{display: inline-block; vertical-align: middle;}
+.layui-rate{padding: 10px 5px 10px 0; font-size: 0;}
+.layui-rate li i.layui-icon{ font-size: 20px; color: #FFB800;}
+.layui-rate li i.layui-icon{margin-right: 5px; transition: all .3s; -webkit-transition: all .3s;}
+.layui-rate li i:hover{cursor: pointer; transform: scale(1.12); -webkit-transform: scale(1.12);}
+.layui-rate[readonly] li i:hover{cursor: default; transform: scale(1);}
+
+/** 颜色选择器 By star1029 **/
+.layui-colorpicker{width: 26px; height: 26px; border: 1px solid #e6e6e6; padding: 5px; border-radius: 2px; line-height: 24px; display: inline-block; cursor: pointer; transition: all .3s; -webkit-transition: all .3s;}
+.layui-colorpicker:hover{border-color: #d2d2d2;}
+.layui-colorpicker.layui-colorpicker-lg{width: 34px; height: 34px; line-height: 32px;}
+.layui-colorpicker.layui-colorpicker-sm{width: 24px; height: 24px; line-height: 22px;}
+.layui-colorpicker.layui-colorpicker-xs{width: 22px; height: 22px; line-height: 20px;}
+
+.layui-colorpicker-trigger-bgcolor{display: block; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);  border-radius: 2px;}
+.layui-colorpicker-trigger-span{display: block; height: 100%; box-sizing: border-box; border: 1px solid rgba(0,0,0,.15); border-radius: 2px; text-align: center;}
+.layui-colorpicker-trigger-i{display: inline-block; color: #FFF; font-size: 12px;}
+.layui-colorpicker-trigger-i.layui-icon-close{color: #999;}
+
+.layui-colorpicker-main{position: absolute; z-index: 66666666; width: 280px; padding: 7px; background: #FFF; border: 1px solid #d2d2d2; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.12);}
+.layui-colorpicker-main-wrapper{height: 180px; position: relative;}
+.layui-colorpicker-basis{width: 260px; height: 100%; position: relative;}
+.layui-colorpicker-basis-white{width: 100%; height: 100%; position: absolute; top: 0; left: 0; background: linear-gradient(90deg, #FFF, hsla(0,0%,100%,0));}
+.layui-colorpicker-basis-black{width: 100%; height: 100%; position: absolute; top: 0; left: 0; background: linear-gradient(0deg, #000, transparent);}
+.layui-colorpicker-basis-cursor{width: 10px; height: 10px; border: 1px solid #FFF; border-radius: 50%; position: absolute; top: -3px; right: -3px; cursor: pointer;}
+.layui-colorpicker-side{position: absolute; top: 0; right: 0; width: 12px; height: 100%; background: linear-gradient(#F00, #FF0, #0F0, #0FF, #00F, #F0F, #F00);}
+.layui-colorpicker-side-slider{width: 100%; height: 5px; box-shadow: 0 0 1px #888888; box-sizing: border-box; background: #FFF; border-radius: 1px; border: 1px solid #f0f0f0; cursor: pointer; position: absolute; left: 0;}
+.layui-colorpicker-main-alpha{display: none; height: 12px; margin-top: 7px; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}
+.layui-colorpicker-alpha-bgcolor{height: 100%; position: relative;}
+.layui-colorpicker-alpha-slider{width: 5px; height: 100%; box-shadow: 0 0 1px #888888; box-sizing: border-box; background: #FFF; border-radius: 1px; border: 1px solid #f0f0f0; cursor: pointer; position: absolute; top: 0;}
+.layui-colorpicker-main-pre{padding-top: 7px; font-size: 0;}
+.layui-colorpicker-pre{width: 20px; height: 20px;  border-radius: 2px; display: inline-block; margin-left: 6px; margin-bottom: 7px; cursor: pointer;}
+.layui-colorpicker-pre:nth-child(11n+1){margin-left: 0;}
+.layui-colorpicker-pre-isalpha{background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}
+.layui-colorpicker-pre.layui-this{box-shadow: 0 0 3px 2px rgba(0,0,0,.15);}
+.layui-colorpicker-pre > div{height: 100%; border-radius: 2px;}
+.layui-colorpicker-main-input{text-align: right; padding-top: 7px;}
+.layui-colorpicker-main-input .layui-btn-container .layui-btn{margin: 0 0 0 10px;}
+.layui-colorpicker-main-input div.layui-inline{float: left; margin-right: 10px; font-size: 14px;}
+.layui-colorpicker-main-input input.layui-input{width: 150px; height: 30px; color: #666;}
+
+/** 滑块 By star1029 **/
+.layui-slider{height: 4px; background: #e2e2e2; border-radius: 3px; position: relative; cursor: pointer;}
+.layui-slider-bar{border-radius: 3px; position: absolute; height: 100%;}
+.layui-slider-step{position: absolute; top: 0; width: 4px; height: 4px; border-radius: 50%; background: #FFF; -webkit-transform: translateX(-50%); transform: translateX(-50%);}
+.layui-slider-wrap{width: 36px; height: 36px; position: absolute; top: -16px; -webkit-transform: translateX(-50%); transform: translateX(-50%); z-index: 10; text-align: center;}
+.layui-slider-wrap-btn{width: 12px; height: 12px; border-radius: 50%; background: #FFF; display: inline-block; vertical-align: middle; cursor: pointer; transition: 0.3s;}
+.layui-slider-wrap:after{content: ""; height: 100%; display: inline-block; vertical-align: middle;}
+.layui-slider-wrap-btn:hover, 
+.layui-slider-wrap-btn.layui-slider-hover{transform: scale(1.2);}
+.layui-slider-wrap-btn.layui-disabled:hover{transform: scale(1) !important;}
+.layui-slider-tips{position: absolute; top: -42px; z-index: 66666666; white-space:nowrap; display: none; -webkit-transform: translateX(-50%); transform: translateX(-50%); color: #FFF; background: #000; border-radius: 3px; height: 25px; line-height: 25px; padding: 0 10px;}
+.layui-slider-tips:after{content: ''; position: absolute; bottom: -12px; left: 50%; margin-left: -6px; width: 0; height: 0; border-width: 6px; border-style: solid; border-color: #000 transparent transparent transparent;}
+.layui-slider-input{width: 70px; height: 32px; border: 1px solid #e6e6e6; border-radius: 3px; font-size: 16px; line-height: 32px; position: absolute; right: 0; top: -14px;}
+.layui-slider-input-btn{position: absolute; top: 0; right: 0; width: 20px; height: 100%; border-left: 1px solid #d2d2d2;}
+.layui-slider-input-btn i{cursor: pointer; position: absolute; right: 0; bottom: 0; width: 20px; height: 50%; font-size: 12px; line-height: 16px; text-align: center; color: #999;}
+.layui-slider-input-btn i:first-child{top: 0; border-bottom: 1px solid #d2d2d2;}
+.layui-slider-input-txt{height: 100%; font-size: 14px;}
+.layui-slider-input-txt input{height: 100%; border: none;}
+.layui-slider-input-btn i:hover{color: #009688;}
+/*垂直滑块*/
+.layui-slider-vertical{width: 4px; margin-left: 33px;}
+.layui-slider-vertical .layui-slider-bar{width: 4px;}
+.layui-slider-vertical .layui-slider-step{top: auto; left: 0px; -webkit-transform: translateY(50%); transform: translateY(50%);}
+.layui-slider-vertical .layui-slider-wrap{top: auto; left: -16px; -webkit-transform: translateY(50%); transform: translateY(50%);}
+.layui-slider-vertical .layui-slider-tips{top: auto; left: 2px;}
+@media \0screen{
+  .layui-slider-wrap-btn{margin-left: -20px;}
+  .layui-slider-vertical .layui-slider-wrap-btn{margin-left: 0; margin-bottom: -20px;}
+  .layui-slider-vertical .layui-slider-tips{margin-left: -8px;}
+  .layui-slider > span{margin-left: 8px;}
+}
+
+/** 树组件 By star1029 **/
+.layui-tree{line-height: 22px;}
+.layui-tree .layui-form-checkbox{margin: 0 !important;}
+.layui-tree-set{width: 100%; position: relative;}
+.layui-tree-pack{display: none; padding-left: 20px; position: relative;}
+.layui-tree-line .layui-tree-pack{padding-left: 27px;}
+.layui-tree-line .layui-tree-set .layui-tree-set:after{content: ''; position: absolute; top: 14px; left: -9px; width: 17px; height: 0; border-top: 1px dotted #c0c4cc;}
+.layui-tree-entry{position: relative; padding: 3px 0; height: 20px; white-space: nowrap;}
+.layui-tree-entry:hover{background-color: #eee;}
+.layui-tree-line .layui-tree-entry:hover{background-color: rgba(0,0,0,0);}
+.layui-tree-line .layui-tree-entry:hover .layui-tree-txt{color: #999; text-decoration: underline; transition: 0.3s;}
+.layui-tree-main{display: inline-block; vertical-align: middle; cursor: pointer; padding-right: 10px;}
+.layui-tree-line .layui-tree-set:before{content: ''; position: absolute; top: 0; left: -9px; width: 0; height: 100%; border-left: 1px dotted #c0c4cc;}
+.layui-tree-line .layui-tree-set.layui-tree-setLineShort:before{height: 13px;}
+.layui-tree-line .layui-tree-set.layui-tree-setHide:before{height: 0;}
+.layui-tree-iconClick{display: inline-block; vertical-align: middle; position: relative; height: 20px; line-height: 20px; margin: 0 10px; color: #c0c4cc;}
+.layui-tree-icon{height: 12px; line-height: 12px; width: 12px; text-align: center; border: 1px solid #c0c4cc;}
+.layui-tree-iconClick .layui-icon{font-size: 18px;}
+.layui-tree-icon .layui-icon{font-size: 12px; color: #666;}
+.layui-tree-iconArrow{padding: 0 5px;}
+.layui-tree-iconArrow:after{content: ''; position: absolute; left: 4px; top: 3px; z-index: 100; width: 0; height: 0; border-width: 5px; border-style: solid; border-color: transparent transparent transparent #c0c4cc; transition: 0.5s;}
+.layui-tree-spread>.layui-tree-entry>.layui-tree-iconClick>.layui-tree-iconArrow:after{transform: rotate(90deg) translate(3px, 4px);}
+.layui-tree-txt{display: inline-block; vertical-align: middle; color: #555;}
+.layui-tree-search{margin-bottom: 15px; color: #666;}
+.layui-tree-btnGroup{visibility: hidden; display: inline-block; vertical-align: middle; position: relative;}
+.layui-tree-btnGroup .layui-icon{display: inline-block; vertical-align: middle; padding: 0 2px; cursor: pointer;}
+.layui-tree-btnGroup .layui-icon:hover{color: #999; transition: 0.3s;}
+.layui-tree-entry:hover .layui-tree-btnGroup{visibility: visible;}
+.layui-tree-editInput{position: relative; display: inline-block; vertical-align: middle; height: 20px; line-height: 20px; padding: 0 3px; border: none; background-color: rgba(0,0,0,0.05);}
+.layui-tree-emptyText{text-align: center; color: #999;}
+
+
+
+
+/** 动画 **/
+.layui-anim{-webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-fill-mode: both; animation-fill-mode: both;}
+.layui-anim.layui-icon{display: inline-block;}
+.layui-anim-loop{-webkit-animation-iteration-count: infinite; animation-iteration-count: infinite;}
+.layui-trans,
+.layui-trans a{transition: all .3s; -webkit-transition: all .3s;} /* 过度变换 */
+
+@-webkit-keyframes layui-rotate{ /* 循环旋转 */
+  from {-webkit-transform: rotate(0deg);}
+  to {-webkit-transform: rotate(360deg);}
+}
+@keyframes layui-rotate{
+  from {transform: rotate(0deg);}
+  to {transform: rotate(360deg);}
+}
+.layui-anim-rotate{-webkit-animation-name: layui-rotate; animation-name: layui-rotate; -webkit-animation-duration: 1s; animation-duration: 1s;  -webkit-animation-timing-function: linear; animation-timing-function: linear;}
+
+@-webkit-keyframes layui-up{ /* 从最底部往上滑入 */
+  from {-webkit-transform: translate3d(0, 100%, 0); opacity: 0.3;}
+  to {-webkit-transform: translate3d(0, 0, 0);  opacity: 1;}
+}
+@keyframes layui-up{
+  from {transform: translate3d(0, 100%, 0);  opacity: 0.3;}
+  to {transform: translate3d(0, 0, 0);  opacity: 1;}
+}
+.layui-anim-up{-webkit-animation-name: layui-up; animation-name: layui-up;}
+
+@-webkit-keyframes layui-upbit{ /* 微微往上滑入 */
+  from {-webkit-transform: translate3d(0, 30px, 0); opacity: 0.3;}
+  to {-webkit-transform: translate3d(0, 0, 0);  opacity: 1;}
+}
+@keyframes layui-upbit{
+  from {transform: translate3d(0, 30px, 0);  opacity: 0.3;}
+  to {transform: translate3d(0, 0, 0);  opacity: 1;}
+}
+.layui-anim-upbit{-webkit-animation-name: layui-upbit; animation-name: layui-upbit;}
+
+
+@-webkit-keyframes layui-scale { /* 放大 */
+  0% {opacity: 0.3; -webkit-transform: scale(.5);}
+  100% {opacity: 1; -webkit-transform: scale(1);}
+}
+@keyframes layui-scale {
+  0% {opacity: 0.3; -ms-transform: scale(.5); transform: scale(.5);}
+  100% {opacity: 1; -ms-transform: scale(1); transform: scale(1);}
+}
+.layui-anim-scale{-webkit-animation-name: layui-scale; animation-name: layui-scale}
+
+@-webkit-keyframes layui-scale-spring { /* 弹簧式放大 */
+  0% {opacity: 0.5; -webkit-transform: scale(.5);}
+  80% {opacity: 0.8; -webkit-transform: scale(1.1);}
+  100% {opacity: 1; -webkit-transform: scale(1);}
+}
+@keyframes layui-scale-spring {
+  0% {opacity: 0.5; transform: scale(.5);}
+  80% {opacity: 0.8; transform: scale(1.1);}
+  100% {opacity: 1; transform: scale(1);}
+}
+.layui-anim-scaleSpring{-webkit-animation-name: layui-scale-spring; animation-name: layui-scale-spring}
+
+@-webkit-keyframes layui-fadein { /* 渐现 */
+  0% {opacity: 0;}
+  100% {opacity: 1;}
+}
+@keyframes layui-fadein {
+  0% {opacity: 0;}
+  100% {opacity: 1;}
+}
+.layui-anim-fadein{-webkit-animation-name: layui-fadein; animation-name: layui-fadein}
+
+@-webkit-keyframes layui-fadeout { /* 渐隐 */
+  0% {opacity: 1;}
+  100% {opacity: 0;}
+}
+@keyframes layui-fadeout {
+  0% {opacity: 1;}
+  100% {opacity: 0;}
+}
+.layui-anim-fadeout{-webkit-animation-name: layui-fadeout; animation-name: layui-fadeout}
+
+
+

+ 191 - 0
WebRoot/view/efireAnalysis/layui/css/layui.mobile.css

@@ -0,0 +1,191 @@
+/**
+ 
+ @Name: layui mobile
+ @Author: 贤心
+ @Site: http://www.layui.com/mobile/
+ 
+ */
+ 
+/* reset */
+body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,input,button,textarea,p,blockquote,th,td,form,legend{margin:0; padding:0; -webkit-tap-highlight-color:rgba(0,0,0,0)}
+html{font:12px 'Helvetica Neue','PingFang SC',STHeitiSC-Light,Helvetica,Arial,sans-serif; -ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}
+a,button,input{-webkit-tap-highlight-color:rgba(255,0,0,0);}
+a{text-decoration: none; background:transparent}
+a:active,a:hover{outline:0}
+table{border-collapse:collapse;border-spacing:0}
+li{list-style:none;}
+b,strong{font-weight:700;}
+h1, h2, h3, h4, h5, h6{font-weight:500;}
+address,cite,dfn,em,var{font-style:normal;}
+dfn{font-style:italic}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+img{border:0; vertical-align: bottom}
+button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0; outline: 0;}
+button,select{text-transform:none}
+select{-webkit-appearance: none; border:none;}
+input{line-height:normal; }
+input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}
+input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}
+input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
+input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}
+label,input{vertical-align: middle;}
+
+
+/** 图标字体 **/
+@font-face {font-family: 'layui-icon';
+  src: url('../font/iconfont.eot?v=1.0.7');
+  src: url('../font/iconfont.eot?v=1.0.7#iefix') format('embedded-opentype'),
+  url('../font/iconfont.woff?v=1.0.7') format('woff'),
+  url('../font/iconfont.ttf?v=1.0.7') format('truetype'),
+  url('../font/iconfont.svg?v=1.0.7#iconfont') format('svg');
+}
+                    
+.layui-icon{
+  font-family:"layui-icon" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+
+/** 基础通用 **/
+/* 消除第三方ui可能造成的冲突 */.layui-box, .layui-box *{-webkit-box-sizing: content-box !important; -moz-box-sizing: content-box !important; box-sizing: content-box !important;}
+.layui-border-box, .layui-border-box *{-webkit-box-sizing: border-box !important; -moz-box-sizing: border-box !important; box-sizing: border-box !important;}
+.layui-inline{position: relative; display: inline-block; *display:inline; *zoom:1; vertical-align: middle;}
+/* 三角形 */.layui-edge{position: absolute; width: 0; height: 0; border-style: dashed; border-color: transparent; overflow: hidden;}
+/* 单行溢出省略 */.layui-elip{text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
+/* 屏蔽选中 */.layui-unselect{-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;}
+.layui-disabled,.layui-disabled:active{background-color: #d2d2d2 !important; color: #fff !important; cursor: not-allowed !important;}
+/* 纯圆角 */.layui-circle{border-radius: 100%;}
+.layui-show{display: block !important;}
+.layui-hide{display: none !important;}
+
+
+.layui-upload-iframe{position: absolute; width: 0px; height: 0px; border: 0px; visibility: hidden;}
+.layui-upload-enter{border: 1px solid #009E94; background-color: #009E94; color: #fff; -webkit-transform: scale(1.1); transform: scale(1.1);}
+
+
+/* 弹出动画 */
+@-webkit-keyframes layui-m-anim-scale { /* 默认 */
+	0% {opacity: 0; -webkit-transform: scale(.5); transform: scale(.5)}
+	100% {opacity: 1; -webkit-transform: scale(1); transform: scale(1)}
+}
+@keyframes layui-m-anim-scale { /* 由小到大 */
+	0% {opacity: 0; -webkit-transform: scale(.5); transform: scale(.5)}
+	100% {opacity: 1; -webkit-transform: scale(1); transform: scale(1)}
+}
+.layui-m-anim-scale{animation-name:  layui-m-anim-scale; -webkit-animation-name:  layui-m-anim-scale;}
+
+@-webkit-keyframes layui-m-anim-up{ /* 从下往上 */
+  0%{opacity: 0; -webkit-transform: translateY(800px); transform: translateY(800px)}
+  100%{opacity: 1; -webkit-transform: translateY(0); transform: translateY(0)}
+}
+@keyframes layui-m-anim-up{
+  0%{opacity: 0; -webkit-transform: translateY(800px); transform: translateY(800px)}
+  100%{opacity: 1; -webkit-transform: translateY(0); transform: translateY(0)}
+}
+.layui-m-anim-up{-webkit-animation-name: layui-m-anim-up; animation-name: layui-m-anim-up}
+
+@-webkit-keyframes layui-m-anim-left{ /* 从右往左 */
+  0%{-webkit-transform: translateX(100%); transform: translateX(100%)}
+  100%{-webkit-transform: translateX(0); transform: translateX(0)}
+}
+@keyframes layui-m-anim-left{
+  0%{-webkit-transform: translateX(100%); transform: translateX(100%)}
+  100%{-webkit-transform: translateX(0); transform: translateX(0)}
+}
+.layui-m-anim-left{-webkit-animation-name: layui-m-anim-left; animation-name: layui-m-anim-left}
+
+@-webkit-keyframes layui-m-anim-right{ /* 从左往右 */
+  0%{-webkit-transform: translateX(-100%); transform: translateX(-100%)}
+  100%{-webkit-transform: translateX(0); transform: translateX(0)}
+}
+@keyframes layui-m-anim-right{
+  0%{-webkit-transform: translateX(-100%); transform: translateX(-100%)}
+  100%{-webkit-transform: translateX(0); transform: translateX(0)}
+}
+.layui-m-anim-right{-webkit-animation-name: layui-m-anim-right; animation-name: layui-m-anim-right}
+
+@-webkit-keyframes layui-m-anim-lout{ /* 往左收缩 */
+  0%{-webkit-transform: translateX(0); transform: translateX(0)}
+  100%{-webkit-transform: translateX(-100%); transform: translateX(-100%)}
+}
+@keyframes layui-m-anim-lout{
+  0%{-webkit-transform: translateX(0); transform: translateX(0)}
+  100%{-webkit-transform: translateX(-100%); transform: translateX(-100%)}
+}
+.layui-m-anim-lout{-webkit-animation-name: layui-m-anim-lout; animation-name: layui-m-anim-lout}
+
+@-webkit-keyframes layui-m-anim-rout{ /* 往右收缩 */
+  0%{-webkit-transform: translateX(0); transform: translateX(0)}
+  100%{-webkit-transform: translateX(100%); transform: translateX(100%)}
+}
+@keyframes layui-m-anim-rout{
+  0%{-webkit-transform: translateX(0); transform: translateX(0)}
+  100%{-webkit-transform: translateX(100%); transform: translateX(100%)}
+}
+.layui-m-anim-rout{-webkit-animation-name: layui-m-anim-rout; animation-name: layui-m-anim-rout}
+
+
+/** layer mobile */
+.layui-m-layer{position:relative; z-index: 19891014;}
+.layui-m-layer *{-webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box;}
+.layui-m-layershade,
+.layui-m-layermain{position:fixed; left:0; top:0; width:100%; height:100%;}
+.layui-m-layershade{background-color:rgba(0,0,0, .7); pointer-events:auto;}
+.layui-m-layermain{display:table; font-family: Helvetica, arial, sans-serif; pointer-events: none;}
+.layui-m-layermain .layui-m-layersection{display:table-cell; vertical-align:middle; text-align:center;}
+.layui-m-layerchild{position:relative; display:inline-block; text-align:left; background-color:#fff; font-size:14px; border-radius: 5px; box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);  pointer-events:auto;  -webkit-overflow-scrolling: touch;}
+.layui-m-layerchild{-webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-duration: .2s; animation-duration: .2s;}
+
+.layui-m-layer0 .layui-m-layerchild{width: 90%; max-width: 640px;}
+.layui-m-layer1 .layui-m-layerchild{border:none; border-radius:0;}
+.layui-m-layer2 .layui-m-layerchild{width:auto; max-width:260px; min-width:40px; border:none; background: none; box-shadow: none; color:#fff;}
+.layui-m-layerchild h3{padding: 0 10px; height: 60px; line-height: 60px; font-size:16px; font-weight: 400;  border-radius: 5px 5px 0 0; text-align: center;}
+.layui-m-layerchild h3,
+.layui-m-layerbtn span{ text-overflow:ellipsis; overflow:hidden; white-space:nowrap;}
+.layui-m-layercont{padding: 50px 30px; line-height: 22px; text-align:center;}
+.layui-m-layer1 .layui-m-layercont{padding:0; text-align:left;}
+.layui-m-layer2 .layui-m-layercont{text-align:center; padding: 0; line-height: 0;}
+.layui-m-layer2 .layui-m-layercont i{width:25px; height:25px; margin-left:8px; display:inline-block; background-color:#fff; border-radius:100%;}
+.layui-m-layer2 .layui-m-layercont p{margin-top: 20px;}
+
+/* loading */
+@-webkit-keyframes layui-m-anim-loading{
+    0%,80%,100%{transform:scale(0); -webkit-transform:scale(0)}
+    40%{transform:scale(1); -webkit-transform:scale(1)}
+}
+@keyframes layui-m-anim-loading{
+    0%,80%,100%{transform:scale(0); -webkit-transform:scale(0)}
+    40%{transform:scale(1); -webkit-transform:scale(1)}
+}
+.layui-m-layer2 .layui-m-layercont i{-webkit-animation: layui-m-anim-loading 1.4s infinite ease-in-out; animation: layui-m-anim-loading 1.4s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both;}
+
+.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0; -webkit-animation-delay: -.32s; animation-delay: -.32s;}
+.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay: -.16s; animation-delay: -.16s;}
+.layui-m-layer2 .layui-m-layercont>div{line-height:22px; padding-top:7px; margin-bottom:20px; font-size: 14px;}
+.layui-m-layerbtn{display: box; display: -moz-box; display: -webkit-box; width: 100%; position:relative; height: 50px; line-height: 50px; font-size: 0; text-align:center;  border-top:1px solid #D0D0D0; background-color: #F2F2F2; border-radius: 0 0 5px 5px;}
+.layui-m-layerbtn span{position:relative; display: block; -moz-box-flex: 1; box-flex: 1; -webkit-box-flex: 1;  text-align:center; font-size:14px; border-radius: 0 0 5px 5px; cursor:pointer;}
+.layui-m-layerbtn span[yes]{color: #40AFFE;}
+.layui-m-layerbtn span[no]{border-right: 1px solid #D0D0D0; border-radius: 0 0 0 5px;}
+.layui-m-layerbtn span:active{background-color: #F6F6F6;}
+.layui-m-layerend{position:absolute; right:7px; top:10px; width:30px; height:30px; border: 0; font-weight:400; background: transparent; cursor: pointer; -webkit-appearance: none; font-size:30px;}
+.layui-m-layerend::before, .layui-m-layerend::after{position:absolute; left:5px; top:15px; content:''; width:18px; height:1px; background-color:#999; transform:rotate(45deg); -webkit-transform:rotate(45deg); border-radius: 3px;}
+.layui-m-layerend::after{transform:rotate(-45deg);  -webkit-transform:rotate(-45deg);}
+
+/* 底部对话框风格 */
+body .layui-m-layer .layui-m-layer-footer{position: fixed; width: 95%; max-width: 100%; margin: 0 auto; left:0; right: 0; bottom: 10px; background: none;}
+.layui-m-layer-footer .layui-m-layercont{padding: 20px; border-radius: 5px 5px 0 0; background-color: rgba(255,255,255,.8);}
+.layui-m-layer-footer .layui-m-layerbtn{display: block; height: auto; background: none; border-top: none;}
+.layui-m-layer-footer .layui-m-layerbtn span{background-color: rgba(255,255,255,.8);}
+.layui-m-layer-footer .layui-m-layerbtn span[no]{color: #FD482C; border-top: 1px solid #c2c2c2; border-radius: 0 0 5px 5px;}
+.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top: 10px; border-radius: 5px;}
+
+/* 通用提示 */
+body .layui-m-layer .layui-m-layer-msg{width: auto; max-width: 90%; margin: 0 auto; bottom: -150px; background-color: rgba(0,0,0,.7); color: #fff;}
+.layui-m-layer-msg .layui-m-layercont{padding: 10px 20px;}
+
+
+
+

+ 23 - 0
WebRoot/view/efireAnalysis/layui/css/modules/code.css

@@ -0,0 +1,23 @@
+/**
+ 
+ @Name: layui.code
+ @Author: 贤心
+ @Site: http://www.layui.com
+ 
+ */
+
+/* 加载就绪标志 */
+html #layuicss-skincodecss{display:none; position: absolute; width:1989px;}
+
+/* 默认风格 */
+.layui-code-view{display: block; position: relative; margin: 10px 0; padding: 0; border: 1px solid #e2e2e2; border-left-width: 6px; background-color: #F2F2F2; color: #333; font-family: Courier New; font-size: 12px;}
+.layui-code-h3{position: relative; padding: 0 10px; height: 32px; line-height: 32px; border-bottom: 1px solid #e2e2e2; font-size: 12px;}
+.layui-code-h3 a{position: absolute; right: 10px; top: 0; color: #999;}
+.layui-code-view .layui-code-ol{position: relative; overflow: auto;}
+.layui-code-view .layui-code-ol li{position: relative; margin-left: 45px; line-height: 20px; padding: 0 5px; border-left: 1px solid #e2e2e2; list-style-type: decimal-leading-zero; *list-style-type: decimal; background-color: #fff;}
+.layui-code-view pre{margin: 0;}
+
+/* notepadd++风格 */
+.layui-code-notepad{border: 1px solid #0C0C0C; border-left-color: #3F3F3F; background-color: #0C0C0C; color: #C2BE9E}
+.layui-code-notepad .layui-code-h3{border-bottom: none;}
+.layui-code-notepad .layui-code-ol li{background-color: #3F3F3F; border-left: none;}

+ 16 - 0
WebRoot/view/efireAnalysis/layui/css/modules/laydate/default/font.css

@@ -0,0 +1,16 @@
+/** 图标字体 **/
+@font-face {font-family: 'laydate-icon';
+  src: url('./font/iconfont.eot');
+  src: url('./font/iconfont.eot#iefix') format('embedded-opentype'),
+  url('./font/iconfont.svg#iconfont') format('svg'),
+  url('./font/iconfont.woff') format('woff'),
+  url('./font/iconfont.ttf') format('truetype');
+}
+                    
+.laydate-icon{
+  font-family:"laydate-icon" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}

+ 155 - 0
WebRoot/view/efireAnalysis/layui/css/modules/laydate/default/laydate.css

@@ -0,0 +1,155 @@
+/**
+ 
+ @Name: laydata
+ @Author: 贤心
+ 
+ **/
+ 
+
+html #layuicss-laydate{display: none; position: absolute; width: 1989px;}
+
+/* 初始化 */
+.layui-laydate *{margin: 0; padding: 0;}
+
+/* 主体结构 */
+.layui-laydate, .layui-laydate *{box-sizing: border-box;}
+.layui-laydate{position: absolute; z-index: 66666666; margin: 5px 0; border-radius: 2px; font-size: 14px; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-fill-mode: both; animation-fill-mode: both;}
+.layui-laydate-main{width: 272px;}
+.layui-laydate-header *,
+.layui-laydate-content td,
+.layui-laydate-list li{transition-duration: .3s; -webkit-transition-duration: .3s;}
+
+@-webkit-keyframes laydate-upbit{ /* 微微往上滑入 */
+  from {-webkit-transform: translate3d(0, 20px, 0); opacity: 0.3;}
+  to {-webkit-transform: translate3d(0, 0, 0);  opacity: 1;}
+}
+@keyframes laydate-upbit{
+  from {transform: translate3d(0, 20px, 0);  opacity: 0.3;}
+  to {transform: translate3d(0, 0, 0);  opacity: 1;}
+}
+.layui-laydate{-webkit-animation-name: laydate-upbit; animation-name: laydate-upbit;}
+.layui-laydate-static{ position: relative; z-index: 0; display: inline-block; margin: 0; -webkit-animation: none; animation: none;}
+
+/* 展开年月列表时 */
+.laydate-ym-show .laydate-prev-m,
+.laydate-ym-show .laydate-next-m{display: none !important;}
+.laydate-ym-show .laydate-prev-y,
+.laydate-ym-show .laydate-next-y{display: inline-block !important;}
+.laydate-ym-show .laydate-set-ym span[lay-type="month"]{display: none !important;}
+
+/* 展开时间列表时 */
+.laydate-time-show .layui-laydate-header .layui-icon,
+.laydate-time-show .laydate-set-ym span[lay-type="year"],
+.laydate-time-show .laydate-set-ym span[lay-type="month"]{display: none !important;}
+
+/* 头部结构 */
+.layui-laydate-header{position: relative; line-height:30px; padding: 10px 70px 5px;}
+.layui-laydate-header *{display: inline-block; vertical-align: bottom;}
+.layui-laydate-header i{position: absolute; top: 10px; padding: 0 5px; color: #999; font-size: 18px; cursor: pointer;}
+.layui-laydate-header i.laydate-prev-y{left: 15px;}
+.layui-laydate-header i.laydate-prev-m{left: 45px;}
+.layui-laydate-header i.laydate-next-y{right: 15px;}
+.layui-laydate-header i.laydate-next-m{right: 45px;}
+.laydate-set-ym{width: 100%; text-align: center; box-sizing: border-box; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
+.laydate-set-ym span{padding: 0 5px; cursor: pointer;}
+.laydate-time-text{cursor: default !important;}
+
+/* 主体结构 */
+.layui-laydate-content{position: relative; padding: 10px; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;}
+.layui-laydate-content table{border-collapse: collapse; border-spacing: 0;}
+.layui-laydate-content th,
+.layui-laydate-content td{width: 36px; height: 30px; padding: 5px; text-align: center;}
+.layui-laydate-content th{font-weight: 400;}
+.layui-laydate-content td{position: relative; cursor: pointer;}
+.laydate-day-mark{position: absolute; left: 0; top: 0; width: 100%; height: 100%; line-height: 30px; font-size: 12px; overflow: hidden;}
+.laydate-day-mark::after{position: absolute; content:''; right: 2px; top: 2px; width: 5px; height: 5px; border-radius: 50%;}
+
+/* 底部结构 */
+.layui-laydate-footer{position: relative; height: 46px; line-height: 26px; padding: 10px 20px;}
+.layui-laydate-footer span{margin-right: 15px; display: inline-block; cursor: pointer; font-size: 12px;}
+.layui-laydate-footer span:hover{color: #5FB878;}
+.laydate-footer-btns{position: absolute; right: 10px; top: 10px;}
+.laydate-footer-btns span{height: 26px; line-height: 26px; margin: 0 0 0 -1px; padding: 0 10px; border: 1px solid #C9C9C9; background-color: #fff;  white-space: nowrap; vertical-align: top; border-radius: 2px;}
+
+/* 年月列表 */
+.layui-laydate-list{position: absolute; left: 0; top: 0; width: 100%; height: 100%; padding: 10px; box-sizing: border-box; background-color: #fff;}
+.layui-laydate-list>li{position: relative; display: inline-block; width: 33.3%; height: 36px; line-height: 36px; margin: 3px 0; vertical-align: middle; text-align: center; cursor: pointer;}
+.laydate-month-list>li{width: 25%; margin: 17px 0;}
+.laydate-time-list{}
+.laydate-time-list>li{height: 100%; margin: 0; line-height: normal; cursor: default;}
+.laydate-time-list p{position: relative; top: -4px; line-height: 29px;}
+.laydate-time-list ol{height: 181px; overflow: hidden;}
+.laydate-time-list>li:hover ol{overflow-y: auto;}
+.laydate-time-list ol li{width: 130%; padding-left: 33px; line-height: 30px; text-align: left; cursor: pointer;}
+
+/* 提示 */
+.layui-laydate-hint{position: absolute; top: 115px; left: 50%; width: 250px; margin-left: -125px; line-height: 20px; padding: 15px; text-align: center; font-size: 12px; color: #FF5722;}
+
+
+/* 双日历 */
+.layui-laydate-range{width: 546px;}
+.layui-laydate-range .layui-laydate-main{display: inline-block; vertical-align: middle;}
+.layui-laydate-range .laydate-main-list-0 .laydate-next-m,
+.layui-laydate-range .laydate-main-list-0 .laydate-next-y,
+.layui-laydate-range .laydate-main-list-1 .laydate-prev-y,
+.layui-laydate-range .laydate-main-list-1 .laydate-prev-m{display: none;}
+.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left: 1px solid #e2e2e2;}
+
+
+/* 默认简约主题 */
+.layui-laydate, .layui-laydate-hint{border: 1px solid #d2d2d2; box-shadow: 0 2px 4px rgba(0,0,0,.12); background-color: #fff; color: #666;}
+.layui-laydate-header{border-bottom: 1px solid #e2e2e2;}
+.layui-laydate-header i:hover,
+.layui-laydate-header span:hover{color: #5FB878;}
+.layui-laydate-content{border-top: none 0; border-bottom: none 0;}
+.layui-laydate-content th{color: #333;}
+.layui-laydate-content td{color: #666;}
+.layui-laydate-content td.laydate-selected{background-color: #00F7DE;}
+.laydate-selected:hover{background-color: #00F7DE !important;}
+.layui-laydate-content td:hover,
+.layui-laydate-list li:hover{background-color: #eaeaea; color: #333;}
+.laydate-time-list li ol{margin: 0; padding: 0; border: 1px solid #e2e2e2; border-left-width: 0;}
+.laydate-time-list li:first-child ol{border-left-width: 1px;}
+.laydate-time-list>li:hover{background: none;}
+.layui-laydate-content .laydate-day-prev,
+.layui-laydate-content .laydate-day-next{color: #d2d2d2;}
+.laydate-selected.laydate-day-prev,
+.laydate-selected.laydate-day-next{background-color: #f8f8f8 !important;}
+.layui-laydate-footer{border-top: 1px solid #e2e2e2;}
+.layui-laydate-hint{color: #FF5722;}
+.laydate-day-mark::after{background-color: #5FB878;}
+.layui-laydate-content td.layui-this .laydate-day-mark::after{display: none;}
+.layui-laydate-footer span[lay-type="date"]{color: #5FB878;}
+.layui-laydate .layui-this{background-color: #009688 !important; color: #fff !important;}
+.layui-laydate .laydate-disabled,
+.layui-laydate .laydate-disabled:hover{background:none !important; color: #d2d2d2 !important; cursor: not-allowed !important; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;}
+
+/* 墨绿/自定义背景色主题 */
+.laydate-theme-molv{border: none;}
+.laydate-theme-molv.layui-laydate-range{width: 548px}
+.laydate-theme-molv .layui-laydate-main{width: 274px;}
+.laydate-theme-molv .layui-laydate-header{border: none; background-color: #009688;}
+.laydate-theme-molv .layui-laydate-header i,
+.laydate-theme-molv .layui-laydate-header span{color: #f6f6f6;}
+.laydate-theme-molv .layui-laydate-header i:hover,
+.laydate-theme-molv .layui-laydate-header span:hover{color: #fff;}
+.laydate-theme-molv .layui-laydate-content{border: 1px solid #e2e2e2; border-top: none; border-bottom: none;}
+.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left: none;}
+.laydate-theme-molv .layui-laydate-footer{border: 1px solid #e2e2e2;}
+
+/* 格子主题 */
+.laydate-theme-grid .layui-laydate-content td,
+.laydate-theme-grid .layui-laydate-content thead,
+.laydate-theme-grid .laydate-year-list>li,
+.laydate-theme-grid .laydate-month-list>li{border: 1px solid #e2e2e2;}
+.laydate-theme-grid .laydate-selected,
+.laydate-theme-grid .laydate-selected:hover{background-color: #f2f2f2 !important; color: #009688 !important;}
+.laydate-theme-grid .laydate-selected.laydate-day-prev,
+.laydate-theme-grid .laydate-selected.laydate-day-next{color: #d2d2d2 !important;}
+.laydate-theme-grid .laydate-year-list,
+.laydate-theme-grid .laydate-month-list{margin: 1px 0 0 1px;}
+.laydate-theme-grid .laydate-year-list>li,
+.laydate-theme-grid .laydate-month-list>li{margin: 0 -1px -1px 0;}
+.laydate-theme-grid .laydate-year-list>li{height: 43px; line-height: 43px;}
+.laydate-theme-grid .laydate-month-list>li{height: 71px; line-height: 71px;}
+

BIN
WebRoot/view/efireAnalysis/layui/css/modules/layer/default/icon-ext.png


BIN
WebRoot/view/efireAnalysis/layui/css/modules/layer/default/icon.png


+ 181 - 0
WebRoot/view/efireAnalysis/layui/css/modules/layer/default/layer.css

@@ -0,0 +1,181 @@
+/**
+ 
+ @Name: layer
+ @Author: 贤心
+ 
+ **/
+
+/* *html{background-image: url(about:blank); background-attachment: fixed;} */
+html #layuicss-layer{display: none; position: absolute; width: 1989px;}
+
+/* common */
+.layui-layer-shade, .layui-layer{position:fixed; _position:absolute; pointer-events: auto;}
+.layui-layer-shade{top:0; left:0; width:100%; height:100%; _height:expression(document.body.offsetHeight+"px");}
+.layui-layer{-webkit-overflow-scrolling: touch;}
+.layui-layer{top:150px; left: 0; margin:0; padding:0; background-color:#fff; -webkit-background-clip: content; border-radius: 2px; box-shadow: 1px 1px 50px rgba(0,0,0,.3);}
+.layui-layer-close{position:absolute;}
+.layui-layer-content{position:relative;}
+.layui-layer-border{border: 1px solid #B2B2B2; border: 1px solid rgba(0,0,0,.1); box-shadow: 1px 1px 5px rgba(0,0,0,.2);}
+.layui-layer-load{background:url(loading-1.gif) #eee center center no-repeat;}
+.layui-layer-ico{ background:url(icon.png) no-repeat;}
+.layui-layer-dialog .layui-layer-ico,
+.layui-layer-setwin a,
+.layui-layer-btn a{display:inline-block; *display:inline; *zoom:1; vertical-align:top;}
+
+.layui-layer-move{display: none; position: fixed; *position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; cursor: move; opacity: 0; filter:alpha(opacity=0); background-color: #fff; z-index: 2147483647;}
+.layui-layer-resize{position: absolute; width: 15px; height: 15px; right: 0; bottom: 0; cursor: se-resize;}
+
+/* 动画 */
+.layer-anim{-webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-duration:.3s; animation-duration:.3s;}
+
+@-webkit-keyframes layer-bounceIn { /* 默认 */
+	0% {opacity: 0; -webkit-transform: scale(.5); transform: scale(.5)}
+	100% {opacity: 1; -webkit-transform: scale(1); transform: scale(1)}
+}
+@keyframes layer-bounceIn {
+	0% {opacity: 0; -webkit-transform: scale(.5); -ms-transform: scale(.5); transform: scale(.5)}
+	100% {opacity: 1; -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1)}
+}
+.layer-anim-00{-webkit-animation-name: layer-bounceIn;animation-name: layer-bounceIn}
+
+@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}
+
+@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}
+
+@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}
+
+@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);-ms-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}
+
+@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}
+
+@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}
+
+/* 标题栏 */
+.layui-layer-title{padding:0 80px 0 20px; height:42px; line-height:42px; border-bottom:1px solid #eee; font-size:14px; color:#333; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background-color: #F8F8F8; border-radius: 2px 2px 0 0;}
+.layui-layer-setwin{position:absolute; right:15px; *right:0; top:15px; font-size:0; line-height: initial;}
+.layui-layer-setwin a{position:relative; width: 16px; height:16px; margin-left:10px; font-size:12px; _overflow:hidden;}
+.layui-layer-setwin .layui-layer-min cite{position:absolute; width:14px; height:2px; left:0; top:50%; margin-top:-1px; background-color:#2E2D3C; cursor:pointer; _overflow:hidden;}
+.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA; }
+.layui-layer-setwin .layui-layer-max{background-position:-32px -40px;}
+.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px;}
+.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px;}
+.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px;}
+.layui-layer-setwin .layui-layer-close1{background-position: 1px -40px; cursor: pointer;}
+.layui-layer-setwin .layui-layer-close1:hover{opacity:0.7;}
+.layui-layer-setwin .layui-layer-close2{position:absolute; right:-28px; top:-28px; width:30px; height:30px;  margin-left:0; background-position:-149px -31px; *right:-18px; _display:none;}
+.layui-layer-setwin .layui-layer-close2:hover{ background-position:-180px -31px;}
+
+/* 按钮栏 */
+.layui-layer-btn{text-align: right; padding: 0 15px 12px; pointer-events: auto; user-select: none; -webkit-user-select: none;}
+.layui-layer-btn a{height: 28px; line-height: 28px; margin: 5px 5px 0; padding: 0 15px; border: 1px solid #dedede; background-color:#fff; color: #333; border-radius: 2px; font-weight:400; cursor:pointer; text-decoration: none;}
+.layui-layer-btn a:hover{opacity: 0.9; text-decoration: none;}
+.layui-layer-btn a:active{opacity: 0.8;}
+.layui-layer-btn .layui-layer-btn0{border-color: #1E9FFF; background-color: #1E9FFF; color:#fff;}
+.layui-layer-btn-l{text-align: left;}
+.layui-layer-btn-c{text-align: center;}
+
+/* 定制化 */
+.layui-layer-dialog{min-width:260px;}
+.layui-layer-dialog .layui-layer-content{position: relative; padding:20px; line-height:24px; word-break: break-all; overflow:hidden; font-size:14px; overflow-x: hidden; overflow-y:auto;}
+.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute; top:16px; left:15px; _left:-40px; width:30px; height:30px;}
+.layui-layer-ico1{background-position:-30px 0 }
+.layui-layer-ico2{background-position:-60px 0;}
+.layui-layer-ico3{background-position:-90px 0;}
+.layui-layer-ico4{background-position:-120px 0;}
+.layui-layer-ico5{background-position:-150px 0;}
+.layui-layer-ico6{background-position:-180px 0;}
+.layui-layer-rim{border:6px solid #8D8D8D; border:6px solid rgba(0,0,0,.3); border-radius:5px; box-shadow: none;}
+.layui-layer-msg{min-width:180px; border:1px solid #D3D4D3; box-shadow: none;}
+.layui-layer-hui{min-width:100px;  background-color: #000; filter:alpha(opacity=60); background-color: rgba(0,0,0,0.6); color: #fff; border:none;}
+.layui-layer-hui .layui-layer-content{padding:12px 25px; text-align:center;}
+.layui-layer-dialog .layui-layer-padding{padding: 20px 20px 20px 55px; text-align: left;}
+.layui-layer-page .layui-layer-content{position:relative; overflow:auto;}
+.layui-layer-page .layui-layer-btn,.layui-layer-iframe .layui-layer-btn{padding-top:10px;}
+.layui-layer-nobg{background:none;}
+.layui-layer-iframe iframe{display: block; width: 100%;}
+
+.layui-layer-loading{border-radius:100%; background:none;  box-shadow:none;  border:none;}
+.layui-layer-loading .layui-layer-content{width:60px; height:24px; background:url(loading-0.gif) no-repeat;}
+.layui-layer-loading .layui-layer-loading1{width:37px; height:37px; background:url(loading-1.gif) no-repeat;}
+.layui-layer-loading .layui-layer-loading2, .layui-layer-ico16{width:32px; height:32px; background:url(loading-2.gif) no-repeat;}
+.layui-layer-tips{background: none; box-shadow:none; border:none;}
+.layui-layer-tips .layui-layer-content{position: relative; line-height: 22px; min-width: 12px; padding: 8px 15px; font-size: 12px; _float:left; border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.2); background-color: #000; color: #fff;}
+.layui-layer-tips .layui-layer-close{right:-2px; top:-1px;}
+.layui-layer-tips i.layui-layer-TipsG{ position:absolute;  width:0; height:0; border-width:8px; border-color:transparent; border-style:dashed; *overflow:hidden;}
+.layui-layer-tips i.layui-layer-TipsT, .layui-layer-tips i.layui-layer-TipsB{left:5px; border-right-style:solid; border-right-color: #000;}
+.layui-layer-tips i.layui-layer-TipsT{bottom:-8px;}
+.layui-layer-tips i.layui-layer-TipsB{top:-8px;}
+.layui-layer-tips i.layui-layer-TipsR, .layui-layer-tips i.layui-layer-TipsL{top: 5px; border-bottom-style:solid; border-bottom-color: #000;}
+.layui-layer-tips i.layui-layer-TipsR{left:-8px;}
+.layui-layer-tips i.layui-layer-TipsL{right:-8px;}
+
+/* skin */
+.layui-layer-lan[type="dialog"]{min-width:280px;}
+.layui-layer-lan .layui-layer-title{background:#4476A7; color:#fff; border: none;}
+.layui-layer-lan .layui-layer-btn{padding: 5px 10px 10px; text-align: right; border-top:1px solid #E9E7E7}
+.layui-layer-lan .layui-layer-btn a{background: #fff; border-color: #E9E7E7; color: #333;}
+.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5;}
+.layui-layer-molv .layui-layer-title{background: #009f95; color:#fff; border: none;}
+.layui-layer-molv .layui-layer-btn a{background: #009f95; border-color: #009f95;}
+.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1;}
+
+
+/**
+ 
+ @Name: layer拓展样式
+ 
+ */
+
+.layui-layer-iconext{background:url(icon-ext.png) no-repeat;}
+
+/* prompt模式 */
+.layui-layer-prompt .layui-layer-input{display: block; width: 230px; height: 36px; margin: 0 auto; line-height: 30px; padding-left: 10px; border: 1px solid #e6e6e6; color: #333;}
+.layui-layer-prompt textarea.layui-layer-input{width: 300px; height: 100px; line-height: 20px; padding: 6px 10px;}
+.layui-layer-prompt .layui-layer-content{padding: 20px;}
+.layui-layer-prompt .layui-layer-btn{padding-top: 0;}
+
+/* tab模式 */
+.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4);}
+.layui-layer-tab .layui-layer-title{padding-left:0; overflow: visible;}
+.layui-layer-tab .layui-layer-title span{position:relative; float:left; min-width:80px; max-width:260px; padding:0 20px; text-align:center; cursor:default; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; cursor: pointer;}
+.layui-layer-tab .layui-layer-title span.layui-this{height: 43px; border-left: 1px solid #eee; border-right: 1px solid #eee; background-color: #fff; z-index: 10;}
+.layui-layer-tab .layui-layer-title span:first-child{border-left:none;}
+.layui-layer-tabmain{line-height:24px; clear:both;}
+.layui-layer-tabmain .layui-layer-tabli{display:none;}
+.layui-layer-tabmain .layui-layer-tabli.layui-this{display: block;}
+
+/* photo模式 */
+.layui-layer-photos{-webkit-animation-duration: .8s; animation-duration: .8s;}
+.layui-layer-photos .layui-layer-content{overflow:hidden; text-align: center;}
+.layui-layer-photos .layui-layer-phimg img{position: relative; width:100%; display: inline-block; *display:inline; *zoom:1; vertical-align:top;}
+.layui-layer-imguide,.layui-layer-imgbar{display:none;}
+.layui-layer-imgprev, .layui-layer-imgnext{position:absolute; top:50%; width:27px; _width:44px; height:44px;  margin-top:-22px; outline:none;blr:expression(this.onFocus=this.blur());}
+.layui-layer-imgprev{left:10px; background-position:-5px -5px; _background-position:-70px -5px;}
+.layui-layer-imgprev:hover{background-position:-33px -5px; _background-position:-120px -5px;}
+.layui-layer-imgnext{right:10px; _right:8px; background-position:-5px -50px; _background-position:-70px -50px;}
+.layui-layer-imgnext:hover{background-position:-33px -50px; _background-position:-120px -50px;}
+.layui-layer-imgbar{position:absolute; left:0; bottom:0; width:100%; height:32px; line-height:32px; background-color:rgba(0,0,0,.8); background-color:#000\9; filter:Alpha(opacity=80); color:#fff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; font-size:0;}
+.layui-layer-imgtit{/*position:absolute; left:20px;*/}
+.layui-layer-imgtit *{display:inline-block; *display:inline; *zoom:1; vertical-align:top; font-size:12px;}
+.layui-layer-imgtit a{max-width:65%;  text-overflow: ellipsis; overflow: hidden; white-space: nowrap; color:#fff;}
+.layui-layer-imgtit a:hover{color:#fff; text-decoration:underline;}
+.layui-layer-imgtit em{padding-left:10px; font-style: normal;}
+
+/* 关闭动画 */
+@-webkit-keyframes layer-bounceOut {
+  100% {opacity: 0; -webkit-transform: scale(.7); transform: scale(.7)}
+  30% {-webkit-transform: scale(1.05); transform: scale(1.05)}
+  0% {-webkit-transform: scale(1); transform: scale(1);}
+}
+@keyframes layer-bounceOut {
+  100% {opacity: 0; -webkit-transform: scale(.7); -ms-transform: scale(.7); transform: scale(.7);}
+  30% {-webkit-transform: scale(1.05); -ms-transform: scale(1.05); transform: scale(1.05);}
+  0% {-webkit-transform: scale(1); -ms-transform: scale(1);transform: scale(1);}
+}
+.layer-anim-close{-webkit-animation-name: layer-bounceOut; animation-name: layer-bounceOut; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-duration:.2s; animation-duration:.2s;}
+
+@media screen and (max-width: 1100px) {
+  .layui-layer-iframe{overflow-y: auto; -webkit-overflow-scrolling: touch;}
+}
+
+

BIN
WebRoot/view/efireAnalysis/layui/css/modules/layer/default/loading-0.gif


BIN
WebRoot/view/efireAnalysis/layui/css/modules/layer/default/loading-1.gif


BIN
WebRoot/view/efireAnalysis/layui/css/modules/layer/default/loading-2.gif


+ 94 - 0
WebRoot/view/efireAnalysis/layui/date.html

@@ -0,0 +1,94 @@
+
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>layDate 日期组件功能演示</title>
+  <meta name="renderer" content="webkit">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+  <link rel="stylesheet" href="css/layui.css" media="all">
+  <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
+</head>
+<body>
+
+
+  <div class="layui-card layadmin-header">
+    <div class="layui-breadcrumb" lay-filter="breadcrumb">
+      <a lay-href="">主页</a>
+      <a><cite>组件</cite></a>
+      <a><cite>日期时间</cite></a>
+    </div>
+  </div>
+  
+  <div class="layui-fluid">
+    <div class="layui-row layui-col-space15">
+      <div class="layui-col-md12">
+        <div class="layui-card">
+          <div class="layui-card-header">联动范围选择</div>
+          <div class="layui-card-body" pad15>
+            <div class="layui-form" wid100>
+              <div class="layui-form-item">
+                <div class="layui-inline">
+                  <label class="layui-form-label">活动日期</label>
+                  <div class="layui-input-inline">
+                    <input type="text" class="layui-input" id="test-laydate-start" placeholder="开始日期">
+                  </div>
+                  <div class="layui-form-mid">
+                    -
+                  </div>
+                  <div class="layui-input-inline">
+                    <input type="text" class="layui-input" id="test-laydate-end" placeholder="结束日期">
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  
+  <script src="layui.js"></script>  
+  <script>
+  layui.config({
+    base: '../../../layuiadmin/' //静态资源所在路径
+  }).extend({
+    index: 'lib/index' //主入口模块
+  }).use(['index', 'laydate'], function(){
+    var laydate = layui.laydate;
+    
+    //示例代码
+    
+    //开始日期
+    var insStart = laydate.render({
+      elem: '#test-laydate-start'
+      ,min: 0
+      ,done: function(value, date){
+        //更新结束日期的最小日期
+        insEnd.config.min = lay.extend({}, date, {
+          month: date.month - 1
+        });
+        
+        //自动弹出结束日期的选择器
+       insEnd.config.elem[0].focus();
+      }
+    });
+    
+    //结束日期
+    var insEnd = laydate.render({
+      elem: '#test-laydate-end'
+      ,min: 0
+      ,done: function(value, date){
+        //更新开始日期的最大日期
+        insStart.config.max = lay.extend({}, date, {
+          month: date.month - 1
+        });
+      }
+    });
+  });
+  </script>
+</body>
+</html>

BIN
WebRoot/view/efireAnalysis/layui/font/iconfont.eot


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 25 - 0
WebRoot/view/efireAnalysis/layui/font/iconfont.svg


BIN
WebRoot/view/efireAnalysis/layui/font/iconfont.ttf


BIN
WebRoot/view/efireAnalysis/layui/font/iconfont.woff


BIN
WebRoot/view/efireAnalysis/layui/font/iconfont.woff2


BIN
WebRoot/view/efireAnalysis/layui/images/face/0.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/1.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/10.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/11.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/12.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/13.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/14.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/15.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/16.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/17.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/18.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/19.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/2.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/20.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/21.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/22.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/23.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/24.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/25.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/26.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/27.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/28.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/29.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/3.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/30.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/31.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/32.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/33.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/34.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/35.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/36.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/37.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/38.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/39.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/4.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/40.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/41.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/42.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/43.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/44.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/45.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/46.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/47.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/48.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/49.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/5.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/50.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/51.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/52.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/53.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/54.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/55.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/56.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/57.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/58.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/59.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/6.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/60.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/61.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/62.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/63.gif


BIN
WebRoot/view/efireAnalysis/layui/images/face/64.gif


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است