This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch update-antdpro
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking-ui.git


The following commit(s) were added to refs/heads/update-antdpro by this push:
     new 7f8045e  Add routes
7f8045e is described below

commit 7f8045ee752e520627360a1b06764ebff47957ea
Author: gaohongtao <[email protected]>
AuthorDate: Mon Feb 26 15:51:58 2018 +0800

    Add routes
---
 public/alert.png                                  | Bin 0 -> 4326 bytes
 public/alert.svg                                  |   1 +
 public/app.jpg                                    | Bin 0 -> 8847 bytes
 public/app.svg                                    |   1 +
 public/css/iconfont.css                           |  71 ++++++++++++
 public/css/iconfont.eot                           | Bin 0 -> 5116 bytes
 public/css/iconfont.js                            |   1 +
 public/css/iconfont.svg                           |  57 ++++++++++
 public/css/iconfont.ttf                           | Bin 0 -> 4948 bytes
 public/css/iconfont.woff                          | Bin 0 -> 3216 bytes
 public/data.png                                   | Bin 0 -> 7245 bytes
 public/database.svg                               |   1 +
 public/favicon.png                                | Bin 6716 -> 1397 bytes
 public/img/logo/sw-2.png                          | Bin 0 -> 1397 bytes
 public/img/node/DUBBO.png                         | Bin 0 -> 3537 bytes
 public/img/node/FeignDefaultHttp.png              | Bin 0 -> 3892 bytes
 public/img/node/H2.png                            | Bin 0 -> 2681 bytes
 public/img/node/HPROSE.png                        | Bin 0 -> 2158 bytes
 public/img/node/HTTPCLIENT.png                    | Bin 0 -> 10718 bytes
 public/img/node/JETTY.png                         | Bin 0 -> 2838 bytes
 public/img/node/JETTYSERVER.png                   | Bin 0 -> 9889 bytes
 public/img/node/MONGODB.png                       | Bin 0 -> 4161 bytes
 public/img/node/MOTAN.png                         | Bin 0 -> 17288 bytes
 public/img/node/MYSQL.png                         | Bin 0 -> 4980 bytes
 public/img/node/NutzHttp.png                      | Bin 0 -> 12509 bytes
 public/img/node/NutzMvc.png                       | Bin 0 -> 14196 bytes
 public/img/node/OKHTTP.png                        | Bin 0 -> 4070 bytes
 public/img/node/Oracle.png                        | Bin 0 -> 4312 bytes
 public/img/node/REDIS.png                         | Bin 0 -> 5178 bytes
 public/img/node/RESIN.png                         | Bin 0 -> 15092 bytes
 public/img/node/SPRINGMVC.png                     | Bin 0 -> 11226 bytes
 public/img/node/STRUTS2.png                       | Bin 0 -> 11643 bytes
 public/img/node/UNDEFINED.png                     | Bin 0 -> 2918 bytes
 public/img/node/USER.png                          | Bin 0 -> 2444 bytes
 public/img/node/tomcat.png                        | Bin 0 -> 4302 bytes
 public/redis.svg                                  |   1 +
 public/service.svg                                |   1 +
 src/common/menu.js                                | 128 ++++------------------
 src/common/router.js                              |  94 +++-------------
 src/components/Charts/Area/index.js               |   2 +-
 src/components/Charts/{Area => Line}/index.js     |  29 +++--
 src/components/Charts/{Area => StackBar}/index.js |  37 ++-----
 src/components/Charts/equal.js                    |  17 +++
 src/components/Charts/index.js                    |   6 +
 src/components/Page/Ranking/index.js              |  40 +++----
 src/components/Page/index.js                      |   2 +-
 src/components/SiderMenu/SiderMenu.js             |   2 +-
 src/components/Topology/index.js                  |   2 +-
 src/index.ejs                                     |   3 +-
 src/layouts/BasicLayout.js                        |   2 +-
 src/routes/Dashboard/Dashboard.js                 |   2 +-
 src/routes/Server/Server.js                       |   2 +-
 src/routes/Service/Service.js                     |   2 +-
 53 files changed, 240 insertions(+), 264 deletions(-)

diff --git a/public/alert.png b/public/alert.png
new file mode 100644
index 0000000..e24e202
Binary files /dev/null and b/public/alert.png differ
diff --git a/public/alert.svg b/public/alert.svg
new file mode 100644
index 0000000..fc9270b
--- /dev/null
+++ b/public/alert.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 class="icon" 
width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg";><path d="M611.702 44.963l263.203 
149.544c60.979 35.06 98.35 99.414 98.154 168.892v299.056c0.037 69.658-37.691 
134.044-98.987 168.902l-262.37 149.36c-61.333 34.828-136.864 34.828-198.176 
0l-263.61-149.55c-61.285-34.859-99.008-99.246-98 [...]
\ No newline at end of file
diff --git a/public/app.jpg b/public/app.jpg
new file mode 100644
index 0000000..8d8166d
Binary files /dev/null and b/public/app.jpg differ
diff --git a/public/app.svg b/public/app.svg
new file mode 100644
index 0000000..4116c21
--- /dev/null
+++ b/public/app.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 class="icon" 
width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg";><path d="M357.885 49.289h285.276c173.87 0 
316.906 143.086 316.906 317.854v285.276c0 173.831-143.086 316.925-316.906 
316.925h-285.276c-174.749 0-317.854-143.086-317.854-316.925v-285.276c0-174.749 
143.086-317.854 317.854-317.854z" fill= [...]
\ No newline at end of file
diff --git a/public/css/iconfont.css b/public/css/iconfont.css
new file mode 100644
index 0000000..2ca477a
--- /dev/null
+++ b/public/css/iconfont.css
@@ -0,0 +1,71 @@
+
+@font-face {font-family: "iconfont";
+  src: url('iconfont.eot?t=1516507130714'); /* IE9*/
+  src: url('iconfont.eot?t=1516507130714#iefix') format('embedded-opentype'), 
/* IE6-IE8 */
+  
url('data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAyQAAsAAAAAE1QAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFZW7k3TY21hcAAAAYAAAACjAAACGEGg6XVnbHlmAAACJAAAB/cAAAwE8ttzW2hlYWQAAAocAAAALwAAADYQM6XyaGhlYQAACkwAAAAcAAAAJAfeA4tobXR4AAAKaAAAABQAAAAoJ+kAAGxvY2EAAAp8AAAAFgAAABYO5ApgbWF4cAAACpQAAAAeAAAAIAEkAS1uYW1lAAAKtAAAAUUAAAJtPlT+fXBvc3QAAAv8AAAAlAAAALLrxH1JeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/sc4gYG
 [...]
+  url('iconfont.ttf?t=1516507130714') format('truetype'), /* chrome, firefox, 
opera, Safari, Android, iOS 4.2+*/
+  url('iconfont.svg?t=1516507130714#iconfont') format('svg'); /* iOS 4.1- */
+}
+
+.iconfont {
+  display: inline-block;
+  font-style: normal;
+  vertical-align: baseline;
+  text-align: center;
+  text-transform: none;
+  line-height: 1;
+  text-rendering: optimizeLegibility;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  margin-right: 10px;
+}
+
+.ant-menu-item .iconfont,
+.ant-menu-submenu-title .iconfont {
+  min-width: 14px;
+  margin-right: 10px;
+  transition: font-size 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), margin 0.3s 
cubic-bezier(0.645, 0.045, 0.355, 1);
+}
+
+.ant-menu-item .iconfont + span,
+.ant-menu-submenu-title .iconfont + span {
+  transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), width 0.3s 
cubic-bezier(0.645, 0.045, 0.355, 1);
+  opacity: 1;
+}
+
+.ant-menu-inline-collapsed > .ant-menu-item .iconfont,
+.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list 
> .ant-menu-item .iconfont,
+.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title 
.iconfont {
+  font-size: 16px;
+  line-height: 40px;
+  margin: 0;
+}
+
+.ant-menu-inline-collapsed > .ant-menu-item .iconfont + span,
+.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list 
> .ant-menu-item .iconfont + span,
+.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title 
.iconfont + span {
+  max-width: 0;
+  display: inline-block;
+  opacity: 0;
+}
+
+.iconfont:before {
+  display: block;
+  font-family: "iconfont" !important;
+}
+
+.icon-server:before { content: "\ebe2"; }
+
+.icon-network:before { content: "\e64d"; }
+
+.icon-icon-traces-search:before { content: "\e626"; }
+
+.icon-APPyemiantubiaoSVGxinxileixing:before { content: "\e612"; }
+
+.icon-database1:before { content: "\e601"; }
+
+.icon-ALERT:before { content: "\e954"; }
+
+.icon-Corebusinessnetwork-copy:before { content: "\e600"; }
+
+.icon-soft_A_Redis:before { content: "\e773"; }
diff --git a/public/css/iconfont.eot b/public/css/iconfont.eot
new file mode 100644
index 0000000..fe2d08f
Binary files /dev/null and b/public/css/iconfont.eot differ
diff --git a/public/css/iconfont.js b/public/css/iconfont.js
new file mode 100644
index 0000000..a2c1a6c
--- /dev/null
+++ b/public/css/iconfont.js
@@ -0,0 +1 @@
+(function(window){var svgSprite='<svg><symbol id="icon-server" viewBox="0 0 
1024 1024"><path d="M73.142857 804.571429l585.142857 0 0-73.142857-585.142857 0 
0 73.142857zM73.142857 512l585.142857 0 0-73.142857-585.142857 0 0 
73.142857zM969.142857 
768q0-22.820571-16.018286-38.838857t-38.838857-16.018286-38.838857 
16.018286-16.018286 38.838857 16.018286 38.838857 38.838857 16.018286 
38.838857-16.018286 16.018286-38.838857zM73.142857 219.428571l585.142857 0 
0-73.142857-585.142857 0 0 73.14285 [...]
\ No newline at end of file
diff --git a/public/css/iconfont.svg b/public/css/iconfont.svg
new file mode 100644
index 0000000..8147aa1
--- /dev/null
+++ b/public/css/iconfont.svg
@@ -0,0 +1,57 @@
+<?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"; >
+<!--
+2013-9-30: Created.
+-->
+<svg>
+<metadata>
+Created by iconfont
+</metadata>
+<defs>
+
+<font id="iconfont" horiz-adv-x="1024" >
+  <font-face
+    font-family="iconfont"
+    font-weight="500"
+    font-stretch="normal"
+    units-per-em="1024"
+    ascent="896"
+    descent="-128"
+  />
+    <missing-glyph />
+    
+    <glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
+d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 
-45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 
9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 
-16t-31.5 -4.5q-14 -1 -29.5 -0.5
+t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 
23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 
0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 
-25t-3 -15t1 -14.5
+t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 
34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 
51.5 -14.5t20.5 -52.5v-227h-327z" />
+    
+
+    
+    <glyph glyph-name="server" unicode="&#60386;" d="M73.142857 
91.428571l585.142857 0 0 73.142857-585.142857 0 0-73.142857zM73.142857 
384l585.142857 0 0 73.142857-585.142857 0 0-73.142857zM969.142857 128q0 
22.820571-16.018286 38.838857t-38.838857 
16.018286-38.838857-16.018286-16.018286-38.838857 16.018286-38.838857 
38.838857-16.018286 38.838857 16.018286 16.018286 38.838857zM73.142857 
676.571429l585.142857 0 0 73.142857-585.142857 0 0-73.142857zM969.142857 
420.571429q0 22.820571-16.0182 [...]
+
+    
+    <glyph glyph-name="network" unicode="&#58957;" d="M912.290909 
896c-61.607564 0-111.709091-50.101527-111.709091-111.709091 0-19.269818 
4.896582-37.403927 13.5168-53.248l-182.998109-182.998109a147.884218 147.884218 
0 0 1-182.365091 0.018618l-142.782836 142.782837A73.485964 73.485964 0 0 1 
316.509091 728.436364c0 41.071709-33.401018 74.472727-74.472727 
74.472727S167.563636 769.508073 167.563636 728.436364s33.401018-74.472727 
74.472728-74.472728c13.777455 0 26.512291 4.002909 37.590109 1 [...]
+
+    
+    <glyph glyph-name="icon-traces-search" unicode="&#58918;" d="M738.312 
727.526H219.595c-47.744 0-86.458-38.798-86.458-86.665v-433.359c0-47.856 
38.714-86.661 86.458-86.661h352.193c-46.896 34.415-77.48 90.879-77.48 154.702 0 
104.829 82.534 189.823 184.36 189.823 59.493 0 112.39-29.023 
146.094-74.068V640.861c0 47.867-38.705 86.665-86.45 86.665zM357.951 
396.561H229.87c-19.283 0-34.914 15.007-34.914 33.518 0 18.504 15.631 33.503 
34.914 33.503h128.081c19.284 0 34.909-15.003 34.909-33.503 0- [...]
+
+    
+    <glyph glyph-name="APPyemiantubiaoSVGxinxileixing" unicode="&#58898;" 
d="M357.885 846.711h285.276c173.87 0 316.906-143.086 
316.906-317.854v-285.276c0-173.831-143.086-316.925-316.906-316.925h-285.276c-174.749
 0-317.854 143.086-317.854 316.925v285.276c0 174.749 143.086 317.854 317.854 
317.854zM708.284 144.029h-138.54c-18.985 0-35.317 15.371-35.317 34.429v138.54c0 
18.985 16.279 35.317 35.317 35.317h138.54c18.985 0 34.429-16.326 
34.429-35.317v-138.54c0-18.985-15.381-34.429-34.429-34.429z [...]
+
+    
+    <glyph glyph-name="database1" unicode="&#58881;" d="M896.483 
704.532v-64.081c0-70.585-172.214-128.161-384.485-128.161-212.267 0-384.484 
57.577-384.484 128.161v64.081c0 70.584 172.216 128.161 384.484 128.161 212.271 
0 384.485-57.577 384.485-128.161zM896.483 
533.319v-85.109c0-70.584-172.214-128.161-384.485-128.161-212.267 0-384.484 
57.577-384.484 128.161v85.109c82.608-58.074 233.795-85.109 384.484-85.109 
150.691 0 301.878 27.036 384.485 85.109zM896.483 
341.077v-85.11c0-70.585-172.214-1 [...]
+
+    
+    <glyph glyph-name="ALERT" unicode="&#59732;" d="M611.702 
851.037l263.203-149.544c60.979-35.06 98.35-99.414 
98.154-168.892v-299.056c0.037-69.658-37.691-134.044-98.987-168.902l-262.37-149.36c-61.333-34.828-136.864-34.828-198.176
 0l-263.61 149.55c-61.285 34.859-99.008 99.246-98.977 168.915V532.601c-0.032 
69.657 37.691 134.033 98.977 168.892l263.61 149.544c61.312 34.834 136.843 
34.834 198.176 0M799.555 370.858h-75.163v12.625c-0.063 7.043-0.449 14.072-1.224 
21.083h76.387c9.521 0 17.24-7.5 [...]
+
+    
+    <glyph glyph-name="Corebusinessnetwork-copy" unicode="&#58880;" 
d="M151.3048309167421 25.98617983100155c199.20612239587413-199.20612239587422 
522.1842157706417-199.20612239587433 721.3924594868594 0.002121320343348998 
199.2068295026554 199.20682950265532 199.20682950265544 522.1849228774227 
0.0007071067813058107 721.391045273297C673.4897537941649 946.5875901408598 
350.5109533126164 946.5882972476411 151.30412380996103 
747.3814677449857-47.90341279947552 548.1739311355491-47.903412799 [...]
+
+    
+    <glyph glyph-name="soft_A_Redis" unicode="&#59251;" d="M583.66976 
610.83136l-229.83168-23.296a2.19136 2.19136 0 0 1-1.84832-1.78176 2.14016 
2.14016 0 0 1 1.28-2.27328l179.12832-73.07776c0.28672-0.07168 0.49664-0.14336 
0.77824-0.14336 0.77312 0 1.4848 0.42496 1.83808 1.13664l50.65216 
96.45056c0.34816 0.63488 0.34816 1.48992-0.08192 2.05312a2.08896 2.08896 0 0 
1-1.91488 0.93184zM880.75776 676.59776l-139.99104 56.3968a1.98144 1.98144 0 0 
1-1.56672 0l-124.14464-49.28512a2.01216 2.01216 0 [...]
+
+    
+
+
+  </font>
+</defs></svg>
diff --git a/public/css/iconfont.ttf b/public/css/iconfont.ttf
new file mode 100644
index 0000000..d9f87fa
Binary files /dev/null and b/public/css/iconfont.ttf differ
diff --git a/public/css/iconfont.woff b/public/css/iconfont.woff
new file mode 100644
index 0000000..a4c5201
Binary files /dev/null and b/public/css/iconfont.woff differ
diff --git a/public/data.png b/public/data.png
new file mode 100644
index 0000000..7c15d62
Binary files /dev/null and b/public/data.png differ
diff --git a/public/database.svg b/public/database.svg
new file mode 100644
index 0000000..7fc1526
--- /dev/null
+++ b/public/database.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 class="icon" 
width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg";><path d="M896.483256 191.467753v64.081481c0 
70.584592-172.214247 128.160915-384.484791 128.160915-212.267475 
0-384.483768-57.577347-384.483768-128.160915v-64.081481c0-70.583568 
172.216293-128.160915 384.483768-128.160915 212.270545 0  [...]
\ No newline at end of file
diff --git a/public/favicon.png b/public/favicon.png
index cc27768..7606a35 100644
Binary files a/public/favicon.png and b/public/favicon.png differ
diff --git a/public/img/logo/sw-2.png b/public/img/logo/sw-2.png
new file mode 100644
index 0000000..7606a35
Binary files /dev/null and b/public/img/logo/sw-2.png differ
diff --git a/public/img/node/DUBBO.png b/public/img/node/DUBBO.png
new file mode 100644
index 0000000..c388222
Binary files /dev/null and b/public/img/node/DUBBO.png differ
diff --git a/public/img/node/FeignDefaultHttp.png 
b/public/img/node/FeignDefaultHttp.png
new file mode 100644
index 0000000..b727c0f
Binary files /dev/null and b/public/img/node/FeignDefaultHttp.png differ
diff --git a/public/img/node/H2.png b/public/img/node/H2.png
new file mode 100644
index 0000000..29e78b1
Binary files /dev/null and b/public/img/node/H2.png differ
diff --git a/public/img/node/HPROSE.png b/public/img/node/HPROSE.png
new file mode 100644
index 0000000..a90bd98
Binary files /dev/null and b/public/img/node/HPROSE.png differ
diff --git a/public/img/node/HTTPCLIENT.png b/public/img/node/HTTPCLIENT.png
new file mode 100644
index 0000000..00f158f
Binary files /dev/null and b/public/img/node/HTTPCLIENT.png differ
diff --git a/public/img/node/JETTY.png b/public/img/node/JETTY.png
new file mode 100644
index 0000000..85d8167
Binary files /dev/null and b/public/img/node/JETTY.png differ
diff --git a/public/img/node/JETTYSERVER.png b/public/img/node/JETTYSERVER.png
new file mode 100644
index 0000000..31cafa8
Binary files /dev/null and b/public/img/node/JETTYSERVER.png differ
diff --git a/public/img/node/MONGODB.png b/public/img/node/MONGODB.png
new file mode 100644
index 0000000..93d9a01
Binary files /dev/null and b/public/img/node/MONGODB.png differ
diff --git a/public/img/node/MOTAN.png b/public/img/node/MOTAN.png
new file mode 100644
index 0000000..ff57bf9
Binary files /dev/null and b/public/img/node/MOTAN.png differ
diff --git a/public/img/node/MYSQL.png b/public/img/node/MYSQL.png
new file mode 100644
index 0000000..34530b4
Binary files /dev/null and b/public/img/node/MYSQL.png differ
diff --git a/public/img/node/NutzHttp.png b/public/img/node/NutzHttp.png
new file mode 100644
index 0000000..506cfad
Binary files /dev/null and b/public/img/node/NutzHttp.png differ
diff --git a/public/img/node/NutzMvc.png b/public/img/node/NutzMvc.png
new file mode 100644
index 0000000..dce0725
Binary files /dev/null and b/public/img/node/NutzMvc.png differ
diff --git a/public/img/node/OKHTTP.png b/public/img/node/OKHTTP.png
new file mode 100644
index 0000000..c4c19a9
Binary files /dev/null and b/public/img/node/OKHTTP.png differ
diff --git a/public/img/node/Oracle.png b/public/img/node/Oracle.png
new file mode 100644
index 0000000..7b1cd56
Binary files /dev/null and b/public/img/node/Oracle.png differ
diff --git a/public/img/node/REDIS.png b/public/img/node/REDIS.png
new file mode 100644
index 0000000..5c6a5a4
Binary files /dev/null and b/public/img/node/REDIS.png differ
diff --git a/public/img/node/RESIN.png b/public/img/node/RESIN.png
new file mode 100644
index 0000000..aa0eed3
Binary files /dev/null and b/public/img/node/RESIN.png differ
diff --git a/public/img/node/SPRINGMVC.png b/public/img/node/SPRINGMVC.png
new file mode 100644
index 0000000..626f832
Binary files /dev/null and b/public/img/node/SPRINGMVC.png differ
diff --git a/public/img/node/STRUTS2.png b/public/img/node/STRUTS2.png
new file mode 100644
index 0000000..5f1d499
Binary files /dev/null and b/public/img/node/STRUTS2.png differ
diff --git a/public/img/node/UNDEFINED.png b/public/img/node/UNDEFINED.png
new file mode 100644
index 0000000..3e1d681
Binary files /dev/null and b/public/img/node/UNDEFINED.png differ
diff --git a/public/img/node/USER.png b/public/img/node/USER.png
new file mode 100644
index 0000000..a195d8f
Binary files /dev/null and b/public/img/node/USER.png differ
diff --git a/public/img/node/tomcat.png b/public/img/node/tomcat.png
new file mode 100644
index 0000000..5c4a1a3
Binary files /dev/null and b/public/img/node/tomcat.png differ
diff --git a/public/redis.svg b/public/redis.svg
new file mode 100644
index 0000000..e634317
--- /dev/null
+++ b/public/redis.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 class="icon" 
width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg";><path d="M583.66976 285.16864l-229.83168 
23.296a2.19136 2.19136 0 0 0-1.84832 1.78176 2.14016 2.14016 0 0 0 1.28 
2.27328l179.12832 73.07776c0.28672 0.07168 0.49664 0.14336 0.77824 0.14336 
0.77312 0 1.4848-0.42496 1.83808-1.13664l50.65 [...]
\ No newline at end of file
diff --git a/public/service.svg b/public/service.svg
new file mode 100644
index 0000000..8d2daf7
--- /dev/null
+++ b/public/service.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 class="icon" 
width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg";><path d="M151.3048309167421 
870.0138201689984c199.20612239587413 199.20612239587422 522.1842157706417 
199.20612239587433 721.3924594868594-0.002121320343348998 
199.2068295026554-199.20682950265532 199.20682950265544-522.1849228774227  [...]
\ No newline at end of file
diff --git a/src/common/menu.js b/src/common/menu.js
index 75f47dc..6df5e05 100644
--- a/src/common/menu.js
+++ b/src/common/menu.js
@@ -1,123 +1,33 @@
 import { isUrl } from '../utils/utils';
 
 const menuData = [{
-  name: 'dashboard',
+  name: 'Dashboard',
   icon: 'dashboard',
   path: 'dashboard',
-  children: [{
-    name: '分析页',
-    path: 'analysis',
-  }, {
-    name: '监控页',
-    path: 'monitor',
-  }, {
-    name: '工作台',
-    path: 'workplace',
-    // hideInMenu: true,
-  }],
 }, {
-  name: '表单页',
-  icon: 'form',
-  path: 'form',
-  children: [{
-    name: '基础表单',
-    path: 'basic-form',
-  }, {
-    name: '分步表单',
-    path: 'step-form',
-  }, {
-    name: '高级表单',
-    authority: 'admin',
-    path: 'advanced-form',
-  }],
+  name: 'Topology',
+  icon: 'iconfont icon-network',
+  path: 'topology',
 }, {
-  name: '列表页',
-  icon: 'table',
-  path: 'list',
-  children: [{
-    name: '查询表格',
-    path: 'table-list',
-  }, {
-    name: '标准列表',
-    path: 'basic-list',
-  }, {
-    name: '卡片列表',
-    path: 'card-list',
-  }, {
-    name: '搜索列表',
-    path: 'search',
-    children: [{
-      name: '搜索列表(文章)',
-      path: 'articles',
-    }, {
-      name: '搜索列表(项目)',
-      path: 'projects',
-    }, {
-      name: '搜索列表(应用)',
-      path: 'applications',
-    }],
-  }],
+  name: 'Application',
+  icon: 'appstore',
+  path: 'application',
 }, {
-  name: '详情页',
-  icon: 'profile',
-  path: 'profile',
-  children: [{
-    name: '基础详情页',
-    path: 'basic',
-  }, {
-    name: '高级详情页',
-    path: 'advanced',
-    authority: 'admin',
-  }],
+  name: 'Server',
+  icon: 'iconfont icon-server',
+  path: 'server',
 }, {
-  name: '结果页',
-  icon: 'check-circle-o',
-  path: 'result',
-  children: [{
-    name: '成功',
-    path: 'success',
-  }, {
-    name: '失败',
-    path: 'fail',
-  }],
+  name: 'Service',
+  icon: 'api',
+  path: 'service',
 }, {
-  name: '异常页',
-  icon: 'warning',
-  path: 'exception',
-  children: [{
-    name: '403',
-    path: '403',
-  }, {
-    name: '404',
-    path: '404',
-  }, {
-    name: '500',
-    path: '500',
-  }, {
-    name: '触发异常',
-    path: 'trigger',
-    hideInMenu: true,
-  }],
+  name: 'Trace',
+  icon: 'iconfont icon-icon-traces-search',
+  path: 'trace',
 }, {
-  name: '账户',
-  icon: 'user',
-  path: 'user',
-  authority: 'guest',
-  children: [{
-    name: '登录',
-    path: 'login',
-  }, {
-    name: '注册',
-    path: 'register',
-  }, {
-    name: '注册结果',
-    path: 'register-result',
-  }],
-}, {
-  name: '使用文档',
-  icon: 'book',
-  path: 'http://pro.ant.design/docs/getting-started',
-  target: '_blank',
+  name: 'Alarm',
+  icon: 'iconfont icon-ALERT',
+  path: 'alarm',
 }];
 
 function formatter(data, parentPath = '', parentAuthority) {
diff --git a/src/common/router.js b/src/common/router.js
index 5df2477..de25002 100644
--- a/src/common/router.js
+++ b/src/common/router.js
@@ -73,96 +73,30 @@ export const getRouterData = (app) => {
     '/': {
       component: dynamicWrapper(app, ['user', 'login'], () => 
import('../layouts/BasicLayout')),
     },
-    '/dashboard/analysis': {
-      component: dynamicWrapper(app, ['chart'], () => 
import('../routes/Dashboard/Analysis')),
+    '/dashboard': {
+      component: dynamicWrapper(app, ['dashboard'], () => 
import('../routes/Dashboard/Dashboard')),
     },
-    '/dashboard/monitor': {
-      component: dynamicWrapper(app, ['monitor'], () => 
import('../routes/Dashboard/Monitor')),
+    '/topology': {
+      component: dynamicWrapper(app, ['topology'], () => 
import('../routes/Topology/Topology')),
     },
-    '/dashboard/workplace': {
-      component: dynamicWrapper(app, ['project', 'activities', 'chart'], () => 
import('../routes/Dashboard/Workplace')),
-      // hideInBreadcrumb: true,
-      // name: '工作台',
-      // authority: 'admin',
+    '/application': {
+      component: dynamicWrapper(app, ['application'], () => 
import('../routes/Application/Application')),
     },
-    '/form/basic-form': {
-      component: dynamicWrapper(app, ['form'], () => 
import('../routes/Forms/BasicForm')),
+    '/server': {
+      component: dynamicWrapper(app, ['server'], () => 
import('../routes/Server/Server')),
     },
-    '/form/step-form': {
-      component: dynamicWrapper(app, ['form'], () => 
import('../routes/Forms/StepForm')),
+    '/service': {
+      component: dynamicWrapper(app, ['service'], () => 
import('../routes/Service/Service')),
     },
-    '/form/step-form/info': {
-      component: dynamicWrapper(app, ['form'], () => 
import('../routes/Forms/StepForm/Step1')),
+    '/trace': {
+      component: dynamicWrapper(app, ['trace'], () => 
import('../routes/Trace/Trace')),
     },
-    '/form/step-form/confirm': {
-      component: dynamicWrapper(app, ['form'], () => 
import('../routes/Forms/StepForm/Step2')),
-    },
-    '/form/step-form/result': {
-      component: dynamicWrapper(app, ['form'], () => 
import('../routes/Forms/StepForm/Step3')),
-    },
-    '/form/advanced-form': {
-      component: dynamicWrapper(app, ['form'], () => 
import('../routes/Forms/AdvancedForm')),
-    },
-    '/list/table-list': {
-      component: dynamicWrapper(app, ['rule'], () => 
import('../routes/List/TableList')),
-    },
-    '/list/basic-list': {
-      component: dynamicWrapper(app, ['list'], () => 
import('../routes/List/BasicList')),
-    },
-    '/list/card-list': {
-      component: dynamicWrapper(app, ['list'], () => 
import('../routes/List/CardList')),
-    },
-    '/list/search': {
-      component: dynamicWrapper(app, ['list'], () => 
import('../routes/List/List')),
-    },
-    '/list/search/projects': {
-      component: dynamicWrapper(app, ['list'], () => 
import('../routes/List/Projects')),
-    },
-    '/list/search/applications': {
-      component: dynamicWrapper(app, ['list'], () => 
import('../routes/List/Applications')),
-    },
-    '/list/search/articles': {
-      component: dynamicWrapper(app, ['list'], () => 
import('../routes/List/Articles')),
-    },
-    '/profile/basic': {
-      component: dynamicWrapper(app, ['profile'], () => 
import('../routes/Profile/BasicProfile')),
-    },
-    '/profile/advanced': {
-      component: dynamicWrapper(app, ['profile'], () => 
import('../routes/Profile/AdvancedProfile')),
-    },
-    '/result/success': {
-      component: dynamicWrapper(app, [], () => 
import('../routes/Result/Success')),
-    },
-    '/result/fail': {
-      component: dynamicWrapper(app, [], () => 
import('../routes/Result/Error')),
-    },
-    '/exception/403': {
-      component: dynamicWrapper(app, [], () => 
import('../routes/Exception/403')),
-    },
-    '/exception/404': {
-      component: dynamicWrapper(app, [], () => 
import('../routes/Exception/404')),
-    },
-    '/exception/500': {
-      component: dynamicWrapper(app, [], () => 
import('../routes/Exception/500')),
-    },
-    '/exception/trigger': {
-      component: dynamicWrapper(app, ['error'], () => 
import('../routes/Exception/triggerException')),
+    '/alarm': {
+      component: dynamicWrapper(app, ['alarm'], () => 
import('../routes/Alarm/Alarm')),
     },
     '/user': {
       component: dynamicWrapper(app, [], () => 
import('../layouts/UserLayout')),
     },
-    '/user/login': {
-      component: dynamicWrapper(app, ['login'], () => 
import('../routes/User/Login')),
-    },
-    '/user/register': {
-      component: dynamicWrapper(app, ['register'], () => 
import('../routes/User/Register')),
-    },
-    '/user/register-result': {
-      component: dynamicWrapper(app, [], () => 
import('../routes/User/RegisterResult')),
-    },
-    // '/user/:id': {
-    //   component: dynamicWrapper(app, [], () => 
import('../routes/User/SomeComponent')),
-    // },
   };
   // Get name from ./menu.js or just set it in the router data.
   const menuData = getFlatMenuData(getMenuData());
diff --git a/src/components/Charts/Area/index.js 
b/src/components/Charts/Area/index.js
index a15f5d6..b87fd9f 100644
--- a/src/components/Charts/Area/index.js
+++ b/src/components/Charts/Area/index.js
@@ -1,5 +1,5 @@
 import React, { PureComponent } from 'react';
-import G2 from 'g2';
+import G2 from '@antv/g2';
 import Debounce from 'lodash-decorators/debounce';
 import Bind from 'lodash-decorators/bind';
 import equal from '../equal';
diff --git a/src/components/Charts/Area/index.js 
b/src/components/Charts/Line/index.js
similarity index 78%
copy from src/components/Charts/Area/index.js
copy to src/components/Charts/Line/index.js
index a15f5d6..483cb2b 100644
--- a/src/components/Charts/Area/index.js
+++ b/src/components/Charts/Line/index.js
@@ -1,13 +1,13 @@
 import React, { PureComponent } from 'react';
-import G2 from 'g2';
+import G2 from '@antv/g2';
 import Debounce from 'lodash-decorators/debounce';
 import Bind from 'lodash-decorators/bind';
 import equal from '../equal';
 import styles from '../index.less';
 
-class Area extends PureComponent {
+class Line extends PureComponent {
   static defaultProps = {
-    limitColor: 'rgb(255, 144, 24)',
+    borderColor: 'rgb(24, 144, 255)',
     color: 'rgb(24, 144, 255)',
   };
   componentDidMount() {
@@ -50,7 +50,7 @@ class Area extends PureComponent {
       height = 0,
       fit = true,
       margin = [32, 60, 32, 60],
-      limitColor,
+      borderColor,
       color,
     } = this.props;
 
@@ -90,7 +90,7 @@ class Area extends PureComponent {
     const dataConfig = {
       x: {
         type: 'cat',
-        tickCount: 3,
+        tickCount: 5,
         range: [0, 1],
       },
       y: {
@@ -98,18 +98,15 @@ class Area extends PureComponent {
       },
     };
     const view = chart.createView();
-    const offset = Math.floor(data.length / 2);
-    const xData = data.slice(0, offset);
-    const yData = data.slice(offset).map((v, i) => ({ ...v, y: v.y - 
xData[i].y }));
-    view.source(yData.concat(xData), dataConfig);
-    view.areaStack().position('x*y').color('type', [limitColor, 
color]).shape('smooth')
-      .style({ fillOpacity: 0.2 });
-    view.tooltip(false);
-    view.axis(false);
+    view.source(data, dataConfig);
+    view.line().position('x*y').color(borderColor).shape('smooth')
+      .size(2);
     const view2 = chart.createView();
     view2.source(data, dataConfig);
-    view2.line().position('x*y').color('type', [color, 
limitColor]).shape('smooth')
-      .size(2);
+    view2.area().position('x*y').color(color).shape('smooth')
+      .style({ fillOpacity: 0.2 });
+    view2.tooltip(false);
+    view2.axis(false);
     chart.render();
 
     this.chart = chart;
@@ -129,4 +126,4 @@ class Area extends PureComponent {
   }
 }
 
-export default Area;
+export default Line;
diff --git a/src/components/Charts/Area/index.js 
b/src/components/Charts/StackBar/index.js
similarity index 68%
copy from src/components/Charts/Area/index.js
copy to src/components/Charts/StackBar/index.js
index a15f5d6..132bc3e 100644
--- a/src/components/Charts/Area/index.js
+++ b/src/components/Charts/StackBar/index.js
@@ -1,5 +1,5 @@
 import React, { PureComponent } from 'react';
-import G2 from 'g2';
+import G2 from '@antv/g2';
 import Debounce from 'lodash-decorators/debounce';
 import Bind from 'lodash-decorators/bind';
 import equal from '../equal';
@@ -7,8 +7,8 @@ import styles from '../index.less';
 
 class Area extends PureComponent {
   static defaultProps = {
-    limitColor: 'rgb(255, 144, 24)',
-    color: 'rgb(24, 144, 255)',
+    limitColor: 'rgb(255, 181, 102)',
+    color: 'rgb(102, 181, 255)',
   };
   componentDidMount() {
     this.renderChart(this.props.data);
@@ -77,39 +77,16 @@ class Area extends PureComponent {
     chart.axis('y', {
       title: false,
     });
-    chart.tooltip({
-      crosshairs: {
-        type: 'line',
-      },
-      title: null,
-      map: {
-        name: 'x',
-        value: 'y',
-      },
-    });
     const dataConfig = {
       x: {
         type: 'cat',
-        tickCount: 3,
-        range: [0, 1],
-      },
-      y: {
-        min: 0,
+        tickCount: 5,
       },
     };
     const view = chart.createView();
-    const offset = Math.floor(data.length / 2);
-    const xData = data.slice(0, offset);
-    const yData = data.slice(offset).map((v, i) => ({ ...v, y: v.y - 
xData[i].y }));
-    view.source(yData.concat(xData), dataConfig);
-    view.areaStack().position('x*y').color('type', [limitColor, 
color]).shape('smooth')
-      .style({ fillOpacity: 0.2 });
-    view.tooltip(false);
-    view.axis(false);
-    const view2 = chart.createView();
-    view2.source(data, dataConfig);
-    view2.line().position('x*y').color('type', [color, 
limitColor]).shape('smooth')
-      .size(2);
+    view.source(data, dataConfig);
+    view.intervalStack().position('x*y').color('type', [limitColor, color])
+      .style({ fillOpacity: 1 });
     chart.render();
 
     this.chart = chart;
diff --git a/src/components/Charts/equal.js b/src/components/Charts/equal.js
new file mode 100644
index 0000000..ff3a4c7
--- /dev/null
+++ b/src/components/Charts/equal.js
@@ -0,0 +1,17 @@
+/* eslint eqeqeq: 0 */
+
+function equal(old, target) {
+  let r = true;
+  for (const prop in old) {
+    if (typeof old[prop] === 'function' && typeof target[prop] === 'function') 
{
+      if (old[prop].toString() != target[prop].toString()) {
+        r = false;
+      }
+    } else if (old[prop] != target[prop]) {
+      r = false;
+    }
+  }
+  return r;
+}
+
+export default equal;
diff --git a/src/components/Charts/index.js b/src/components/Charts/index.js
index 0fbf014..fed8db9 100644
--- a/src/components/Charts/index.js
+++ b/src/components/Charts/index.js
@@ -1,10 +1,12 @@
 import numeral from 'numeral';
 import './g2';
 import ChartCard from './ChartCard';
+import Area from './Area';
 import Bar from './Bar';
 import Pie from './Pie';
 import Radar from './Radar';
 import Gauge from './Gauge';
+import Line from './Line';
 import MiniArea from './MiniArea';
 import MiniBar from './MiniBar';
 import MiniProgress from './MiniProgress';
@@ -12,6 +14,7 @@ import Field from './Field';
 import WaterWave from './WaterWave';
 import TagCloud from './TagCloud';
 import TimelineChart from './TimelineChart';
+import StackBar from './StackBar';
 
 const yuan = val => `&yen; ${numeral(val).format('0,0')}`;
 
@@ -29,4 +32,7 @@ export {
   WaterWave,
   TagCloud,
   TimelineChart,
+  Line,
+  Area,
+  StackBar,
 };
diff --git a/src/components/Page/Ranking/index.js 
b/src/components/Page/Ranking/index.js
index e4400d3..caa8e88 100644
--- a/src/components/Page/Ranking/index.js
+++ b/src/components/Page/Ranking/index.js
@@ -2,28 +2,28 @@ import React, { PureComponent } from 'react';
 import { List, Avatar } from 'antd';
 
 export default class Ranking extends PureComponent {
-
   render() {
     let index = 0;
     const { data, title, content, unit } = this.props;
-    return (<List
-      size="small"
-      itemLayout="horizontal"
-      dataSource={data}
-      renderItem={item => (
-        <List.Item>
-          <List.Item.Meta
-            avatar={
-              <Avatar
-                style={{ color: '#ff3333', backgroundColor: '#ffb84d' }}
-              >
-                {(() => { index += 1; return index; })()}
-              </Avatar>}
-            title={item[title]}
-            description={`${item[content]} ${unit}`}
-          />
-        </List.Item>
-      )}
-    />);
+    return (
+      <List
+        size="small"
+        itemLayout="horizontal"
+        dataSource={data}
+        renderItem={item => (
+          <List.Item>
+            <List.Item.Meta
+              avatar={
+                <Avatar
+                  style={{ color: '#ff3333', backgroundColor: '#ffb84d' }}
+                >
+                  {(() => { index += 1; return index; })()}
+                </Avatar>}
+              title={item[title]}
+              description={`${item[content]} ${unit}`}
+            />
+          </List.Item>
+        )}
+      />);
   }
 }
diff --git a/src/components/Page/index.js b/src/components/Page/index.js
index 983d127..137d8bc 100644
--- a/src/components/Page/index.js
+++ b/src/components/Page/index.js
@@ -2,7 +2,7 @@ import Panel from './Panel';
 import Search from './Search';
 import Ranking from './Ranking';
 
-export default {
+export {
   Panel,
   Search,
   Ranking,
diff --git a/src/components/SiderMenu/SiderMenu.js 
b/src/components/SiderMenu/SiderMenu.js
index 88abded..54e4e22 100644
--- a/src/components/SiderMenu/SiderMenu.js
+++ b/src/components/SiderMenu/SiderMenu.js
@@ -16,7 +16,7 @@ const getIcon = (icon) => {
     return <img src={icon} alt="icon" className={styles.icon} />;
   }
   if (typeof icon === 'string') {
-    return <Icon type={icon} />;
+    return (icon.indexOf('iconfont') > -1) ? <i className={icon} /> : <Icon 
type={icon} />;
   }
   return icon;
 };
diff --git a/src/components/Topology/index.js b/src/components/Topology/index.js
index 96bb101..983cc23 100644
--- a/src/components/Topology/index.js
+++ b/src/components/Topology/index.js
@@ -1,7 +1,7 @@
 import AppTopology from './AppTopology';
 import ServiceTopology from './ServiceTopology';
 
-export default {
+export {
   AppTopology,
   ServiceTopology,
 };
diff --git a/src/index.ejs b/src/index.ejs
index fc8bf98..1f0c7fc 100644
--- a/src/index.ejs
+++ b/src/index.ejs
@@ -5,8 +5,9 @@
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1">
-  <title>Ant Design Pro</title>
+  <title>Sky Walking</title>
   <link rel="icon" href="/favicon.png" type="image/x-icon">
+  <link rel="stylesheet" href="css/iconfont.css" />
 </head>
 
 <body>
diff --git a/src/layouts/BasicLayout.js b/src/layouts/BasicLayout.js
index 3e76189..8ec20e9 100644
--- a/src/layouts/BasicLayout.js
+++ b/src/layouts/BasicLayout.js
@@ -103,7 +103,7 @@ class BasicLayout extends React.PureComponent {
       urlParams.searchParams.delete('redirect');
       window.history.replaceState(null, 'redirect', urlParams.href);
     } else {
-      return '/dashboard/analysis';
+      return '/dashboard';
     }
     return redirect;
   }
diff --git a/src/routes/Dashboard/Dashboard.js 
b/src/routes/Dashboard/Dashboard.js
index c27079d..416f396 100644
--- a/src/routes/Dashboard/Dashboard.js
+++ b/src/routes/Dashboard/Dashboard.js
@@ -4,7 +4,7 @@ import { Row, Col, Card } from 'antd';
 import {
   ChartCard, Pie, MiniArea, Field,
 } from '../../components/Charts';
-import { timeRange } from '../../utils/utils';
+import { timeRange } from '../../utils/time';
 import { Panel, Ranking } from '../../components/Page';
 
 @connect(state => ({
diff --git a/src/routes/Server/Server.js b/src/routes/Server/Server.js
index 835f05b..43322fb 100644
--- a/src/routes/Server/Server.js
+++ b/src/routes/Server/Server.js
@@ -5,7 +5,7 @@ import {
   ChartCard, MiniArea, MiniBar, Line, Area, StackBar,
 } from '../../components/Charts';
 import DescriptionList from '../../components/DescriptionList';
-import { timeRange } from '../../utils/utils';
+import { timeRange } from '../../utils/time';
 import { Panel, Search } from '../../components/Page';
 
 const { Description } = DescriptionList;
diff --git a/src/routes/Service/Service.js b/src/routes/Service/Service.js
index 4abb882..2716a4a 100644
--- a/src/routes/Service/Service.js
+++ b/src/routes/Service/Service.js
@@ -4,7 +4,7 @@ import { Row, Col, Card, Form } from 'antd';
 import {
   ChartCard, MiniArea, MiniBar,
 } from '../../components/Charts';
-import { timeRange } from '../../utils/utils';
+import { timeRange } from '../../utils/time';
 import { ServiceTopology } from '../../components/Topology';
 import { Panel, Search } from '../../components/Page';
 

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to