From bca039d328ce70e4e15c15f83460af2c60226c89 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 13 五月 2023 15:30:52 +0800
Subject: [PATCH] css

---
 src/main/webapp/static/css/loader.css                          |   59 
 src/main/webapp/static/image/nav/fn_2.png                      |    0 
 src/main/webapp/views/home/console.html                        |  440 ++
 src/main/webapp/static/image/nav/fn_2_h.png                    |    0 
 src/main/webapp/static/css/tree.css                            |   70 
 src/main/webapp/views/home/map_edit.html                       |  368 ++
 src/main/webapp/static/image/nav/fn_1.png                      |    0 
 src/main/webapp/static/image/nav/fn_3.png                      |    0 
 src/main/webapp/static/image/nav/bg_1.png                      |    0 
 src/main/webapp/static/css/login.css                           |  473 ++
 src/main/webapp/static/css/originTable.css                     |   29 
 src/main/webapp/static/layui/lay/modules/index.js              |  302 +
 src/main/webapp/static/image/Excel.png                         |    0 
 src/main/webapp/static/image/bg.jpg                            |    0 
 src/main/webapp/static/css/main.min.css                        |    1 
 src/main/webapp/static/image/nav/icon.png                      |    0 
 src/main/webapp/static/image/nav/fn_1_h.png                    |    0 
 src/main/webapp/static/layui/lay/modules/notice/6.wav          |    0 
 src/main/webapp/static/image/instancing/cubemap_pz.png         |    0 
 src/main/webapp/static/layui/lay/modules/notice/notice.css     | 1929 +++++++++++
 src/main/webapp/static/images/logo.png                         |    0 
 src/main/webapp/static/layui/lay/modules/notice/5.wav          |    0 
 src/main/webapp/static/css/admin.css                           |  445 ++
 src/main/webapp/static/image/instancing/cubemap_py.png         |    0 
 src/main/webapp/static/layui/lay/modules/dropdown/dropdown.js  |  250 +
 src/main/webapp/static/css/cool.css                            |   48 
 src/main/webapp/static/css/print.css                           |    7 
 src/main/webapp/static/image/instancing/cubemap_px.png         |    0 
 src/main/webapp/static/image/login_bg.jpg                      |    0 
 src/main/webapp/static/layui/lay/modules/notice/3.wav          |    0 
 src/main/webapp/static/image/instancing/cubemap_nz.png         |    0 
 src/main/webapp/static/css/optimize.css                        |    0 
 src/main/webapp/static/layui/lay/modules/contextMenu.js        |  228 +
 src/main/webapp/views/index.html                               |  203 
 src/main/webapp/static/layui/lay/modules/notice/4.wav          |    0 
 src/main/webapp/static/image/instancing/cubemap_ny.png         |    0 
 src/main/webapp/static/css/road.css                            |  146 
 src/main/webapp/static/layui/lay/modules/notice/1.wav          |    0 
 src/main/webapp/static/image/instancing/cubemap_nx.png         |    0 
 src/main/webapp/static/layui/lay/modules/notice/notice.js      | 1241 +++++++
 src/main/webapp/static/layui/lay/modules/admin.js              | 1667 +++++++++
 src/main/webapp/views/home/map.html                            | 1118 ++++++
 src/main/webapp/views/home/navigation.html                     |  146 
 src/main/webapp/static/image/favicon.ico                       |    0 
 src/main/webapp/static/css/pda.css                             |   98 
 src/main/webapp/static/layui/lay/modules/dropdown/dropdown.css |  618 +++
 src/main/webapp/static/layui/lay/modules/notice/2.wav          |    0 
 src/main/webapp/static/css/bg.css                              |  175 +
 src/main/webapp/static/image/logo.png                          |    0 
 src/main/webapp/static/image/nav/fn_3_h.png                    |    0 
 50 files changed, 10,025 insertions(+), 36 deletions(-)

diff --git a/src/main/webapp/static/css/admin.css b/src/main/webapp/static/css/admin.css
new file mode 100644
index 0000000..b4ecfd4
--- /dev/null
+++ b/src/main/webapp/static/css/admin.css
@@ -0,0 +1,445 @@
+锘�/** EasyWeb iframe v3.1.8 date:2020-05-04 License By http://easyweb.vip */
+*{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","寰蒋闆呴粦",Arial,sans-serif}body{color:#595959;background-color:#f5f7f9}.layui-layout-body{overflow:auto}.layui-layout-admin{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;-webkit-transition:left .3s,right .3s;transition:left .3s,right .3s}.layui-layout-admin .layui-header{position:absolute;top:0;left:0;right:0;height:50px;background-color:#fff;box-shadow:0 1px 0 0 rgba(0,0,0,.03);z-index:999}.layui-layout-admin .layui-header .layui-logo{color:#ddd;width:235px;line-height:50px;background-color:#191a23;box-shadow:1px 2px 2px 0 rgba(0,0,0,.05);position:relative;vertical-align:top;white-space:nowrap;display:inline-block;-webkit-transition:width .3s;transition:width .3s;overflow:hidden}.layui-layout-admin .layui-header .layui-logo img{height:28px;vertical-align:middle}.layui-layout-admin .layui-header .layui-logo cite{font-style:normal;vertical-align:middle}.layui-layout-admin .layui-header .layui-layout-left{padding:0;vertical-align:top;display:inline-block;position:static!important}.layui-layout-admin .layui-header .layui-layout-right{padding:0}.layui-layout-admin .layui-header .layui-nav .layui-this:after,.layui-layout-admin .layui-header .layui-nav-bar{height:2px;top:0!important;background-color:#191a23}.layui-layout-admin .layui-header .layui-nav .layui-nav-item{line-height:50px;vertical-align:top}.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child{top:55px}.layui-layout-admin .layui-header .layui-nav-item .layui-icon{font-size:16px}.layui-layout-admin .layui-header a{color:#595959;padding:0 15px;cursor:pointer}.layui-layout-admin .layui-header a:hover{color:#595959}.layui-layout-admin .layui-header .layui-nav-child a{color:#595959;text-align:center}.layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#8c8c8c transparent transparent}.layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #8c8c8c}.layui-layout-admin .layui-header .layui-nav-img{width:26px;height:26px;margin-right:2px;vertical-align:middle}.layui-layout-admin .layui-header .layui-nav-img+cite{margin-right:3px;vertical-align:middle}.layui-layout-admin .layui-header .layui-badge-dot{right:8px;margin:-10px 0 0 0}.layui-layout-admin .layui-body{position:absolute;left:235px;top:50px;z-index:auto;overflow:auto;-webkit-transition:left .3s;transition:left .3s;-webkit-overflow-scrolling:touch}.admin-iframe{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%}.layui-fluid{padding:15px}.layui-layout-admin .layui-footer{position:absolute;left:235px;background:#fff;box-sizing:border-box;border-top:1px solid #f5f7f9;-webkit-transition:left .3s;transition:left .3s;overflow:hidden}.close-footer .layui-layout-admin .layui-footer{display:none}.close-footer .layui-layout-admin .layui-body{bottom:0}.layui-layout-admin .layui-side{position:absolute;top:50px;width:235px;background-color:#191a23;box-shadow:1px 2px 2px 0 rgba(0,0,0,.05);-webkit-transition:width .3s;transition:width .3s;-webkit-user-select:none;user-select:none;z-index:1000}.layui-layout-admin .layui-side .layui-side-scroll{width:255px;-webkit-transition:width .3s;transition:width .3s}.layui-layout-admin .layui-side .layui-nav{width:235px;background-color:transparent;-webkit-transition:width .3s;transition:width .3s}.layui-layout-admin .layui-side>.layui-side-scroll>.layui-nav:first-child{margin-top:10px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item>a{cursor:pointer;padding-top:5px;padding-bottom:5px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item a{-webkit-transition:color .3s,background-color .3s;transition:color .3s,background-color .3s}.layui-layout-admin .layui-side .layui-nav .layui-nav-more{right:15px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item>.layui-nav-child{position:static}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child a{padding-left:50px;cursor:pointer}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child a{padding-left:70px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:90px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:110px}@media screen and (min-width:769px){.layui-layout-admin.admin-nav-mini .layui-header .layui-logo{width:60px}.layui-layout-admin.admin-nav-mini .layui-header .layui-logo cite{display:none}.layui-layout-admin.admin-nav-mini .layui-header .layui-icon-shrink-right:before{content:"\e66b"}.layui-layout-admin.admin-nav-mini .layui-body,.layui-layout-admin.admin-nav-mini .layui-footer{left:60px}.layui-layout-admin.admin-nav-mini .layui-side,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav{width:60px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a{overflow:visible}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a>cite,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a .layui-nav-more,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed>.layui-nav-child{display:none!important}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:rgba(0,0,0,.3)}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a>.layui-icon{font-size:16px;-webkit-transition:font-size .3s;transition:font-size .3s}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child{position:fixed;top:60px;left:60px;padding:5px;min-width:150px;display:block!important;background:transparent!important}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{content:'';position:absolute;right:5px;left:5px;bottom:0;top:0;border-radius:4px;background:#191a23;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child dd:first-child>.layui-nav-child{margin-top:-5px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child dd:last-child>.layui-nav-child.show-top{margin-top:5px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a{padding:0 20px!important}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(255,255,255,.7);right:7px;margin-top:-6px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow2 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow3 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{-o-transform:rotate(0deg);-ms-transform:rotate(0deg);-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg);width:6px;height:10px;right:10px;margin-top:-5px;font-weight:600}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow2 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow3 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before{content:"\e602";left:-4px;top:-2px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow3 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before{-o-transform:rotate(0deg);-ms-transform:rotate(0deg);-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@media screen and (max-width:768px){.layui-layout-admin{left:-235px}.layui-layout-admin .layui-side,.layui-layout-admin .layui-header .layui-logo{box-shadow:none!important}.layui-layout-admin .layui-header .layui-icon-shrink-right:before{content:"\e66b"}.layui-layout-admin.admin-nav-mini{left:0;right:-235px;position:fixed}.layui-layout-admin.admin-nav-mini .layui-header .layui-icon-shrink-right:before{content:"\e668"}.layui-layout-admin.admin-nav-mini .layui-side,.layui-layout-admin.admin-nav-mini .layui-header .layui-logo{box-shadow:1px 0 2px 0 rgba(0,0,0,.05)}.layui-layout-admin.admin-nav-mini .site-mobile-shade{position:absolute;top:0;right:0;bottom:0;left:235px;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .3s;transition:background-color .3s;cursor:pointer;z-index:1000}}.ew-anim-drop-in{-webkit-animation:ewTransitionDropIn .3s ease-in-out;animation:ewTransitionDropIn .3s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}@-webkit-keyframes ewTransitionDropIn{from{opacity:0;-webkit-transform:scale(0.8)}to{opacity:1;-webkit-transform:scale(1)}}@keyframes ewTransitionDropIn{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:scale(1)}}.layui-nav-tree .layui-nav-bar{display:none}.layui-nav-tree>.layui-nav-item>a:before{content:"";position:absolute;top:0;left:0;bottom:100%;width:4px;background-color:#009688;-webkit-transition:all .3s ease;transition:all .3s ease}.layui-nav-tree>.layui-nav-item:hover>a:before{bottom:0}.layui-nav-tree .layui-nav-item a:hover{background-color:transparent}.layui-nav-tree .layui-this>a:hover{background-color:#009688}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-this{background:transparent}.layui-nav-tree .layui-nav-item .layui-nav-child{padding:5px 0;background-color:rgba(0,0,0,.3)!important}.layui-nav-tree.arrow2 .layui-nav-more{font-family:layui-icon!important;font-size:12px;font-weight:600;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;line-height:normal;border:0;margin:-3px 0 0 0;padding:0;width:10px;height:6px;top:50%;display:inline-block;-webkit-transition:all .3s ease;transition:all .3s ease}.layui-nav-tree.arrow2 .layui-nav-more:before{content:"\e61a";position:absolute;right:-1px;top:-4px}.layui-nav-tree.arrow2 .layui-nav-itemed>a>.layui-nav-more{-ms-transform:rotate(-180deg);-moz-transform:rotate(-180deg);-webkit-transform:rotate(-180deg);-o-transform:rotate(-180deg);transform:rotate(-180deg)}.layui-nav-tree.arrow3 .layui-nav-more{font-family:layui-icon!important;font-size:12px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;line-height:normal;border:0;margin:-5px 0 0 0;padding:0;width:10px;height:10px;top:50%;display:inline-block;-webkit-transition:all .3s ease;transition:all .3s ease}.layui-nav-tree.arrow3 .layui-nav-more:before{content:"\e654";position:absolute;top:-2px;left:-1px}.layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more{-ms-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{content:'';width:8px;height:2px;background-color:rgba(255,255,255,.7);top:4px;left:1px;-ms-transform:rotate(45deg);-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.layui-layout-admin .layui-body>.layui-tab{position:absolute;top:0;left:0;right:0;bottom:0;margin:0}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content{position:absolute;left:0;right:0;bottom:0;top:40px;padding:0}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item{position:absolute;bottom:0;right:0;top:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch;display:block;visibility:hidden;opacity:0;filter:Alpha(opacity=0)}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item.layui-show{visibility:visible;opacity:1;filter:Alpha(opacity=100)}.layui-layout-admin.admin-side-flexible .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item{display:none}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{height:40px;line-height:40px;padding:0 80px 0 40px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.1);position:absolute;top:0;left:0;right:0;border:0;overflow:hidden;-webkit-transition:none;transition:none;z-index:998}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{min-width:auto;max-width:160px;line-height:40px;padding:0 30px 0 15px;border-right:1px solid #f6f6f6;overflow:hidden;text-overflow:ellipsis;vertical-align:top;-webkit-transition:background-color .2s;transition:background-color .2s}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this,.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#f6f6f6}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{height:2px;border:0;border-radius:0;background-color:#191a23}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:first-child{padding:0 15px}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li cite{font-style:normal}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title .layui-tab-bar{display:none}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close{width:16px;height:16px;line-height:16px;font-size:12px;border-radius:50%;position:absolute;top:12px;right:8px;-webkit-transition:background-color .2s,color .2s;transition:background-color .2s,color .2s}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:first-child .layui-tab-close{display:none}.admin-tabs-control{position:absolute;top:0;width:40px;height:40px;line-height:40px;background-color:#fff;border-left:1px solid #f6f6f6;-webkit-transition:background-color .2s;transition:background-color .2s;text-align:center;cursor:pointer;z-index:998}.admin-tabs-control:hover{background-color:#f6f6f6}.admin-tabs-control.layui-icon-prev{left:0;border-left:none;border-right:1px solid #f6f6f6}.admin-tabs-control.layui-icon-next{right:40px}.admin-tabs-control.layui-icon-down{right:0}.admin-tabs-control>.layui-nav,.admin-tabs-control>.layui-nav .layui-nav-item{position:absolute;top:0;left:0;padding:0;width:100%;height:100%;background:transparent}.admin-tabs-control>.layui-nav .layui-nav-child{right:0;top:40px;left:auto}.admin-tabs-control>.layui-nav .layui-nav-child a{color:#595959}.admin-tabs-control>.layui-nav .layui-nav-bar,.admin-tabs-control>.layui-nav .layui-nav-more{display:none}.layui-body-header{padding:0 20px;height:40px;line-height:40px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.1);box-sizing:border-box;position:absolute;left:0;right:0;z-index:998;display:none}.layui-body-header.show{display:block}.layui-body-header-title{padding-left:6px;border-left:4px solid #009688}.layui-body-header.show+div{position:absolute;left:0;right:0;top:40px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}.hide-body-title .layui-body-header.show{display:none}.hide-body-title .layui-body-header.show+div{top:0}.layui-layout-admin .layui-body>.page-loading,.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item>.page-loading,.layui-layout-admin .layui-body>div>iframe[lay-id]+.page-loading{z-index:997}.layui-layer.layui-layer-adminRight{bottom:0;top:50px!important;border:none!important;box-shadow:1px 1px 50px rgba(0,0,0,.3)!important;overflow:auto}.layui-layer.layui-layer-adminRight0{bottom:0;top:0!important;border:none!important;box-shadow:1px 1px 50px rgba(0,0,0,.3)!important;overflow:auto}.layui-layer.layui-layer-adminRight>.layui-layer-content,.layui-layer.layui-layer-adminRight>.layui-layer-content>iframe{height:100%!important}.layui-layer.layui-layer-adminRight>.layui-layer-title+.layui-layer-content{position:absolute;top:43px;left:0;right:0;bottom:0;height:auto!important}.layui-anim-rl{-webkit-animation-name:layui-rl;animation-name:layui-rl}@-webkit-keyframes layui-rl{from{-webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@keyframes layui-rl{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}.layui-anim-lr,.layui-anim-rl.layer-anim-close{-webkit-animation-name:layui-lr;animation-name:layui-lr}@-webkit-keyframes layui-lr{from{-webkit-transform:translate3d(0,0,0);opacity:1}to{-webkit-transform:translate3d(100%,0,0);opacity:1}}@keyframes layui-lr{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}.layui-layer.layui-layer-admin{border:none!important;box-shadow:1px 1px 50px rgba(0,0,0,.3)!important}.layui-layer.layui-layer-admin .layui-layer-title{color:#fff;height:50px;line-height:50px;background-color:#191a23;border:0}.layui-layer.layui-layer-admin .layui-layer-setwin{top:17px}.layui-layer.layui-layer-admin .layui-layer-setwin a{color:#fff;font-size:16px;font-style:normal;font-family:layui-icon!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-close1{background:0;margin-top:-1px}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-close1:before{content:"\1006"}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#ddd}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-max{font-size:14px;padding-top:1px;background:0}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-max:before{content:"\e622"}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-maxmin:before{content:"\e758"}.layui-layer.layui-layer-admin .layui-layer-btn{padding-bottom:15px}.layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#009688;background-color:#009688}.layui-layer.layui-layer-admin .layui-layer-btn a{height:34px;line-height:34px}.layui-layer-admin{max-width:100%}.layui-layer-iframe .layui-layer-content{overflow:auto;-webkit-overflow-scrolling:touch}@media screen and (max-width:768px){.layui-layer-admin{max-width:98%;max-width:-webkit-calc(100% - 30px);max-width:-moz-calc(100% - 30px);max-width:calc(100% - 30px);width:max-content;left:0!important;right:0!important;margin:auto!important;margin-bottom:15px!important}.layui-layer-admin[area]{max-width:100%;margin-bottom:0!important}}body .layui-layer-msg{border:0;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,0.1)}body .layui-layer-load{background:transparent}.page-loading{position:absolute;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;z-index:19891017;background-color:#fff}body>.page-loading{position:fixed;background-color:#f5f7f9}.layui-layout-admin>.layui-body>.layui-tab>.layui-tab-content>.layui-tab-item>.page-loading,.layui-layout-admin>.layui-body>.page-loading,.layui-layout-admin>.layui-body>div>iframe[lay-id]+.page-loading{background-color:#f5f7f9}.layui-layout-admin>.layui-body>.layui-body-header.show+div+.page-loading{top:40px;height:auto}.page-no-scroll{overflow-x:hidden!important;overflow-y:hidden!important;min-height:80px}.rubik-loader,.ball-loader,.signal-loader,.layui-loader{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ball-loader>span,.signal-loader>span{background-color:#4aca85;display:inline-block}.ball-loader>span:nth-child(1),.ball-loader.sm>span:nth-child(1),.signal-loader>span:nth-child(1),.signal-loader.sm>span:nth-child(1){-webkit-animation-delay:0s;animation-delay:0s}.ball-loader>span:nth-child(2),.ball-loader.sm>span:nth-child(2),.signal-loader>span:nth-child(2),.signal-loader.sm>span:nth-child(2){-webkit-animation-delay:.1s;animation-delay:.1s}.ball-loader>span:nth-child(3),.ball-loader.sm>span:nth-child(3),.signal-loader>span:nth-child(3),.signal-loader.sm>span:nth-child(3){-webkit-animation-delay:.15s;animation-delay:.15s}.ball-loader>span:nth-child(4),.ball-loader.sm>span:nth-child(4),.signal-loader>span:nth-child(4),.signal-loader.sm>span:nth-child(4){-webkit-animation-delay:.2s;animation-delay:.2s}.rubik-loader{width:64px;height:64px;background-image:url(img/ic_loading.gif);background-repeat:no-repeat;background-position:center;background-size:contain}.rubik-loader.sm{width:50px;height:50px}.ball-loader>span{width:20px;height:20px;margin:0 3px;border-radius:50%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation:1s ball-load ease-in-out infinite;animation:ball-load 1s ease-in-out infinite}@-webkit-keyframes ball-load{0%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}100%{-webkit-transform:scale(0)}}@keyframes ball-load{0%{transform:scale(0)}50%{transform:scale(1)}100%{transform:scale(0)}}.ball-loader.sm>span{width:15px;height:15px;margin:0 2px}.signal-loader{width:50px;height:22px}.signal-loader>span{width:8px;height:0;position:absolute;bottom:0;left:0;margin:0;-webkit-animation:signal-load 1s infinite;animation:signal-load 1s infinite}.signal-loader>span:nth-child(2){left:14px}.signal-loader>span:nth-child(3){left:28px}.signal-loader>span:nth-child(4){left:42px}@-webkit-keyframes signal-load{0%{height:0}50%{height:22px}100%{height:0}}@keyframes signal-load{0%{height:0}50%{height:22px}100%{height:0}}.signal-loader.sm{width:32px;height:15px}.signal-loader.sm>span{width:5px;-webkit-animation:signal-load-sm 1s infinite;animation:signal-load-sm 1s infinite}.signal-loader.sm>span:nth-child(2){left:9px}.signal-loader.sm>span:nth-child(3){left:18px}.signal-loader.sm>span:nth-child(4){left:27px}@-webkit-keyframes signal-load-sm{0%{height:0}50%{height:15px}100%{height:0}}@keyframes signal-load-sm{0%{height:0}50%{height:15px}100%{height:0}}.layui-loader .layui-icon{font-size:36px;color:#bbb}.layui-loader.sm .layui-icon{font-size:30px}.layui-form.toolbar .layui-form-item,.layui-form.toolbar .layui-form-item .layui-inline>.layui-input-inline{margin-bottom:0}.layui-form.toolbar .layui-form-item .layui-inline{margin-bottom:10px}.toolbar+.layui-table,.layui-card-body>.layui-table,.toolbar+table+.layui-table-view,.layui-card-body>.layui-table-view,.toolbar+table+.ew-tree-table{margin:0}.mr0,.layui-form.toolbar .layui-form-item .layui-inline>.layui-input-inline{margin-right:0!important}.w-auto{width:auto!important}.model-form{padding:25px 30px 0 0}.model-form.no-padding{padding:0}.model-form .model-form-body{overflow-y:auto;padding:25px 30px 0 0;max-height:calc(100vh - 180px)}.model-form.no-padding .model-form-footer{padding-top:10px;padding-right:30px}.layui-form.model-form>.layui-form-item:last-child{margin-bottom:0;padding-bottom:20px}.layui-form-required:before{content:"*";display:inline-block;font-family:SimSun;margin-right:4px;font-size:14px;line-height:1;color:#ed4014}.layui-input,.layui-textarea{color:#595959}.layui-form-select .layui-input{padding-right:0}.layui-form-select-top .layui-form-select>dl{top:auto;bottom:42px}.ew-select-fixed .layui-form-selected dl{position:fixed;min-width:auto;bottom:auto;right:auto}body .layui-form-checked[lay-skin=primary] i,body .layui-form-checked[lay-skin=primary]:hover i{color:#fff}body .layui-form-checkbox[lay-skin=primary] span,body .layui-form-checkbox[lay-skin=primary]:hover span{background-color:transparent}body .layui-form-danger+.layui-form-select .layui-input,body .layui-input.layui-form-danger:focus,body .layui-textarea.layui-form-danger:focus{border-color:#ff5722!important}body .layui-laypage input.layui-input{height:30px;line-height:30px}body .layui-table-page .layui-laypage input.layui-input{height:26px;line-height:26px}body .layui-form-onswitch em{margin-left:3px;margin-right:18px}.layui-btn{-webkit-transition:background-color .2s;transition:background-color .2s}body .layui-btn.layui-btn-radius{border-radius:100px}.layui-btn-primary{color:#595959;border-color:#e6e6e6}.layui-btn-primary:hover{border-color:#bbb}.layui-btn-group .layui-btn-primary:hover{border-color:#e6e6e6}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #e6e6e6}body .layui-btn.layui-btn-disabled,body .layui-transfer-active .layui-btn.layui-btn-disabled{background-color:#fbfbfb!important;border-color:#e6e6e6!important;color:#c9c9c9!important}body .layui-btn.layui-btn-primary{background-color:#fff}body .layui-btn.layui-btn-normal{background-color:#1e9fff}body .layui-btn.layui-btn-warm{background-color:#ffb800}body .layui-btn.layui-btn-danger{background-color:#ff5722}.layui-btn-group>.layui-btn+.layui-btn{border-radius:0}.layui-btn-group>.layui-btn:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px}body .layui-transfer-active .layui-btn{background-color:#5fb878!important;border-color:#5fb878!important;color:#fff!important}.btn-circle{width:50px;height:50px;line-height:50px;border-radius:50%;background:#009688;position:fixed;right:15px;bottom:15px;color:#fff;text-align:center;box-shadow:0 0 8px rgba(0,0,0,.2);cursor:pointer}.btn-circle:hover{color:#fff;opacity:.8}.btn-circle .layui-icon{font-size:24px}.icon-date,.date-icon{background-image:url(img/icon_date.png);background-repeat:no-repeat;background-position:right center;padding-right:28px}.icon-search{background-image:url(img/icon_search.png);background-repeat:no-repeat;background-position:right center;padding-right:26px}span.icon-text>.layui-icon,a.icon-text>.layui-icon,.layui-form-label.icon-text>.layui-icon{font-size:14px;margin:0 2px}.layui-btn.icon-btn{padding:0 10px}.layui-btn.layui-btn-sm.icon-btn{padding:0 6px}.bg-white,html.bg-white>body{background-color:white}[ew-href],[lay-tips]{cursor:pointer}.inline-block{display:inline-block}.pull-right{float:right}.pull-left{float:left}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-primary,.layui-link{color:#009688!important}.text-success{color:#5fb878!important}.text-warning{color:#ffb800!important}.text-danger{color:#ff5722!important}.text-info{color:#01aaed!important}.text-muted{color:#c2c2c2!important}.layui-text a:not(.layui-btn){color:#2d8cf0;cursor:pointer}.layui-text a:not(.layui-btn):hover{text-decoration:none}.ew-console-wrapper .layui-card{box-shadow:none;border-radius:4px}.layui-card-header{color:#595959}.lay-big-font{font-size:36px;line-height:36px;padding:5px 0 10px;overflow:hidden;white-space:nowrap;word-break:break-all;text-overflow:ellipsis}.no-scrollbar{overflow-x:hidden!important;overflow-y:hidden!important}input.layui-disabled,input.layui-disabled:hover,textarea.layui-disabled,textarea.layui-disabled:hover{color:#595959!important;background-color:#f6f6f6}.layui-input::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{color:#ccc}.layui-input::-moz-placeholder,.layui-textarea::-moz-placeholder{color:#ccc}.layui-input::-ms-input-placeholder,.layui-textarea::-ms-input-placeholder{color:#ccc}.dropdown-menu{display:inline-block}.dropdown-menu .dropdown-menu-nav{display:none}.dropdown-menu+.dropdown-menu,.layui-btn+.dropdown-menu,.dropdown-menu+.layui-btn{margin-left:10px}::-webkit-scrollbar{width:10px;height:10px;background:transparent}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:5px;background-color:#c1c1c1}::-webkit-scrollbar-thumb:hover{background-color:#a8a8a8}.mini-bar::-webkit-scrollbar{width:6px;height:6px}.mini-bar::-webkit-scrollbar-thumb{border-radius:3px}@media screen and (max-width:768px){::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{border-radius:0}}#ew-map-select-map{height:450px}#ew-map-select-pois{height:450px;overflow-x:hidden;overflow-y:auto}.ew-map-select-search-list-item{padding:10px 30px 10px 15px;border-bottom:1px solid #e8e8e8;cursor:pointer;position:relative}.ew-map-select-search-list-item:hover{background:#f2f2f2}.ew-map-select-search-list-item:last-child{border-bottom:0}.ew-map-select-search-list-item .ew-map-select-search-list-item-title{font-size:14px;color:#262626}.ew-map-select-search-list-item .ew-map-select-search-list-item-address{font-size:12px;color:#595959;padding-top:5px}.ew-map-select-search-list-item-icon-ok{position:absolute;right:15px;top:50%;transform:translateY(-50%)}.ew-map-select-search-list-item-icon-ok .layui-icon{color:#3b74ff}.ew-map-select-tool{padding:5px 15px;box-shadow:0 1px 0 0 rgba(0,0,0,.05)}#ew-map-select-center-img{position:absolute;bottom:50%;left:50%;width:26px;margin-left:-13px}#ew-map-select-center-img2{position:absolute;left:50%;top:50%;font-size:12px;display:inline-block;margin-left:-6px;margin-top:-7px;color:#3b74ff}.bounceInDown{animation:bounceInDown 500ms;animation-direction:alternate;-webkit-animation:bounceInDown 500ms;-webkit-animation-direction:alternate}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%,to{-webkit-transform:translate3d(0,0,0)}25%{-webkit-transform:translate3d(0,-30px,0)}50%{-webkit-transform:translate3d(0,-15px,0)}75%{-webkit-transform:translate3d(0,-4px,0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%,to{transform:translate3d(0,0,0)}25%{transform:translate3d(0,-10px,0)}50%{transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,-10px,0)}}#ew-map-select-tips{position:absolute;z-index:999;background:#fff;max-height:430px;overflow:auto;top:48px;left:56px;width:280px;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #d2d2d2}#ew-map-select-tips .ew-map-select-search-list-item{padding:10px 15px 10px 35px}.ew-map-select-search-list-item-icon-search{position:absolute;left:10px;top:50%;transform:translateY(-50%)}.ew-map-select-search-list-item-icon-search .layui-icon{color:#8c8c8c}.table-tool-mini .layui-table-view{position:relative}.table-tool-mini .layui-table-tool{position:absolute;min-height:unset;height:auto;padding:3px 10px;width:auto;top:-38px;right:-1px;border-top-right-radius:8px;border-top-left-radius:8px;border:1px solid #e6e6e6;border-bottom:0}.table-tool-mini .layui-table-tool .layui-table-tool-temp{padding-right:0;display:inline-block}.table-tool-mini .layui-table-tool .layui-table-tool-self{position:static;display:inline-block}.table-tool-mini .layui-table-tool .layui-table-tool-self .layui-inline[lay-event]:first-child{margin:0}.table-tool-mini.full-table .layui-table-tool{top:-35px;height:1px;padding:0 10px;background:transparent;border:0}.table-tool-mini.full-table .layui-table-tool:before{content:"";position:absolute;top:-3px;right:0;left:0;height:36px;background-color:#f2f2f2;border-top-right-radius:8px;border-top-left-radius:8px;border:1px solid #e6e6e6;border-bottom:0}@media screen and (max-width:768px){.layui-laydate-range{left:0!important;top:0!important;right:0!important;margin:10px auto!important;max-width:95%}.layui-laydate-range .layui-laydate-main,.layui-laydate-range .layui-laydate-content table{width:100%}.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-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:inline-block!important}.layui-laydate-range .laydate-main-list-1 .layui-laydate-header{border-top:1px solid #e2e2e2}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:none!important}.layui-laydate-range .laydate-time-list ol li{padding-left:0!important;text-align:center}.layui-laydate-range .laydate-time-list ol{overflow:auto!important}}.layui-tree-spread>div>div>span>.layui-tree-iconArrow:after{border-color:#c0c4cc transparent transparent transparent;top:6px;left:0}.layui-tree .layui-tree-iconArrow:after{transition:none}.ew-tb-cell-ck .layui-form-checkbox[lay-skin=primary]{padding-left:22px}.ew-tb-cell-ck .layui-form-checkbox[lay-skin=primary] span{padding-right:5px}.ew-field-group>.layui-elem-field{border-bottom:0;margin:0}.ew-field-group>.ew-field-box{border:1px solid #e6e6e6;padding:10px 15px;border-top:0}body .layui-elem-quote.layui-quote-nm{border-color:#e6e6e6}.layui-card>.layui-tab-brief>.layui-tab-title li{padding:0 5px;margin:0 10px;line-height:43px;height:43px;transition:color .2s;-webkit-transition:color .2s}.layui-card>.layui-tab-brief>.layui-tab-title li:after{height:43px}.layui-card>.layui-tab-brief>.layui-tab-title{border-bottom-color:#f6f6f6;height:42px;transition:none;-webkit-transition:none}.layui-card>.layui-tab-brief>.layui-tab-content{padding:10px 15px}.layui-tab.layui-tab-vertical{position:relative}.layui-tab.layui-tab-vertical:after{content:"";clear:both;display:block}.layui-tab.layui-tab-vertical>.layui-tab-title{width:130px;height:auto;border:0;border-right:1px solid #e9e9e9;box-sizing:border-box;padding:10px 0;float:left}.layui-tab.layui-tab-vertical>.layui-tab-title>li{display:block;margin-right:-1px;border-right:2px solid transparent;white-space:normal;line-height:normal;padding:10px 20px;text-align:right}.layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-right:2px solid #5fb878;color:#5fb878}.layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this:after{display:none}.layui-tab.layui-tab-vertical>.layui-tab-title>li>.layui-icon{font-size:14px;margin-right:5px}.layui-tab.layui-tab-vertical>.layui-tab-content{margin-left:130px}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title{float:right;border-right:0;border-left:1px solid #e9e9e9}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-content{margin-left:0;margin-right:130px}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title>li{text-align:left;border-left:2px solid transparent;border-right:0}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title>li.layui-this{border-left:2px solid #5fb878}.layui-tab.layui-tab-vertical.layui-tab-vertical-full>.layui-tab-title{position:absolute;top:0;left:0;right:auto;min-height:100%}.layui-tab.layui-tab-vertical.layui-tab-vertical-right.layui-tab-vertical-full>.layui-tab-title{right:0;left:auto}.ew-btn-loading{opacity:.8;pointer-events:none;font-size:0!important}.ew-btn-loading *{display:none!important}.ew-btn-loading>.ew-btn-loading-text{font-size:14px!important;display:inline-block!important}.ew-btn-loading.layui-btn-sm>.ew-btn-loading-text,.ew-btn-loading.layui-btn-xs>.ew-btn-loading-text{font-size:12px!important}.ew-btn-loading.layui-btn-lg>.ew-btn-loading-text{font-size:16px!important}.ew-btn-loading>.ew-btn-loading-text *{display:inline-block!important}.form-search-expand,.form-search-expand:hover{padding:0!important;color:#2d8cf0!important;border:none!important;box-shadow:none!important;background-color:transparent!important}.form-search-expand .layui-icon{font-size:12px!important;font-weight:600!important}.form-search-show-expand{display:none!important}.layui-badge-green{color:#52c41a;background:#f6ffed;border:1px solid #b7eb8f}.layui-badge-blue{color:#1890ff;background:#e6f7ff;border:1px solid #91d5ff}.layui-badge-red{color:#f5222d;background:#fff1f0;border:1px solid #ffa39e}.layui-badge-yellow{color:#faad14;background:#fffbe6;border:1px solid #ffe58f}.layui-badge-gray{color:#8c8c8c;background:#fafafa;border:1px solid #ccc}.layui-badge{height:20px;line-height:19px;box-sizing:border-box}.layui-badge-list .layui-badge{height:23px;line-height:22px;margin:0 6px 8px 0}.layui-badge-list .layui-badge.layui-bg-gray{border:1px solid #ccc;background-color:#fafafa!important}.layui-card .layui-card-header .layui-badge.pull-right{top:50%;margin-top:-10px}#ew-lock-screen-group{position:fixed;top:0;left:0;right:0;bottom:0;z-index:19891099}.ios-iframe-body{position:absolute;top:0;left:0;right:0;bottom:0}xm-select>.xm-body{margin-left:-2px}xm-select>.xm-body .xm-option{background-color:transparent!important}xm-select>.xm-body .xm-option.hide-icon.selected{background-color:#5fb878!important}xm-select>.xm-body .xm-option:hover{background-color:#f2f2f2!important}.xm-body .xm-tree{min-width:200px}.xm-body .xm-tree .xm-option-content{padding-left:6px}xm-select{border-color:#e6e6e6!important}xm-select:hover{border-color:#d2d2d2!important}xm-select[style="border-color: rgb(229, 77, 66);"]{border-color:#e54d42!important}body .ew-xmselect-tree xm-select .xm-body .xm-option .xm-option-icon{position:absolute;left:30px;top:0;right:0;bottom:0;width:auto;height:auto;border:none!important;z-index:1}body .ew-xmselect-tree xm-select .xm-body .xm-option .xm-option-icon:before{display:none}body .ew-xmselect-tree xm-select .xm-body .xm-option.selected{background-color:#f2f2f2!important}body .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#5fb878!important}.theme-blue .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-blue .layui-layout-admin .layui-header{background-color:#3c8dbc}.theme-blue .layui-layout-admin .layui-header a{color:#fff}.theme-blue .layui-layout-admin .layui-header a:hover{color:#fff}.theme-blue .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-blue .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-blue .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-blue .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-blue .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-blue .layui-layout-admin .layui-side{background-color:#222d32}.theme-blue .layui-side .layui-nav .layui-nav-item a{color:#b8c7ce}.theme-blue .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-blue .layui-nav-tree .layui-this>a,.theme-blue .layui-nav-tree .layui-this>a:hover{color:#fff;background-color:#3c8dbc}.theme-blue .layui-nav-tree>.layui-nav-item>a:before{background-color:#3c8dbc}.theme-blue .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#222d32!important}.theme-blue .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#3c8dbc;top:38px}.theme-blue .layui-body-header-title{border-left-color:#3c8dbc}.theme-blue .layui-layer.layui-layer-admin .layui-layer-title{background-color:#3c8dbc}.theme-blue .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#3c8dbc;background-color:#3c8dbc}.theme-blue .ball-loader>span,.theme-blue .signal-loader>span{background-color:#3c8dbc}.theme-blue .btn-circle{background:#3c8dbc}.theme-blue .more-theme-item:hover,.theme-blue .more-theme-item.active{border-color:#3c8dbc}.theme-blue .text-primary,.theme-blue .layui-link{color:#3c8dbc!important}.theme-blue .layui-btn{background-color:#3c8dbc}.theme-blue .layui-form-onswitch{border-color:#3c8dbc;background-color:#3c8dbc}.theme-blue .layui-form-radio>i:hover,.theme-blue .layui-form-radioed>i,.theme-blue .layui-form-checked i,.theme-blue .layui-form-checked:hover i{color:#3c8dbc}.theme-blue .layui-form-checked[lay-skin=primary] i,.theme-blue .layui-form-checked span,.theme-blue .layui-form-checked:hover span{border-color:#3c8dbc!important;background-color:#3c8dbc}.theme-blue .layui-form-checked[lay-skin=primary] i:hover,.theme-blue .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#3c8dbc!important}.theme-blue .layui-form-select dl dd.layui-this{background-color:#3c8dbc}.theme-blue .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#3c8dbc}.theme-blue .layui-laypage input:focus,.theme-blue .layui-laypage select:focus{border-color:#3c8dbc!important}.theme-blue .layui-laypage a:hover{color:#3c8dbc}.theme-blue .layui-tab-brief>.layui-tab-title .layui-this{color:#3c8dbc}.theme-blue .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-blue .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#3c8dbc!important}.theme-blue .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#3c8dbc;color:#3c8dbc}.theme-blue .layui-breadcrumb a:hover{color:#3c8dbc!important}.theme-blue .layui-laydate-footer span:hover,.theme-blue .layui-laydate-header i:hover,.theme-blue .layui-laydate-header span:hover{color:#3c8dbc}.theme-blue .layui-laydate .layui-this{background-color:#3c8dbc!important}.theme-blue .layui-laydate-content td.laydate-selected{background-color:rgba(60,141,188,.1)}.theme-blue .laydate-selected:hover{background-color:rgba(60,141,188,.1)!important}.theme-blue .layui-timeline-axis{color:#3c8dbc}.theme-blue .layui-transfer-active .layui-btn{background-color:#3c8dbc!important;border-color:#3c8dbc!important}.theme-blue .layui-progress-bar{background-color:#3c8dbc}.theme-blue .layui-slider-bar{background-color:#3c8dbc!important}.theme-blue .layui-slider-wrap-btn{border-color:#3c8dbc!important}.theme-blue .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#3c8dbc}.theme-blue .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-blue .layui-elem-quote{border-color:#3c8dbc}.theme-blue .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-blue .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#3c8dbc}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#9dc6dd}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#3c8dbc}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#9dc6dd!important}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#3c8dbc!important}.theme-blue .ew-cascader-dropdown-list-item.active,.theme-blue .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#3c8dbc}.theme-blue div.tagsinput span.tag{background:#3c8dbc}.theme-blue xm-select .xm-body .xm-option .xm-option-icon{border-color:#3c8dbc!important}.theme-blue xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-blue xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-blue .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#3c8dbc!important}.theme-blue xm-select .xm-label .xm-label-block,.theme-blue xm-select .xm-body .xm-option.hide-icon.selected{background-color:#3c8dbc!important}.theme-blue .city-select a.active{color:#fff!important;background-color:#3c8dbc!important}.theme-blue .city-select a:hover,.theme-blue .city-select a:focus{background-color:rgba(60,141,188,.1);color:#3c8dbc}.theme-blue .city-picker-span>.title>span:hover{background-color:rgba(60,141,188,.1)}.theme-blue .city-select-tab>a.active{color:#3c8dbc}.theme-green .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-green .layui-layout-admin .layui-header{background-color:#00a65a}.theme-green .layui-layout-admin .layui-header a{color:#fff}.theme-green .layui-layout-admin .layui-header a:hover{color:#fff}.theme-green .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-green .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-green .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-green .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-green .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-green .layui-layout-admin .layui-side{background-color:#222d32}.theme-green .layui-side .layui-nav .layui-nav-item a{color:#b8c7ce}.theme-green .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-green .layui-nav-tree .layui-this>a,.theme-green .layui-nav-tree .layui-this>a:hover{color:#fff;background-color:#00a65a}.theme-green .layui-nav-tree>.layui-nav-item>a:before{background-color:#00a65a}.theme-green .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#222d32!important}.theme-green .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#00a65a;top:38px}.theme-green .layui-body-header-title{border-left-color:#00a65a}.theme-green .layui-layer.layui-layer-admin .layui-layer-title{background-color:#00a65a}.theme-green .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#00a65a;background-color:#00a65a}.theme-green .more-theme-item:hover,.theme-green .more-theme-item.active{border-color:#00a65a}.theme-green .btn-circle{background:#00a65a}.theme-green .ball-loader>span,.theme-green .signal-loader>span{background-color:#00a65a}.theme-green .text-primary,.theme-green .layui-link{color:#00a65a!important}.theme-green .layui-btn{background-color:#00a65a}.theme-green .layui-form-onswitch{border-color:#00a65a;background-color:#00a65a}.theme-green .layui-form-radio>i:hover,.theme-green .layui-form-radioed>i,.theme-green .layui-form-checked i,.theme-green .layui-form-checked:hover i{color:#00a65a}.theme-green .layui-form-checked[lay-skin=primary] i,.theme-green .layui-form-checked span,.theme-green .layui-form-checked:hover span{border-color:#00a65a!important;background-color:#00a65a}.theme-green .layui-form-checked[lay-skin=primary] i:hover,.theme-green .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#00a65a!important}.theme-green .layui-form-select dl dd.layui-this{background-color:#00a65a}.theme-green .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#00a65a}.theme-green .layui-laypage input:focus,.theme-green .layui-laypage select:focus{border-color:#00a65a!important}.theme-green .layui-laypage a:hover{color:#00a65a}.theme-green .layui-tab-brief>.layui-tab-title .layui-this{color:#00a65a}.theme-green .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-green .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#00a65a!important}.theme-green .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#00a65a;color:#00a65a}.theme-green .layui-breadcrumb a:hover{color:#00a65a!important}.theme-green .layui-laydate-footer span:hover,.theme-green .layui-laydate-header i:hover,.theme-green .layui-laydate-header span:hover{color:#00a65a}.theme-green .layui-laydate .layui-this{background-color:#00a65a!important}.theme-green .layui-laydate-content td.laydate-selected{background-color:rgba(0,166,90,.1)}.theme-green .laydate-selected:hover{background-color:rgba(0,166,90,.1)!important}.theme-green .layui-timeline-axis{color:#00a65a}.theme-green .layui-transfer-active .layui-btn{background-color:#00a65a!important;border-color:#00a65a!important}.theme-green .layui-progress-bar{background-color:#00a65a}.theme-green .layui-slider-bar{background-color:#00a65a!important}.theme-green .layui-slider-wrap-btn{border-color:#00a65a!important}.theme-green .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#00a65a}.theme-green .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-green .layui-elem-quote{border-color:#00a65a}.theme-green .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-green .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#00a65a}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#7fd2ac}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#00a65a}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#7fd2ac!important}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#00a65a!important}.theme-green .ew-cascader-dropdown-list-item.active,.theme-green .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#00a65a}.theme-green div.tagsinput span.tag{background:#00a65a}.theme-green xm-select .xm-body .xm-option .xm-option-icon{border-color:#00a65a!important}.theme-green xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-green xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-green .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#00a65a!important}.theme-green xm-select .xm-label .xm-label-block,.theme-green xm-select .xm-body .xm-option.hide-icon.selected{background-color:#00a65a!important}.theme-green .city-select a.active{color:#fff!important;background-color:#00a65a!important}.theme-green .city-select a:hover,.theme-green .city-select a:focus{background-color:rgba(0,166,90,.1);color:#00a65a}.theme-green .city-picker-span>.title>span:hover{background-color:rgba(0,166,90,.1)}.theme-green .city-select-tab>a.active{color:#00a65a}.theme-purple .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-purple .layui-layout-admin .layui-header{background-color:#722ed1}.theme-purple .layui-layout-admin .layui-header a{color:#fff}.theme-purple .layui-layout-admin .layui-header a:hover{color:#fff}.theme-purple .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-purple .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-purple .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-purple .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-purple .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-purple .layui-layout-admin .layui-side{background-color:#222d32}.theme-purple .layui-side .layui-nav .layui-nav-item a{color:#b8c7ce}.theme-purple .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-purple .layui-nav-tree .layui-this>a,.theme-purple .layui-nav-tree .layui-this>a:hover{color:#fff;background-color:#722ed1}.theme-purple .layui-nav-tree>.layui-nav-item>a:before{background-color:#722ed1}.theme-purple .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#222d32!important}.theme-purple .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#722ed1;top:38px}.theme-purple .layui-body-header-title{border-left-color:#722ed1}.theme-purple .layui-layer.layui-layer-admin .layui-layer-title{background-color:#722ed1}.theme-purple .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#722ed1;background-color:#722ed1}.theme-purple .more-theme-item:hover,.theme-purple .more-theme-item.active{border-color:#722ed1}.theme-purple .btn-circle{background:#722ed1}.theme-purple .ball-loader>span,.theme-purple .signal-loader>span{background-color:#722ed1}.theme-purple .text-primary,.theme-purple .layui-link{color:#722ed1!important}.theme-purple .layui-btn{background-color:#722ed1}.theme-purple .layui-form-onswitch{border-color:#722ed1;background-color:#722ed1}.theme-purple .layui-form-radio>i:hover,.theme-purple .layui-form-radioed>i,.theme-purple .layui-form-checked i,.theme-purple .layui-form-checked:hover i{color:#722ed1}.theme-purple .layui-form-checked[lay-skin=primary] i,.theme-purple .layui-form-checked span,.theme-purple .layui-form-checked:hover span{border-color:#722ed1!important;background-color:#722ed1}.theme-purple .layui-form-checked[lay-skin=primary] i:hover,.theme-purple .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#722ed1!important}.theme-purple .layui-form-select dl dd.layui-this{background-color:#722ed1}.theme-purple .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#722ed1}.theme-purple .layui-laypage input:focus,.theme-purple .layui-laypage select:focus{border-color:#722ed1!important}.theme-purple .layui-laypage a:hover{color:#722ed1}.theme-purple .layui-tab-brief>.layui-tab-title .layui-this{color:#722ed1}.theme-purple .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-purple .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#722ed1!important}.theme-purple .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#722ed1;color:#722ed1}.theme-purple .layui-breadcrumb a:hover{color:#722ed1!important}.theme-purple .layui-laydate-footer span:hover,.theme-purple .layui-laydate-header i:hover,.theme-purple .layui-laydate-header span:hover{color:#722ed1}.theme-purple .layui-laydate .layui-this{background-color:#722ed1!important}.theme-purple .layui-laydate-content td.laydate-selected{background-color:rgba(114,46,209,.1)}.theme-purple .laydate-selected:hover{background-color:rgba(114,46,209,.1)!important}.theme-purple .layui-timeline-axis{color:#722ed1}.theme-purple .layui-transfer-active .layui-btn{background-color:#722ed1!important;border-color:#722ed1!important}.theme-purple .layui-progress-bar{background-color:#722ed1}.theme-purple .layui-slider-bar{background-color:#722ed1!important}.theme-purple .layui-slider-wrap-btn{border-color:#722ed1!important}.theme-purple .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#722ed1}.theme-purple .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-purple .layui-elem-quote{border-color:#722ed1}.theme-purple .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-purple .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#722ed1}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#b896e8}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#722ed1}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#b896e8!important}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#722ed1!important}.theme-purple .ew-cascader-dropdown-list-item.active,.theme-purple .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#722ed1}.theme-purple div.tagsinput span.tag{background:#722ed1}.theme-purple xm-select .xm-body .xm-option .xm-option-icon{border-color:#722ed1!important}.theme-purple xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-purple xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-purple .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#722ed1!important}.theme-purple xm-select .xm-label .xm-label-block,.theme-purple xm-select .xm-body .xm-option.hide-icon.selected{background-color:#722ed1!important}.theme-purple .city-select a.active{color:#fff!important;background-color:#722ed1!important}.theme-purple .city-select a:hover,.theme-purple .city-select a:focus{background-color:rgba(114,46,209,.1);color:#722ed1}.theme-purple .city-picker-span>.title>span:hover{background-color:rgba(114,46,209,.1)}.theme-purple .city-select-tab>a.active{color:#722ed1}.theme-red .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-red .layui-layout-admin .layui-header{background-color:#dd4b39}.theme-red .layui-layout-admin .layui-header a{color:#fff}.theme-red .layui-layout-admin .layui-header a:hover{color:#fff}.theme-red .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-red .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-red .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-red .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-red .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-red .layui-layout-admin .layui-side{background-color:#28333e}.theme-red .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-red .layui-nav-tree .layui-this>a,.theme-red .layui-nav-tree .layui-this>a:hover{background-color:#dd4b39}.theme-red .layui-nav-tree>.layui-nav-item>a:before{background-color:#dd4b39}.theme-red .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#28333e!important}.theme-red .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#dd4b39;top:38px}.theme-red .layui-body-header-title{border-left-color:#dd4b39}.theme-red .layui-layer.layui-layer-admin .layui-layer-title{background-color:#dd4b39}.theme-red .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#dd4b39;background-color:#dd4b39}.theme-red .more-theme-item:hover,.theme-red .more-theme-item.active{border-color:#dd4b39}.theme-red .btn-circle{background:#dd4b39}.theme-red .ball-loader>span,.theme-red .signal-loader>span{background-color:#dd4b39}.theme-red .text-primary,.theme-red .layui-link{color:#dd4b39!important}.theme-red .layui-btn{background-color:#dd4b39}.theme-red .layui-form-onswitch{border-color:#dd4b39;background-color:#dd4b39}.theme-red .layui-form-radio>i:hover,.theme-red .layui-form-radioed>i,.theme-red .layui-form-checked i,.theme-red .layui-form-checked:hover i{color:#dd4b39}.theme-red .layui-form-checked[lay-skin=primary] i,.theme-red .layui-form-checked span,.theme-red .layui-form-checked:hover span{border-color:#dd4b39!important;background-color:#dd4b39}.theme-red .layui-form-checked[lay-skin=primary] i:hover,.theme-red .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#dd4b39!important}.theme-red .layui-form-select dl dd.layui-this{background-color:#dd4b39}.theme-red .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#dd4b39}.theme-red .layui-laypage input:focus,.theme-red .layui-laypage select:focus{border-color:#dd4b39!important}.theme-red .layui-laypage a:hover{color:#dd4b39}.theme-red .layui-tab-brief>.layui-tab-title .layui-this{color:#dd4b39}.theme-red .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-red .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#dd4b39!important}.theme-red .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#dd4b39;color:#dd4b39}.theme-red .layui-breadcrumb a:hover{color:#dd4b39!important}.theme-red .layui-laydate-footer span:hover,.theme-red .layui-laydate-header i:hover,.theme-red .layui-laydate-header span:hover{color:#dd4b39}.theme-red .layui-laydate .layui-this{background-color:#dd4b39!important}.theme-red .layui-laydate-content td.laydate-selected{background-color:rgba(221,75,57,.1)}.theme-red .laydate-selected:hover{background-color:rgba(221,75,57,.1)!important}.theme-red .layui-timeline-axis{color:#dd4b39}.theme-red .layui-transfer-active .layui-btn{background-color:#dd4b39!important;border-color:#dd4b39!important}.theme-red .layui-progress-bar{background-color:#dd4b39}.theme-red .layui-slider-bar{background-color:#dd4b39!important}.theme-red .layui-slider-wrap-btn{border-color:#dd4b39!important}.theme-red .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#dd4b39}.theme-red .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-red .layui-elem-quote{border-color:#dd4b39}.theme-red .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-red .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#dd4b39}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#eea39a}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#dd4b39}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#eea39a!important}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#dd4b39!important}.theme-red .ew-cascader-dropdown-list-item.active,.theme-red .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#dd4b39}.theme-red div.tagsinput span.tag{background:#dd4b39}.theme-red xm-select .xm-body .xm-option .xm-option-icon{border-color:#dd4b39!important}.theme-red xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-red xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-red .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#dd4b39!important}.theme-red xm-select .xm-label .xm-label-block,.theme-red xm-select .xm-body .xm-option.hide-icon.selected{background-color:#dd4b39!important}.theme-red .city-select a.active{color:#fff!important;background-color:#dd4b39!important}.theme-red .city-select a:hover,.theme-red .city-select a:focus{background-color:rgba(221,75,57,.1);color:#dd4b39}.theme-red .city-picker-span>.title>span:hover{background-color:rgba(221,75,57,.1)}.theme-red .city-select-tab>a.active{color:#dd4b39}.theme-cyan .layui-layout-admin .layui-header .layui-logo{background-color:#001529}.theme-cyan .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-cyan .layui-layout-admin .layui-header .layui-nav-bar{background-color:#001529}.theme-cyan .layui-layout-admin .layui-side{background-color:#001529}.theme-cyan .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-cyan .layui-nav-tree .layui-this>a,.theme-cyan .layui-nav-tree .layui-this>a:hover{background-color:#1890ff}.theme-cyan .layui-nav-tree>.layui-nav-item>a:before{background-color:#1890ff}.theme-cyan .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#001529!important}.theme-cyan .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#001529}.theme-cyan .layui-body-header-title{border-left-color:#1890ff}.theme-cyan .layui-layer.layui-layer-admin{border-radius:4px}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-title{color:#333;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#1890ff;background-color:#1890ff}.theme-cyan .more-theme-item:hover,.theme-cyan .more-theme-item.active{border-color:#1890ff}.theme-cyan .btn-circle{background:#1890ff}.theme-cyan .ball-loader>span,.theme-cyan .signal-loader>span{background-color:#1890ff}.theme-cyan .text-primary,.theme-cyan .layui-link{color:#1890ff!important}.theme-cyan .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#1890ff;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-cyan .layui-btn-lg{height:42px;line-height:42px}.theme-cyan .layui-btn-sm{height:28px;line-height:28px}.theme-cyan .layui-btn-xs{height:22px;line-height:22px}.theme-cyan .layui-input,.theme-cyan .layui-select,.theme-cyan .layui-textarea,.theme-cyan xm-select{height:36px;border-radius:4px}.theme-cyan .layui-input:focus,.theme-cyan .layui-textarea:focus,.theme-cyan xm-select:hover{border-color:#40a9ff!important}.theme-cyan .layui-form-label,.theme-cyan .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-cyan .layui-input-block{min-height:36px}.theme-cyan .layui-form-radio{margin-top:4px}.theme-cyan .layui-form-onswitch{border-color:#1890ff;background-color:#1890ff}.theme-cyan .layui-form-radio>i:hover,.theme-cyan .layui-form-radioed>i,.theme-cyan .layui-form-checked i,.theme-cyan .layui-form-checked:hover i{color:#1890ff}.theme-cyan .layui-form-checked[lay-skin=primary] i,.theme-cyan .layui-form-checked span,.theme-cyan .layui-form-checked:hover span{border-color:#1890ff!important;background-color:#1890ff}.theme-cyan .layui-form-checked[lay-skin=primary] i:hover,.theme-cyan .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#1890ff!important}.theme-cyan .layui-form-select dl dd.layui-this{background-color:#1890ff}.theme-cyan .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#1890ff}.theme-cyan .layui-laypage input:focus,.theme-cyan .layui-laypage select:focus{border-color:#1890ff!important}.theme-cyan .layui-laypage a:hover{color:#1890ff}.theme-cyan .layui-tab-brief>.layui-tab-title .layui-this{color:#1890ff}.theme-cyan .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-cyan .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#1890ff!important}.theme-cyan .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#2d8cf0;color:#2d8cf0}.theme-cyan .layui-breadcrumb a:hover{color:#1890ff!important}.theme-cyan .layui-laydate-footer span:hover,.theme-cyan .layui-laydate-header i:hover,.theme-cyan .layui-laydate-header span:hover{color:#1890ff}.theme-cyan .layui-laydate .layui-this{background-color:#1890ff!important}.theme-cyan .layui-laydate-content td.laydate-selected{background-color:rgba(24,144,255,.1)}.theme-cyan .laydate-selected:hover{background-color:rgba(24,144,255,.1)!important}.theme-cyan .layui-timeline-axis{color:#1890ff}.theme-cyan .layui-transfer-active .layui-btn{background-color:#1890ff!important;border-color:#1890ff!important}.theme-cyan .layui-progress-bar{background-color:#1890ff}.theme-cyan .layui-slider-bar{background-color:#1890ff!important}.theme-cyan .layui-slider-wrap-btn{border-color:#1890ff!important}.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#1890ff}.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-cyan .layui-elem-quote{border-color:#1890ff}.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#1890ff}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#89c6ff}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#1890ff}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#89c6ff!important}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#1890ff!important}.theme-cyan .ew-cascader-dropdown-list-item.active,.theme-cyan .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#1890ff}.theme-cyan div.tagsinput span.tag{background:#1890ff}.theme-cyan xm-select .xm-body .xm-option .xm-option-icon{border-color:#1890ff!important}.theme-cyan xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-cyan xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-cyan .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#1890ff!important}.theme-cyan xm-select .xm-label .xm-label-block,.theme-cyan xm-select .xm-body .xm-option.hide-icon.selected{background-color:#1890ff!important}.theme-cyan .city-select a.active{color:#fff!important;background-color:#1890ff!important}.theme-cyan .city-select a:hover,.theme-cyan .city-select a:focus{background-color:#f0faff;color:#1890ff}.theme-cyan .city-picker-span>.title>span:hover{background-color:#f0faff}.theme-cyan .city-select-tab>a.active{color:#1890ff}.theme-white .layui-layout-admin .layui-header .layui-logo{color:#262626;background-color:transparent;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-white .layui-layout-admin .layui-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-white .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-white .layui-layout-admin .layui-header .layui-nav-bar{background-color:#2d8cf0}.theme-white .layui-layout-admin .layui-side{background-color:#fff;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-white .layui-side .layui-nav .layui-nav-item a{color:#595959}.theme-white .layui-side .layui-nav .layui-nav-item a:hover{color:#2d8cf0}.theme-white .layui-side .layui-nav-itemed>a,.theme-white .layui-side .layui-nav-tree .layui-nav-title a,.theme-white .layui-side .layui-nav-tree .layui-nav-title a:hover{color:#595959!important}.theme-white .layui-side .layui-nav-itemed>a:hover{color:#2d8cf0!important}.theme-white .layui-side .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-white .layui-side .layui-nav-tree .layui-this>a,.theme-white .layui-side .layui-nav-tree .layui-this>a:hover{color:#2d8cf0;background:#f0faff;border-right:2px solid #2d8cf0}.theme-white .layui-side .layui-nav-tree .layui-nav-item .layui-nav-child{background-color:transparent!important}.theme-white .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#fff!important}@media screen and (min-width:769px){.theme-white .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:#f0faff;color:#2d8cf0!important}}.theme-white .layui-nav-tree>.layui-nav-item>a:before{display:none}.theme-white .layui-side .layui-nav .layui-nav-more{border-color:rgba(89,89,89,.7) transparent transparent}.theme-white .layui-side .layui-nav .layui-nav-mored,.theme-white .layui-side .layui-nav-itemed>a .layui-nav-more{border-color:transparent transparent rgba(89,89,89,.7)}.theme-white .layui-side .layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{background-color:rgba(89,89,89,.7)}@media screen and (min-width:769px){.theme-white .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(89,89,89,.7)}}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{top:8px;right:8px;height:32px;line-height:32px;box-sizing:border-box;background-color:transparent;box-shadow:-4px 4px 0 #f5f7f9;padding-right:70px}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{border:0;margin-right:6px;border-radius:4px;background-color:#fff;line-height:32px;height:32px}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this{color:#2d8cf0;background-color:#fff}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#fff}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{display:none}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close,.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close:hover{top:8px;color:#8c8c8c;background-color:transparent}.theme-white .layui-layout-admin .layui-body .admin-tabs-control,.theme-white .layui-layout-admin .layui-body .admin-tabs-control:hover{top:8px;height:32px;line-height:32px;background-color:#f5f7f9;border:0}.theme-white .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down{border-radius:4px;background-color:#fff;width:32px;right:8px}.theme-white .admin-tabs-control>.layui-nav .layui-nav-item{line-height:32px}.theme-white .admin-tabs-control>.layui-nav .layui-nav-item>a{height:32px;width:32px;padding:0}.theme-white .admin-tabs-control>.layui-nav .layui-nav-child{top:36px;border:0;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.2)}.theme-white .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before{content:"\e603"}.theme-white .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before{content:"\e602"}.theme-white .layui-body-header-title{border-left-color:#2d8cf0}.theme-white .layui-body-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-white .layui-layer.layui-layer-admin{border-radius:4px}.theme-white .layui-layer.layui-layer-admin .layui-layer-title{color:#262626;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-white .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-white .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-white .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-white .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#2d8cf0;background-color:#2d8cf0}.theme-white .more-theme-item:hover,.theme-white .more-theme-item.active{border-color:#2d8cf0}.theme-white .btn-circle{background:#2d8cf0}.theme-white .ball-loader>span,.theme-white .signal-loader>span{background-color:#2d8cf0}.theme-white .text-primary,.theme-white .layui-link{color:#2d8cf0!important}.theme-white .layui-card{border-radius:4px;box-shadow:none}.theme-white .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#2d8cf0;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-white .layui-btn-lg{height:42px;line-height:42px}.theme-white .layui-btn-sm{height:28px;line-height:28px}.theme-white .layui-btn-xs{height:22px;line-height:22px}.theme-white .layui-input,.theme-white .layui-select,.theme-white .layui-textarea,.theme-white xm-select{height:36px;border-radius:4px}.theme-white .layui-input:focus,.theme-white .layui-textarea:focus,.theme-white xm-select:hover{border-color:#2d8cf0!important}.theme-white .layui-form-label,.theme-white .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-white .layui-input-block{min-height:36px}.theme-white .layui-form-radio{margin-top:4px}.theme-white .layui-form-onswitch{border-color:#2d8cf0;background-color:#2d8cf0}.theme-white .layui-form-radio>i:hover,.theme-white .layui-form-radioed>i,.theme-white .layui-form-checked i,.theme-white .layui-form-checked:hover i{color:#2d8cf0}.theme-white .layui-form-checked[lay-skin=primary] i,.theme-white .layui-form-checked span,.theme-white .layui-form-checked:hover span{border-color:#2d8cf0!important;background-color:#2d8cf0}.theme-white .layui-form-checked[lay-skin=primary] i:hover,.theme-white .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#2d8cf0!important}.theme-white .layui-form-select dl dd.layui-this{background-color:#2d8cf0}.theme-white .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#2d8cf0}.theme-white .layui-laypage input:focus,.theme-white .layui-laypage select:focus{border-color:#2d8cf0!important}.theme-white .layui-laypage a:hover{color:#2d8cf0}.theme-white .layui-tab-brief>.layui-tab-title .layui-this{color:#2d8cf0}.theme-white .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-white .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#2d8cf0!important}.theme-white .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#2d8cf0;color:#2d8cf0}.theme-white .layui-breadcrumb a:hover{color:#2d8cf0!important}.theme-white .layui-laydate-footer span:hover,.theme-white .layui-laydate-header i:hover,.theme-white .layui-laydate-header span:hover{color:#2d8cf0}.theme-white .layui-laydate .layui-this{background-color:#2d8cf0!important}.theme-white .layui-laydate-content td.laydate-selected{background-color:rgba(45,140,240,.1)}.theme-white .laydate-selected:hover{background-color:rgba(45,140,240,.1)!important}.theme-white .layui-timeline-axis{color:#2d8cf0}.theme-white .layui-transfer-active .layui-btn{background-color:#2d8cf0!important;border-color:#2d8cf0!important}.theme-white .layui-progress-bar{background-color:#2d8cf0}.theme-white .layui-slider-bar{background-color:#2d8cf0!important}.theme-white .layui-slider-wrap-btn{border-color:#2d8cf0!important}.theme-white .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#2d8cf0}.theme-white .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-white .layui-elem-quote{border-color:#2d8cf0}.theme-white .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-white .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#2d8cf0}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#95c5f7}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#2d8cf0}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#95c5f7!important}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#2d8cf0!important}.theme-white .ew-cascader-dropdown-list-item.active,.theme-white .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#2d8cf0}.theme-white div.tagsinput span.tag{background:#2d8cf0}.theme-white xm-select .xm-body .xm-option .xm-option-icon{border-color:#2d8cf0!important}.theme-white xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-white xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-white .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#2d8cf0!important}.theme-white xm-select .xm-label .xm-label-block,.theme-white xm-select .xm-body .xm-option.hide-icon.selected{background-color:#2d8cf0!important}.theme-white .city-select a.active{color:#fff!important;background-color:#2d8cf0!important}.theme-white .city-select a:hover,.theme-white .city-select a:focus{background-color:#f0faff;color:#2d8cf0}.theme-white .city-picker-span>.title>span:hover{background-color:#f0faff}.theme-white .city-select-tab>a.active{color:#2d8cf0}.theme-pink .layui-layout-admin .layui-header .layui-logo{color:#262626;background-color:transparent;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-pink .layui-layout-admin .layui-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-pink .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-pink .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fb7299}.theme-pink .layui-layout-admin .layui-side{background-color:#fff;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-pink .layui-side .layui-nav .layui-nav-item a{color:#595959}.theme-pink .layui-side .layui-nav .layui-nav-item a:hover{color:#fb7299}.theme-pink .layui-side .layui-nav-itemed>a,.theme-pink .layui-side .layui-nav-tree .layui-nav-title a,.theme-pink .layui-side .layui-nav-tree .layui-nav-title a:hover{color:#595959!important}.theme-pink .layui-side .layui-nav-itemed>a:hover{color:#fb7299!important}.theme-pink .layui-side .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-pink .layui-side .layui-nav-tree .layui-this>a,.theme-pink .layui-side .layui-nav-tree .layui-this>a:hover{color:#fb7299;background:#fff7f9;border-right:2px solid #fb7299}.theme-pink .layui-side .layui-nav-tree .layui-nav-item .layui-nav-child{background-color:transparent!important}.theme-pink .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#fff!important}@media screen and (min-width:769px){.theme-pink .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:#fff1f5;color:#fb7299!important}}.theme-pink .layui-nav-tree>.layui-nav-item>a:before{display:none}.theme-pink .layui-side .layui-nav .layui-nav-more{border-color:rgba(89,89,89,.7) transparent transparent}.theme-pink .layui-side .layui-nav .layui-nav-mored,.theme-pink .layui-side .layui-nav-itemed>a .layui-nav-more{border-color:transparent transparent rgba(89,89,89,.7)}.theme-pink .layui-side .layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{background-color:rgba(89,89,89,.7)}@media screen and (min-width:769px){.theme-pink .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(89,89,89,.7)}}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{top:8px;right:8px;height:32px;line-height:32px;box-sizing:border-box;background-color:transparent;box-shadow:-4px 4px 0 #f5f7f9;padding-right:70px}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{border:0;margin-right:6px;border-radius:4px;background-color:#fff;line-height:32px;height:32px}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this{color:#fb7299;background-color:#fff}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#fff}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{display:none}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close,.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close:hover{top:8px;color:#8c8c8c;background-color:transparent}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control,.theme-pink .layui-layout-admin .layui-body .admin-tabs-control:hover{top:8px;height:32px;line-height:32px;background-color:#f5f7f9;border:0}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down{border-radius:4px;background-color:#fff;width:32px;right:8px}.theme-pink .admin-tabs-control>.layui-nav .layui-nav-item{line-height:32px}.theme-pink .admin-tabs-control>.layui-nav .layui-nav-item>a{height:32px;width:32px;padding:0}.theme-pink .admin-tabs-control>.layui-nav .layui-nav-child{top:36px;border:0;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.2)}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before{content:"\e603"}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before{content:"\e602"}.theme-pink .layui-body-header-title{border-left-color:#fb7299}.theme-pink .layui-body-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-pink .layui-layer.layui-layer-admin{border-radius:4px}.theme-pink .layui-layer.layui-layer-admin .layui-layer-title{color:#262626;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-pink .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-pink .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-pink .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-pink .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#fb7299;background-color:#fb7299}.theme-pink .more-theme-item:hover,.theme-pink .more-theme-item.active{border-color:#fb7299}.theme-pink .btn-circle{background:#fb7299}.theme-pink .ball-loader>span,.theme-pink .signal-loader>span{background-color:#fb7299}.theme-pink .text-primary,.theme-pink .layui-link{color:#fb7299!important}.theme-pink .layui-card{border-radius:4px;box-shadow:none}.theme-pink .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#fb7299;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-pink .layui-btn-lg{height:42px;line-height:42px}.theme-pink .layui-btn-sm{height:28px;line-height:28px}.theme-pink .layui-btn-xs{height:22px;line-height:22px}.theme-pink .layui-input,.theme-pink .layui-select,.theme-pink .layui-textarea,.theme-pink xm-select{height:36px;border-radius:4px}.theme-pink .layui-input:focus,.theme-pink .layui-textarea:focus,.theme-pink xm-select:hover{border-color:#fb7299!important}.theme-pink .layui-form-label,.theme-pink .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-pink .layui-input-block{min-height:36px}.theme-pink .layui-form-radio{margin-top:4px}.theme-pink .layui-form-onswitch{border-color:#fb7299;background-color:#fb7299}.theme-pink .layui-form-radio>i:hover,.theme-pink .layui-form-radioed>i,.theme-pink .layui-form-checked i,.theme-pink .layui-form-checked:hover i{color:#fb7299}.theme-pink .layui-form-checked[lay-skin=primary] i,.theme-pink .layui-form-checked span,.theme-pink .layui-form-checked:hover span{border-color:#fb7299!important;background-color:#fb7299}.theme-pink .layui-form-checked[lay-skin=primary] i:hover,.theme-pink .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#fb7299!important}.theme-pink .layui-form-select dl dd.layui-this{background-color:#fb7299}.theme-pink .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#fb7299}.theme-pink .layui-laypage input:focus,.theme-pink .layui-laypage select:focus{border-color:#fb7299!important}.theme-pink .layui-laypage a:hover{color:#fb7299}.theme-pink .layui-tab-brief>.layui-tab-title .layui-this{color:#fb7299}.theme-pink .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-pink .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#fb7299!important}.theme-pink .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#fb7299;color:#fb7299}.theme-pink .layui-breadcrumb a:hover{color:#fb7299!important}.theme-pink .layui-laydate-footer span:hover,.theme-pink .layui-laydate-header i:hover,.theme-pink .layui-laydate-header span:hover{color:#fb7299}.theme-pink .layui-laydate .layui-this{background-color:#fb7299!important}.theme-pink .layui-laydate-content td.laydate-selected{background-color:#fff1f5}.theme-pink .laydate-selected:hover{background-color:#fff1f5!important}.theme-pink .layui-timeline-axis{color:#fb7299}.theme-pink .layui-transfer-active .layui-btn{background-color:#fb7299!important;border-color:#fb7299!important}.theme-pink .layui-progress-bar{background-color:#fb7299}.theme-pink .layui-slider-bar{background-color:#fb7299!important}.theme-pink .layui-slider-wrap-btn{border-color:#fb7299!important}.theme-pink .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#fb7299}.theme-pink .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-pink .layui-elem-quote{border-color:#fb7299}.theme-pink .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-pink .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#fb7299}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#fdb8cc}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#fb7299}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#fdb8cc!important}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#fb7299!important}.theme-pink .ew-cascader-dropdown-list-item.active,.theme-pink .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#fb7299}.theme-pink div.tagsinput span.tag{background:#fb7299}.theme-pink xm-select .xm-body .xm-option .xm-option-icon{border-color:#fb7299!important}.theme-pink xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-pink xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-pink .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#fb7299!important}.theme-pink xm-select .xm-label .xm-label-block,.theme-pink xm-select .xm-body .xm-option.hide-icon.selected{background-color:#fb7299!important}.theme-pink .city-select a.active{color:#fff!important;background-color:#fb7299!important}.theme-pink .city-select a:hover,.theme-pink .city-select a:focus{background-color:#fff1f5;color:#fb7299}.theme-pink .city-picker-span>.title>span:hover{background-color:#fff1f5}.theme-pink .city-select-tab>a.active{color:#fb7299}.theme-colorful .layui-layout-admin .layui-header .layui-logo{color:#262626;background-color:transparent;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-colorful .layui-layout-admin .layui-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-colorful .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-colorful .layui-layout-admin .layui-header .layui-nav-bar{background-color:#2d8cf0}.theme-colorful .layui-layout-admin .layui-side{background-color:#fff;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-colorful .layui-side .layui-nav .layui-nav-item a{color:#595959}.theme-colorful .layui-side .layui-nav .layui-nav-item a:hover{color:#2d8cf0}.theme-colorful .layui-side .layui-nav-itemed>a,.theme-colorful .layui-side .layui-nav-tree .layui-nav-title a,.theme-colorful .layui-side .layui-nav-tree .layui-nav-title a:hover{color:#595959!important}.theme-colorful .layui-side .layui-nav-itemed>a:hover{color:#2d8cf0!important}.theme-colorful .layui-side .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-colorful .layui-side .layui-nav-tree .layui-this>a,.theme-colorful .layui-side .layui-nav-tree .layui-this>a:hover{color:#2d8cf0;background:#f0faff;border-right:2px solid #2d8cf0}.theme-colorful .layui-side .layui-nav-tree .layui-nav-item .layui-nav-child{background-color:transparent!important}.theme-colorful .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#fff!important}@media screen and (min-width:769px){.theme-colorful .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:#f0faff;color:#2d8cf0!important}}.theme-colorful .layui-nav-tree>.layui-nav-item>a:before{display:none}.theme-colorful .layui-side .layui-nav .layui-nav-more{border-color:rgba(89,89,89,.7) transparent transparent}.theme-colorful .layui-side .layui-nav .layui-nav-mored,.theme-colorful .layui-side .layui-nav-itemed>a .layui-nav-more{border-color:transparent transparent rgba(89,89,89,.7)}.theme-colorful .layui-side .layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{background-color:rgba(89,89,89,.7)}@media screen and (min-width:769px){.theme-colorful .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(89,89,89,.7)}}.theme-colorful .layui-side .layui-nav .layui-nav-item a cite{vertical-align:middle}.theme-colorful .layui-side .layui-nav-item>a>.layui-icon{color:#fff;width:28px;height:28px;font-size:12px!important;line-height:28px;text-align:center;border-radius:50%;display:inline-block;vertical-align:middle;background-color:#61b2fc}.theme-colorful .layui-side .layui-nav-item:nth-child(even)>a>.layui-icon{background-color:#7dd733}.theme-colorful .layui-side .layui-nav-item:nth-child(3)>a>.layui-icon{background-color:#32a2d4}.theme-colorful .layui-side .layui-nav-item:nth-child(4)>a>.layui-icon{background-color:#2bccce}.theme-colorful .layui-side .layui-nav-item:nth-child(5)>a>.layui-icon{background-color:#7383cf}@media screen and (min-width:768px){.theme-colorful .admin-nav-mini .layui-side .layui-nav-item>a{padding-left:16px}}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child a{padding-left:63px}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child a{padding-left:83px}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:103px}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:123px}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{top:8px;right:8px;height:32px;line-height:32px;box-sizing:border-box;background-color:transparent;box-shadow:-4px 4px 0 #f5f7f9;padding-right:70px}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{border:0;margin-right:6px;border-radius:4px;background-color:#fff;line-height:32px;height:32px}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this{color:#2d8cf0;background-color:#fff}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#fff}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{display:none}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close,.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close:hover{top:8px;color:#8c8c8c;background-color:transparent}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control,.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control:hover{top:8px;height:32px;line-height:32px;background-color:#f5f7f9;border:0}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down{border-radius:4px;background-color:#fff;width:32px;right:8px}.theme-colorful .admin-tabs-control>.layui-nav .layui-nav-item{line-height:32px}.theme-colorful .admin-tabs-control>.layui-nav .layui-nav-item>a{height:32px;width:32px;padding:0}.theme-colorful .admin-tabs-control>.layui-nav .layui-nav-child{top:36px;border:0;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.2)}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before{content:"\e603"}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before{content:"\e602"}.theme-colorful .layui-body-header-title{border-left-color:#2d8cf0}.theme-colorful .layui-body-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-colorful .layui-layer.layui-layer-admin{border-radius:4px}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-title{color:#262626;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#2d8cf0;background-color:#2d8cf0}.theme-colorful .more-theme-item:hover,.theme-colorful .more-theme-item.active{border-color:#2d8cf0}.theme-colorful .btn-circle{background:#2d8cf0}.theme-colorful .ball-loader>span,.theme-colorful .signal-loader>span{background-color:#2d8cf0}.theme-colorful .text-primary,.theme-colorful .layui-link{color:#2d8cf0!important}.theme-colorful .layui-card{border-radius:4px;box-shadow:none}.theme-colorful .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#2d8cf0;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-colorful .layui-btn-lg{height:42px;line-height:42px}.theme-colorful .layui-btn-sm{height:28px;line-height:28px}.theme-colorful .layui-btn-xs{height:22px;line-height:22px}.theme-colorful .layui-input,.theme-colorful .layui-select,.theme-colorful .layui-textarea,.theme-colorful xm-select{height:36px;border-radius:4px}.theme-colorful .layui-input:focus,.theme-colorful .layui-textarea:focus,.theme-colorful xm-select:hover{border-color:#2d8cf0!important}.theme-colorful .layui-form-label,.theme-colorful .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-colorful .layui-input-block{min-height:36px}.theme-colorful .layui-form-radio{margin-top:4px}.theme-colorful .layui-form-onswitch{border-color:#2d8cf0;background-color:#2d8cf0}.theme-colorful .layui-form-radio>i:hover,.theme-colorful .layui-form-radioed>i,.theme-colorful .layui-form-checked i,.theme-colorful .layui-form-checked:hover i{color:#2d8cf0}.theme-colorful .layui-form-checked[lay-skin=primary] i,.theme-colorful .layui-form-checked span,.theme-colorful .layui-form-checked:hover span{border-color:#2d8cf0!important;background-color:#2d8cf0}.theme-colorful .layui-form-checkbox[lay-skin=primary] i:hover,.theme-colorful .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#2d8cf0}.theme-colorful .layui-form-select dl dd.layui-this{background-color:#2d8cf0}.theme-colorful .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#2d8cf0}.theme-colorful .layui-laypage input:focus,.theme-colorful .layui-laypage select:focus{border-color:#2d8cf0!important}.theme-colorful .layui-laypage a:hover{color:#2d8cf0}.theme-colorful .layui-tab-brief>.layui-tab-title .layui-this{color:#2d8cf0}.theme-colorful .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-colorful .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#2d8cf0!important}.theme-colorful .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#2d8cf0;color:#2d8cf0}.theme-colorful .layui-breadcrumb a:hover{color:#2d8cf0!important}.theme-colorful .layui-laydate-footer span:hover,.theme-colorful .layui-laydate-header i:hover,.theme-colorful .layui-laydate-header span:hover{color:#2d8cf0}.theme-colorful .layui-laydate .layui-this{background-color:#2d8cf0!important}.theme-colorful .layui-laydate-content td.laydate-selected{background-color:rgba(45,140,240,.1)}.theme-colorful .laydate-selected:hover{background-color:rgba(45,140,240,.1)!important}.theme-colorful .layui-timeline-axis{color:#2d8cf0}.theme-colorful .layui-transfer-active .layui-btn{background-color:#2d8cf0!important;border-color:#2d8cf0!important}.theme-colorful .layui-progress-bar{background-color:#2d8cf0}.theme-colorful .layui-slider-bar{background-color:#2d8cf0!important}.theme-colorful .layui-slider-wrap-btn{border-color:#2d8cf0!important}.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#2d8cf0}.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-colorful .layui-elem-quote{border-color:#2d8cf0}.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#2d8cf0}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#96c6f8}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#2d8cf0}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#96c6f8!important}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#2d8cf0!important}.theme-colorful .ew-cascader-dropdown-list-item.active,.theme-colorful .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#2d8cf0}.theme-colorful div.tagsinput span.tag{background:#2d8cf0}.theme-colorful xm-select .xm-body .xm-option .xm-option-icon{border-color:#2d8cf0!important}.theme-colorful xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-colorful xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-colorful .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#2d8cf0!important}.theme-colorful xm-select .xm-label .xm-label-block,.theme-colorful xm-select .xm-body .xm-option.hide-icon.selected{background-color:#2d8cf0!important}.theme-colorful .city-select a.active{color:#fff!important;background-color:#2d8cf0!important}.theme-colorful .city-select a:hover,.theme-colorful .city-select a:focus{background-color:#f0faff;color:#2d8cf0}.theme-colorful .city-picker-span>.title>span:hover{background-color:#f0faff}.theme-colorful .city-select-tab>a.active{color:#2d8cf0}
+
+/** ---------------------------theme-my涓婚start----------------------------------- */
+/* logo */
+.theme-my .layui-layout-admin .layui-header .layui-logo {
+    color: #dddddd;
+    background-color: #191a23;
+
+}
+
+/* header */
+
+
+.theme-my .layui-layout-admin .layui-header {
+    background-color: #191a23;
+}
+
+.theme-my .layui-layout-admin .layui-header a {
+    color: #dddddd;
+}
+
+.theme-my .layui-layout-admin .layui-header a:hover {
+    color: #dddddd;
+}
+
+.theme-my .layui-layout-admin .layui-header .layui-nav-child a {
+    color: #595959;
+}
+
+.theme-my .layui-layout-admin .layui-header .layui-nav .layui-nav-more {
+    border-color: #dddddd transparent transparent;
+}
+
+.theme-my .layui-layout-admin .layui-header .layui-nav .layui-nav-mored {
+    border-color: transparent transparent #dddddd;
+}
+
+.theme-my .layui-layout-admin .layui-header .layui-nav .layui-this:after,
+.theme-my .layui-layout-admin .layui-header .layui-nav-bar {
+    background-color: #191a23;
+}
+
+
+
+/* side */
+.theme-my .layui-layout-admin .layui-side {
+    background-color: #191a23;
+
+}
+
+
+.theme-my .layui-nav-tree .layui-nav-child dd.layui-this a,
+.theme-my .layui-nav-tree .layui-this > a,
+.theme-my .layui-nav-tree .layui-this > a:hover {
+    background-color: #009688;
+}
+
+.theme-my .layui-nav-tree > .layui-nav-item > a:before {
+    background-color: #009688;
+}
+
+
+.theme-my .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover > .layui-nav-child:before {
+    background: #191a23 !important;
+}
+
+
+
+
+
+/* body tab */
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title {
+    top: 8px;
+    right: 8px;
+    height: 32px;
+    line-height: 32px;
+    box-sizing: border-box;
+    background-color: transparent;
+    box-shadow: -4px 4px 0 #f5f7f9;
+    padding-right: 70px;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-content {
+    top: 40px;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li {
+    border: none;
+    margin-right: 6px;
+    border-radius: 4px;
+    background-color: #fff;
+    line-height: 32px;
+    height: 32px;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li.layui-this {
+    color: #2d8cf0;
+    background-color: #fff;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li:hover {
+    background-color: #fff;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li.layui-this:after {
+    display: none;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li .layui-tab-close,
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li .layui-tab-close:hover {
+    top: 8px;
+    color: #8c8c8c;
+    background-color: transparent;
+}
+
+.theme-my .layui-layout-admin .layui-body .admin-tabs-control,
+.theme-my .layui-layout-admin .layui-body .admin-tabs-control:hover {
+    top: 8px;
+    height: 32px;
+    line-height: 32px;
+    background-color: #f5f7f9;
+    border: none;
+}
+
+.theme-my .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down {
+    border-radius: 4px;
+    background-color: #fff;
+    width: 32px;
+    right: 8px;
+}
+
+.theme-my .admin-tabs-control > .layui-nav .layui-nav-item {
+    line-height: 32px;
+}
+
+.theme-my .admin-tabs-control > .layui-nav .layui-nav-item > a {
+    height: 32px;
+    width: 32px;
+    padding: 0;
+}
+
+.theme-my .admin-tabs-control > .layui-nav .layui-nav-child {
+    top: 36px;
+    border: none;
+    border-radius: 4px;
+    box-shadow: 0 1px 6px rgba(0, 0, 0, .2);
+}
+
+.theme-my .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before {
+    content: "\e603";
+}
+
+.theme-my .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before {
+    content: "\e602";
+}
+
+
+/* body title */
+.theme-my .layui-body-header-title {
+    border-left-color: #009688;
+}
+
+
+
+/* admin dialog */
+.theme-my .layui-layer.layui-layer-admin .layui-layer-title {
+    color: #ffffff;
+    background-color: #191a23;
+
+    border-top-left-radius: 4px;
+    border-top-right-radius: 4px;
+
+
+}
+
+
+
+.theme-my .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0 {
+    border-color: #009688;
+    background-color: #009688;
+}
+
+
+.theme-my .layui-layer.layui-layer-admin .layui-layer-btn a {
+    box-shadow: 0 1px 0 rgba(0, 0, 0, .03);
+}
+
+.theme-my .layui-layer.layui-layer-admin {
+    border-radius: 4px;
+}
+
+
+
+
+/* other */
+.theme-my .more-theme-item:hover,
+.theme-my .more-theme-item.active {
+    border-color: #009688;
+}
+
+.theme-my .btn-circle {
+    background: #009688;
+}
+
+.theme-my .ball-loader > span,
+.theme-my .signal-loader > span {
+    background-color: #009688;
+}
+
+.theme-my .text-primary,
+.theme-my .layui-link {
+    color: #009688 !important;;
+}
+
+
+.theme-my .layui-card {
+    border-radius: 4px;
+    box-shadow: none;
+}
+
+.theme-my .layui-fluid {
+    padding-top: 10px;
+}
+
+
+/* button */
+.theme-my .layui-btn {
+    background-color: #009688;
+
+    box-shadow: 0 1px 0 rgba(0, 0, 0, .03);
+
+}
+
+
+/* input */
+.theme-my .layui-input:focus,
+.theme-my .layui-textarea:focus,
+.theme-my xm-select:hover {
+    border-color: #009688 !important;
+}
+
+
+
+
+
+
+/* switch */
+.theme-my .layui-form-onswitch {
+    border-color: #009688;
+    background-color: #009688;
+}
+
+/* radio */
+.theme-my .layui-form-radio > i:hover,
+.theme-my .layui-form-radioed > i,
+.theme-my .layui-form-checked i,
+.theme-my .layui-form-checked:hover i {
+    color: #009688;
+}
+
+/* checkbox */
+.theme-my .layui-form-checked[lay-skin=primary] i,
+.theme-my .layui-form-checked span,
+.theme-my .layui-form-checked:hover span {
+    border-color: #009688 !important;
+    background-color: #009688;
+}
+
+.theme-my .layui-form-checkbox[lay-skin=primary] i:hover,
+.theme-my .layui-form-checkbox[lay-skin=primary]:hover i {
+    border-color: #009688;
+}
+
+/* select */
+.theme-my .layui-form-select dl dd.layui-this {
+    background-color: #009688;
+}
+
+/* laypage */
+.theme-my .layui-laypage .layui-laypage-curr .layui-laypage-em {
+    background-color: #009688;
+}
+
+.theme-my .layui-laypage input:focus,
+.theme-my select:focus {
+    border-color: #009688 !important;
+}
+
+.theme-my .layui-laypage a:hover {
+    color: #009688;
+}
+
+/* tab */
+.theme-my .layui-tab-brief > .layui-tab-title .layui-this {
+    color: #009688;
+}
+
+.theme-my .layui-tab-brief > .layui-tab-more li.layui-this:after,
+.theme-my .layui-tab-brief > .layui-tab-title .layui-this:after {
+    border-color: #009688 !important;
+}
+
+.theme-my .layui-tab.layui-tab-vertical > .layui-tab-title > li.layui-this {
+    border-color: #009688;
+    color: #009688;
+}
+
+/* breadcrumb */
+.theme-my .layui-breadcrumb a:hover {
+    color: #009688 !important;
+}
+
+/* laydate */
+.theme-my .layui-laydate-footer span:hover,
+.theme-my .layui-laydate-header i:hover,
+.theme-my .layui-laydate-header span:hover {
+    color: #009688;
+}
+
+.theme-my .layui-laydate .layui-this {
+    background-color: #009688 !important;
+}
+
+.theme-my .layui-laydate-content td.laydate-selected {
+    background-color: rgba(0,150,136,.1);
+}
+
+.theme-my .laydate-selected:hover {
+    background-color: rgba(0,150,136,.1) !important;
+}
+
+/* timeline */
+.theme-my .layui-timeline-axis {
+    color: #009688;
+}
+
+/* transfer */
+.theme-my .layui-transfer-active .layui-btn {
+    background-color: #009688 !important;
+    border-color: #009688 !important;
+}
+
+/* progress-bar */
+.theme-my .layui-progress-bar {
+    background-color: #009688;
+}
+
+/* slider */
+.theme-my .layui-slider-bar {
+    background-color: #009688 !important;
+}
+
+.theme-colorful .layui-slider-wrap-btn {
+    border-color: #009688 !important;
+}
+
+/* steps */
+.theme-my .layui-tab.layui-steps > .layui-tab-title > li > .layui-icon {
+    color: #009688;
+}
+
+.theme-my .layui-tab.layui-steps > .layui-tab-title > li > .layui-icon.layui-icon-ok,
+.theme-my .layui-elem-quote {
+    border-color: #009688;
+}
+
+.theme-my .layui-tab.layui-steps > .layui-tab-title > li:before,
+.theme-my .layui-tab.layui-steps > .layui-tab-title > li.layui-this > .layui-icon.layui-icon-ok {
+    background-color: #009688;
+}
+
+.theme-my .layui-tab.layui-steps.layui-steps-simple > .layui-tab-title > li {
+    background-color: rgba(0,150,136,.5);
+}
+
+.theme-my .layui-tab.layui-steps.layui-steps-simple > .layui-tab-title > li.layui-this {
+    background-color: #009688;
+}
+
+.theme-my .layui-tab.layui-steps.layui-steps-simple > .layui-tab-title > li:after {
+    border-left-color: rgba(0,150,136,.5) !important;
+}
+
+.theme-my .layui-tab.layui-steps.layui-steps-simple > .layui-tab-title > li.layui-this + li:after {
+    border-left-color: #009688 !important;
+}
+
+/* xmSelect */
+.theme-my xm-select .xm-body .xm-option .xm-option-icon {
+    border-color: #009688 !important;
+}
+
+.theme-my xm-select .xm-body .xm-option.selected .xm-option-icon,
+.theme-my xm-select > .xm-body .xm-toolbar .toolbar-tag:hover,
+.theme-my .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content {
+    color: #009688 !important;
+}
+
+.theme-my xm-select .xm-label .xm-label-block,
+.theme-my xm-select > .xm-body .xm-option.hide-icon.selected {
+    background-color: #009688 !important;
+}
+
+/* tagsinput */
+.theme-my div.tagsinput span.tag {
+    background: #009688;
+}
+
+/* cascader */
+.theme-my .ew-cascader-dropdown-list-item.active,
+.theme-my .ew-cascader-dropdown-list-item.active .ew-icon-right {
+    color: #009688;
+}
+
+/* city-select */
+.theme-my .city-select a.active {
+    color: #fff !important;
+    background-color: #009688 !important;
+}
+
+.theme-my .city-select a:hover,
+.theme-my .city-select a:focus {
+    background-color: rgba(0,150,136,.07);
+    color: #009688;
+}
+
+.theme-my .city-picker-span > .title > span:hover {
+    background-color: rgba(0,150,136,.07);
+}
+
+.theme-my .city-select-tab > a.active {
+    color: #009688;
+}
+
+.theme-my .layui-layer.layui-layer-admin {
+    border-radius: 4px;
+}
+
+.theme-my .layui-btn {
+    border-radius: 4px;
+}
+
+/** ---------------------------theme-my涓婚end----------------------------------- */
diff --git a/src/main/webapp/static/css/bg.css b/src/main/webapp/static/css/bg.css
new file mode 100644
index 0000000..33be867
--- /dev/null
+++ b/src/main/webapp/static/css/bg.css
@@ -0,0 +1,175 @@
+* {
+    box-sizing: border-box;
+    margin: 0;
+    padding: 0;
+    font-weight: 300;
+}
+.wrapper {
+    background: #50a3a2;
+    background: -webkit-linear-gradient(top left, #50a3a2 0%, #53e3a6 100%);
+    background: linear-gradient(to bottom right, #50a3a2 0%, #53e3a6 100%);
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+    z-index:998;
+}
+.wrapper.form-success .container h1 {
+    -webkit-transform: translateY(85px);
+    transform: translateY(85px);
+}
+/*.container h1 {*/
+    /*font-size: 40px;*/
+    /*-webkit-transition-duration: 1s;*/
+    /*transition-duration: 1s;*/
+    /*-webkit-transition-timing-function: ease-in-put;*/
+    /*transition-timing-function: ease-in-put;*/
+    /*font-weight: 200;*/
+/*}*/
+.bg-bubbles {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    z-index: 1;
+    background: url(../../static/image/bg.jpg);
+}
+.bg-bubbles li {
+    position: absolute;
+    list-style: none;
+    display: block;
+    width: 40px;
+    height: 40px;
+    background-color: rgba(255, 255, 255, 0.15);
+    bottom: -160px;
+    -webkit-animation: square 35s infinite;
+    animation: square 35s infinite;
+    -webkit-transition-timing-function: linear;
+    transition-timing-function: linear;
+}
+.bg-bubbles li:nth-child(1) {
+    left: 10%;
+    background: rgba(135, 208, 104, 0.53);
+  }
+  .bg-bubbles li:nth-child(2) {
+    left: 20%;
+    width: 80px;
+    height: 80px;
+    animation-duration: 15s;
+    background: rgba(91, 192, 222, 0.5);
+  }
+  .bg-bubbles li:nth-child(3) {
+    left: 25%;
+    background: rgba(238, 238, 238, 0.81);
+  }
+
+  .bg-bubbles li:nth-child(4) {
+    left: 40%;
+    width: 60px;
+    height: 60px;
+    animation-duration: 20s;
+    background: rgba(255, 170, 0, 0.7);
+  }
+
+  .bg-bubbles li:nth-child(7) {
+    left: 32%;
+    width: 160px;
+    height: 160px;
+    animation-delay: 3s;
+    background: #afdddf;
+  }
+
+  .bg-bubbles li:nth-child(9) {
+    left: 25%;
+    width: 20px;
+    height: 20px;
+    animation-delay: 1s;
+    animation-duration: 10s;
+    background: rgba(239, 22, 15, 0.67);
+  }
+
+  .bg-bubbles li:nth-child(11) {
+    left: 22%;
+    width: 60px;
+    height: 60px;
+    animation-delay: 3s;
+    background: rgba(239, 22, 15, 0.5);
+  }
+
+  .bg-bubbles li:nth-child(12) {
+    left: 5%;
+    width: 20px;
+    height: 20px;
+    animation-delay: 3s;
+    animation-duration: 10s;
+    background: rgba(245, 183, 59, 0.76);
+  }
+
+  .bg-bubbles li:nth-child(5) {
+    left: 70%;
+    background: rgba(255, 170, 0, 0.8);
+  }
+
+  .bg-bubbles li:nth-child(6) {
+    left: 80%;
+    width: 120px;
+    height: 120px;
+    background: rgba(245, 183, 59, 0.76);
+  }
+
+  .bg-bubbles li:nth-child(8) {
+    left: 55%;
+    width: 20px;
+    height: 20px;
+    animation-delay: 2s;
+    animation-duration: 10s;
+    background: rgba(135, 208, 104, 0.7);
+  }
+
+  .bg-bubbles li:nth-child(10) {
+    left: 90%;
+    width: 160px;
+    height: 160px;
+    animation-delay: 3s;
+    background: rgba(238, 238, 238, 0.5);
+  }
+
+  .bg-bubbles li:nth-child(13) {
+    left: 85%;
+    width: 50px;
+    height: 50px;
+    animation-delay: 5s;
+    animation-duration: 10s;
+    background: rgba(239, 22, 15, 0.6);
+  }
+  .bg-bubbles li:nth-child(14) {
+    left: 70%;
+    width: 30px;
+    height: 30px;
+    animation-delay: 6s;
+    background: #afdddf;
+  }
+@-webkit-keyframes square {
+    0% {
+        -webkit-transform: translateY(0);
+        transform: translateY(0);
+    }
+    100% {
+       /*-1080px浠h〃浠庝笅鍚戜笂绉诲姩澶氬皯   600deg浠h〃浠庝笅鍚戜笂绉诲姩杩囩▼涓棆杞�600搴�*/
+        -webkit-transform: translateY(-1080px) rotate(600deg);
+        transform: translateY(-1080px) rotate(600deg);
+    }
+}
+@keyframes square {
+    0% {
+        -webkit-transform: translateY(0);
+        transform: translateY(0);
+    }
+    100% {
+        -webkit-transform: translateY(-1080px) rotate(600deg);
+        transform: translateY(-1080px) rotate(600deg);
+    }
+}
diff --git a/src/main/webapp/static/css/cool.css b/src/main/webapp/static/css/cool.css
new file mode 100644
index 0000000..b592730
--- /dev/null
+++ b/src/main/webapp/static/css/cool.css
@@ -0,0 +1,48 @@
+/*鑷姩琛ュ叏*/
+.cool-auto-complete .layui-unselect.layui-form-select {
+    display: none;
+}
+
+.cool-auto-complete-div {
+    cursor: pointer;
+}
+
+.cool-auto-complete-window {
+    width: 100%;
+    display: none;
+    position: absolute;
+    line-height: normal;
+    z-index: 999;
+}
+
+.cool-auto-complete-window-input {
+    height: 28px;
+    box-sizing: border-box;
+    border: 1px solid #dedede;
+    width: 100%;
+}
+.cool-auto-complete-window-input:focus {
+    border-color: #007bff !important;
+}
+.cool-auto-complete-window-select {
+    width: 100%;
+    border: 1px solid #dedede;
+    margin: 0;
+    height: 142px;
+
+}
+
+.cool-auto-complete-window-select option:hover {
+    background-color: #f1f1f1;
+}
+
+.cool-auto-complete-window-select option{
+    padding: 3px 2px;
+}
+.cool-auto-complete-window-select option:first-child{
+    color:#aaaaaa;
+}
+
+/*.layui-table-grid-down {*/
+/*    display: none;*/
+/*}*/
diff --git a/src/main/webapp/static/css/loader.css b/src/main/webapp/static/css/loader.css
new file mode 100644
index 0000000..6990738
--- /dev/null
+++ b/src/main/webapp/static/css/loader.css
@@ -0,0 +1,59 @@
+/**鍒濆鍖栧姞杞藉眰*/
+.layuimini-loader {
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background-color: #ffffff;
+    z-index: 999999;
+}
+
+.layuimini-loader .layuimini-loader-inner {
+    display: block;
+    position: relative;
+    left: 50%;
+    top: 50%;
+    width: 150px;
+    height: 150px;
+    margin: -75px 0 0 -75px;
+    border-radius: 50%;
+    border: 3px solid transparent;
+    border-top-color: #1E9FFF;
+    animation: spin 2s linear infinite;
+}
+
+.layuimini-loader .layuimini-loader-inner:before {
+    content: "";
+    position: absolute;
+    top: 5px;
+    left: 5px;
+    right: 5px;
+    bottom: 5px;
+    border-radius: 50%;
+    border: 3px solid transparent;
+    border-top-color: #1E9FFF;
+    animation: spin 3s linear infinite;
+}
+
+.layuimini-loader .layuimini-loader-inner:after {
+    content: "";
+    position: absolute;
+    top: 15px;
+    left: 15px;
+    right: 15px;
+    bottom: 15px;
+    border-radius: 50%;
+    border: 3px solid transparent;
+    border-top-color: #1E9FFF;
+    animation: spin 1.5s linear infinite;
+}
+
+@keyframes spin {
+    0% {
+        transform: rotate(0deg);
+    }
+    to {
+        transform: rotate(1turn);
+    }
+}
diff --git a/src/main/webapp/static/css/login.css b/src/main/webapp/static/css/login.css
new file mode 100644
index 0000000..91ff063
--- /dev/null
+++ b/src/main/webapp/static/css/login.css
@@ -0,0 +1,473 @@
+
+
+
+
+/*//////////////////////////////////////////////////////////////////
+[ FONT ]*/
+
+@font-face {
+  font-family: Montserrat-Regular;
+  src: url('font/montserrat/Montserrat-Regular.ttf');
+}
+
+@font-face {
+  font-family: Montserrat-ExtraBold;
+  src: url('font/montserrat/Montserrat-ExtraBold.ttf');
+}
+
+@font-face {
+  font-family: Montserrat-Bold;
+  src: url('font/montserrat/Montserrat-Bold.ttf');
+}
+
+
+/*//////////////////////////////////////////////////////////////////
+[ RESTYLE TAG ]*/
+
+
+
+/*---------------------------------------------*/
+input {
+	outline: none;
+	border: none;
+}
+
+
+input:focus::-webkit-input-placeholder { color:transparent; }
+input:focus:-moz-placeholder { color:transparent; }
+input:focus::-moz-placeholder { color:transparent; }
+input:focus:-ms-input-placeholder { color:transparent; }
+
+
+input::-webkit-input-placeholder { color: #999999; }
+input:-moz-placeholder { color: #999999; }
+input::-moz-placeholder { color: #999999; }
+input:-ms-input-placeholder { color: #999999; }
+
+/*---------------------------------------------*/
+button {
+	outline: none !important;
+	border: none;
+	background: transparent;
+}
+
+button:hover {
+	cursor: pointer;
+}
+
+
+/*//////////////////////////////////////////////////////////////////
+[ Utility ]*/
+.txt1 {
+  font-family: Montserrat-Regular;
+  font-size: 16px;
+  color: #cccccc;
+  line-height: 1.4;
+}
+
+.bo1 {
+  border-bottom: 1px solid #999999;
+}
+
+.hov1:hover {
+  border-color: #d33f8d;
+}
+
+
+/*//////////////////////////////////////////////////////////////////
+[ login ]*/
+
+.limiter {
+  width: 100%;
+  margin: 0 auto;
+}
+
+.container-login100 {
+  width: 100%;
+  min-height: 100vh;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -moz-box;
+  display: -ms-flexbox;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  align-items: center;
+  padding: 15px;
+  background-repeat: no-repeat;
+  background-size: cover;
+  background-position: center;
+
+  position: relative;
+  z-index: 1;
+}
+
+.container-login100::before {
+  content: "";
+  display: block;
+  position: absolute;
+  z-index: -1;
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  background: #005bea;
+  background: -webkit-linear-gradient(bottom, #005bea, #00c6fb);
+  background: -o-linear-gradient(bottom, #005bea, #00c6fb);
+  background: -moz-linear-gradient(bottom, #005bea, #00c6fb);
+  background: linear-gradient(bottom, #005bea, #00c6fb);
+  opacity: 0.9;
+}
+
+.wrap-login100 {
+  width: 390px;
+  background: transparent;
+}
+
+
+
+/*------------------------------------------------------------------
+[  ]*/
+.login100-form {
+  width: 100%;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -moz-box;
+  display: -ms-flexbox;
+  display: flex;
+  justify-content: space-between;
+  flex-wrap: wrap;
+}
+
+.login100-form-title {
+  font-family: "寰蒋闆呴粦";
+  font-size: 48px;
+  line-height: 1.2;
+  text-align: center;
+  font-weight: bold;
+  letter-spacing: 10px;
+
+  width: 100%;
+  display: block;
+  color: #3660c9;
+  margin-top: 10px;
+  /*margin-bottom: 30px;*/
+}
+
+/*---------------------------------------------*/
+.login100-form-avatar {
+  width: 120px;
+  height: 120px;
+  border-radius: 50%;
+  overflow: hidden;
+  margin: 0 auto;
+}
+.login100-form-avatar img {
+  width: 100%;
+}
+
+
+/*---------------------------------------------*/
+.wrap-input100 {
+  display: inline-block;
+  position: relative;
+  width: 80%;
+  z-index: 1;
+  margin-top: 10px;
+}
+
+.input100::placeholder {
+  font-family: Montserrat-Bold;
+  font-size: 15px;
+  line-height: 1.2;
+  color: #c9c9c9;
+
+}
+.input100 {
+  font-family: Montserrat-Bold;
+  font-size: 15px;
+  line-height: 1.2;
+  color: #333333;
+
+  box-sizing: border-box;
+  display: block;
+  width: 100%;
+  background: #fff;
+  height: 50px;
+  border-radius: 25px;
+  padding: 0 30px 0 53px;
+}
+
+
+
+/*------------------------------------------------------------------
+[ Focus ]*/
+.focus-input100 {
+  display: block;
+  position: absolute;
+  border-radius: 25px;
+  bottom: 0;
+  left: 0;
+  z-index: -1;
+  width: 100%;
+  height: 100%;
+  box-shadow: 0px 0px 0px 0px;
+  color: rgba(193, 193, 193, 0.6);
+}
+
+.input100:focus + .focus-input100 {
+  -webkit-animation: anim-shadow 0.5s ease-in-out forwards;
+  animation: anim-shadow 0.5s ease-in-out forwards;
+}
+
+@-webkit-keyframes anim-shadow {
+  to {
+    box-shadow: 0px 0px 80px 30px;
+    opacity: 0;
+  }
+}
+
+@keyframes anim-shadow {
+  to {
+    box-shadow: 0px 0px 80px 30px;
+    opacity: 0;
+  }
+}
+
+.symbol-input100 {
+  font-size: 15px;
+  color: #999999;
+
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -moz-box;
+  display: -ms-flexbox;
+  display: flex;
+  align-items: center;
+  position: absolute;
+  border-radius: 25px;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  padding-left: 30px;
+  pointer-events: none;
+
+  -webkit-transition: all 0.4s;
+  -o-transition: all 0.4s;
+  -moz-transition: all 0.4s;
+  transition: all 0.4s;
+}
+
+.input100:focus + .focus-input100 + .symbol-input100 {
+  color: #99C1C1C1;
+  padding-left: 23px;
+}
+
+
+/*------------------------------------------------------------------
+[ Button ]*/
+.container-login100-form-btn {
+  width: 80%;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -moz-box;
+  display: -ms-flexbox;
+  flex-wrap: wrap;
+  justify-content: center;
+  display: inline-block;
+  margin-top: 15px;
+}
+
+.login100-form-btn {
+  font-family: Montserrat-Bold;
+  font-size: 15px;
+  line-height: 1.5;
+  color: #e0e0e0;
+
+  width: 100%;
+  height: 50px;
+  border-radius: 25px;
+  background: #333333;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -moz-box;
+  display: -ms-flexbox;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  padding: 0 25px;
+
+  -webkit-transition: all 0.4s;
+  -o-transition: all 0.4s;
+  -moz-transition: all 0.4s;
+  transition: all 0.4s;
+
+  position: relative;
+  z-index: 1;
+}
+
+.login100-form-btn::before {
+  content: "";
+  display: block;
+  position: absolute;
+  z-index: -1;
+  width: 100%;
+  height: 100%;
+  border-radius: 25px;
+  top: 0;
+  left: 0;
+  background: #005bea;
+  background: -webkit-linear-gradient(left, #005bea, #00c6fb);
+  background: -o-linear-gradient(left, #005bea, #00c6fb);
+  background: -moz-linear-gradient(left, #005bea, #00c6fb);
+  background: linear-gradient(left, #005bea, #00c6fb);
+  -webkit-transition: all 0.4s;
+  -o-transition: all 0.4s;
+  -moz-transition: all 0.4s;
+  transition: all 0.4s;
+  opacity: 0;
+}
+
+.login100-form-btn:hover {
+  background: transparent;
+  color: #fff;
+}
+
+.login100-form-btn:hover:before {
+  opacity: 1;
+}
+
+/*------------------------------------------------------------------
+[ Button sign in with ]*/
+.btn-face,
+.btn-google {
+  font-family: Raleway-Bold;
+  font-size: 16px;
+  line-height: 1.2;
+
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -moz-box;
+  display: -ms-flexbox;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: calc((100% - 10px) / 2);
+  height: 40px;
+  border-radius: 3px;
+  border: 1px solid #e6e6e6;
+  background-color: #fff;
+
+  -webkit-transition: all 0.4s;
+  -o-transition: all 0.4s;
+  -moz-transition: all 0.4s;
+  transition: all 0.4s;
+}
+
+
+.btn-face {
+  color: #3b5998;
+}
+
+.btn-face i {
+  font-size: 20px;
+  margin-right: 10px;
+  padding-bottom: 1px;
+}
+
+.btn-google {
+  color: #555555;
+}
+
+.btn-google img {
+  width: 19px;
+  margin-right: 10px;
+  padding-bottom: 1px;
+}
+
+
+.btn-face:hover,
+.btn-google:hover {
+  border-color: #d33f8d;
+}
+
+
+
+/*------------------------------------------------------------------
+[ Alert validate ]*/
+
+.validate-input {
+  position: relative;
+}
+
+.alert-validate::before {
+  content: attr(data-validate);
+  position: absolute;
+  max-width: 70%;
+  background-color: white;
+  border: 1px solid #c80000;
+  border-radius: 14px;
+  padding: 4px 25px 4px 10px;
+  top: 50%;
+  -webkit-transform: translateY(-50%);
+  -moz-transform: translateY(-50%);
+  -ms-transform: translateY(-50%);
+  -o-transform: translateY(-50%);
+  transform: translateY(-50%);
+  right: 8px;
+  pointer-events: none;
+
+  font-family: Montserrat-Bold;
+  color: #c80000;
+  font-size: 13px;
+  line-height: 1.4;
+  text-align: left;
+
+  visibility: hidden;
+  opacity: 0;
+
+  -webkit-transition: opacity 0.4s;
+  -o-transition: opacity 0.4s;
+  -moz-transition: opacity 0.4s;
+  transition: opacity 0.4s;
+}
+
+.alert-validate::after {
+  content: "\f06a";
+  font-family: FontAwesome;
+  display: block;
+  position: absolute;
+  color: #c80000;
+  font-size: 15px;
+  top: 50%;
+  -webkit-transform: translateY(-50%);
+  -moz-transform: translateY(-50%);
+  -ms-transform: translateY(-50%);
+  -o-transform: translateY(-50%);
+  transform: translateY(-50%);
+  right: 13px;
+}
+
+.alert-validate:hover:before {
+  visibility: visible;
+  opacity: 1;
+}
+
+@media (max-width: 992px) {
+  .alert-validate::before {
+    visibility: visible;
+    opacity: 1;
+  }
+}
+
+/*//////////////////////////////////////////////////////////////////
+[ responsive ]*/
+
+@media (max-width: 576px) {
+  .wrap-login100 {
+    padding-top: 80px;
+    padding-left: 15px;
+    padding-right: 15px;
+  }
+}
diff --git a/src/main/webapp/static/css/main.min.css b/src/main/webapp/static/css/main.min.css
new file mode 100644
index 0000000..333fd54
--- /dev/null
+++ b/src/main/webapp/static/css/main.min.css
@@ -0,0 +1 @@
+@import url(https://fonts.googleapis.com/css?family=Homenaje);@import url(https://fonts.googleapis.com/css?family=Noto+Serif+JP);@-webkit-keyframes animateSsplashStr{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}30%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes animateSsplashStr{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}20%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}30%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;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;-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}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{height:100%}body{min-height:100%;font-family:Homenaje,sans-serif;letter-spacing:.15em;background-color:#111}@media all and (min-width:569px) and (max-width:1366px){body{font-size:14px;font-size:.875rem}}@media all and (max-width:568px){body{font-size:12px;font-size:.75rem}}body.is-opened-index{overflow:auto}body.is-picked{cursor:pointer}a{text-decoration:none}::-moz-selection{color:#fff;background:rgba(0,0,0,.5)}::selection{color:#fff;background:rgba(0,0,0,.5)}.l-contents{position:relative;z-index:10}.l-contents.is-fixed{position:fixed;top:0;right:0;left:0}.l-page--white{color:#fff}.l-page--white a{color:#fff}.l-page--white svg{fill:#fff}.l-page--black{color:#222}.l-page--black a{color:#222}.l-page--black svg{fill:#222}.c-btn-circle{width:60px;height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin-top:5px;border-radius:50%}.c-btn-circle svg{width:30px;height:30px}.c-btn-circle--white{background-color:#fff}.c-btn-circle--white .path-fill{fill:#222}.c-btn-circle--black{background-color:#222}.c-btn-circle--black .path-fill{fill:#fff}.c-button{height:2em;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-right:1.25em;padding-left:1.25em;border-radius:1em;border-width:2px;border-style:solid}.c-button--white{border-color:#fff}.c-button--black{border-color:#222}.c-button__icon{display:block;margin-right:.7em}.c-button__icon--back{width:.3em;height:.3em;border-top:2px solid #fff;border-left:2px solid #fff;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.c-button__icon--white{border-color:#fff}.c-button__icon--black{border-color:#222}.c-button__label{font-weight:700}.c-button__label .js-split-str{display:inline-block}.c-button__icon{-webkit-transition-duration:.4s;transition-duration:.4s}.c-button:hover .c-button__icon{-webkit-transform:translateX(-5px) rotate(-45deg);transform:translateX(-5px) rotate(-45deg)}.c-button:hover .c-button__label .js-split-str{-webkit-animation-name:animateSsplashStr;animation-name:animateSsplashStr;-webkit-animation-duration:.6s;animation-duration:.6s}.c-button:hover .c-button__label .js-split-str:nth-of-type(1){-webkit-animation-delay:0s;animation-delay:0s}.c-button:hover .c-button__label .js-split-str:nth-of-type(2){-webkit-animation-delay:20ms;animation-delay:20ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(3){-webkit-animation-delay:40ms;animation-delay:40ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(4){-webkit-animation-delay:60ms;animation-delay:60ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(5){-webkit-animation-delay:80ms;animation-delay:80ms}.c-button:hover .c-button__label .js-split-str:nth-of-type(6){-webkit-animation-delay:.1s;animation-delay:.1s}.c-button:hover .c-button__label .js-split-str:nth-of-type(7){-webkit-animation-delay:.12s;animation-delay:.12s}.c-button:hover .c-button__label .js-split-str:nth-of-type(8){-webkit-animation-delay:.14s;animation-delay:.14s}.c-button:hover .c-button__label .js-split-str:nth-of-type(9){-webkit-animation-delay:.16s;animation-delay:.16s}.c-button:hover .c-button__label .js-split-str:nth-of-type(10){-webkit-animation-delay:.18s;animation-delay:.18s}.c-button:hover .c-button__label .js-split-str:nth-of-type(11){-webkit-animation-delay:.2s;animation-delay:.2s}.c-button:hover .c-button__label .js-split-str:nth-of-type(12){-webkit-animation-delay:.22s;animation-delay:.22s}.c-button:hover .c-button__label .js-split-str:nth-of-type(13){-webkit-animation-delay:.24s;animation-delay:.24s}.c-button:hover .c-button__label .js-split-str:nth-of-type(14){-webkit-animation-delay:.26s;animation-delay:.26s}.c-button:hover .c-button__label .js-split-str:nth-of-type(15){-webkit-animation-delay:.28s;animation-delay:.28s}.c-button:hover .c-button__label .js-split-str:nth-of-type(16){-webkit-animation-delay:.3s;animation-delay:.3s}.c-button:hover .c-button__label .js-split-str:nth-of-type(17){-webkit-animation-delay:.32s;animation-delay:.32s}.c-button:hover .c-button__label .js-split-str:nth-of-type(18){-webkit-animation-delay:.34s;animation-delay:.34s}.c-button:hover .c-button__label .js-split-str:nth-of-type(19){-webkit-animation-delay:.36s;animation-delay:.36s}.c-button:hover .c-button__label .js-split-str:nth-of-type(20){-webkit-animation-delay:.38s;animation-delay:.38s}.c-button:hover .c-button__label .js-split-str:nth-of-type(21){-webkit-animation-delay:.4s;animation-delay:.4s}.c-button:hover .c-button__label .js-split-str:nth-of-type(22){-webkit-animation-delay:.42s;animation-delay:.42s}.c-button:hover .c-button__label .js-split-str:nth-of-type(23){-webkit-animation-delay:.44s;animation-delay:.44s}.c-button:hover .c-button__label .js-split-str:nth-of-type(24){-webkit-animation-delay:.46s;animation-delay:.46s}.c-button:hover .c-button__label .js-split-str:nth-of-type(25){-webkit-animation-delay:.48s;animation-delay:.48s}.c-button:hover .c-button__label .js-split-str:nth-of-type(26){-webkit-animation-delay:.5s;animation-delay:.5s}.c-button:hover .c-button__label .js-split-str:nth-of-type(27){-webkit-animation-delay:.52s;animation-delay:.52s}.c-button:hover .c-button__label .js-split-str:nth-of-type(28){-webkit-animation-delay:.54s;animation-delay:.54s}.c-button:hover .c-button__label .js-split-str:nth-of-type(29){-webkit-animation-delay:.56s;animation-delay:.56s}.c-button:hover .c-button__label .js-split-str:nth-of-type(30){-webkit-animation-delay:.58s;animation-delay:.58s}.c-text-link{display:inline-block;position:relative}.c-text-link__label{display:inline-block;position:relative;z-index:2}.c-text-link__bg{height:2px;display:block;position:absolute;top:50%;right:0;left:0}.c-text-link__bg--white{background-color:#fff}.c-text-link__bg--black{background-color:#222}@-webkit-keyframes openTextLinkBar{0%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left}100%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:left;transform-origin:left}}@keyframes openTextLinkBar{0%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left}100%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:left;transform-origin:left}}@-webkit-keyframes closeTextLinkBar{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:right;transform-origin:right}100%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:right;transform-origin:right}}@keyframes closeTextLinkBar{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:right;transform-origin:right}100%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:right;transform-origin:right}}.c-text-link__label{-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1)}.c-text-link__bg{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-animation-name:closeTextLinkBar;animation-name:closeTextLinkBar;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.075,.82,.165,1);animation-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}.c-text-link:hover .c-text-link__bg{-webkit-animation-name:openTextLinkBar;animation-name:openTextLinkBar}.p-badges{position:fixed;z-index:100;bottom:20px;right:20px}@media all and (max-width:568px){.p-badges{width:90px}}.p-badges img{width:100%}.p-canvas-webgl{position:fixed;z-index:1;top:0;left:0}.p-dummy-scroll{position:relative;z-index:1}.p-hold-button{width:60px;height:60px;opacity:0;position:fixed;z-index:10;pointer-events:none}.p-hold-button.is-pc{opacity:1;top:0;left:0}.p-hold-button.is-smartphone{cursor:pointer;bottom:35px;right:0;left:0;opacity:1;margin-right:auto;margin-left:auto}.p-hold-button__border{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute}.p-hold-button__border--out{width:60px;height:60px;top:0;left:0;border:1px solid #fff}.p-hold-button__border--in{width:54px;height:54px;top:3px;left:3px;border:1px solid #fff}.p-hold-button__label{width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:0;left:0;z-index:2;mix-blend-mode:difference;padding-left:.15em}.p-hold-button__progress{width:54px;height:54px;overflow:hidden;position:absolute;top:3px;left:3px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.p-hold-button__progress-in{width:108px;height:54px;background-color:#fff;-webkit-transform:skewX(-45deg) translateX(50%);transform:skewX(-45deg) translateX(50%);-webkit-transform-origin:right bottom;transform-origin:right bottom}.p-hold-button__label{opacity:0;font-size:14px;font-size:.875rem}.p-hold-button__border{opacity:0;-webkit-transform:rotate(45deg) scale(.6);transform:rotate(45deg) scale(.6)}.p-hold-button.is-enabled{pointer-events:auto}.p-hold-button.is-shown .p-hold-button__label{opacity:1;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-delay:.3s;transition-delay:.3s;-webkit-transition-property:opacity;transition-property:opacity}.p-hold-button.is-shown .p-hold-button__border{opacity:1;-webkit-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition-duration:.8s;transition-duration:.8s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-shown .p-hold-button__border--out{-webkit-transition-delay:.1s;transition-delay:.1s}.p-hold-button.is-shown .p-hold-button__border--in{-webkit-transition-delay:.2s;transition-delay:.2s}.p-hold-button.is-shown .p-hold-button__progress{opacity:1;-webkit-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-delay:.3s;transition-delay:.3s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-hidden .p-hold-button__label{opacity:0;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-property:opacity;transition-property:opacity}.p-hold-button.is-hidden .p-hold-button__border{opacity:0;-webkit-transform:rotate(45deg) scale(.8);transform:rotate(45deg) scale(.8);-webkit-transition-duration:.8s;transition-duration:.8s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-hidden .p-hold-button__progress{opacity:0;-webkit-transform:rotate(45deg) scale(.5);transform:rotate(45deg) scale(.5);-webkit-transition-duration:.8s;transition-duration:.8s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-hold-button.is-pressed .p-hold-button__border--out{-webkit-transform:rotate(45deg) scale(1.12);transform:rotate(45deg) scale(1.12);-webkit-transition-delay:0s;transition-delay:0s}.p-hold-button.is-released .p-hold-button__border--out{-webkit-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition-delay:0s;transition-delay:0s}@-webkit-keyframes loopFollow{0%{-webkit-transform:translateY(-100.5%);transform:translateY(-100.5%)}100%{-webkit-transform:translateY(100.5%);transform:translateY(100.5%)}}@keyframes loopFollow{0%{-webkit-transform:translateY(-100.5%);transform:translateY(-100.5%)}100%{-webkit-transform:translateY(100.5%);transform:translateY(100.5%)}}.p-introduction{width:100%;height:100vh;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.5;position:relative;z-index:10;color:#fff;text-align:center;letter-spacing:.2em}.p-introduction__wrap{position:absolute;right:0;bottom:0;left:0}.p-introduction__row{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-introduction__row.is-shown{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.p-introduction__row.is-shown:nth-of-type(1){-webkit-transition-delay:5s;transition-delay:5s}.p-introduction__row.is-shown:nth-of-type(2){-webkit-transition-delay:5.25s;transition-delay:5.25s}.p-introduction__row.is-shown:nth-of-type(3){-webkit-transition-delay:5.5s;transition-delay:5.5s}.p-introduction__row.is-shown:nth-of-type(4){-webkit-transition-delay:5.75s;transition-delay:5.75s}.p-introduction__row.is-shown:nth-of-type(5){-webkit-transition-delay:6s;transition-delay:6s}.p-introduction__links{margin-top:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.p-introduction__link{width:18px;height:18px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8);margin:0 12px;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.p-introduction__link svg{width:18px}.p-introduction__link.is-shown{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.p-introduction__link.is-shown:nth-of-type(1){-webkit-transition-delay:5.6s;transition-delay:5.6s}.p-introduction__link.is-shown:nth-of-type(2){-webkit-transition-delay:5.7s;transition-delay:5.7s}.p-introduction__link.is-shown:nth-of-type(3){-webkit-transition-delay:5.8s;transition-delay:5.8s}.p-introduction__link.is-shown:nth-of-type(4){-webkit-transition-delay:5.9s;transition-delay:5.9s}.p-introduction__link.is-shown:nth-of-type(5){-webkit-transition-delay:6s;transition-delay:6s}.p-introduction__follow{width:15px;height:10vh;overflow:hidden;position:relative;margin:6vh auto 0;opacity:0;-webkit-transition-property:opacity;transition-property:opacity}.p-introduction__follow.is-shown{opacity:1;-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-delay:3s;transition-delay:3s}.p-introduction__follow-in{width:1px;height:100%;position:absolute;top:0;background-color:#fff;-webkit-animation-name:loopFollow;animation-name:loopFollow;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.p-introduction__follow-in--1{left:0}.p-introduction__follow-in--2{left:50%;margin-left:-1px;-webkit-animation-delay:.3s;animation-delay:.3s}.p-introduction__follow-in--3{right:0;-webkit-animation-delay:.15s;animation-delay:.15s}.p-preloader{position:fixed;top:50%;left:50%;z-index:100;pointer-events:none}@media all and (min-width:569px){.p-preloader{width:60px;height:60px;margin-top:-30px;margin-left:-30px}}@media all and (max-width:568px){.p-preloader{width:30px;height:30px;margin-top:-15px;margin-left:-15px}}.p-preloader.is-hidden{opacity:0;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-property:opacity;transition-property:opacity}.p-preloader__box{width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:0;left:0;border-style:solid;-webkit-animation-name:rotatePreloaderBox;animation-name:rotatePreloaderBox;-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media all and (min-width:569px){.p-preloader__box{border-width:3px}}@media all and (max-width:568px){.p-preloader__box{border-width:2px}}.p-preloader__box--blank{border-color:#111}.p-preloader__box--white{border-color:#fff}.p-preloader__box--02{-webkit-animation-delay:1s;animation-delay:1s}.p-preloader__box--03{-webkit-animation-delay:2s;animation-delay:2s}@-webkit-keyframes rotatePreloaderBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(0);transform:scale(.1) rotate(0)}12.5%{opacity:1}25%{-webkit-transform:scale(1) rotate(180deg);transform:scale(1) rotate(180deg)}37.5%{opacity:1;-webkit-transform:scale(1) rotate(270deg);transform:scale(1) rotate(270deg)}50%{opacity:0;-webkit-transform:scale(1.2) rotate(360deg);transform:scale(1.2) rotate(360deg)}100%{opacity:0}}@keyframes rotatePreloaderBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(0);transform:scale(.1) rotate(0)}12.5%{opacity:1}25%{-webkit-transform:scale(1) rotate(180deg);transform:scale(1) rotate(180deg)}37.5%{opacity:1;-webkit-transform:scale(1) rotate(270deg);transform:scale(1) rotate(270deg)}50%{opacity:0;-webkit-transform:scale(1.2) rotate(360deg);transform:scale(1.2) rotate(360deg)}100%{opacity:0}}.p-config-menu{position:fixed;bottom:20px;right:20px;z-index:100}.p-sketch-index{max-width:1366px;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative;top:0;right:0;left:0;z-index:100000;margin-right:auto;margin-left:auto}@media all and (min-width:1025px){.p-sketch-index{padding-top:100px;padding-bottom:50px;padding-right:7.5%;padding-left:7.5%}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index{padding-top:100px;padding-bottom:50px;padding-right:7.5%;padding-left:7.5%}}@media all and (max-width:568px){.p-sketch-index{padding-top:70px;padding-bottom:40px;padding-right:10px;padding-left:10px}}.p-sketch-index__item{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}@media all and (min-width:1025px){.p-sketch-index__item{width:33.3%;margin-bottom:60px;padding-right:15px;padding-left:15px}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index__item{width:50%;margin-bottom:40px;padding-right:10px;padding-left:10px}}@media all and (max-width:568px){.p-sketch-index__item{width:100%;margin-bottom:30px;padding-right:10px;padding-left:10px}}.p-sketch-index__item-wrap{display:block}.p-sketch-index__item-thumb{width:100%;position:relative;margin-bottom:10px;padding-top:52.5%;background-color:#fff;background-size:cover}.p-sketch-index__item-thumb:after,.p-sketch-index__item-thumb:before{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0}.p-sketch-index__item-thumb:before{background-color:#fff}.p-sketch-index__item-thumb:after{background-color:rgba(0,0,0,.7)}.p-sketch-index__item-thumb-label{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:0;left:0;z-index:10;letter-spacing:.2em}@media all and (min-width:1025px){.p-sketch-index__item-thumb-label{font-size:24px;font-size:1.5rem}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index__item-thumb-label{font-size:21px;font-size:1.3125rem}}@media all and (max-width:568px){.p-sketch-index__item-thumb-label{font-size:18px;font-size:1.125rem}}.p-sketch-index__item-title{letter-spacing:.1em}@media all and (min-width:1025px){.p-sketch-index__item-title{font-size:32px;font-size:2rem}}@media all and (min-width:569px) and (max-width:1024px){.p-sketch-index__item-title{font-size:28px;font-size:1.75rem}}@media all and (max-width:568px){.p-sketch-index__item-title{font-size:24px;font-size:1.5rem}}.p-sketch-index__item-title .js-split-str{display:inline-block}.p-sketch-index__item-date{margin-top:5px;font-size:12px;font-size:.75rem}.p-sketch-index__item-thumb{-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-delay:.4s;transition-delay:.4s;-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1)}.p-sketch-index__item-thumb:before{-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-delay:.6s;transition-delay:.6s}.p-sketch-index__item-thumb:after{opacity:0;-webkit-transition-duration:.4s;transition-duration:.4s}.p-sketch-index__item-thumb-label .js-split-str{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transition-duration:.6s;transition-duration:.6s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(1){-webkit-transition-delay:0s;transition-delay:0s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(2){-webkit-transition-delay:20ms;transition-delay:20ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(3){-webkit-transition-delay:40ms;transition-delay:40ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(4){-webkit-transition-delay:60ms;transition-delay:60ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(5){-webkit-transition-delay:80ms;transition-delay:80ms}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(6){-webkit-transition-delay:.1s;transition-delay:.1s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(7){-webkit-transition-delay:.12s;transition-delay:.12s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(8){-webkit-transition-delay:.14s;transition-delay:.14s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(9){-webkit-transition-delay:.16s;transition-delay:.16s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(10){-webkit-transition-delay:.18s;transition-delay:.18s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(11){-webkit-transition-delay:.2s;transition-delay:.2s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(12){-webkit-transition-delay:.22s;transition-delay:.22s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(13){-webkit-transition-delay:.24s;transition-delay:.24s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(14){-webkit-transition-delay:.26s;transition-delay:.26s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(15){-webkit-transition-delay:.28s;transition-delay:.28s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(16){-webkit-transition-delay:.3s;transition-delay:.3s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(17){-webkit-transition-delay:.32s;transition-delay:.32s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(18){-webkit-transition-delay:.34s;transition-delay:.34s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(19){-webkit-transition-delay:.36s;transition-delay:.36s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(20){-webkit-transition-delay:.38s;transition-delay:.38s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(21){-webkit-transition-delay:.4s;transition-delay:.4s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(22){-webkit-transition-delay:.42s;transition-delay:.42s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(23){-webkit-transition-delay:.44s;transition-delay:.44s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(24){-webkit-transition-delay:.46s;transition-delay:.46s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(25){-webkit-transition-delay:.48s;transition-delay:.48s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(26){-webkit-transition-delay:.5s;transition-delay:.5s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(27){-webkit-transition-delay:.52s;transition-delay:.52s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(28){-webkit-transition-delay:.54s;transition-delay:.54s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(29){-webkit-transition-delay:.56s;transition-delay:.56s}.p-sketch-index__item-thumb-label .js-split-str:nth-of-type(30){-webkit-transition-delay:.58s;transition-delay:.58s}.p-sketch-index__item-title .js-split-str{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transition-duration:.6s;transition-duration:.6s}.p-sketch-index__item-title .js-split-str:nth-of-type(1){-webkit-transition-delay:.6s;transition-delay:.6s}.p-sketch-index__item-title .js-split-str:nth-of-type(2){-webkit-transition-delay:.62s;transition-delay:.62s}.p-sketch-index__item-title .js-split-str:nth-of-type(3){-webkit-transition-delay:.64s;transition-delay:.64s}.p-sketch-index__item-title .js-split-str:nth-of-type(4){-webkit-transition-delay:.66s;transition-delay:.66s}.p-sketch-index__item-title .js-split-str:nth-of-type(5){-webkit-transition-delay:.68s;transition-delay:.68s}.p-sketch-index__item-title .js-split-str:nth-of-type(6){-webkit-transition-delay:.7s;transition-delay:.7s}.p-sketch-index__item-title .js-split-str:nth-of-type(7){-webkit-transition-delay:.72s;transition-delay:.72s}.p-sketch-index__item-title .js-split-str:nth-of-type(8){-webkit-transition-delay:.74s;transition-delay:.74s}.p-sketch-index__item-title .js-split-str:nth-of-type(9){-webkit-transition-delay:.76s;transition-delay:.76s}.p-sketch-index__item-title .js-split-str:nth-of-type(10){-webkit-transition-delay:.78s;transition-delay:.78s}.p-sketch-index__item-title .js-split-str:nth-of-type(11){-webkit-transition-delay:.8s;transition-delay:.8s}.p-sketch-index__item-title .js-split-str:nth-of-type(12){-webkit-transition-delay:.82s;transition-delay:.82s}.p-sketch-index__item-title .js-split-str:nth-of-type(13){-webkit-transition-delay:.84s;transition-delay:.84s}.p-sketch-index__item-title .js-split-str:nth-of-type(14){-webkit-transition-delay:.86s;transition-delay:.86s}.p-sketch-index__item-title .js-split-str:nth-of-type(15){-webkit-transition-delay:.88s;transition-delay:.88s}.p-sketch-index__item-title .js-split-str:nth-of-type(16){-webkit-transition-delay:.9s;transition-delay:.9s}.p-sketch-index__item-title .js-split-str:nth-of-type(17){-webkit-transition-delay:.92s;transition-delay:.92s}.p-sketch-index__item-title .js-split-str:nth-of-type(18){-webkit-transition-delay:.94s;transition-delay:.94s}.p-sketch-index__item-title .js-split-str:nth-of-type(19){-webkit-transition-delay:.96s;transition-delay:.96s}.p-sketch-index__item-title .js-split-str:nth-of-type(20){-webkit-transition-delay:.98s;transition-delay:.98s}.p-sketch-index__item-title .js-split-str:nth-of-type(21){-webkit-transition-delay:1s;transition-delay:1s}.p-sketch-index__item-title .js-split-str:nth-of-type(22){-webkit-transition-delay:1.02s;transition-delay:1.02s}.p-sketch-index__item-title .js-split-str:nth-of-type(23){-webkit-transition-delay:1.04s;transition-delay:1.04s}.p-sketch-index__item-title .js-split-str:nth-of-type(24){-webkit-transition-delay:1.06s;transition-delay:1.06s}.p-sketch-index__item-title .js-split-str:nth-of-type(25){-webkit-transition-delay:1.08s;transition-delay:1.08s}.p-sketch-index__item-title .js-split-str:nth-of-type(26){-webkit-transition-delay:1.1s;transition-delay:1.1s}.p-sketch-index__item-title .js-split-str:nth-of-type(27){-webkit-transition-delay:1.12s;transition-delay:1.12s}.p-sketch-index__item-title .js-split-str:nth-of-type(28){-webkit-transition-delay:1.14s;transition-delay:1.14s}.p-sketch-index__item-title .js-split-str:nth-of-type(29){-webkit-transition-delay:1.16s;transition-delay:1.16s}.p-sketch-index__item-title .js-split-str:nth-of-type(30){-webkit-transition-delay:1.18s;transition-delay:1.18s}.p-sketch-index__item-date{opacity:0;-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-delay:.8s;transition-delay:.8s}.p-sketch-index__item.is-shown .p-sketch-index__item-thumb{-webkit-transform:scaleY(1);transform:scaleY(1)}.p-sketch-index__item.is-shown .p-sketch-index__item-thumb:before{opacity:0}.p-sketch-index__item.is-shown .p-sketch-index__item-title .js-split-str{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.p-sketch-index__item.is-shown .p-sketch-index__item-date{opacity:1}.p-sketch-index__item:hover .p-sketch-index__item-thumb:after{opacity:1}.p-sketch-index__item:hover .p-sketch-index__item-thumb-label .js-split-str{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.p-sketch-outline{position:fixed;z-index:100;bottom:22px;left:20px}@media all and (max-width:568px){.p-sketch-outline{right:20px}}.p-sketch-outline__title{line-height:1;margin-top:0;margin-bottom:.075em;margin-left:-.05em;font-weight:100;letter-spacing:.05em}@media all and (min-width:1367px){.p-sketch-outline__title{font-size:80px}}@media all and (min-width:569px) and (max-width:1366px){.p-sketch-outline__title{font-size:6vw}}@media all and (max-width:568px){.p-sketch-outline__title{font-size:62.48px}}.p-sketch-outline__date{line-height:1;margin:0}.p-sketch-outline__description{line-height:1.5;margin:10px 0 0}.p-sketch-outline__assets{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:8px;margin-bottom:0}.p-sketch-outline__assets dd{margin:0}.p-sketch-outline__assets ul{display:-webkit-box;display:-ms-flexbox;display:flex;list-style-type:none;margin:0;padding:0}.p-sketch-outline__assets li{margin-left:12px}.p-utility-menu{position:fixed;z-index:100;top:25px;right:20px}.p-website-outline{position:fixed;z-index:100;top:20px;left:20px}.p-website-outline__title{margin:0 0 5px;font-size:18px;font-size:1.125rem}.p-website-outline__description{line-height:1.25;margin:0}.p-website-outline__links{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:15px}.p-website-outline__link{width:18px;height:18px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:20px}.p-website-outline__link svg{width:18px}
diff --git a/src/main/webapp/static/css/optimize.css b/src/main/webapp/static/css/optimize.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/main/webapp/static/css/optimize.css
diff --git a/src/main/webapp/static/css/originTable.css b/src/main/webapp/static/css/originTable.css
new file mode 100644
index 0000000..a86612d
--- /dev/null
+++ b/src/main/webapp/static/css/originTable.css
@@ -0,0 +1,29 @@
+#originTable + .layui-table-view .layui-table-tool-temp {
+    padding-right: 0;
+}
+#originTable + .layui-table-view .layui-table-body tbody > tr td {
+    cursor: pointer;
+}
+#originTable + .layui-table-view .layui-table-body tbody > tr.layui-table-click {
+    background-color: #fff3e0;
+}
+#originTable + .layui-table-view .layui-table-body tbody > tr.layui-table-click td:last-child > div:before {
+    position: absolute;
+    right: 6px;
+    content: "\e602";
+    font-size: 12px;
+    font-style: normal;
+    font-family: layui-icon,serif !important;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+}
+#left-table .layui-table-grid-down {
+    display: none;
+}
+.layui-form.layui-border-box.layui-table-view {
+    border-width: 1px;
+}
+#left-table .layui-table thead th {
+    /* font-weight: bold; */
+    text-align: left;
+}
diff --git a/src/main/webapp/static/css/pda.css b/src/main/webapp/static/css/pda.css
new file mode 100644
index 0000000..5a9609e
--- /dev/null
+++ b/src/main/webapp/static/css/pda.css
@@ -0,0 +1,98 @@
+* {
+    font-family: microsoft yahei,serif;
+    margin: 0;
+    padding: 0;
+    box-sizing: border-box;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    font-size: 16px;
+}
+html {
+    height: 100%;
+    background-color: #f1f1f1;
+    padding: 5px;
+}
+body {
+    height: 100%;
+    background-color: #fff;
+    border-radius: 5px;
+    box-shadow: 0 0 3px rgba(0,0,0,.3);
+    padding: 5px;
+    position: relative;
+}
+
+/* 澶撮儴 */
+header {
+    padding: 5px 0;
+}
+.layui-form-label {
+    width: initial;
+    padding: 6px 10px;
+    line-height: 30px;
+}
+#code {
+    width: 75%;
+    height: 40px;
+    margin-right: 0;
+}
+header button {
+    height: 20px;
+    width: 70px;
+}
+#mat-btn:focus {
+}
+
+/* layer */
+.layui-layer-title {
+    font-size: 11px;
+    height: 20px;
+    line-height: 20px;
+}
+
+/* 涓讳綋 */
+main {
+    height: 235px;
+    overflow: auto;
+}
+.layui-table, .layui-table-view {
+    margin: 0;
+}
+.layui-table-view .layui-table td, .layui-table-view .layui-table th {
+    padding: 0;
+}
+.layui-table-cell {
+    height: 32px;
+    line-height: 32px;
+    padding: 0;
+}
+.layui-table-grid-down {
+    display: none;
+}
+.layui-table-body .layui-none {
+    /*height: 144px;*/
+}
+/* 灏鹃儴 */
+footer {
+    margin-top: 20px;
+    width: 100%;
+}
+.layui-btn-container .layui-btn {
+    margin-left: 10px;
+    margin-bottom: 2px;
+}
+#tips {
+    display: inline-block;
+    width: 90px;
+    color: #666;
+    margin-left: 5px;
+    margin-bottom: 5px;
+    vertical-align: middle;
+    overflow:hidden;
+    white-space:nowrap;
+    text-overflow:ellipsis;
+    font-size: 12px;
+}
+
+.layui-btn-primary:hover {
+    border-color: #C9C9C9
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/css/print.css b/src/main/webapp/static/css/print.css
new file mode 100644
index 0000000..94ee215
--- /dev/null
+++ b/src/main/webapp/static/css/print.css
@@ -0,0 +1,7 @@
+@media print {
+    @page {
+        /*A4: 210mm 脳 297mm锛宻ize: 794px 脳 1123px锛�0杈硅窛*/
+        /*171.9mm 脳 258.9mm锛宻ize锛�649px 脳 978px锛�19.05mm杈硅窛锛坕e娴忚鍣ㄩ粯璁ゆ墦鍗拌竟璺濓級 */
+        margin: 0.3cm
+    }
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/css/road.css b/src/main/webapp/static/css/road.css
new file mode 100644
index 0000000..e1eb4c9
--- /dev/null
+++ b/src/main/webapp/static/css/road.css
@@ -0,0 +1,146 @@
+/* CSS Document */
+/**
+* +----------------------------------------------------------
+* 涓绘牱寮�
+* +----------------------------------------------------------
+*/
+.layui-form-checkbox[lay-skin=primary]:hover i{
+  border-color: #407CD5;
+}
+.layui-form-checked[lay-skin=primary] i{
+  background-color: #407CD5;
+  border-color: #407CD5;
+}
+
+
+.layui-btn{
+    height: 45px;
+    line-height: 45px;
+}
+.layui-btn-normal{
+  background-color: #407CD5;
+}
+
+
+/*娴佹槦*/
+.liuxing{
+  width: 85px;
+	height: 85px;
+	position: absolute;
+	background-size: contain;
+}
+.liuxing1 {
+  top: 200px;
+	left: 200px;
+}
+
+.liuxing2 {
+  top: 200px;
+	left: 50%;
+	margin-left: 200px;
+}
+
+.liuxing3 {
+  top: 100px;
+	right: 300px;
+}
+
+.liuxing4 {
+  top: 150px;
+	right: 300px;
+}
+
+.liuxingFla {
+	animation: liuxing 5s ease-in infinite;
+}
+
+.liuxingFla2 {
+	animation: liuxing2 4s ease-in infinite;
+}
+
+.liuxingFla3 {
+	animation: liuxing3 3s linear infinite;
+}
+
+.liuxingFla4 {
+	animation: liuxing4 2s linear infinite;
+}
+
+/* 娴佹槦鍔ㄧ敾 */
+@keyframes liuxing {
+	0% {
+		transform: translate(200px, -200px)
+	}
+	90% {
+		transform: translate(-180px, 180px);
+		opacity: 1;
+	}
+	100% {
+		transform: translate(-200px, 200px);
+		opacity: 0;
+	}
+}
+
+@keyframes liuxing2 {
+	0% {
+		transform: translate(200px, -200px)
+	}
+	90% {
+		transform: translate(-480px, 480px);
+		opacity: 1;
+	}
+	100% {
+		transform: translate(-500px, 500px);
+		opacity: 0;
+	}
+}
+
+@keyframes liuxing3 {
+	0% {
+		transform: translate(200px, -200px)
+	}
+	90% {
+		transform: translate(-480px, 480px);
+		opacity: 1;
+	}
+	100% {
+		transform: translate(-500px, 500px);
+		opacity: 0;
+	}
+}
+
+@keyframes liuxing4 {
+	0% {
+		transform: translate(200px, -200px)
+	}
+	90% {
+		transform: translate(-180px, 180px);
+		opacity: 1;
+	}
+	100% {
+		transform: translate(-200px, 200px);
+		opacity: 0;
+	}
+}
+
+/*鑿滃崟*/
+.moveUpDownFla1 {
+	animation: moveUpDown 5s ease infinite;
+}
+
+.moveUpDownFla2 {
+	animation: moveUpDown 4s linear infinite;
+}
+
+/* 鑿滃崟鍔ㄧ敾 */
+@keyframes moveUpDown {
+	0% {
+		transform: translate(0px, -20px)
+	}
+	50% {
+		transform: translate(0px, 20px)
+	}
+	100% {
+		transform: translate(0px, -20px);
+	}
+}
diff --git a/src/main/webapp/static/css/tree.css b/src/main/webapp/static/css/tree.css
new file mode 100644
index 0000000..aef4bf0
--- /dev/null
+++ b/src/main/webapp/static/css/tree.css
@@ -0,0 +1,70 @@
+#organizationTreeBar {
+    padding: 10px 15px;
+    border: 1px solid #e6e6e6;
+    background-color: #f2f2f2;
+}
+#organizationTree {
+    border: 1px solid #e6e6e6;
+    border-top: none;
+    padding: 10px 5px;
+    overflow: auto;
+    height: -webkit-calc(100vh - 125px);
+    height: -moz-calc(100vh - 125px);
+    height: calc(100vh - 125px);
+}
+.layui-tree-entry .layui-tree-txt {
+    padding: 0 5px;
+    border: 1px transparent solid;
+    text-decoration: none !important;
+}
+
+.layui-tree-entry.ew-tree-click .layui-tree-txt {
+    background-color: #fff3e0;
+    border: 1px #FFE6B0 solid;
+}
+
+
+
+#organizationEditForm.layui-form {
+    padding: 25px 30px 0 0;
+}
+#organizationEditForm .layui-form-label {
+    padding: 8px 15px;
+    box-sizing: content-box;
+    -webkit-box-sizing: content-box;
+}
+#organizationEditForm .layui-form-required:before {
+    content: "*";
+    display: inline-block;
+    font-family: SimSun,serif;
+    margin-right: 4px;
+    font-size: 14px;
+    line-height: 1;
+    color: #ed4014;
+}
+#organizationEditForm .layui-input {
+    height: 36px;
+    border-radius: 4px;
+}
+#organizationEditForm .cool-button-contain {
+    text-align: right;
+    margin: 20px 0;
+}
+#organizationEditForm .layui-form-radio>i:hover, .layui-form-radioed>i {
+    color: #007bff;
+}
+#organizationEditForm .layui-btn {
+    height: 36px;
+    line-height: 36px;
+    border-radius: 4px;
+    box-shadow: 0 1px 0 rgba(0,0,0,.03);
+}
+#organizationEditForm .layui-btn-primary:hover {
+    border-color: #777777;
+}
+
+
+/* 鑷畾涔� */
+#condition {
+    height: 30px;
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/image/Excel.png b/src/main/webapp/static/image/Excel.png
new file mode 100644
index 0000000..78b5084
--- /dev/null
+++ b/src/main/webapp/static/image/Excel.png
Binary files differ
diff --git a/src/main/webapp/static/image/bg.jpg b/src/main/webapp/static/image/bg.jpg
new file mode 100644
index 0000000..55aaee4
--- /dev/null
+++ b/src/main/webapp/static/image/bg.jpg
Binary files differ
diff --git a/src/main/webapp/static/image/favicon.ico b/src/main/webapp/static/image/favicon.ico
new file mode 100644
index 0000000..86d5e0a
--- /dev/null
+++ b/src/main/webapp/static/image/favicon.ico
Binary files differ
diff --git a/src/main/webapp/static/image/instancing/cubemap_nx.png b/src/main/webapp/static/image/instancing/cubemap_nx.png
new file mode 100644
index 0000000..c700479
--- /dev/null
+++ b/src/main/webapp/static/image/instancing/cubemap_nx.png
Binary files differ
diff --git a/src/main/webapp/static/image/instancing/cubemap_ny.png b/src/main/webapp/static/image/instancing/cubemap_ny.png
new file mode 100644
index 0000000..c0cc4d5
--- /dev/null
+++ b/src/main/webapp/static/image/instancing/cubemap_ny.png
Binary files differ
diff --git a/src/main/webapp/static/image/instancing/cubemap_nz.png b/src/main/webapp/static/image/instancing/cubemap_nz.png
new file mode 100644
index 0000000..8a0b4bd
--- /dev/null
+++ b/src/main/webapp/static/image/instancing/cubemap_nz.png
Binary files differ
diff --git a/src/main/webapp/static/image/instancing/cubemap_px.png b/src/main/webapp/static/image/instancing/cubemap_px.png
new file mode 100644
index 0000000..3047b15
--- /dev/null
+++ b/src/main/webapp/static/image/instancing/cubemap_px.png
Binary files differ
diff --git a/src/main/webapp/static/image/instancing/cubemap_py.png b/src/main/webapp/static/image/instancing/cubemap_py.png
new file mode 100644
index 0000000..9c7cfe3
--- /dev/null
+++ b/src/main/webapp/static/image/instancing/cubemap_py.png
Binary files differ
diff --git a/src/main/webapp/static/image/instancing/cubemap_pz.png b/src/main/webapp/static/image/instancing/cubemap_pz.png
new file mode 100644
index 0000000..740b655
--- /dev/null
+++ b/src/main/webapp/static/image/instancing/cubemap_pz.png
Binary files differ
diff --git a/src/main/webapp/static/image/login_bg.jpg b/src/main/webapp/static/image/login_bg.jpg
new file mode 100644
index 0000000..f98cbee
--- /dev/null
+++ b/src/main/webapp/static/image/login_bg.jpg
Binary files differ
diff --git a/src/main/webapp/static/image/logo.png b/src/main/webapp/static/image/logo.png
new file mode 100644
index 0000000..e2fc662
--- /dev/null
+++ b/src/main/webapp/static/image/logo.png
Binary files differ
diff --git a/src/main/webapp/static/image/nav/bg_1.png b/src/main/webapp/static/image/nav/bg_1.png
new file mode 100644
index 0000000..cb85f6b
--- /dev/null
+++ b/src/main/webapp/static/image/nav/bg_1.png
Binary files differ
diff --git a/src/main/webapp/static/image/nav/fn_1.png b/src/main/webapp/static/image/nav/fn_1.png
new file mode 100644
index 0000000..0c5b00d
--- /dev/null
+++ b/src/main/webapp/static/image/nav/fn_1.png
Binary files differ
diff --git a/src/main/webapp/static/image/nav/fn_1_h.png b/src/main/webapp/static/image/nav/fn_1_h.png
new file mode 100644
index 0000000..9982d5a
--- /dev/null
+++ b/src/main/webapp/static/image/nav/fn_1_h.png
Binary files differ
diff --git a/src/main/webapp/static/image/nav/fn_2.png b/src/main/webapp/static/image/nav/fn_2.png
new file mode 100644
index 0000000..ecbb7d0
--- /dev/null
+++ b/src/main/webapp/static/image/nav/fn_2.png
Binary files differ
diff --git a/src/main/webapp/static/image/nav/fn_2_h.png b/src/main/webapp/static/image/nav/fn_2_h.png
new file mode 100644
index 0000000..91e178b
--- /dev/null
+++ b/src/main/webapp/static/image/nav/fn_2_h.png
Binary files differ
diff --git a/src/main/webapp/static/image/nav/fn_3.png b/src/main/webapp/static/image/nav/fn_3.png
new file mode 100644
index 0000000..eaa9735
--- /dev/null
+++ b/src/main/webapp/static/image/nav/fn_3.png
Binary files differ
diff --git a/src/main/webapp/static/image/nav/fn_3_h.png b/src/main/webapp/static/image/nav/fn_3_h.png
new file mode 100644
index 0000000..b698a0f
--- /dev/null
+++ b/src/main/webapp/static/image/nav/fn_3_h.png
Binary files differ
diff --git a/src/main/webapp/static/image/nav/icon.png b/src/main/webapp/static/image/nav/icon.png
new file mode 100644
index 0000000..2ac2726
--- /dev/null
+++ b/src/main/webapp/static/image/nav/icon.png
Binary files differ
diff --git a/src/main/webapp/static/images/logo.png b/src/main/webapp/static/images/logo.png
new file mode 100644
index 0000000..e2fc662
--- /dev/null
+++ b/src/main/webapp/static/images/logo.png
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/admin.js b/src/main/webapp/static/layui/lay/modules/admin.js
new file mode 100644
index 0000000..fc8a4c4
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/admin.js
@@ -0,0 +1,1667 @@
+锘�/** EasyWeb iframe v3.1.8 date:2020-05-04 License By http://easyweb.vip */
+
+layui.define(['layer'], function (exports) {
+    var $ = layui.jquery;
+    var layer = layui.layer;
+    var setter = layui.cache;
+    var bodyDOM = '.layui-layout-admin>.layui-body';
+    var tabDOM = bodyDOM + '>.layui-tab';
+    var sideDOM = '.layui-layout-admin>.layui-side>.layui-side-scroll';
+    var headerDOM = '.layui-layout-admin>.layui-header';
+    var navFilter = 'admin-side-nav';
+    var admin = {version: '3.1.8', layerData: {}};
+
+    /** 璁剧疆渚ф爮鎶樺彔 */
+    admin.flexible = function (expand) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.flexible(expand);
+        var $layout = $('.layui-layout-admin');
+        var isExapnd = $layout.hasClass('admin-nav-mini');
+        if (expand === undefined) expand = isExapnd;
+        if (isExapnd === expand) {
+            if (window.sideFlexTimer) clearTimeout(window.sideFlexTimer);
+            $layout.addClass('admin-side-flexible');
+            window.sideFlexTimer = setTimeout(function () {
+                $layout.removeClass('admin-side-flexible');
+            }, 600);
+            if (expand) {
+                admin.hideTableScrollBar();
+                $layout.removeClass('admin-nav-mini');
+            } else {
+                $layout.addClass('admin-nav-mini');
+            }
+            layui.event.call(this, 'admin', 'flexible({*})', {expand: expand});
+        }
+    };
+
+    /** 璁剧疆瀵艰埅鏍忛�変腑 */
+    admin.activeNav = function (url) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.activeNav(url);
+        if (!url) return console.warn('active url is null');
+        $(sideDOM + '>.layui-nav .layui-nav-item .layui-nav-child dd.layui-this').removeClass('layui-this');
+        $(sideDOM + '>.layui-nav .layui-nav-item.layui-this').removeClass('layui-this');
+        var $a = $(sideDOM + '>.layui-nav a[lay-href="' + url + '"]');
+        if ($a.length === 0) return console.warn(url + ' not found');
+        var isMini = $('.layui-layout-admin').hasClass('admin-nav-mini');
+        if ($(sideDOM + '>.layui-nav').attr('lay-shrink') === '_all') {  // 鎵嬮鐞存晥鏋�
+            var $pChilds = $a.parent('dd').parents('.layui-nav-child');
+            if (!isMini) {
+                $(sideDOM + '>.layui-nav .layui-nav-itemed>.layui-nav-child').not($pChilds)
+                    .css('display', 'block').slideUp('fast', function () {
+                    $(this).css('display', '');
+                });
+            }
+            $(sideDOM + '>.layui-nav .layui-nav-itemed').not($pChilds.parent()).removeClass('layui-nav-itemed');
+        }
+        $a.parent().addClass('layui-this');  // 閫変腑褰撳墠
+        // 灞曞紑鎵�鏈夌埗绾�
+        var $asParents = $a.parent('dd').parents('.layui-nav-child').parent();
+        if (!isMini) {
+            var $childs = $asParents.not('.layui-nav-itemed').children('.layui-nav-child');
+            $childs.slideDown('fast', function () {
+                if ($(this).is($childs.last())) {
+                    $childs.css('display', '');
+                    // 鑿滃崟瓒呭嚭灞忓箷鑷姩婊氬姩
+                    var topBeyond = $a.offset().top + $a.outerHeight() + 30 - admin.getPageHeight();
+                    var topDisparity = 50 + 65 - $a.offset().top;
+                    if (topBeyond > 0) {
+                        $(sideDOM).animate({'scrollTop': $(sideDOM).scrollTop() + topBeyond}, 300);
+                    } else if (topDisparity > 0) {
+                        $(sideDOM).animate({'scrollTop': $(sideDOM).scrollTop() - topDisparity}, 300);
+                    }
+                }
+            });
+        }
+        $asParents.addClass('layui-nav-itemed');
+        // 閫傞厤澶氱郴缁熸ā寮�
+        $('ul[lay-filter="' + navFilter + '"]').addClass('layui-hide');
+        var $aUl = $a.parents('.layui-nav');
+        $aUl.removeClass('layui-hide');
+        $(headerDOM + '>.layui-nav>.layui-nav-item').removeClass('layui-this');
+        $(headerDOM + '>.layui-nav>.layui-nav-item>a[nav-bind="' + $aUl.attr('nav-id') + '"]').parent().addClass('layui-this');
+    };
+
+    /** 鍙充晶寮瑰嚭 */
+    admin.popupRight = function (param) {
+        param.anim = -1;
+        param.offset = 'r';
+        param.move = false;
+        param.fixed = true;
+        if (param.area === undefined) param.area = '336px';
+        if (param.title === undefined) param.title = false;
+        if (param.closeBtn === undefined) param.closeBtn = false;
+        if (param.shadeClose === undefined) param.shadeClose = true;
+        if (param.skin === undefined) param.skin = 'layui-anim layui-anim-rl layui-layer-adminRight';
+        return admin.open(param);
+    };
+
+    /** 灏佽layer.open */
+    admin.open = function (param) {
+        if (param.content && param.type === 2) param.url = undefined;  // 鍙傛暟绾犳
+        if (param.url && (param.type === 2 || param.type === undefined)) param.type = 1;  // 鍙傛暟绾犳
+        if (param.area === undefined) param.area = param.type === 2 ? ['360px', '300px'] : '360px';
+        if (param.offset === undefined) param.offset = '70px';
+        if (param.shade === undefined) param.shade = .1;
+        if (param.fixed === undefined) param.fixed = false;
+        if (param.resize === undefined) param.resize = false;
+        if (param.skin === undefined) param.skin = 'layui-layer-admin';
+        var eCallBack = param.end;
+        param.end = function () {
+            layer.closeAll('tips');  // 鍏抽棴琛ㄥ崟楠岃瘉鐨則ips
+            eCallBack && eCallBack();
+        };
+        if (param.url) {
+            var sCallBack = param.success;
+            param.success = function (layero, index) {
+                $(layero).data('tpl', param.tpl || '');
+                admin.reloadLayer(index, param.url, sCallBack);
+            };
+        } else if (param.tpl && param.content) {
+            param.content = admin.util.tpl(param.content, param.data, setter.tplOpen, setter.tplClose);
+        }
+        var layIndex = layer.open(param);
+        if (param.data) admin.layerData['d' + layIndex] = param.data;
+        return layIndex;
+    };
+
+    /** 鑾峰彇寮圭獥鏁版嵁 */
+    admin.getLayerData = function (index, key) {
+        if (index === undefined) {
+            index = parent.layer.getFrameIndex(window.name);
+            if (index === undefined) return null;
+            else return parent.layui.admin.getLayerData(parseInt(index), key);
+        } else if (isNaN(index)) {
+            index = admin.getLayerIndex(index);
+        }
+        if (index === undefined) return;
+        var layerData = admin.layerData['d' + index];
+        if (key && layerData) return layerData[key];
+        return layerData;
+    };
+
+    /** 鏀惧叆寮圭獥鏁版嵁 */
+    admin.putLayerData = function (key, value, index) {
+        if (index === undefined) {
+            index = parent.layer.getFrameIndex(window.name);
+            if (index === undefined) return;
+            else return parent.layui.admin.putLayerData(key, value, parseInt(index));
+        } else if (isNaN(index)) {
+            index = admin.getLayerIndex(index);
+        }
+        if (index === undefined) return;
+        var layerData = admin.getLayerData(index);
+        if (!layerData) layerData = {};
+        layerData[key] = value;
+        admin.layerData['d' + index] = layerData;
+    };
+
+    /** 鍒锋柊url鏂瑰紡鐨刲ayer */
+    admin.reloadLayer = function (index, url, success) {
+        if (typeof url === 'function') {
+            success = url;
+            url = undefined;
+        }
+        if (isNaN(index)) index = admin.getLayerIndex(index);
+        if (index === undefined) return;
+        var $layero = $('#layui-layer' + index);
+        if (url === undefined) url = $layero.data('url');
+        if (!url) return;
+        $layero.data('url', url);
+        admin.showLoading($layero);
+        admin.ajax({
+            url: url,
+            dataType: 'html',
+            success: function (res) {
+                admin.removeLoading($layero, false);
+                if (typeof res !== 'string') res = JSON.stringify(res);
+                var tpl = $layero.data('tpl');
+                // 妯℃澘瑙f瀽
+                if (tpl === true || tpl === 'true') {
+                    var data = admin.getLayerData(index) || {};
+                    data.layerIndex = index;
+                    // 妯℃澘閲岄潰鏈夊姩鎬佹ā鏉垮鐞�
+                    var $html = $('<div>' + res + '</div>'), tplAll = {};
+                    $html.find('script,[tpl-ignore]').each(function (i) {
+                        var $this = $(this);
+                        tplAll['temp_' + i] = $this[0].outerHTML;
+                        $this.after('${temp_' + i + '}').remove();
+                    });
+                    res = admin.util.tpl($html.html(), data, setter.tplOpen, setter.tplClose);
+                    for (var f in tplAll) res = res.replace('${' + f + '}', tplAll[f]);
+                }
+                $layero.children('.layui-layer-content').html(res);
+                admin.renderTpl('#layui-layer' + index + ' [ew-tpl]');
+                success && success($layero[0], index);
+            }
+        });
+    };
+
+    /** 灏佽layer.alert */
+    admin.alert = function (content, options, yes) {
+        if (typeof options === 'function') {
+            yes = options;
+            options = {};
+        }
+        if (options.skin === undefined) options.skin = 'layui-layer-admin';
+        if (options.shade === undefined) options.shade = .1;
+        return layer.alert(content, options, yes);
+    };
+
+    /** 灏佽layer.confirm */
+    admin.confirm = function (content, options, yes, cancel) {
+        if (typeof options === 'function') {
+            cancel = yes;
+            yes = options;
+            options = {};
+        }
+        if (options.skin === undefined) options.skin = 'layui-layer-admin';
+        if (options.shade === undefined) options.shade = .1;
+        return layer.confirm(content, options, yes, cancel);
+    };
+
+    /** 灏佽layer.prompt */
+    admin.prompt = function (options, yes) {
+        if (typeof options === 'function') {
+            yes = options;
+            options = {};
+        }
+        if (options.skin === undefined) options.skin = 'layui-layer-admin layui-layer-prompt';
+        if (options.shade === undefined) options.shade = .1;
+        return layer.prompt(options, yes);
+    };
+
+    /** 灏佽ajax璇锋眰锛岃繑鍥炴暟鎹被鍨嬩负json */
+    admin.req = function (url, data, success, method, option) {
+        if (typeof data === 'function') {
+            option = method;
+            method = success;
+            success = data;
+            data = {};
+        }
+        if (method !== undefined && typeof method !== 'string') {
+            option = method;
+            method = undefined;
+        }
+        if (!method) method = 'GET';
+        if (typeof data === 'string') {
+            if (!option) option = {};
+            if (!option.contentType) option.contentType = 'application/json;charset=UTF-8';
+        } else if (setter.reqPutToPost) {
+            if ('put' === method.toLowerCase()) {
+                method = 'POST';
+                data._method = 'PUT';
+            } else if ('delete' === method.toLowerCase()) {
+                method = 'GET';
+                data._method = 'DELETE';
+            }
+        }
+        return admin.ajax($.extend({
+            url: (setter.baseServer || '') + url, data: data, type: method, dataType: 'json', success: success
+        }, option));
+    };
+
+    /** 灏佽ajax璇锋眰 */
+    admin.ajax = function (param) {
+        var oldParam = admin.util.deepClone(param);
+        if (!param.dataType) param.dataType = 'json';
+        if (!param.headers) param.headers = {};
+        // 缁熶竴璁剧疆header
+        var headers = setter.getAjaxHeaders(param.url);
+        if (headers) {
+            for (var i = 0; i < headers.length; i++) {
+                if (param.headers[headers[i].name] === undefined) param.headers[headers[i].name] = headers[i].value;
+            }
+        }
+        // success棰勫鐞�
+        var success = param.success;
+        param.success = function (result, status, xhr) {
+            var before = setter.ajaxSuccessBefore(admin.parseJSON(result), param.url, {
+                param: oldParam, reload: function (p) {
+                    admin.ajax($.extend(true, oldParam, p));
+                }, update: function (r) {
+                    result = r;
+                }, xhr: xhr
+            });
+            if (before !== false) success && success(result, status, xhr);
+            else param.cancel && param.cancel();
+        };
+        param.error = function (xhr, status) {
+            param.success({code: xhr.status, msg: xhr.statusText}, status, xhr);
+        };
+        // 瑙e喅缂撳瓨闂
+        if (layui.cache.version && (!setter.apiNoCache || param.dataType.toLowerCase() !== 'json')) {
+            if (param.url.indexOf('?') === -1) param.url += '?v=';
+            else param.url += '&v=';
+            if (layui.cache.version === true) param.url += new Date().getTime();
+            else param.url += layui.cache.version;
+        }
+        return $.ajax(param);
+    };
+
+    /** 瑙f瀽json */
+    admin.parseJSON = function (str) {
+        if (typeof str === 'string') {
+            try {
+                return JSON.parse(str);
+            } catch (e) {
+            }
+        }
+        return str;
+    };
+
+    /** 鏄剧ず鍔犺浇鍔ㄧ敾 */
+    admin.showLoading = function (elem, type, opacity, size) {
+        if (elem !== undefined && (typeof elem !== 'string') && !(elem instanceof $)) {
+            type = elem.type;
+            opacity = elem.opacity;
+            size = elem.size;
+            elem = elem.elem;
+        }
+        if (type === undefined) type = setter.defaultLoading || 1;
+        if (size === undefined) size = 'sm';
+        if (elem === undefined) elem = 'body';
+        var loader = [
+            '<div class="ball-loader ' + size + '"><span></span><span></span><span></span><span></span></div>',
+            '<div class="rubik-loader ' + size + '"></div>',
+            '<div class="signal-loader ' + size + '"><span></span><span></span><span></span><span></span></div>',
+            '<div class="layui-loader ' + size + '"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>'
+        ];
+        $(elem).addClass('page-no-scroll');  // 绂佺敤婊氬姩鏉�
+        $(elem).scrollTop(0);
+        var $loading = $(elem).children('.page-loading');
+        if ($loading.length <= 0) {
+            $(elem).append('<div class="page-loading">' + loader[type - 1] + '</div>');
+            $loading = $(elem).children('.page-loading');
+        }
+        if (opacity !== undefined) $loading.css('background-color', 'rgba(255,255,255,' + opacity + ')');
+        $loading.show();
+    };
+
+    /** 绉婚櫎鍔犺浇鍔ㄧ敾 */
+    admin.removeLoading = function (elem, fade, del) {
+        if (elem === undefined) elem = 'body';
+        if (fade === undefined) fade = true;
+        var $loading = $(elem).children('.page-loading');
+        if (del) $loading.remove();
+        else if (fade) $loading.fadeOut('fast');
+        else $loading.hide();
+        $(elem).removeClass('page-no-scroll');
+    };
+
+    /** 缂撳瓨涓存椂鏁版嵁 */
+    admin.putTempData = function (key, value, local) {
+        var tableName = local ? setter.tableName : setter.tableName + '_tempData';
+        if (value === undefined || value === null) {
+            if (local) layui.data(tableName, {key: key, remove: true});
+            else layui.sessionData(tableName, {key: key, remove: true});
+        } else {
+            if (local) layui.data(tableName, {key: key, value: value});
+            else layui.sessionData(tableName, {key: key, value: value});
+        }
+    };
+
+    /** 鑾峰彇缂撳瓨涓存椂鏁版嵁 */
+    admin.getTempData = function (key, local) {
+        if (typeof key === 'boolean') {
+            local = key;
+            key = undefined;
+        }
+        var tableName = local ? setter.tableName : setter.tableName + '_tempData';
+        var tempData = local ? layui.data(tableName) : layui.sessionData(tableName);
+        if (!key) return tempData;
+        return tempData ? tempData[key] : undefined;
+    };
+
+    /** 婊戝姩閫夐」鍗� */
+    admin.rollPage = function (d) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.rollPage(d);
+        var $tabTitle = $(tabDOM + '>.layui-tab-title');
+        var left = $tabTitle.scrollLeft();
+        if ('left' === d) {
+            $tabTitle.animate({'scrollLeft': left - 120}, 100);
+        } else if ('auto' === d) {
+            var autoLeft = 0;
+            $tabTitle.children("li").each(function () {
+                if ($(this).hasClass('layui-this')) return false;
+                else autoLeft += $(this).outerWidth();
+            });
+            $tabTitle.animate({'scrollLeft': autoLeft - 120}, 100);
+        } else {
+            $tabTitle.animate({'scrollLeft': left + 120}, 100);
+        }
+    };
+
+    /** 鍒锋柊褰撳墠閫夐」鍗� */
+    admin.refresh = function (url, isIndex) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.refresh(url);
+        var $iframe;
+        if (!url) {
+            $iframe = $(tabDOM + '>.layui-tab-content>.layui-tab-item.layui-show>.admin-iframe');
+            if (!$iframe || $iframe.length <= 0) $iframe = $(bodyDOM + '>div>.admin-iframe');
+        } else {
+            $iframe = $(tabDOM + '>.layui-tab-content>.layui-tab-item>.admin-iframe[lay-id="' + url + '"]');
+            if (!$iframe || $iframe.length <= 0) $iframe = $(bodyDOM + '>.admin-iframe');
+        }
+        if (!$iframe || !$iframe[0]) return console.warn(url + ' is not found');
+        try {
+            if (isIndex && $iframe[0].contentWindow.refreshTab) {
+                $iframe[0].contentWindow.refreshTab();
+            } else {
+                admin.showLoading({elem: $iframe.parent(), size: ''});
+                $iframe[0].contentWindow.location.reload();
+            }
+        } catch (e) {
+            console.warn(e);
+            $iframe.attr('src', $iframe.attr('src'));
+        }
+    };
+
+    /** 鍏抽棴褰撳墠閫夐」鍗� */
+    admin.closeThisTabs = function (url) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeThisTabs(url);
+        admin.closeTabOperNav();
+        var $title = $(tabDOM + '>.layui-tab-title');
+        if (!url) {
+            if ($title.find('li').first().hasClass('layui-this')) return layer.msg('涓婚〉涓嶈兘鍏抽棴', {icon: 2});
+            $title.find('li.layui-this').find('.layui-tab-close').trigger('click');
+        } else {
+            if (url === $title.find('li').first().attr('lay-id')) return layer.msg('涓婚〉涓嶈兘鍏抽棴', {icon: 2});
+            $title.find('li[lay-id="' + url + '"]').find('.layui-tab-close').trigger('click');
+        }
+    };
+
+    /** 鍏抽棴鍏朵粬閫夐」鍗� */
+    admin.closeOtherTabs = function (url) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeOtherTabs(url);
+        if (!url) {
+            $(tabDOM + '>.layui-tab-title li:gt(0):not(.layui-this)').find('.layui-tab-close').trigger('click');
+        } else {
+            $(tabDOM + '>.layui-tab-title li:gt(0)').each(function () {
+                if (url !== $(this).attr('lay-id')) $(this).find('.layui-tab-close').trigger('click');
+            });
+        }
+        admin.closeTabOperNav();
+    };
+
+    /** 鍏抽棴鎵�鏈夐�夐」鍗� */
+    admin.closeAllTabs = function () {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeAllTabs();
+        $(tabDOM + '>.layui-tab-title li:gt(0)').find('.layui-tab-close').trigger('click');
+        $(tabDOM + '>.layui-tab-title li:eq(0)').trigger('click');
+        admin.closeTabOperNav();
+    };
+
+    /** 鍏抽棴閫夐」鍗℃搷浣滆彍鍗� */
+    admin.closeTabOperNav = function () {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeTabOperNav();
+        $('.layui-icon-down .layui-nav .layui-nav-child').removeClass('layui-show');
+    };
+
+    /** 璁剧疆涓婚 */
+    admin.changeTheme = function (theme, win, noCache, noChild) {
+        if (!noCache) admin.putSetting('defaultTheme', theme);
+        if (!win) win = top;
+        admin.removeTheme(win);
+        if (theme) {
+            try {
+                var $body = win.layui.jquery('body');
+                $body.addClass(theme);
+                $body.data('theme', theme);
+            } catch (e) {
+            }
+        }
+        if (noChild) return;
+        var ifs = win.frames;
+        for (var i = 0; i < ifs.length; i++) admin.changeTheme(theme, ifs[i], true, false);
+    };
+
+    /** 绉婚櫎涓婚 */
+    admin.removeTheme = function (w) {
+        if (!w) w = window;
+        try {
+            var $body = w.layui.jquery('body');
+            var theme = $body.data('theme');
+            if (theme) $body.removeClass(theme);
+            $body.removeData('theme');
+        } catch (e) {
+        }
+    };
+
+    /** 鍏抽棴褰撳墠iframe灞傚脊绐� */
+    admin.closeThisDialog = function () {
+        return admin.closeDialog();
+    };
+
+    /** 鍏抽棴elem鎵�鍦ㄧ殑椤甸潰灞傚脊绐� */
+    admin.closeDialog = function (elem) {
+        if (elem) layer.close(admin.getLayerIndex(elem));
+        else parent.layer.close(parent.layer.getFrameIndex(window.name));
+    };
+
+    /** 鑾峰彇椤甸潰灞傚脊绐楃殑index */
+    admin.getLayerIndex = function (elem) {
+        if (!elem) return parent.layer.getFrameIndex(window.name);
+        var id = $(elem).parents('.layui-layer').first().attr('id');
+        if (id && id.length >= 11) return id.substring(11);
+    };
+
+    /** 璁╁綋鍓嶇殑iframe寮瑰眰鑷�傚簲楂樺害 */
+    admin.iframeAuto = function () {
+        return parent.layer.iframeAuto(parent.layer.getFrameIndex(window.name));
+    };
+
+    /** 鑾峰彇娴忚鍣ㄩ珮搴� */
+    admin.getPageHeight = function () {
+        return document.documentElement.clientHeight || document.body.clientHeight;
+    };
+
+    /** 鑾峰彇娴忚鍣ㄥ搴� */
+    admin.getPageWidth = function () {
+        return document.documentElement.clientWidth || document.body.clientWidth;
+    };
+
+    /** 缁戝畾琛ㄥ崟寮圭獥 */
+    admin.modelForm = function (layero, btnFilter, formFilter) {
+        var $layero = $(layero);
+        $layero.addClass('layui-form');
+        if (formFilter) $layero.attr('lay-filter', formFilter);
+        // 纭畾鎸夐挳缁戝畾submit
+        var $btnSubmit = $layero.find('.layui-layer-btn .layui-layer-btn0');
+        $btnSubmit.attr('lay-submit', '');
+        $btnSubmit.attr('lay-filter', btnFilter);
+    };
+
+    /** loading鎸夐挳 */
+    admin.btnLoading = function (elem, text, loading) {
+        if (text !== undefined && (typeof text === 'boolean')) {
+            loading = text;
+            text = undefined;
+        }
+        if (text === undefined) text = '&nbsp;鍔犺浇涓�';
+        if (loading === undefined) loading = true;
+        var $elem = $(elem);
+        if (loading) {
+            $elem.addClass('ew-btn-loading');
+            $elem.prepend('<span class="ew-btn-loading-text"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>' + text + '</span>');
+            $elem.attr('disabled', 'disabled').prop('disabled', true);
+        } else {
+            $elem.removeClass('ew-btn-loading');
+            $elem.children('.ew-btn-loading-text').remove();
+            $elem.removeProp('disabled').removeAttr('disabled');
+        }
+    };
+
+    /** 榧犳爣绉诲叆渚ц竟鏍忚嚜鍔ㄥ睍寮� */
+    admin.openSideAutoExpand = function () {
+        var $side = $('.layui-layout-admin>.layui-side');
+        $side.off('mouseenter.openSideAutoExpand').on("mouseenter.openSideAutoExpand", function () {
+            if (!$(this).parent().hasClass('admin-nav-mini')) return;
+            admin.flexible(true);
+            $(this).addClass('side-mini-hover');
+        });
+        $side.off('mouseleave.openSideAutoExpand').on("mouseleave.openSideAutoExpand", function () {
+            if (!$(this).hasClass('side-mini-hover')) return;
+            admin.flexible(false);
+            $(this).removeClass('side-mini-hover');
+        });
+    };
+
+    /** 琛ㄦ牸鍗曞厓鏍艰秴鍑哄唴瀹硅嚜鍔ㄥ睍寮� */
+    admin.openCellAutoExpand = function () {
+        var $body = $('body');
+        $body.off('mouseenter.openCellAutoExpand').on('mouseenter.openCellAutoExpand', '.layui-table-view td', function () {
+            $(this).find('.layui-table-grid-down').trigger('click');
+        });
+        $body.off('mouseleave.openCellAutoExpand').on('mouseleave.openCellAutoExpand', '.layui-table-tips>.layui-layer-content', function () {
+            $('.layui-table-tips-c').trigger('click');
+        });
+    };
+
+    /** open浜嬩欢瑙f瀽layer鍙傛暟 */
+    admin.parseLayerOption = function (option) {
+        // 鏁扮粍绫诲瀷杩涜杞崲
+        for (var f in option) {
+            if (!option.hasOwnProperty(f)) continue;
+            if (option[f] && option[f].toString().indexOf(',') !== -1) option[f] = option[f].toString().split(',');
+        }
+        // function绫诲瀷鍙傛暟杞崲
+        var fs = {'success': 'layero,index', 'cancel': 'index,layero', 'end': '', 'full': '', 'min': '', 'restore': ''};
+        for (var k in fs) {
+            if (!fs.hasOwnProperty(k) || !option[k]) continue;
+            try {
+                if (/^[a-zA-Z_]+[a-zA-Z0-9_]+$/.test(option[k])) option[k] += '()';
+                option[k] = new Function(fs[k], option[k]);
+            } catch (e) {
+                option[k] = undefined;
+            }
+        }
+        // content鍙栧唴瀹�
+        if (option.content && (typeof option.content === 'string') && option.content.indexOf('#') === 0) {
+            if ($(option.content).is('script')) option.content = $(option.content).html();
+            else option.content = $(option.content);
+        }
+        if (option.type === undefined && option.url === undefined) option.type = 2;  // 榛樿涓篿frame绫诲瀷
+        return option;
+    };
+
+    /** 瀛楃涓插舰寮忕殑parent.parent杞瑆indow瀵硅薄 */
+    admin.strToWin = function (str) {
+        var win = window;
+        if (!str) return win;
+        var ws = str.split('.');
+        for (var i = 0; i < ws.length; i++) win = win[ws[i]];
+        return win;
+    };
+
+    /** 瑙e喅鎶樺彔渚ц竟鏍忚〃鏍兼粴鍔ㄦ潯闂幇 */
+    admin.hideTableScrollBar = function (win) {
+        if (admin.getPageWidth() <= 768) return;
+        if (!win) {
+            var $iframe = $(tabDOM + '>.layui-tab-content>.layui-tab-item.layui-show>.admin-iframe');
+            if ($iframe.length <= 0) $iframe = $(bodyDOM + '>div>.admin-iframe');
+            if ($iframe.length > 0) win = $iframe[0].contentWindow;
+        }
+        try {  // 鍙兘浼氳法鍩�
+            if (window.hsbTimer) clearTimeout(window.hsbTimer);
+            win.layui.jquery('.layui-table-body.layui-table-main').addClass('no-scrollbar');
+            window.hsbTimer = setTimeout(function () {
+                win.layui.jquery('.layui-table-body.layui-table-main').removeClass('no-scrollbar');
+            }, 800);
+        } catch (e) {
+        }
+    };
+
+    /** 鍒ゆ柇鏄惁鏄富妗嗘灦 */
+    admin.isTop = function () {
+        return $(bodyDOM).length > 0;
+    };
+
+    /** admin鎻愪緵鐨勪簨浠� */
+    admin.events = {
+        /* 鎶樺彔渚у鑸� */
+        flexible: function () {
+            admin.strToWin($(this).data('window')).layui.admin.flexible();
+        },
+        /* 鍒锋柊涓讳綋閮ㄥ垎 */
+        refresh: function () {
+            admin.strToWin($(this).data('window')).layui.admin.refresh();
+        },
+        /* 鍚庨�� */
+        back: function () {
+            admin.strToWin($(this).data('window')).history.back();
+        },
+        /* 璁剧疆涓婚 */
+        theme: function () {
+            var option = admin.util.deepClone($(this).data());
+            admin.strToWin(option.window).layui.admin.popupRight($.extend({
+                id: 'layer-theme', url: option.url || 'tpl/tpl-theme.html'
+            }, admin.parseLayerOption(option)));
+        },
+        /* 鎵撳紑渚跨 */
+        note: function () {
+            var option = admin.util.deepClone($(this).data());
+            admin.strToWin(option.window).layui.admin.popupRight($.extend({
+                id: 'layer-note', url: option.url || 'tpl/tpl-note.html'
+            }, admin.parseLayerOption(option)));
+        },
+        /* 鎵撳紑娑堟伅 */
+        message: function () {
+            var option = admin.util.deepClone($(this).data());
+            admin.strToWin(option.window).layui.admin.popupRight($.extend({
+                id: 'layer-notice', url: option.url || 'tpl/tpl-message.html'
+            }, admin.parseLayerOption(option)));
+        },
+        /* 鎵撳紑淇敼瀵嗙爜寮圭獥 */
+        psw: function () {
+            var option = admin.util.deepClone($(this).data());
+            admin.strToWin(option.window).layui.admin.open($.extend({
+                id: 'layer-psw', title: '淇敼瀵嗙爜', shade: 0, url: option.url || 'tpl/tpl-password.html'
+            }, admin.parseLayerOption(option)));
+        },
+        /* 閫�鍑虹櫥褰� */
+        logout: function () {
+            var option = admin.util.deepClone($(this).data());
+            admin.unlockScreen();
+
+            function doLogout() {
+                if (option.ajax) {
+                    var loadIndex = layer.load(2);
+                    admin.req(option.ajax, function (res) {
+                        layer.close(loadIndex);
+                        if (option.parseData) {
+                            try {
+                                var parseData = new Function('res', option.parseData);
+                                res = parseData(res);
+                            } catch (e) {
+                                console.error(e);
+                            }
+                        }
+                        if (res.code == (option.code || 0)) {
+                            setter.removeToken && setter.removeToken();
+                            location.replace(option.url || '/');
+                        } else {
+                            layer.msg(res.msg, {icon: 2});
+                        }
+                    }, option.method || 'delete');
+                } else {
+                    setter.removeToken && setter.removeToken();
+                    location.replace(option.url || '/');
+                }
+            }
+
+            if (false === option.confirm || 'false' === option.confirm) return doLogout();
+            admin.strToWin(option.window).layui.layer.confirm(option.content || '纭畾瑕侀��鍑虹櫥褰曞悧锛�', $.extend({
+                title: '娓╅Θ鎻愮ず', skin: 'layui-layer-admin', shade: .1
+            }, admin.parseLayerOption(option)), function () {
+                doLogout();
+            });
+        },
+        /* 鎵撳紑寮圭獥 */
+        open: function () {
+            var option = admin.util.deepClone($(this).data());
+            admin.strToWin(option.window).layui.admin.open(admin.parseLayerOption(option));
+        },
+        /* 鎵撳紑鍙充晶寮圭獥 */
+        popupRight: function () {
+            var option = admin.util.deepClone($(this).data());
+            admin.strToWin(option.window).layui.admin.popupRight(admin.parseLayerOption(option));
+        },
+        /* 鍏ㄥ睆 */
+        fullScreen: function () {
+            var ac = 'layui-icon-screen-full', ic = 'layui-icon-screen-restore';
+            var $ti = $(this).find('i');
+            var isFullscreen = document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || false;
+            if (isFullscreen) {
+                var efs = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen;
+                if (efs) {
+                    efs.call(document);
+                } else if (window.ActiveXObject) {
+                    var ws = new ActiveXObject('WScript.Shell');
+                    ws && ws.SendKeys('{F11}');
+                }
+                $ti.addClass(ac).removeClass(ic);
+            } else {
+                var el = document.documentElement;
+                var rfs = el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen;
+                if (rfs) {
+                    rfs.call(el);
+                } else if (window.ActiveXObject) {
+                    var wss = new ActiveXObject('WScript.Shell');
+                    wss && wss.SendKeys('{F11}');
+                }
+                $ti.addClass(ic).removeClass(ac);
+            }
+        },
+        /* 宸︽粦鍔╰ab */
+        leftPage: function () {
+            admin.strToWin($(this).data('window')).layui.admin.rollPage('left');
+        },
+        /* 鍙虫粦鍔╰ab */
+        rightPage: function () {
+            admin.strToWin($(this).data('window')).layui.admin.rollPage();
+        },
+        /* 鍏抽棴褰撳墠閫夐」鍗� */
+        closeThisTabs: function () {
+            var url = $(this).data('url');
+            admin.strToWin($(this).data('window')).layui.admin.closeThisTabs(url);
+        },
+        /* 鍏抽棴鍏朵粬閫夐」鍗� */
+        closeOtherTabs: function () {
+            admin.strToWin($(this).data('window')).layui.admin.closeOtherTabs();
+        },
+        /* 鍏抽棴鎵�鏈夐�夐」鍗� */
+        closeAllTabs: function () {
+            admin.strToWin($(this).data('window')).layui.admin.closeAllTabs();
+        },
+        /* 鍏抽棴褰撳墠寮圭獥(鏅鸿兘) */
+        closeDialog: function () {
+            if ($(this).parents('.layui-layer').length > 0) admin.closeDialog(this);
+            else admin.closeDialog();
+        },
+        /* 鍏抽棴褰撳墠iframe寮圭獥 */
+        closeIframeDialog: function () {
+            admin.closeDialog();
+        },
+        /* 鍏抽棴褰撳墠椤甸潰灞傚脊绐� */
+        closePageDialog: function () {
+            admin.closeDialog(this);
+        },
+        /* 閿佸睆 */
+        lockScreen: function () {
+            admin.strToWin($(this).data('window')).layui.admin.lockScreen($(this).data('url'));
+        }
+    };
+
+    /** 閫夋嫨浣嶇疆 */
+    admin.chooseLocation = function (param) {
+        var dialogTitle = param.title;  // 寮圭獥鏍囬
+        var onSelect = param.onSelect;  // 閫夋嫨鍥炶皟
+        var needCity = param.needCity;  // 鏄惁杩斿洖琛屾斂鍖�
+        var mapCenter = param.center;  // 鍦板浘涓績
+        var defaultZoom = param.defaultZoom;  // 鍦板浘榛樿缂╂斁绾у埆
+        var pointZoom = param.pointZoom;  // 閫変腑鏃跺湴鍥剧缉鏀剧骇鍒�
+        var searchKeywords = param.keywords;  // poi妫�绱㈠叧閿瓧
+        var searchPageSize = param.pageSize;  // poi妫�绱㈡渶澶ф暟閲�
+        var mapJsUrl = param.mapJsUrl;  // 楂樺痉鍦板浘js鐨剈rl
+        if (dialogTitle === undefined) dialogTitle = '閫夋嫨浣嶇疆';
+        if (defaultZoom === undefined) defaultZoom = 11;
+        if (pointZoom === undefined) pointZoom = 17;
+        if (searchKeywords === undefined) searchKeywords = '';
+        if (searchPageSize === undefined) searchPageSize = 30;
+        if (mapJsUrl === undefined) mapJsUrl = 'https://webapi.amap.com/maps?v=1.4.14&key=006d995d433058322319fa797f2876f5';
+        var isSelMove = false, selLocation;
+        // 鎼滅储闄勮繎
+        var searchNearBy = function (lat, lng) {
+            AMap.service(['AMap.PlaceSearch'], function () {
+                var placeSearch = new AMap.PlaceSearch({
+                    type: '', pageSize: searchPageSize, pageIndex: 1
+                });
+                var cpoint = [lng, lat];
+                placeSearch.searchNearBy(searchKeywords, cpoint, 1000, function (status, result) {
+                    if (status === 'complete') {
+                        var pois = result.poiList.pois;
+                        var htmlList = '';
+                        for (var i = 0; i < pois.length; i++) {
+                            var poiItem = pois[i];
+                            if (poiItem.location !== undefined) {
+                                htmlList += '<div data-lng="' + poiItem.location.lng + '" data-lat="' + poiItem.location.lat + '" class="ew-map-select-search-list-item">';
+                                htmlList += '     <div class="ew-map-select-search-list-item-title">' + poiItem.name + '</div>';
+                                htmlList += '     <div class="ew-map-select-search-list-item-address">' + poiItem.address + '</div>';
+                                htmlList += '     <div class="ew-map-select-search-list-item-icon-ok layui-hide"><i class="layui-icon layui-icon-ok-circle"></i></div>';
+                                htmlList += '</div>';
+                            }
+                        }
+                        $('#ew-map-select-pois').html(htmlList);
+                    }
+                });
+            });
+        };
+        // 娓叉煋鍦板浘
+        var renderMap = function () {
+            var mapOption = {
+                resizeEnable: true, // 鐩戞帶鍦板浘瀹瑰櫒灏哄鍙樺寲
+                zoom: defaultZoom  // 鍒濈缉鏀剧骇鍒�
+            };
+            mapCenter && (mapOption.center = mapCenter);
+            var map = new AMap.Map('ew-map-select-map', mapOption);
+            // 鍦板浘鍔犺浇瀹屾垚
+            map.on('complete', function () {
+                var center = map.getCenter();
+                searchNearBy(center.lat, center.lng);
+            });
+            // 鍦板浘绉诲姩缁撴潫浜嬩欢
+            map.on('moveend', function () {
+                if (isSelMove) {
+                    isSelMove = false;
+                } else {
+                    $('#ew-map-select-tips').addClass('layui-hide');
+                    $('#ew-map-select-center-img').removeClass('bounceInDown');
+                    setTimeout(function () {
+                        $('#ew-map-select-center-img').addClass('bounceInDown');
+                    });
+                    var center = map.getCenter();
+                    searchNearBy(center.lat, center.lng);
+                }
+            });
+            // poi鍒楄〃鐐瑰嚮浜嬩欢
+            $('#ew-map-select-pois').off('click').on('click', '.ew-map-select-search-list-item', function () {
+                $('#ew-map-select-tips').addClass('layui-hide');
+                $('#ew-map-select-pois .ew-map-select-search-list-item-icon-ok').addClass('layui-hide');
+                $(this).find('.ew-map-select-search-list-item-icon-ok').removeClass('layui-hide');
+                $('#ew-map-select-center-img').removeClass('bounceInDown');
+                setTimeout(function () {
+                    $('#ew-map-select-center-img').addClass('bounceInDown');
+                });
+                var lng = $(this).data('lng');
+                var lat = $(this).data('lat');
+                var name = $(this).find('.ew-map-select-search-list-item-title').text();
+                var address = $(this).find('.ew-map-select-search-list-item-address').text();
+                selLocation = {name: name, address: address, lat: lat, lng: lng};
+                isSelMove = true;
+                map.setZoomAndCenter(pointZoom, [lng, lat]);
+            });
+            // 纭畾鎸夐挳鐐瑰嚮浜嬩欢
+            $('#ew-map-select-btn-ok').click(function () {
+                if (selLocation === undefined) {
+                    layer.msg('璇风偣鍑讳綅缃垪琛ㄩ�夋嫨', {icon: 2, anim: 6});
+                } else if (onSelect) {
+                    if (needCity) {
+                        var loadIndex = layer.load(2);
+                        map.setCenter([selLocation.lng, selLocation.lat]);
+                        map.getCity(function (result) {
+                            layer.close(loadIndex);
+                            selLocation.city = result;
+                            admin.closeDialog('#ew-map-select-btn-ok');
+                            onSelect(selLocation);
+                        });
+                    } else {
+                        admin.closeDialog('#ew-map-select-btn-ok');
+                        onSelect(selLocation);
+                    }
+                } else {
+                    admin.closeDialog('#ew-map-select-btn-ok');
+                }
+            });
+            // 鎼滅储鎻愮ず
+            var $inputSearch = $('#ew-map-select-input-search');
+            $inputSearch.off('input').on('input', function () {
+                var keywords = $(this).val();
+                var $selectTips = $('#ew-map-select-tips');
+                if (!keywords) {
+                    $selectTips.html('');
+                    $selectTips.addClass('layui-hide');
+                }
+                AMap.plugin('AMap.Autocomplete', function () {
+                    var autoComplete = new AMap.Autocomplete({city: '鍏ㄥ浗'});
+                    autoComplete.search(keywords, function (status, result) {
+                        if (result.tips) {
+                            var tips = result.tips;
+                            var htmlList = '';
+                            for (var i = 0; i < tips.length; i++) {
+                                var tipItem = tips[i];
+                                if (tipItem.location !== undefined) {
+                                    htmlList += '<div data-lng="' + tipItem.location.lng + '" data-lat="' + tipItem.location.lat + '" class="ew-map-select-search-list-item">';
+                                    htmlList += '     <div class="ew-map-select-search-list-item-icon-search"><i class="layui-icon layui-icon-search"></i></div>';
+                                    htmlList += '     <div class="ew-map-select-search-list-item-title">' + tipItem.name + '</div>';
+                                    htmlList += '     <div class="ew-map-select-search-list-item-address">' + tipItem.address + '</div>';
+                                    htmlList += '</div>';
+                                }
+                            }
+                            $selectTips.html(htmlList);
+                            if (tips.length === 0) $('#ew-map-select-tips').addClass('layui-hide');
+                            else $('#ew-map-select-tips').removeClass('layui-hide');
+                        } else {
+                            $selectTips.html('');
+                            $selectTips.addClass('layui-hide');
+                        }
+                    });
+                });
+            });
+            $inputSearch.off('blur').on('blur', function () {
+                var keywords = $(this).val();
+                var $selectTips = $('#ew-map-select-tips');
+                if (!keywords) {
+                    $selectTips.html('');
+                    $selectTips.addClass('layui-hide');
+                }
+            });
+            $inputSearch.off('focus').on('focus', function () {
+                var keywords = $(this).val();
+                if (keywords) $('#ew-map-select-tips').removeClass('layui-hide');
+            });
+            // tips鍒楄〃鐐瑰嚮浜嬩欢
+            $('#ew-map-select-tips').off('click').on('click', '.ew-map-select-search-list-item', function () {
+                $('#ew-map-select-tips').addClass('layui-hide');
+                var lng = $(this).data('lng');
+                var lat = $(this).data('lat');
+                selLocation = undefined;
+                map.setZoomAndCenter(pointZoom, [lng, lat]);
+            });
+        };
+        // 鏄剧ず寮圭獥
+        var htmlStr = [
+            '<div class="ew-map-select-tool" style="position: relative;">',
+            '     鎼滅储锛�<input id="ew-map-select-input-search" class="layui-input icon-search inline-block" style="width: 190px;" placeholder="杈撳叆鍏抽敭瀛楁悳绱�" autocomplete="off" />',
+            '     <button id="ew-map-select-btn-ok" class="layui-btn icon-btn pull-right" type="button"><i class="layui-icon">&#xe605;</i>纭畾</button>',
+            '     <div id="ew-map-select-tips" class="ew-map-select-search-list layui-hide">',
+            '     </div>',
+            '</div>',
+            '<div class="layui-row ew-map-select">',
+            '     <div class="layui-col-sm7 ew-map-select-map-group" style="position: relative;">',
+            '          <div id="ew-map-select-map"></div>',
+            '          <i id="ew-map-select-center-img2" class="layui-icon layui-icon-add-1"></i>',
+            '          <img id="ew-map-select-center-img" src="https://3gimg.qq.com/lightmap/components/locationPicker2/image/marker.png" alt=""/>',
+            '     </div>',
+            '     <div id="ew-map-select-pois" class="layui-col-sm5 ew-map-select-search-list">',
+            '     </div>',
+            '</div>'].join('');
+        admin.open({
+            id: 'ew-map-select', type: 1, title: dialogTitle, area: '750px', content: htmlStr,
+            success: function (layero, dIndex) {
+                var $content = $(layero).children('.layui-layer-content');
+                $content.css('overflow', 'visible');
+                admin.showLoading($content);
+                if (undefined === window.AMap) {
+                    $.getScript(mapJsUrl, function () {
+                        renderMap();
+                        admin.removeLoading($content);
+                    });
+                } else {
+                    renderMap();
+                    admin.removeLoading($content);
+                }
+            }
+        });
+    };
+
+    /** 瑁佸壀鍥剧墖 */
+    admin.cropImg = function (param) {
+        var uploadedImageType = 'image/jpeg';  // 褰撳墠鍥剧墖鐨勭被鍨�
+        var aspectRatio = param.aspectRatio;  // 瑁佸壀姣斾緥
+        var imgSrc = param.imgSrc;  // 瑁佸壀鍥剧墖
+        var imgType = param.imgType;  // 鍥剧墖绫诲瀷
+        var onCrop = param.onCrop;  // 瑁佸壀瀹屾垚鍥炶皟
+        var limitSize = param.limitSize;  // 闄愬埗閫夋嫨鐨勫浘鐗囧ぇ灏�
+        var acceptMime = param.acceptMime;  // 闄愬埗閫夋嫨鐨勫浘鐗囩被鍨�
+        var imgExts = param.exts;  // 闄愬埗閫夋嫨鐨勫浘鐗囩被鍨�
+        var dialogTitle = param.title;  // 寮圭獥鐨勬爣棰�
+        if (aspectRatio === undefined) aspectRatio = 1;
+        if (dialogTitle === undefined) dialogTitle = '瑁佸壀鍥剧墖';
+        if (imgType) uploadedImageType = imgType;
+        layui.use(['Cropper', 'upload'], function () {
+            var Cropper = layui.Cropper, upload = layui.upload;
+
+            // 娓叉煋缁勪欢
+            function renderElem() {
+                var imgCropper, $cropImg = $('#ew-crop-img');
+                // 涓婁紶鏂囦欢鎸夐挳缁戝畾浜嬩欢
+                var uploadOptions = {
+                    elem: '#ew-crop-img-upload', auto: false, drag: false,
+                    choose: function (obj) {
+                        obj.preview(function (index, file, result) {
+                            uploadedImageType = file.type;
+                            $cropImg.attr('src', result);
+                            if (!imgSrc || !imgCropper) {
+                                imgSrc = result;
+                                renderElem();
+                            } else {
+                                imgCropper.destroy();
+                                imgCropper = new Cropper($cropImg[0], options);
+                            }
+                        });
+                    }
+                };
+                if (limitSize !== undefined) uploadOptions.size = limitSize;
+                if (acceptMime !== undefined) uploadOptions.acceptMime = acceptMime;
+                if (imgExts !== undefined) uploadOptions.exts = imgExts;
+                upload.render(uploadOptions);
+                // 娌℃湁浼犲浘鐗囪Е鍙戜笂浼犲浘鐗�
+                if (!imgSrc) return $('#ew-crop-img-upload').trigger('click');
+                // 娓叉煋瑁佸壀缁勪欢
+                var options = {aspectRatio: aspectRatio, preview: '#ew-crop-img-preview'};
+                imgCropper = new Cropper($cropImg[0], options);
+                // 鎿嶄綔鎸夐挳缁戝畾浜嬩欢
+                $('.ew-crop-tool').on('click', '[data-method]', function () {
+                    var data = $(this).data(), cropped, result;
+                    if (!imgCropper || !data.method) return;
+                    data = $.extend({}, data);
+                    cropped = imgCropper.cropped;
+                    switch (data.method) {
+                        case 'rotate':
+                            if (cropped && options.viewMode > 0) imgCropper.clear();
+                            break;
+                        case 'getCroppedCanvas':
+                            if (uploadedImageType === 'image/jpeg') {
+                                if (!data.option) data.option = {};
+                                data.option.fillColor = '#fff';
+                            }
+                            break;
+                    }
+                    result = imgCropper[data.method](data.option, data.secondOption);
+                    switch (data.method) {
+                        case 'rotate':
+                            if (cropped && options.viewMode > 0) imgCropper.crop();
+                            break;
+                        case 'scaleX':
+                        case 'scaleY':
+                            $(this).data('option', -data.option);
+                            break;
+                        case 'getCroppedCanvas':
+                            if (result) {
+                                onCrop && onCrop(result.toDataURL(uploadedImageType));
+                                admin.closeDialog('#ew-crop-img');
+                            } else {
+                                layer.msg('瑁佸壀澶辫触', {icon: 2, anim: 6});
+                            }
+                            break;
+                    }
+                });
+            }
+
+            // 鏄剧ず寮圭獥
+            var htmlStr = [
+                '<div class="layui-row">',
+                '     <div class="layui-col-sm8" style="min-height: 9rem;">',
+                '          <img id="ew-crop-img" src="', imgSrc || '', '" style="max-width:100%;" alt=""/>',
+                '     </div>',
+                '     <div class="layui-col-sm4 layui-hide-xs" style="padding: 15px;text-align: center;">',
+                '          <div id="ew-crop-img-preview" style="width: 100%;height: 9rem;overflow: hidden;display: inline-block;border: 1px solid #dddddd;"></div>',
+                '     </div>',
+                '</div>',
+                '<div class="text-center ew-crop-tool" style="padding: 15px 10px 5px 0;">',
+                '     <div class="layui-btn-group" style="margin-bottom: 10px;margin-left: 10px;">',
+                '          <button title="鏀惧ぇ" data-method="zoom" data-option="0.1" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-add-1"></i></button>',
+                '          <button title="缂╁皬" data-method="zoom" data-option="-0.1" class="layui-btn icon-btn" type="button"><span style="display: inline-block;width: 12px;height: 2.5px;background: rgba(255, 255, 255, 0.9);vertical-align: middle;margin: 0 4px;"></span></button>',
+                '     </div>',
+                '     <div class="layui-btn-group layui-hide-xs" style="margin-bottom: 10px;">',
+                '          <button title="鍚戝乏鏃嬭浆" data-method="rotate" data-option="-45" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-refresh-1" style="transform: rotateY(180deg) rotate(40deg);display: inline-block;"></i></button>',
+                '          <button title="鍚戝彸鏃嬭浆" data-method="rotate" data-option="45" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-refresh-1" style="transform: rotate(30deg);display: inline-block;"></i></button>',
+                '     </div>',
+                '     <div class="layui-btn-group" style="margin-bottom: 10px;">',
+                '          <button title="宸︾Щ" data-method="move" data-option="-10" data-second-option="0" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-left"></i></button>',
+                '          <button title="鍙崇Щ" data-method="move" data-option="10" data-second-option="0" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-right"></i></button>',
+                '          <button title="涓婄Щ" data-method="move" data-option="0" data-second-option="-10" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-up"></i></button>',
+                '          <button title="涓嬬Щ" data-method="move" data-option="0" data-second-option="10" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-down"></i></button>',
+                '     </div>',
+                '     <div class="layui-btn-group" style="margin-bottom: 10px;">',
+                '          <button title="宸﹀彸缈昏浆" data-method="scaleX" data-option="-1" class="layui-btn icon-btn" type="button" style="position: relative;width: 41px;"><i class="layui-icon layui-icon-triangle-r" style="position: absolute;left: 9px;top: 0;transform: rotateY(180deg);font-size: 16px;"></i><i class="layui-icon layui-icon-triangle-r" style="position: absolute; right: 3px; top: 0;font-size: 16px;"></i></button>',
+                '          <button title="涓婁笅缈昏浆" data-method="scaleY" data-option="-1" class="layui-btn icon-btn" type="button" style="position: relative;width: 41px;"><i class="layui-icon layui-icon-triangle-d" style="position: absolute;left: 11px;top: 6px;transform: rotateX(180deg);line-height: normal;font-size: 16px;"></i><i class="layui-icon layui-icon-triangle-d" style="position: absolute; left: 11px; top: 14px;line-height: normal;font-size: 16px;"></i></button>',
+                '     </div>',
+                '     <div class="layui-btn-group" style="margin-bottom: 10px;">',
+                '          <button title="閲嶆柊寮�濮�" data-method="reset" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-refresh"></i></button>',
+                '          <button title="閫夋嫨鍥剧墖" id="ew-crop-img-upload" class="layui-btn icon-btn" type="button" style="border-radius: 0 2px 2px 0;"><i class="layui-icon layui-icon-upload-drag"></i></button>',
+                '     </div>',
+                '     <button data-method="getCroppedCanvas" data-option="{ &quot;maxWidth&quot;: 4096, &quot;maxHeight&quot;: 4096 }" class="layui-btn icon-btn" type="button" style="margin-left: 10px;margin-bottom: 10px;"><i class="layui-icon">&#xe605;</i>瀹屾垚</button>',
+                '</div>'].join('');
+            admin.open({
+                title: dialogTitle, area: '665px', type: 1, content: htmlStr,
+                success: function (layero, dIndex) {
+                    $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                    renderElem();
+                }
+            });
+        });
+    };
+
+    /** 宸ュ叿绫� */
+    admin.util = {
+        /* 鐧惧害鍦板浘鍧愭爣杞珮寰峰湴鍥惧潗鏍� */
+        Convert_BD09_To_GCJ02: function (point) {
+            var x_pi = (3.14159265358979324 * 3000.0) / 180.0;
+            var x = point.lng - 0.0065, y = point.lat - 0.006;
+            var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
+            var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
+            return {lng: z * Math.cos(theta), lat: z * Math.sin(theta)};
+        },
+        /* 楂樺痉鍦板浘鍧愭爣杞櫨搴﹀湴鍥惧潗鏍� */
+        Convert_GCJ02_To_BD09: function (point) {
+            var x_pi = (3.14159265358979324 * 3000.0) / 180.0;
+            var x = point.lng, y = point.lat;
+            var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
+            var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
+            return {lng: z * Math.cos(theta) + 0.0065, lat: z * Math.sin(theta) + 0.006};
+        },
+        /* 鍔ㄦ�佹暟瀛� */
+        animateNum: function (elem, isThd, delay, grain) {
+            isThd = isThd === null || isThd === undefined || isThd === true || isThd === 'true';  // 鏄惁鏄崈鍒嗕綅
+            delay = isNaN(delay) ? 500 : delay;   // 鍔ㄧ敾寤惰繜
+            grain = isNaN(grain) ? 100 : grain;   // 鍔ㄧ敾绮掑害
+            var getPref = function (str) {
+                var pref = '';
+                for (var i = 0; i < str.length; i++) if (!isNaN(str.charAt(i))) return pref; else pref += str.charAt(i);
+            }, getSuf = function (str) {
+                var suf = '';
+                for (var i = str.length - 1; i >= 0; i--) if (!isNaN(str.charAt(i))) return suf; else suf = str.charAt(i) + suf;
+            }, toThd = function (num, isThd) {
+                if (!isThd) return num;
+                if (!/^[0-9]+.?[0-9]*$/.test(num)) return num;
+                num = num.toString();
+                return num.replace(num.indexOf('.') > 0 ? /(\d)(?=(\d{3})+(?:\.))/g : /(\d)(?=(\d{3})+(?:$))/g, '$1,');
+            };
+            $(elem).each(function () {
+                var $this = $(this);
+                var num = $this.data('num');
+                if (!num) {
+                    num = $this.text().replace(/,/g, '');  // 鍐呭
+                    $this.data('num', num);
+                }
+                var flag = 'INPUT,TEXTAREA'.indexOf($this.get(0).tagName) >= 0;  // 鏄惁鏄緭鍏ユ
+                var pref = getPref(num.toString()), suf = getSuf(num.toString());
+                var strNum = num.toString().replace(pref, '').replace(suf, '');
+                if (isNaN(strNum * 1) || strNum === '0') {
+                    flag ? $this.val(num) : $this.html(num);
+                    return console.error('not a number');
+                }
+                var int_dec = strNum.split('.');
+                var deciLen = int_dec[1] ? int_dec[1].length : 0;
+                var startNum = 0.0, endNum = strNum;
+                if (Math.abs(endNum * 1) > 10) startNum = parseFloat(int_dec[0].substring(0, int_dec[0].length - 1) + (int_dec[1] ? '.0' + int_dec[1] : ''));
+                var oft = (endNum - startNum) / grain, temp = 0;
+                var mTime = setInterval(function () {
+                    var str = pref + toThd(startNum.toFixed(deciLen), isThd) + suf;
+                    flag ? $this.val(str) : $this.html(str);
+                    startNum += oft;
+                    temp++;
+                    if (Math.abs(startNum) >= Math.abs(endNum * 1) || temp > 5000) {
+                        str = pref + toThd(endNum, isThd) + suf;
+                        flag ? $this.val(str) : $this.html(str);
+                        clearInterval(mTime);
+                    }
+                }, delay / grain);
+            });
+        },
+        /* 娣卞害鍏嬮殕瀵硅薄 */
+        deepClone: function (obj) {
+            var result;
+            var oClass = admin.util.isClass(obj);
+            if (oClass === 'Object') result = {};
+            else if (oClass === 'Array') result = [];
+            else return obj;
+            for (var key in obj) {
+                if (!obj.hasOwnProperty(key)) continue;
+                var copy = obj[key], cClass = admin.util.isClass(copy);
+                if (cClass === 'Object') result[key] = arguments.callee(copy); // 閫掑綊璋冪敤
+                else if (cClass === 'Array') result[key] = arguments.callee(copy);
+                else result[key] = obj[key];
+            }
+            return result;
+        },
+        /* 鑾峰彇鍙橀噺绫诲瀷 */
+        isClass: function (o) {
+            if (o === null) return 'Null';
+            if (o === undefined) return 'Undefined';
+            return Object.prototype.toString.call(o).slice(8, -1);
+        },
+        /* 鍒ゆ柇瀵屾枃鏈槸鍚︿负绌� */
+        fullTextIsEmpty: function (text) {
+            if (!text) return true;
+            var noTexts = ['img', 'audio', 'video', 'iframe', 'object'];
+            for (var i = 0; i < noTexts.length; i++) {
+                if (text.indexOf('<' + noTexts[i]) > -1) return false;
+            }
+            var str = text.replace(/\s*/g, '');  // 鍘绘帀鎵�鏈夌┖鏍�
+            if (!str) return true;
+            str = str.replace(/&nbsp;/ig, '');  // 鍘绘帀鎵�鏈�&nbsp;
+            if (!str) return true;
+            str = str.replace(/<[^>]+>/g, '');   // 鍘绘帀鎵�鏈塰tml鏍囩
+            return !str;
+        },
+        /* 绉婚櫎鍏冪礌鐨剆tyle */
+        removeStyle: function (elem, names) {
+            if (typeof names === 'string') names = [names];
+            for (var i = 0; i < names.length; i++) $(elem).css(names[i], '');
+        },
+        /* 婊氬姩鍒伴《閮� */
+        scrollTop: function (elem) {
+            $(elem || 'html,body').animate({scrollTop: 0}, 300);
+        },
+        /* 妯℃澘瑙f瀽 */
+        tpl: function (html, data, openCode, closeCode) {
+            if (html === undefined || html === null || typeof html !== 'string') return html;
+            if (!data) data = {};
+            if (!openCode) openCode = '{{';
+            if (!closeCode) closeCode = '}}';
+            var tool = {
+                exp: function (str) {
+                    return new RegExp(str, 'g');
+                },
+                // 鍖归厤婊¤冻瑙勫垯鍐呭
+                query: function (type, _, __) {
+                    var types = ['#([\\s\\S])+?', '([^{#}])*?'][type || 0];
+                    return tool.exp((_ || '') + openCode + types + closeCode + (__ || ''));
+                },
+                escape: function (str) {
+                    return String(str || '').replace(/&(?!#?[a-zA-Z0-9]+;)/g, '&amp;')
+                        .replace(/</g, '&lt;').replace(/>/g, '&gt;')
+                        .replace(/'/g, '&#39;').replace(/"/g, '&quot;');
+                },
+                error: function (e, tplog) {
+                    console.error('Laytpl Error锛�' + e + '\n' + (tplog || ''));
+                },
+                parse: function (tpl, data) {
+                    var tplog = tpl;
+                    try {
+                        var jss = tool.exp('^' + openCode + '#'), jsse = tool.exp(closeCode + '$');
+                        tpl = tpl.replace(tool.exp(openCode + '#'), openCode + '# ')
+                            .replace(tool.exp(closeCode + '}'), '} ' + closeCode).replace(/\\/g, '\\\\')
+                            // 涓嶅尮閰嶆寚瀹氬尯鍩熺殑鍐呭
+                            .replace(tool.exp(openCode + '!(.+?)!' + closeCode), function (str) {
+                                str = str.replace(tool.exp('^' + openCode + '!'), '')
+                                    .replace(tool.exp('!' + closeCode), '')
+                                    .replace(tool.exp(openCode + '|' + closeCode), function (tag) {
+                                        return tag.replace(/(.)/g, '\\$1')
+                                    });
+                                return str
+                            })
+                            // 鍖归厤JS瑙勫垯鍐呭
+                            .replace(/(?="|')/g, '\\').replace(tool.query(), function (str) {
+                                str = str.replace(jss, '').replace(jsse, '');
+                                return '";' + str.replace(/\\/g, '') + ';view+="';
+                            })
+                            // 鍖归厤鏅�氬瓧娈�
+                            .replace(tool.query(1), function (str) {
+                                var start = '"+(';
+                                if (str.replace(/\s/g, '') === openCode + closeCode) return '';
+                                str = str.replace(tool.exp(openCode + '|' + closeCode), '');
+                                if (/^=/.test(str)) {
+                                    str = str.replace(/^=/, '');
+                                    start = '"+_escape_(';
+                                }
+                                return start + str.replace(/\\/g, '') + ')+"';
+                            })
+                            // 鎹㈣绗﹀鐞�
+                            .replace(/\r\n/g, '\\r\\n" + "').replace(/\n/g, '\\n" + "').replace(/\r/g, '\\r" + "');
+                        tpl = '"use strict";var view = "' + tpl + '";return view;';
+                        tpl = new Function('d, _escape_', tpl);
+                        return tpl(data, tool.escape);
+                    } catch (e) {
+                        tool.error(e, tplog);
+                        return tplog;
+                    }
+                }
+            };
+            return tool.parse(html, data);
+        },
+        /* 娓叉煋鍔ㄦ�佹ā鏉� */
+        render: function (option) {
+            if (typeof option.url === 'string') {
+                option.success = function (res) {
+                    admin.util.render($.extend({}, option, {url: res}));
+                };
+                if (option.ajax === 'ajax') admin.ajax(option);
+                else admin.req(option.url, option.where, option.success, option.method, option);
+                return;
+            }
+            var html = admin.util.tpl(option.tpl, option.url,
+                option.open || setter.tplOpen, option.close || setter.tplClose);
+            $(option.elem).next('[ew-tpl-rs]').remove();
+            $(option.elem).after(html);
+            $(option.elem).next().attr('ew-tpl-rs', '');
+            option.done && option.done(option.url);
+        }
+    };
+
+    /** 閿佸睆鍔熻兘 */
+    admin.lockScreen = function (url) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.lockScreen(url);
+        if (!url) url = 'tpl/tpl-lock-screen.html';
+        var $lock = $('#ew-lock-screen-group');
+        if ($lock.length > 0) {
+            $lock.fadeIn('fast');
+            admin.isLockScreen = true;
+            admin.putTempData('isLockScreen', admin.isLockScreen, true);
+        } else {
+            var loadIndex = layer.load(2);
+            admin.ajax({
+                url: url, dataType: 'html',
+                success: function (res) {
+                    layer.close(loadIndex);
+                    if (typeof res === 'string') {
+                        $('body').append('<div id="ew-lock-screen-group">' + res + '</div>');
+                        admin.isLockScreen = true;
+                        admin.putTempData('isLockScreen', admin.isLockScreen, true);
+                        admin.putTempData('lockScreenUrl', url, true);
+                    } else {
+                        console.error(res);
+                        layer.msg(JSON.stringify(res), {icon: 2, anim: 6});
+                    }
+                }
+            });
+        }
+    };
+
+    /** 瑙i櫎閿佸睆 */
+    admin.unlockScreen = function (isRemove) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.unlockScreen(isRemove);
+        var $lock = $('#ew-lock-screen-group');
+        isRemove ? $lock.remove() : $lock.fadeOut('fast');
+        admin.isLockScreen = false;
+        admin.putTempData('isLockScreen', null, true);
+    };
+
+    /** tips鏂规硶灏佽 */
+    admin.tips = function (option) {
+        return layer.tips(option.text, option.elem, {
+            tips: [option.direction || 1, option.bg || '#191a23'],
+            tipsMore: option.tipsMore, time: option.time || -1,
+            success: function (layero) {
+                var $content = $(layero).children('.layui-layer-content');
+                if (option.padding || option.padding === 0) $content.css('padding', option.padding);
+                if (option.color) $content.css('color', option.color);
+                if (option.bgImg) $content.css('background-image', option.bgImg).children('.layui-layer-TipsG').css('z-index', '-1');
+                if (option.fontSize) $content.css('font-size', option.fontSize);
+                if (!option.offset) return;
+                var offset = option.offset.split(',');
+                var top = offset[0], left = offset.length > 1 ? offset[1] : undefined;
+                if (top) $(layero).css('margin-top', top);
+                if (left) $(layero).css('margin-left', left);
+            }
+        });
+    };
+
+    /** 娓叉煋鍔ㄦ�佹ā鏉� */
+    admin.renderTpl = function (elem) {
+        if (!layui.admin) layui.admin = admin;
+
+        // 瑙f瀽鏁版嵁
+        function parseData(data) {
+            if (!data) return;
+            try {
+                return new Function('return ' + data + ';')();
+            } catch (e) {
+                console.error(e + '\nlay-data: ' + data);
+            }
+        }
+
+        $(elem || '[ew-tpl]').each(function () {
+            var $this = $(this);
+            var option = admin.util.deepClone($(this).data());
+            option.elem = $this;
+            option.tpl = $this.html();
+            option.url = parseData($this.attr('ew-tpl'));
+            option.headers = parseData(option.headers);
+            option.where = parseData(option.where);
+            if (option.done) {
+                try {
+                    option.done = new Function('res', option.done);
+                } catch (e) {
+                    console.error(e + '\nlay-data:' + option.done);
+                    option.done = undefined;
+                }
+            }
+            admin.util.render(option);
+        });
+    };
+
+    /** 浜嬩欢鐩戝惉 */
+    admin.on = function (events, callback) {
+        return layui.onevent.call(this, 'admin', events, callback);
+    };
+
+    /** 淇敼閰嶇疆淇℃伅 */
+    admin.putSetting = function (key, value) {
+        setter[key] = value;
+        admin.putTempData(key, value, true);
+    };
+
+    /** 鎭㈠閰嶇疆淇℃伅 */
+    admin.recoverState = function () {
+        // 鎭㈠閿佸睆鐘舵��
+        if (admin.getTempData('isLockScreen', true)) admin.lockScreen(admin.getTempData('lockScreenUrl', true));
+        // 鎭㈠閰嶇疆鐨勪富棰�
+        if (setter.defaultTheme) admin.changeTheme(setter.defaultTheme, window, true, true);
+        // 鎭㈠椤佃剼鐘舵�併�佸鑸澶�
+        if (setter.closeFooter) $('body').addClass('close-footer');
+        if (setter.navArrow !== undefined) {
+            var $nav = $(sideDOM + '>.layui-nav-tree');
+            $nav.removeClass('arrow2 arrow3');
+            if (setter.navArrow) $nav.addClass(setter.navArrow);
+        }
+        // 鎭㈠tab鑷姩鍒锋柊
+        if (setter.pageTabs && setter.tabAutoRefresh == 'true') $(tabDOM).attr('lay-autoRefresh', 'true');
+    };
+
+    /* 浜嬩欢鐩戝惉 */
+    admin.on = function (events, callback) {
+        return layui.onevent.call(this, 'admin', events, callback);
+    };
+
+    /** 渚у鑸姌鍙犵姸鎬佷笅榧犳爣缁忚繃鏃犻檺鎮诞鏁堟灉 */
+    var navItemDOM = '.layui-layout-admin.admin-nav-mini>.layui-side .layui-nav .layui-nav-item';
+    $(document).on('mouseenter', navItemDOM + ',' + navItemDOM + ' .layui-nav-child>dd', function () {
+        if (admin.getPageWidth() > 768) {
+            var $that = $(this), $navChild = $that.find('>.layui-nav-child');
+            if ($navChild.length > 0) {
+                $that.addClass('admin-nav-hover');
+                $navChild.css('left', $that.offset().left + $that.outerWidth());
+                var top = $that.offset().top;
+                if (top + $navChild.outerHeight() > admin.getPageHeight()) {
+                    top = top - $navChild.outerHeight() + $that.outerHeight();
+                    if (top < 60) top = 60;
+                    $navChild.addClass('show-top');
+                }
+                $navChild.css('top', top);
+                $navChild.addClass('ew-anim-drop-in');
+            } else if ($that.hasClass('layui-nav-item')) {
+                admin.tips({elem: $that, text: $that.find('cite').text(), direction: 2, offset: '12px'});
+            }
+        }
+    }).on('mouseleave', navItemDOM + ',' + navItemDOM + ' .layui-nav-child>dd', function () {
+        layer.closeAll('tips');
+        var $this = $(this);
+        $this.removeClass('admin-nav-hover');
+        var $child = $this.find('>.layui-nav-child');
+        $child.removeClass('show-top ew-anim-drop-in');
+        $child.css({'left': 'auto', 'top': 'auto'});
+    });
+
+    /** 鎵�鏈塭w-event */
+    $(document).on('click', '*[ew-event]', function () {
+        var te = admin.events[$(this).attr('ew-event')];
+        te && te.call(this, $(this));
+    });
+
+    /** 鎵�鏈塴ay-tips澶勭悊 */
+    $(document).on('mouseenter', '*[lay-tips]', function () {
+        var $this = $(this);
+        admin.tips({
+            elem: $this, text: $this.attr('lay-tips'), direction: $this.attr('lay-direction'),
+            bg: $this.attr('lay-bg'), offset: $this.attr('lay-offset'),
+            padding: $this.attr('lay-padding'), color: $this.attr('lay-color'),
+            bgImg: $this.attr('lay-bgImg'), fontSize: $this.attr('lay-fontSize')
+        });
+    }).on('mouseleave', '*[lay-tips]', function () {
+        layer.closeAll('tips');
+    });
+
+    /** 琛ㄥ崟鎼滅储灞曞紑鏇村 */
+    $(document).on('click', '.form-search-expand,[search-expand]', function () {
+        var $this = $(this);
+        var $form = $this.parents('.layui-form').first();
+        var expand = $this.data('expand');
+        var change = $this.attr('search-expand');
+        if (expand === undefined || expand === true) {
+            expand = true;
+            $this.data('expand', false);
+            $this.html('鏀惰捣 <i class="layui-icon layui-icon-up"></i>');
+            var $elem = $form.find('.form-search-show-expand');
+            $elem.attr('expand-show', '');
+            $elem.removeClass('form-search-show-expand');
+        } else {
+            expand = false;
+            $this.data('expand', true);
+            $this.html('灞曞紑 <i class="layui-icon layui-icon-down"></i>');
+            $form.find('[expand-show]').addClass('form-search-show-expand');
+        }
+        if (!change) return;
+        new Function('d', change)({expand: expand, elem: $this});
+    });
+
+    /** select浣跨敤fixed瀹氫綅鏄剧ず */
+    $(document).on('click.ew-sel-fixed', '.ew-select-fixed .layui-form-select .layui-select-title', function () {
+        var $this = $(this), $dl = $this.parent().children('dl'), tTop = $this.offset().top;
+        var tWidth = $this.outerWidth(), tHeight = $this.outerHeight(), scrollT = $(document).scrollTop();
+        var dWidth = $dl.outerWidth(), dHeight = $dl.outerHeight();
+        var top = tTop + tHeight + 5 - scrollT, left = $this.offset().left;
+        if (top + dHeight > admin.getPageHeight()) top = top - dHeight - tHeight - 10;
+        if (left + dWidth > admin.getPageWidth()) left = left - dWidth + tWidth;
+        $dl.css({'left': left, 'top': top, 'min-width': tWidth});
+    });
+
+    /** 鐢ㄤ簬婊氬姩鏃跺叧闂竴浜沠ixed鐨勭粍浠� */
+    admin.hideFixedEl = function () {
+        $('.ew-select-fixed .layui-form-select').removeClass('layui-form-selected layui-form-selectup');  // select
+        $('body>.layui-laydate').remove();  // laydate
+    };
+
+    /** 鍨傜洿瀵艰埅鏍忓睍寮�鎶樺彔澧炲姞杩囨浮鏁堟灉 */
+    $(document).on('click', '.layui-nav-tree>.layui-nav-item a', function () {
+        var $this = $(this), $child = $this.siblings('.layui-nav-child'), $parent = $this.parent();
+        if ($child.length === 0) return;
+        if ($parent.hasClass('admin-nav-hover')) return;
+        if ($parent.hasClass('layui-nav-itemed')) {  // 鍥犱负layui浼氬鐞嗕竴閬嶆墍浠ヨ繖閲岀姸鎬佹槸鐩稿弽鐨�
+            $child.css('display', 'none').slideDown('fast', function () {
+                $(this).css('display', '');
+            });
+        } else {
+            $child.css('display', 'block').slideUp('fast', function () {
+                $(this).css('display', '');
+            });
+        }
+        if ($this.parents('.layui-nav').attr('lay-shrink') === '_all') {  // 鎵嬮鐞存晥鏋�
+            var $siblings = $this.parent().siblings('.layui-nav-itemed');
+            $siblings.children('.layui-nav-child').css('display', 'block').slideUp('fast', function () {
+                $(this).css('display', '');
+            });
+            $siblings.removeClass('layui-nav-itemed');
+        }
+    });
+    $('.layui-nav-tree[lay-shrink="all"]').attr('lay-shrink', '_all');  // 璁﹍ayui涓嶅鐞嗘墜椋庣惔鏁堟灉
+
+    /** 鎶樺彔闈㈡澘灞曞紑鎶樺彔澧炲姞杩囨浮鏁堟灉 */
+    $(document).on('click', '.layui-collapse>.layui-colla-item>.layui-colla-title', function () {
+        var $this = $(this), $content = $this.siblings('.layui-colla-content')
+            , $collapse = $this.parent().parent(), isNone = $content.hasClass('layui-show');
+        if (isNone) {  // 鍥犱负layui浼氬鐞嗕竴閬嶆墍浠ヨ繖閲岀姸鎬佹槸鐩稿弽鐨�
+            $content.removeClass('layui-show').slideDown('fast').addClass('layui-show');
+        } else {
+            $content.css('display', 'block').slideUp('fast', function () {
+                $(this).css('display', '');
+            });
+        }
+        $this.children('.layui-colla-icon').html('&#xe602;')
+            .css({'transition': 'all .3s', 'transform': 'rotate(' + (isNone ? '90deg' : '0deg') + ')'});
+        if ($collapse.attr('lay-shrink') === '_all') {  // 鎵嬮鐞存晥鏋�
+            var $show = $collapse.children('.layui-colla-item').children('.layui-colla-content.layui-show').not($content);
+            $show.css('display', 'block').slideUp('fast', function () {
+                $(this).css('display', '');
+            });
+            $show.removeClass('layui-show');
+            $show.siblings('.layui-colla-title').children('.layui-colla-icon').html('&#xe602;')
+                .css({'transition': 'all .3s', 'transform': 'rotate(0deg)'});
+        }
+    });
+    $('.layui-collapse[lay-accordion]').attr('lay-shrink', '_all').removeAttr('lay-accordion');  // 璁﹍ayui涓嶅鐞嗘墜椋庣惔鏁堟灉
+
+    /** 琛ㄥ崟楠岃瘉tips鎻愮ず鏍峰紡淇敼 */
+    layer.oldTips = layer.tips;
+    layer.tips = function (content, follow, options) {
+        var $fFip;  // 鍒ゆ柇鏄惁鏄〃鍗曢獙璇佽皟鐢ㄧ殑tips
+        if ($(follow).length > 0 && $(follow).parents('.layui-form').length > 0) {
+            if ($(follow).is('input') || $(follow).is('textarea')) {
+                $fFip = $(follow);
+            } else if ($(follow).hasClass('layui-form-select') || $(follow).hasClass('layui-form-radio')
+                || $(follow).hasClass('layui-form-checkbox') || $(follow).hasClass('layui-form-switch')) {
+                $fFip = $(follow).prev();
+            }
+        }
+        if (!$fFip) return layer.oldTips(content, follow, options);
+        options.tips = [$fFip.attr('lay-direction') || 3, $fFip.attr('lay-bg') || '#ff4c4c'];
+        setTimeout(function () {
+            options.success = function (layero) {
+                $(layero).children('.layui-layer-content').css('padding', '6px 12px');
+            };
+            layer.oldTips(content, follow, options);
+        }, 100);
+    };
+
+    /** 鎵�鏈塭w-href澶勭悊 */
+    $(document).on('click', '*[ew-href]', function () {
+        var $this = $(this);
+        var href = $this.attr('ew-href');
+        if (!href || href === '#') return;
+        if (href.indexOf('javascript:') === 0) return new Function(href.substring(11))();
+        var title = $this.attr('ew-title') || $this.text();
+        var win = $this.data('window');
+        win ? (win = admin.strToWin(win)) : (win = top);
+        var end = $this.attr('ew-end');
+        try {
+            if (end) end = new Function(end);
+            else end = undefined;
+        } catch (e) {
+            console.error(e);
+        }
+        if (win.layui && win.layui.index) win.layui.index.openTab({title: title || '', url: href, end: end});
+        else location.href = href;
+    });
+
+    /** 甯姪榧犳爣鍙抽敭鑿滃崟瀹屾垚鐐瑰嚮绌虹櫧鍏抽棴鐨勫姛鑳� */
+    if (!layui.contextMenu) {
+        $(document).off('click.ctxMenu').on('click.ctxMenu', function () {
+            try {
+                var ifs = top.window.frames;
+                for (var i = 0; i < ifs.length; i++) {
+                    var tif = ifs[i];
+                    try {  // 鍙兘浼氳法鍩�
+                        if (tif.layui && tif.layui.jquery) tif.layui.jquery('body>.ctxMenu').remove();
+                    } catch (e) {
+                    }
+                }
+                try {  // 鍙兘浼氳法鍩�
+                    if (top.layui && top.layui.jquery) top.layui.jquery('body>.ctxMenu').remove();
+                } catch (e) {
+                }
+            } catch (e) {
+            }
+        });
+    }
+
+    /** 璇诲彇缂撳瓨鐨勯厤缃俊鎭� */
+    setter = $.extend({
+        pageTabs: true, cacheTab: true, openTabCtxMenu: true, maxTabNum: 20, tableName: 'easyweb-iframe',
+        apiNoCache: true, ajaxSuccessBefore: function (res, url, obj) {
+            return admin.ajaxSuccessBefore ? admin.ajaxSuccessBefore(res, url, obj) : true;
+        }, getAjaxHeaders: function (res, url, obj) {
+            return admin.getAjaxHeaders ? admin.getAjaxHeaders(res, url, obj) : [];
+        }
+    }, setter);
+    var cache = admin.getTempData(true);
+    if (cache) {
+        var keys = ['pageTabs', 'cacheTab', 'defaultTheme', 'navArrow', 'closeFooter', 'tabAutoRefresh'];
+        for (var i = 0; i < keys.length; i++) if (cache[keys[i]] !== undefined) setter[keys[i]] = cache[keys[i]];
+    }
+    admin.recoverState();  // 鎭㈠鏈湴閰嶇疆
+    admin.renderTpl();  // 娓叉煋鍔ㄦ�佹ā鏉�
+    admin.setter = setter;
+    if (layui.device().ios) $('body').addClass('ios-iframe-body');  // ios娴忚鍣╥frame鍏煎
+    exports('admin', admin);
+});
diff --git a/src/main/webapp/static/layui/lay/modules/contextMenu.js b/src/main/webapp/static/layui/lay/modules/contextMenu.js
new file mode 100644
index 0000000..2655031
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/contextMenu.js
@@ -0,0 +1,228 @@
+/** 鍙抽敭鑿滃崟妯″潡 date:2019-02-08   License By http://easyweb.vip */
+layui.define(["jquery"], function (exports) {
+    var $ = layui.jquery;
+
+    var contextMenu = {
+        // 缁戝畾鍏冪礌
+        bind: function (elem, items) {
+            $(elem).bind('contextmenu', function (e) {
+                contextMenu.show(items, e.clientX, e.clientY, e);
+                return false;
+            });
+        },
+        // 鍦ㄦ寚瀹氬潗鏍囨樉绀鸿彍鍗�
+        show: function (items, x, y, e) {
+            var xy = 'left: ' + x + 'px; top: ' + y + 'px;';
+            var htmlStr = '<div class="ctxMenu" style="' + xy + '">';
+            htmlStr += contextMenu.getHtml(items, '');
+            htmlStr += '   </div>';
+            contextMenu.remove();
+            $('body').append(htmlStr);
+            // 璋冩暣婧㈠嚭浣嶇疆
+            var $ctxMenu = $('.ctxMenu');
+            if (x + $ctxMenu.outerWidth() > contextMenu.getPageWidth()) {
+                x -= $ctxMenu.outerWidth();
+            }
+            if (y + $ctxMenu.outerHeight() > contextMenu.getPageHeight()) {
+                y = y - $ctxMenu.outerHeight();
+                if (y < 0) {
+                    y = 0;
+                }
+            }
+            $ctxMenu.css({'top': y, 'left': x});
+            // 娣诲姞item鐐瑰嚮浜嬩欢
+            contextMenu.setEvents(items, e);
+            // 鏄剧ず瀛愯彍鍗曚簨浠�
+            $('.ctxMenu-item').on('mouseenter', function (e) {
+                e.stopPropagation();
+                $(this).parent().find('.ctxMenu-sub').css('display', 'none');
+                if (!$(this).hasClass('haveMore')) return;
+                var $item = $(this).find('>a');
+                var $sub = $(this).find('>.ctxMenu-sub');
+                var top = $item.offset().top - $('body,html').scrollTop();
+                var left = $item.offset().left + $item.outerWidth() - $('body,html').scrollLeft();
+                if (left + $sub.outerWidth() > contextMenu.getPageWidth()) {
+                    left = $item.offset().left - $sub.outerWidth();
+                }
+                if (top + $sub.outerHeight() > contextMenu.getPageHeight()) {
+                    top = top - $sub.outerHeight() + $item.outerHeight();
+                    if (top < 0) {
+                        top = 0;
+                    }
+                }
+                $(this).find('>.ctxMenu-sub').css({
+                    'top': top,
+                    'left': left,
+                    'display': 'block'
+                });
+            })/*.on('mouseleave', function () {
+                $(this).find('>.ctxMenu-sub').css('display', 'none');
+            })*/;
+        },
+        // 绉婚櫎鎵�鏈�
+        remove: function () {
+            var ifs = parent.window.frames;
+            for (var i = 0; i < ifs.length; i++) {
+                var tif = ifs[i];
+                try {
+                    tif.layui.jquery('body>.ctxMenu').remove();
+                } catch (e) {
+                }
+            }
+            try {
+                parent.layui.jquery('body>.ctxMenu').remove();
+            } catch (e) {
+            }
+        },
+        // 璁剧疆浜嬩欢鐩戝惉
+        setEvents: function (items, event) {
+            $('.ctxMenu').off('click').on('click', '[lay-id]', function (e) {
+                var itemId = $(this).attr('lay-id');
+                var item = getItemById(itemId, items);
+                item.click && item.click(e, event);
+            });
+
+            function getItemById(id, list) {
+                for (var i = 0; i < list.length; i++) {
+                    var one = list[i];
+                    if (id == one.itemId) {
+                        return one;
+                    } else if (one.subs && one.subs.length > 0) {
+                        var temp = getItemById(id, one.subs);
+                        if (temp) {
+                            return temp;
+                        }
+                    }
+                }
+            }
+        },
+        // 鏋勫缓鏃犻檺绾�
+        getHtml: function (items, pid) {
+            var htmlStr = '';
+            for (var i = 0; i < items.length; i++) {
+                var item = items[i];
+                item.itemId = 'ctxMenu-' + pid + i;
+                if (item.subs && item.subs.length > 0) {
+                    htmlStr += '<div class="ctxMenu-item haveMore" lay-id="' + item.itemId + '">';
+                    htmlStr += '<a>';
+                    if (item.icon) {
+                        htmlStr += '<i class="' + item.icon + ' ctx-icon"></i>';
+                    }
+                    htmlStr += item.name;
+                    htmlStr += '<i class="layui-icon layui-icon-right icon-more"></i>';
+                    htmlStr += '</a>';
+                    htmlStr += '<div class="ctxMenu-sub" style="display: none;">';
+                    htmlStr += contextMenu.getHtml(item.subs, pid + i);
+                    htmlStr += '</div>';
+                } else {
+                    htmlStr += '<div class="ctxMenu-item" lay-id="' + item.itemId + '">';
+                    htmlStr += '<a>';
+                    if (item.icon) {
+                        htmlStr += '<i class="' + item.icon + ' ctx-icon"></i>';
+                    }
+                    htmlStr += item.name;
+                    htmlStr += '</a>';
+                }
+                htmlStr += '</div>';
+                if (item.hr == true) {
+                    htmlStr += '<hr/>';
+                }
+            }
+            return htmlStr;
+        },
+        // 鑾峰彇css浠g爜
+        getCommonCss: function () {
+            var cssStr = '.ctxMenu, .ctxMenu-sub {';
+            cssStr += '        max-width: 250px;';
+            cssStr += '        min-width: 110px;';
+            cssStr += '        background: white;';
+            cssStr += '        border-radius: 2px;';
+            cssStr += '        padding: 5px 0;';
+            cssStr += '        white-space: nowrap;';
+            cssStr += '        position: fixed;';
+            cssStr += '        z-index: 2147483647;';
+            cssStr += '        box-shadow: 0 2px 4px rgba(0, 0, 0, .12);';
+            cssStr += '        border: 1px solid #d2d2d2;';
+            cssStr += '        overflow: visible;';
+            cssStr += '   }';
+
+            cssStr += '   .ctxMenu-item {';
+            cssStr += '        position: relative;';
+            cssStr += '   }';
+
+            cssStr += '   .ctxMenu-item > a {';
+            cssStr += '        font-size: 14px;';
+            cssStr += '        color: #666;';
+            cssStr += '        padding: 0 26px 0 35px;';
+            cssStr += '        cursor: pointer;';
+            cssStr += '        display: block;';
+            cssStr += '        line-height: 36px;';
+            cssStr += '        text-decoration: none;';
+            cssStr += '        position: relative;';
+            cssStr += '   }';
+
+            cssStr += '   .ctxMenu-item > a:hover {';
+            cssStr += '        background: #f2f2f2;';
+            cssStr += '        color: #666;';
+            cssStr += '   }';
+
+            cssStr += '   .ctxMenu-item > a > .icon-more {';
+            cssStr += '        position: absolute;';
+            cssStr += '        right: 5px;';
+            cssStr += '        top: 0;';
+            cssStr += '        font-size: 12px;';
+            cssStr += '        color: #666;';
+            cssStr += '   }';
+
+            cssStr += '   .ctxMenu-item > a > .ctx-icon {';
+            cssStr += '        position: absolute;';
+            cssStr += '        left: 12px;';
+            cssStr += '        top: 0;';
+            cssStr += '        font-size: 15px;';
+            cssStr += '        color: #666;';
+            cssStr += '   }';
+
+            cssStr += '   .ctxMenu hr {';
+            cssStr += '        background-color: #e6e6e6;';
+            cssStr += '        clear: both;';
+            cssStr += '        margin: 5px 0;';
+            cssStr += '        border: 0;';
+            cssStr += '        height: 1px;';
+            cssStr += '   }';
+
+            cssStr += '   .ctx-ic-lg {';
+            cssStr += '        font-size: 18px !important;';
+            cssStr += '        left: 11px !important;';
+            cssStr += '    }';
+            return cssStr;
+        },
+        // 鑾峰彇娴忚鍣ㄩ珮搴�
+        getPageHeight: function () {
+            return document.documentElement.clientHeight || document.body.clientHeight;
+        },
+        // 鑾峰彇娴忚鍣ㄥ搴�
+        getPageWidth: function () {
+            return document.documentElement.clientWidth || document.body.clientWidth;
+        },
+    };
+
+    // 鐐瑰嚮浠绘剰浣嶇疆鍏抽棴鑿滃崟
+    $(document).off('click.ctxMenu').on('click.ctxMenu', function () {
+        contextMenu.remove();
+    });
+
+    // 鐐瑰嚮鏈夊瓙鑿滃崟鐨勮妭鐐逛笉鍏抽棴鑿滃崟
+    $(document).off('click.ctxMenuMore').on('click.ctxMenuMore', '.ctxMenu-item', function (e) {
+        if ($(this).hasClass('haveMore')) {
+            if (e !== void 0) {
+                e.preventDefault();
+                e.stopPropagation();
+            }
+        } else {
+            contextMenu.remove();
+        }
+    });
+
+    $('head').append('<style id="ew-css-ctx">' + contextMenu.getCommonCss() + '</style>');
+    exports("contextMenu", contextMenu);
+});
\ No newline at end of file
diff --git a/src/main/webapp/static/layui/lay/modules/dropdown/dropdown.css b/src/main/webapp/static/layui/lay/modules/dropdown/dropdown.css
new file mode 100644
index 0000000..67b169c
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/dropdown/dropdown.css
@@ -0,0 +1,618 @@
+/** 涓嬫媺鑿滃崟妯″潡 date:2020-05-04   License By http://easyweb.vip */
+
+.dropdown-no-scroll {
+    overflow: hidden;
+}
+
+.dropdown-fix-parent {
+    z-index: auto !important;
+}
+
+/** 閬僵灞� */
+.dropdown-menu-shade {
+    position: fixed;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+    z-index: 9998;
+    background-color: rgba(0, 0, 0, .1);
+}
+
+.dropdown-menu-shade.no-shade {
+    background-color: transparent;
+}
+
+/** 澶滈棿涓婚 */
+
+.dropdown-menu-nav.dark, .dropdown-menu-nav.dark .dropdown-menu-nav-child {
+    background: #32363F;
+    border-color: #484e58;
+}
+
+.dropdown-menu-nav.dark > li > a, .dropdown-menu-nav.dark .dropdown-menu-nav-child > li > a {
+    color: #a1a8b8;
+}
+
+.dropdown-menu-nav.dark > li > a:hover, .dropdown-menu-nav.dark .dropdown-menu-nav-child > li > a:hover {
+    background-color: #272b34;
+}
+
+.dropdown-menu-nav.dark > li.disabled > a, .dropdown-menu-nav > li.disabled > a:hover,
+.dropdown-menu-nav.dark .dropdown-menu-nav-child > li.disabled > a, .dropdown-menu-nav .dropdown-menu-nav-child > li.disabled > a:hover {
+    color: #7a8191;
+}
+
+.dropdown-menu-nav.dark > hr, .dropdown-menu-nav.dark .dropdown-menu-nav-child > hr {
+    background-color: #484e58;
+}
+
+.dropdown-menu-nav.dark > li.title, .dropdown-menu-nav.dark .dropdown-menu-nav-child > li.title {
+    color: #868b9a;
+}
+
+.dropdown-menu-nav.dark .dropdown-anchor {
+    border-color: #484e58;
+}
+
+.dropdown-menu-nav.dark .dropdown-anchor::after {
+    border-color: #32363F;
+}
+
+/** 鐧借壊涓婚 */
+.dropdown-menu {
+    position: relative;
+    display: inline-block;
+    vertical-align: bottom;
+}
+
+.dropdown-menu-nav, .dropdown-menu-nav .dropdown-menu-nav-child {
+    position: absolute;
+    padding: 5px 0;
+    margin: 0;
+    overflow: visible;
+    min-width: 110px;
+    background: #fff;
+    border-radius: 2px;
+    box-shadow: 0 1px 4px rgba(0, 0, 0, .12);
+    border: 1px solid #e4e4e4;
+    line-height: initial;
+    text-align: left;
+    z-index: 9999;
+}
+
+.dropdown-menu .dropdown-menu-nav {
+    display: none;
+}
+
+.dropdown-menu.dropdown-open .dropdown-menu-nav {
+    display: block;
+}
+
+.dropdown-menu-nav.fixed {
+    position: fixed;
+}
+
+.dropdown-menu-nav > li, .dropdown-menu-nav-child > li {
+    padding: 0;
+    margin: 0;
+    line-height: 18px;
+    user-select: none;
+    list-style: none;
+    position: relative;
+}
+
+.dropdown-menu-nav > li > a, .dropdown-menu-nav-child > li > a {
+    display: block;
+    color: #555;
+    font-size: 14px;
+    padding: 10px 15px;
+    text-decoration: none;
+    white-space: nowrap;
+    cursor: pointer;
+    user-select: none;
+}
+
+.dropdown-menu-nav > li > a:hover, .dropdown-menu-nav-child > li > a:hover {
+    background-color: #eeeeee;
+}
+
+.dropdown-menu-nav > li .layui-icon, .dropdown-menu-nav-child > li .layui-icon {
+    font-size: 14px;
+    margin-right: 5px;
+}
+
+.dropdown-menu-nav > hr, .dropdown-menu-nav-child > hr {
+    height: 1px;
+    margin: 3px 0;
+    background-color: #e6e6e6;
+}
+
+/** 绂佺敤鏍峰紡 */
+.dropdown-menu-nav > li.disabled, .dropdown-menu-nav-child > li.disabled {
+    cursor: not-allowed;
+}
+
+.dropdown-menu-nav > li.disabled > a, .dropdown-menu-nav > li.disabled > a:hover,
+.dropdown-menu-nav-child > li.disabled > a, .dropdown-menu-nav-child > li.disabled > a:hover {
+    color: #999;
+    cursor: not-allowed;
+    pointer-events: none;
+    background-color: transparent;
+}
+
+/** 鏍囬鏍峰紡 */
+.dropdown-menu-nav > li.title, .dropdown-menu-nav-child > li.title {
+    color: #999;
+    font-size: 12px;
+    padding: 3px 15px;
+}
+
+/* nav瀛愯彍鍗� */
+.dropdown-menu-nav .dropdown-menu-nav-child {
+    left: 100%;
+    top: 0;
+    display: none;
+}
+
+.dropdown-menu-nav .show-left .dropdown-menu-nav-child {
+    left: auto;
+    right: 100%;
+}
+
+.dropdown-menu-nav > li.active > .dropdown-menu-nav-child, .dropdown-menu-nav-child > li.active > .dropdown-menu-nav-child {
+    display: block;
+}
+
+.dropdown-menu-nav > li.have-more:after, .dropdown-menu-nav-child > li.have-more:after {
+    content: "\e602";
+    font-family: layui-icon !important;
+    font-size: 14px;
+    font-style: normal;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    position: absolute;
+    right: 4px;
+    color: #666;
+    top: 50%;
+    margin-top: -8px;
+}
+
+/** 灏忕澶� */
+.dropdown-menu-nav .dropdown-anchor, .dropdown-menu-nav .dropdown-anchor:after {
+    border: 8px solid #e4e4e4;
+    position: absolute;
+    display: inline-block;
+}
+
+.dropdown-menu-nav .dropdown-anchor:after {
+    content: '';
+    border: 7px solid #fff;
+}
+
+/** 涓嬪乏浣嶇疆 */
+.dropdown-menu-nav.dropdown-bottom-left {
+    top: 100%;
+}
+
+.dropdown-menu-nav.dropdown-bottom-left {
+    margin-top: 8px;
+}
+
+.dropdown-menu-nav.dropdown-bottom-left .dropdown-anchor, .dropdown-menu-nav.dropdown-bottom-left .dropdown-anchor:after {
+    border-top-color: transparent;
+    border-right-color: transparent;
+    border-left-color: transparent;
+    top: -16px;
+}
+
+.dropdown-menu-nav.dropdown-bottom-left .dropdown-anchor:after {
+    top: -6px;
+    left: -7px;
+}
+
+.dropdown-menu-nav.dropdown-bottom-left .dropdown-anchor {
+    left: 12px;
+}
+
+/** 涓嬪彸浣嶇疆 */
+.dropdown-menu-nav.dropdown-bottom-right {
+    right: 0;
+}
+
+.dropdown-menu-nav.dropdown-bottom-right {
+    margin-top: 8px;
+}
+
+.dropdown-menu-nav.dropdown-bottom-right .dropdown-anchor, .dropdown-menu-nav.dropdown-bottom-right .dropdown-anchor:after {
+    border-top-color: transparent;
+    border-right-color: transparent;
+    border-left-color: transparent;
+    top: -16px;
+}
+
+.dropdown-menu-nav.dropdown-bottom-right .dropdown-anchor:after {
+    top: -6px;
+    left: -7px;
+}
+
+.dropdown-menu-nav.dropdown-bottom-right .dropdown-anchor {
+    right: 12px;
+}
+
+/** 涓嬩腑浣嶇疆 */
+.dropdown-menu-nav.dropdown-bottom-center {
+    left: 50%;
+    /*transform: translateX(-50%);*/
+}
+
+.dropdown-menu-nav.dropdown-bottom-center {
+    margin-top: 8px;
+}
+
+.dropdown-menu-nav.dropdown-bottom-center .dropdown-anchor, .dropdown-menu-nav.dropdown-bottom-center .dropdown-anchor:after {
+    border-top-color: transparent;
+    border-right-color: transparent;
+    border-left-color: transparent;
+    top: -16px;
+}
+
+.dropdown-menu-nav.dropdown-bottom-center .dropdown-anchor:after {
+    top: -6px;
+    left: -7px;
+}
+
+.dropdown-menu-nav.dropdown-bottom-center .dropdown-anchor {
+    left: calc(50% - 8px);
+}
+
+/** 涓婂乏浣嶇疆 */
+.dropdown-menu-nav.dropdown-top-left {
+    bottom: 100%;
+}
+
+.dropdown-menu-nav.dropdown-top-left {
+    margin-bottom: 8px;
+}
+
+.dropdown-menu-nav.dropdown-top-left .dropdown-anchor, .dropdown-menu-nav.dropdown-top-left .dropdown-anchor:after {
+    border-bottom-color: transparent;
+    border-right-color: transparent;
+    border-left-color: transparent;
+    bottom: -16px;
+}
+
+.dropdown-menu-nav.dropdown-top-left .dropdown-anchor:after {
+    top: -8px;
+    left: -7px;
+    bottom: auto;
+}
+
+.dropdown-menu-nav.dropdown-top-left .dropdown-anchor {
+    left: 12px;
+}
+
+/** 涓婂彸浣嶇疆 */
+.dropdown-menu-nav.dropdown-top-right {
+    bottom: 100%;
+    right: 0;
+}
+
+.dropdown-menu-nav.dropdown-top-right {
+    margin-bottom: 8px;
+}
+
+.dropdown-menu-nav.dropdown-top-right .dropdown-anchor, .dropdown-menu-nav.dropdown-top-right .dropdown-anchor:after {
+    border-bottom-color: transparent;
+    border-right-color: transparent;
+    border-left-color: transparent;
+    bottom: -16px;
+}
+
+.dropdown-menu-nav.dropdown-top-right .dropdown-anchor:after {
+    top: -8px;
+    left: -7px;
+    bottom: auto;
+}
+
+.dropdown-menu-nav.dropdown-top-right .dropdown-anchor {
+    right: 12px;
+}
+
+/** 涓婁腑浣嶇疆 */
+.dropdown-menu-nav.dropdown-top-center {
+    bottom: 100%;
+    left: 50%;
+    /*transform: translateX(-50%);*/
+}
+
+.dropdown-menu-nav.dropdown-top-center {
+    margin-bottom: 8px;
+}
+
+.dropdown-menu-nav.dropdown-top-center .dropdown-anchor, .dropdown-menu-nav.dropdown-top-center .dropdown-anchor:after {
+    border-bottom-color: transparent;
+    border-right-color: transparent;
+    border-left-color: transparent;
+    bottom: -16px;
+}
+
+.dropdown-menu-nav.dropdown-top-center .dropdown-anchor:after {
+    top: -8px;
+    left: -7px;
+    bottom: auto;
+}
+
+.dropdown-menu-nav.dropdown-top-center .dropdown-anchor {
+    left: calc(50% - 8px);
+}
+
+/** 宸︿笂浣嶇疆 */
+.dropdown-menu-nav.dropdown-left-top {
+    right: 100%;
+    bottom: 0;
+}
+
+.dropdown-menu-nav.dropdown-left-top {
+    margin-right: 8px;
+}
+
+.dropdown-menu-nav.dropdown-left-top .dropdown-anchor, .dropdown-menu-nav.dropdown-left-top .dropdown-anchor:after {
+    border-bottom-color: transparent;
+    border-right-color: transparent;
+    border-top-color: transparent;
+    right: -16px;
+}
+
+.dropdown-menu-nav.dropdown-left-top .dropdown-anchor:after {
+    top: -7px;
+    left: -8px;
+    right: auto;
+}
+
+.dropdown-menu-nav.dropdown-left-top .dropdown-anchor {
+    bottom: 12px;
+}
+
+/** 宸︿笅浣嶇疆 */
+.dropdown-menu-nav.dropdown-left-bottom {
+    right: 100%;
+    top: 0;
+}
+
+.dropdown-menu-nav.dropdown-left-bottom {
+    margin-right: 8px;
+}
+
+.dropdown-menu-nav.dropdown-left-bottom .dropdown-anchor, .dropdown-menu-nav.dropdown-left-bottom .dropdown-anchor:after {
+    border-bottom-color: transparent;
+    border-right-color: transparent;
+    border-top-color: transparent;
+    right: -16px;
+}
+
+.dropdown-menu-nav.dropdown-left-bottom .dropdown-anchor:after {
+    top: -7px;
+    left: -8px;
+    right: auto;
+}
+
+.dropdown-menu-nav.dropdown-left-bottom .dropdown-anchor {
+    top: 12px;
+}
+
+/** 宸︿腑浣嶇疆 */
+.dropdown-menu-nav.dropdown-left-center {
+    right: 100%;
+    top: 50%;
+    /*transform: translateY(-50%);*/
+}
+
+.dropdown-menu-nav.dropdown-left-center {
+    margin-right: 8px;
+}
+
+.dropdown-menu-nav.dropdown-left-center .dropdown-anchor, .dropdown-menu-nav.dropdown-left-center .dropdown-anchor:after {
+    border-bottom-color: transparent;
+    border-right-color: transparent;
+    border-top-color: transparent;
+    right: -16px;
+}
+
+.dropdown-menu-nav.dropdown-left-center .dropdown-anchor:after {
+    top: -7px;
+    left: -8px;
+    right: auto;
+}
+
+.dropdown-menu-nav.dropdown-left-center .dropdown-anchor {
+    top: calc(50% - 8px);
+}
+
+/** 鍙充笂浣嶇疆 */
+.dropdown-menu-nav.dropdown-right-top {
+    left: 100%;
+    bottom: 0;
+}
+
+.dropdown-menu-nav.dropdown-right-top {
+    margin-left: 8px;
+}
+
+.dropdown-menu-nav.dropdown-right-top .dropdown-anchor, .dropdown-menu-nav.dropdown-right-top .dropdown-anchor:after {
+    border-bottom-color: transparent;
+    border-left-color: transparent;
+    border-top-color: transparent;
+    left: -16px;
+}
+
+.dropdown-menu-nav.dropdown-right-top .dropdown-anchor:after {
+    top: -7px;
+    left: -6px;
+}
+
+.dropdown-menu-nav.dropdown-right-top .dropdown-anchor {
+    bottom: 12px;
+}
+
+/** 鍙充笅浣嶇疆 */
+.dropdown-menu-nav.dropdown-right-bottom {
+    left: 100%;
+    top: 0;
+}
+
+.dropdown-menu-nav.dropdown-right-bottom {
+    margin-left: 8px;
+}
+
+.dropdown-menu-nav.dropdown-right-bottom .dropdown-anchor, .dropdown-menu-nav.dropdown-right-bottom .dropdown-anchor:after {
+    border-bottom-color: transparent;
+    border-left-color: transparent;
+    border-top-color: transparent;
+    left: -16px;
+}
+
+.dropdown-menu-nav.dropdown-right-bottom .dropdown-anchor:after {
+    top: -7px;
+    left: -6px;
+}
+
+.dropdown-menu-nav.dropdown-right-bottom .dropdown-anchor {
+    top: 12px;
+}
+
+/** 鍙充腑浣嶇疆 */
+.dropdown-menu-nav.dropdown-right-center {
+    left: 100%;
+    top: 50%;
+    /*transform: translateY(-50%);*/
+}
+
+.dropdown-menu-nav.dropdown-right-center {
+    margin-left: 8px;
+}
+
+.dropdown-menu-nav.dropdown-right-center .dropdown-anchor, .dropdown-menu-nav.dropdown-right-center .dropdown-anchor:after {
+    border-bottom-color: transparent;
+    border-left-color: transparent;
+    border-top-color: transparent;
+    left: -16px;
+}
+
+.dropdown-menu-nav.dropdown-right-center .dropdown-anchor:after {
+    top: -7px;
+    left: -6px;
+}
+
+.dropdown-menu-nav.dropdown-right-center .dropdown-anchor {
+    top: calc(50% - 8px);
+}
+
+/** 鎸夐挳閲岄潰涓夎褰㈡牱寮� */
+.icon-btn .layui-icon-drop {
+    margin-right: 0;
+    font-size: 14px;
+}
+
+.layui-icon-drop:before {
+    content: "\e625";
+}
+
+.layui-icon-drop.top {
+    transform: rotate(180deg);
+    display: inline-table;
+}
+
+.layui-icon-drop.left {
+    transform: rotate(90deg);
+    display: inline-table;
+}
+
+.layui-icon-drop.right {
+    transform: rotate(-90deg);
+    display: inline-table;
+}
+
+/** 閫傞厤btn-container */
+.layui-btn-container .dropdown-menu .layui-btn {
+    margin: 0;
+}
+
+.layui-btn-container .dropdown-menu {
+    margin-right: 10px;
+    margin-bottom: 10px;
+}
+
+.dropdown-menu + .dropdown-menu, .layui-btn + .dropdown-menu, .dropdown-menu + .layui-btn {
+    margin-left: 10px;
+}
+
+.layui-btn-container input {
+    font-size: 14px;
+}
+
+/** 姘旀场纭妗� */
+.dropdown-popconfirm {
+    color: #555;
+    font-size: 14px;
+    max-width: 230px;
+    min-width: 200px;
+    width: max-content;
+    padding: 15px 15px;
+    box-sizing: border-box;
+    border: none;
+    border-radius: 4px;
+    box-shadow: 0 1px 6px rgba(0, 0, 0, .2);
+}
+
+.dropdown-popconfirm .layui-icon-help, .dropdown-popconfirm .layui-icon-about {
+    font-size: 12px;
+    color: #fff;
+    height: 16px;
+    width: 16px;
+    line-height: 16px;
+    text-align: center;
+    display: inline-block;
+    box-sizing: border-box;
+    background-color: #FF9900;
+    border-radius: 50%;
+    margin: -2px 3px 0 0;
+    overflow: hidden;
+    vertical-align: middle;
+}
+
+.dropdown-popconfirm .layui-icon-about {
+    background-color: #FF0000;
+    position: relative;
+}
+
+.dropdown-popconfirm .layui-icon-about:before {
+    font-size: 28px;
+    position: absolute;
+    left: -6px;
+    top: 0;
+}
+
+.dropdown-popconfirm .dropdown-popconfirm-title > span {
+    display: inline-block;
+    vertical-align: middle;
+}
+
+.dropdown-popconfirm .dropdown-popconfirm-btn {
+    margin-top: 12px;
+    text-align: right;
+}
+
+.dropdown-popconfirm .dropdown-popconfirm-btn .layui-btn {
+    height: 24px;
+    min-width: 45px;
+    line-height: 24px;
+    padding: 0;
+    font-size: 12px;
+    border-radius: 3px;
+}
+
+.dropdown-popconfirm .dropdown-popconfirm-btn .layui-btn[btn-cancel] {
+    color: #333;
+    background: transparent;
+}
diff --git a/src/main/webapp/static/layui/lay/modules/dropdown/dropdown.js b/src/main/webapp/static/layui/lay/modules/dropdown/dropdown.js
new file mode 100644
index 0000000..b05f3ac
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/dropdown/dropdown.js
@@ -0,0 +1,250 @@
+/** 涓嬫媺鑿滃崟妯″潡 date:2020-05-04   License By http://easyweb.vip */
+layui.define(['jquery'], function (exports) {
+    var $ = layui.jquery;
+    var openClass = 'dropdown-open';
+    var disableClass = 'dropdown-disabled';
+    var noScrollClass = 'dropdown-no-scroll';
+    var shadeClass = 'dropdown-menu-shade';
+    var dropdownClass = 'dropdown-menu';
+    var dropNavClass = 'dropdown-menu-nav';
+    var hoverClass = 'dropdown-hover';
+    var fixedClass = 'fixed';
+    var noShadeClass = 'no-shade';
+    var animClass = 'layui-anim layui-anim-upbit';
+    var popAnimClass = 'layui-anim layui-anim-fadein';
+    var dropDirect = ['bottom-left', 'bottom-right', 'bottom-center', 'top-left', 'top-right', 'top-center', 'left-top', 'left-bottom', 'left-center', 'right-top', 'right-bottom', 'right-center'];
+    if ($('#ew-css-dropdown').length <= 0) {
+        layui.link(layui.cache.base + 'dropdown/dropdown.css');
+    }
+
+    var dropdown = {
+        // 缁戝畾浜嬩欢
+        init: function () {
+            // 鐐瑰嚮瑙﹀彂
+            $(document).off('click.dropdown').on('click.dropdown', '.' + dropdownClass + '>*:first-child', function (event) {
+                var $drop = $(this).parent();
+                if (!$drop.hasClass(hoverClass)) {
+                    if ($drop.hasClass(openClass)) {
+                        $drop.removeClass(openClass);
+                    } else {
+                        dropdown.hideAll();
+                        dropdown.show($(this).parent().find('.' + dropNavClass));
+                    }
+                }
+                event.stopPropagation();
+            });
+            // 鐐瑰嚮浠讳綍浣嶇疆鍏抽棴鎵�鏈�
+            $(document).off('click.dropHide').on('click.dropHide', function (event) {
+                dropdown.hideAll();
+            });
+            // 鐐瑰嚮涓嬫媺鑿滃崟鍐呭閮ㄥ垎涓嶅叧闂�
+            $(document).off('click.dropNav').on('click.dropNav', '.' + dropNavClass, function (event) {
+                event.stopPropagation();
+            });
+            // hover瑙﹀彂
+            var timer, lastDrop, hoverSelector = '.' + dropdownClass + '.' + hoverClass;
+            $(document).off('mouseenter.dropdown').on('mouseenter.dropdown', hoverSelector, function (event) {
+                if (lastDrop && lastDrop == event.currentTarget) {
+                    clearTimeout(timer);
+                }
+                dropdown.show($(this).find('.' + dropNavClass));
+            });
+            $(document).off('mouseleave.dropdown').on('mouseleave.dropdown', hoverSelector, function (event) {
+                lastDrop = event.currentTarget;
+                timer = setTimeout(function () {
+                    $(event.currentTarget).removeClass(openClass);
+                }, 300);
+            });
+            // 鍒嗙寮忕粦瀹�
+            $(document).off('click.dropStand').on('click.dropStand', '[data-dropdown]', function (event) {
+                dropdown.showFixed($(this));
+                event.stopPropagation();
+            });
+            // 鏃犻檺绾у瓙鑿滃崟
+            var hoverNavSelector = '.' + dropNavClass + ' li';
+            $(document).off('mouseenter.dropdownNav').on('mouseenter.dropdownNav', hoverNavSelector, function (event) {
+                $(this).children('.dropdown-menu-nav-child').addClass(animClass);
+                $(this).addClass('active');
+            });
+            $(document).off('mouseleave.dropdownNav').on('mouseleave.dropdownNav', hoverNavSelector, function (event) {
+                $(this).removeClass('active');
+                $(this).find('li.active').removeClass('active');
+            });
+            // 姘旀场纭寮圭獥
+            $(document).off('click.popconfirm').on('click.popconfirm', '.dropdown-menu-nav [btn-cancel]', function (event) {
+                dropdown.hideAll();
+                event.stopPropagation();
+            });
+        },
+        // 鐐瑰嚮鑿滃崟鍏抽棴
+        openClickNavClose: function () {
+            $(document).off('click.dropNavA').on('click.dropNavA', '.' + dropNavClass + '>li>a', function (event) {
+                dropdown.hideAll();
+                $(this).parentsUntil('.' + dropdownClass).last().parent().removeClass(openClass);
+                event.stopPropagation();
+            });
+        },
+        // 鍏抽棴鎵�鏈�
+        hideAll: function () {
+            $('.' + dropdownClass).removeClass(openClass);
+            // 闅愯棌鍒嗙寮忚彍鍗�
+            $('.' + dropNavClass + '.' + fixedClass).addClass('layui-hide');  // 闅愯棌鍒嗙寮忚彍鍗�
+            $('.' + shadeClass).remove();  // 绉婚櫎閬僵灞�
+            $('body').removeClass(noScrollClass);  // 绉婚櫎绂佹椤甸潰婊氬姩
+            $('.dropdown-fix-parent').removeClass('dropdown-fix-parent');
+            $('[data-dropdown]').removeClass(openClass);
+        },
+        // 灞曞紑闈炲垎绂诲紡涓嬫媺鑿滃崟
+        show: function ($dropNav) {
+            if ($dropNav && $dropNav.length > 0 && !$dropNav.hasClass(disableClass)) {
+                if ($dropNav.hasClass('dropdown-popconfirm')) {
+                    $dropNav.removeClass(animClass);
+                    $dropNav.addClass(popAnimClass);
+                } else {
+                    $dropNav.removeClass(popAnimClass);
+                    $dropNav.addClass(animClass);
+                }
+                var position;  // 鑾峰彇浣嶇疆
+                for (var i = 0; i < dropDirect.length; i++) {
+                    if ($dropNav.hasClass('dropdown-' + dropDirect[i])) {
+                        position = dropDirect[i];
+                        break;
+                    }
+                }
+                if (!position) {  // 娌℃湁璁剧疆浣嶇疆娣诲姞榛樿浣嶇疆
+                    $dropNav.addClass('dropdown-' + dropDirect[0]);
+                    position = dropDirect[0];
+                }
+                dropdown.forCenter($dropNav, position);
+                $dropNav.parent('.' + dropdownClass).addClass(openClass);
+                return position;
+            }
+            return false;
+        },
+        // 灞曞紑鍒嗙寮忚彍鍗�
+        showFixed: function ($trigger) {
+            var $dropNav = $($trigger.data('dropdown')), position;
+            if (!$dropNav.hasClass('layui-hide')) {
+                dropdown.hideAll();  // 宸茬粡灞曞紑鍒欓殣钘�
+                return;
+            }
+            dropdown.hideAll();  // 宸茬粡灞曞紑鍒欓殣钘�
+            position = dropdown.show($dropNav);  // 鑾峰彇寮瑰嚭浣嶇疆
+            if (position) {
+                $dropNav.addClass(fixedClass);  // 璁剧疆涓哄浐瀹氬畾浣�
+                $dropNav.removeClass('layui-hide');  // 鏄剧ず涓嬫媺鑿滃崟
+                var topLeft = dropdown.getTopLeft($trigger, $dropNav, position);  // 璁$畻鍧愭爣
+                topLeft = dropdown.checkPosition($dropNav, $trigger, position, topLeft); // 鏄惁婧㈠嚭灞忓箷
+                $dropNav.css(topLeft);  // 璁剧疆鍧愭爣
+                $('body').addClass(noScrollClass); // 绂佹椤甸潰婊氬姩
+                var hideShade = ($trigger.attr('no-shade') == 'true');  // 鏄惁闅愯棌閬僵灞�
+                $('body').append('<div class="' + (hideShade ? (shadeClass + ' ' + noShadeClass) : shadeClass) + ' layui-anim layui-anim-fadein"></div>');  // 娣诲姞閬僵灞�
+                // 閲嶇疆鐖跺厓绱爖-index
+                $trigger.parentsUntil('body').each(function () {
+                    var zIndex = $(this).css('z-index');
+                    if (/[0-9]+/.test(zIndex)) {
+                        $(this).addClass('dropdown-fix-parent');
+                    }
+                });
+                $trigger.addClass(openClass);
+            }
+        },
+        // 瑙e喅缁濆瀹氫綅鍥犲姩鐢诲鑷村钩绉诲け鏁�
+        forCenter: function ($dropNav, position) {
+            if (!$dropNav.hasClass(fixedClass)) {
+                var wTrigger = $dropNav.parent().outerWidth(), hTrigger = $dropNav.parent().outerHeight();
+                var wDrop = $dropNav.outerWidth(), hDrop = $dropNav.outerHeight();
+                var pParts = position.split('-'), dropSide = pParts[0], dropPosition = pParts[1];  // 鏄剧ず鏂瑰悜
+                if ((dropSide == 'top' || dropSide == 'bottom') && dropPosition == 'center') {
+                    $dropNav.css('left', (wTrigger - wDrop) / 2);
+                }
+                if ((dropSide == 'left' || dropSide == 'right') && dropPosition == 'center') {
+                    $dropNav.css('top', (hTrigger - hDrop) / 2);
+                }
+            }
+        },
+        // 璁$畻鍥哄畾瀹氫綅鍧愭爣
+        getTopLeft: function ($trigger, $dropdown, position) {
+            var widthTrigger = $trigger.outerWidth();
+            var heightTrigger = $trigger.outerHeight();
+            var widthDropdown = $dropdown.outerWidth();
+            var heightDropdown = $dropdown.outerHeight();
+            var topTrigger = $trigger.offset().top - $(document).scrollTop();
+            var leftTrigger = $trigger.offset().left;
+            var rightTrigger = leftTrigger + widthTrigger;
+            var top = 0, left = 0;
+            var positionParts = position.split('-');
+            var anchorSide = positionParts[0];  // 绠ご浣嶇疆
+            var anchorPosition = positionParts[1];  // 绠ご鏂瑰悜
+            if (anchorSide == 'top' || anchorSide == 'bottom') {
+                heightDropdown += 8; // 鍔犱笂margin璺濈
+                switch (anchorPosition) {
+                    case 'left':
+                        left = leftTrigger;
+                        break;
+                    case 'center':
+                        left = leftTrigger - widthDropdown / 2 + widthTrigger / 2;
+                        break;
+                    case 'right':
+                        left = rightTrigger - widthDropdown;
+                }
+            }
+            if (anchorSide == 'left' || anchorSide == 'right') {
+                widthDropdown += 8;  // 鍔犱笂margin璺濈
+                switch (anchorPosition) {
+                    case 'top':
+                        top = topTrigger + heightTrigger - heightDropdown;
+                        break;
+                    case 'center':
+                        top = topTrigger - heightDropdown / 2 + heightTrigger / 2;
+                        break;
+                    case 'bottom':
+                        top = topTrigger;
+                }
+            }
+            switch (anchorSide) {
+                case 'top':
+                    top = topTrigger - heightDropdown;
+                    break;
+                case 'right':
+                    left = leftTrigger + widthTrigger;
+                    break;
+                case 'bottom':
+                    top = topTrigger + heightTrigger;
+                    break;
+                case 'left':
+                    left = leftTrigger - widthDropdown;
+            }
+            return {top: top, left: left, right: 'auto', bottom: 'auto'};
+        },
+        // 妫�鏌ユ槸鍚︽孩鍑哄睆骞�
+        checkPosition: function ($dropNav, $trigger, position, topLeft) {
+            var aps = position.split('-');
+            if ('bottom' == aps[0]) {
+                if ((topLeft.top + $dropNav.outerHeight()) > dropdown.getPageHeight()) {
+                    topLeft = dropdown.getTopLeft($trigger, $dropNav, 'top-' + aps[1]);
+                    $dropNav.removeClass('dropdown-' + position);
+                    $dropNav.addClass('dropdown-top-' + aps[1]);
+                }
+            } else if ('top' == aps[0]) {
+                if (topLeft.top < 0) {
+                    topLeft = dropdown.getTopLeft($trigger, $dropNav, 'bottom-' + aps[1]);
+                    $dropNav.removeClass('dropdown-' + position);
+                    $dropNav.addClass('dropdown-bottom-' + aps[1]);
+                }
+            }
+            return topLeft;
+        },
+        // 鑾峰彇娴忚鍣ㄩ珮搴�
+        getPageHeight: function () {
+            return document.documentElement.clientHeight || document.body.clientHeight;
+        },
+        // 鑾峰彇娴忚鍣ㄥ搴�
+        getPageWidth: function () {
+            return document.documentElement.clientWidth || document.body.clientWidth;
+        }
+    };
+
+    dropdown.init();
+    exports('dropdown', dropdown);
+});
diff --git a/src/main/webapp/static/layui/lay/modules/index.js b/src/main/webapp/static/layui/lay/modules/index.js
new file mode 100644
index 0000000..93d9297
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/index.js
@@ -0,0 +1,302 @@
+/** EasyWeb iframe v3.1.8 date:2020-05-04 License By http://easyweb.vip */
+
+layui.define(['layer', 'element', 'admin'], function (exports) {
+    var $ = layui.jquery;
+    var layer = layui.layer;
+    var element = layui.element;
+    var admin = layui.admin;
+    var setter = admin.setter;
+    var headerDOM = '.layui-layout-admin>.layui-header';
+    var sideDOM = '.layui-layout-admin>.layui-side>.layui-side-scroll';
+    var bodyDOM = '.layui-layout-admin>.layui-body';
+    var tabDOM = bodyDOM + '>.layui-tab';
+    var titleDOM = bodyDOM + '>.layui-body-header';
+    var tabFilter = 'admin-pagetabs';
+    var navFilter = 'admin-side-nav';
+    var tabEndCall = {};  // Tab鍏抽棴鐨勪簨浠跺洖璋�
+    var mIsAddTab = false;  // 鏄惁鏄坊鍔燭ab锛屾坊鍔燭ab鐨勬椂鍊欏垏鎹笉鑷姩鍒锋柊
+    var index = {homeUrl: undefined, mTabPosition: undefined, mTabList: []};
+
+    /** 娓叉煋涓讳綋閮ㄥ垎 */
+    index.loadView = function (param) {
+        if (!param.menuPath) return layer.msg('url涓嶈兘涓虹┖', {icon: 2, anim: 6});
+        if (setter.pageTabs) {  // 澶氭爣绛炬ā寮�
+            var flag;  // 閫夐」鍗℃槸鍚﹀凡娣诲姞
+            $(tabDOM + '>.layui-tab-title>li').each(function () {
+                if ($(this).attr('lay-id') === param.menuPath) flag = true;
+            });
+            if (!flag) {  // 娣诲姞閫夐」鍗�
+                if (index.mTabList.length + 1 >= setter.maxTabNum) {
+                    layer.msg('鏈�澶氭墦寮�' + setter.maxTabNum + '涓�夐」鍗�', {icon: 2, anim: 6});
+                    return admin.activeNav(index.mTabPosition);
+                }
+                mIsAddTab = true;
+                element.tabAdd(tabFilter, {
+                    id: param.menuPath, title: '<span class="title">' + (param.menuName || '') + '</span>',
+                    content: '<iframe class="admin-iframe" lay-id="' + param.menuPath + '" src="' + param.menuPath +
+                        '" onload="layui.index.hideLoading(this);" frameborder="0"></iframe>'
+                });
+                admin.showLoading({elem: $('iframe[lay-id="' + param.menuPath + '"]').parent(), size: ''});
+                if (param.menuPath !== index.homeUrl) index.mTabList.push(param);  // 璁板綍tab
+                if (setter.cacheTab) admin.putTempData('indexTabs', index.mTabList);  // 缂撳瓨tab
+            }
+            if (!param.noChange) element.tabChange(tabFilter, param.menuPath);  // 鍒囨崲鍒版tab
+        } else {  // 鍗曟爣绛炬ā寮�
+            admin.activeNav(param.menuPath);
+            var $contentDom = $(bodyDOM + '>div>.admin-iframe');
+            if ($contentDom.length === 0) {
+                $(bodyDOM).html([
+                    '<div class="layui-body-header">',
+                    '   <span class="layui-body-header-title"></span>',
+                    '   <span class="layui-breadcrumb pull-right" lay-filter="admin-body-breadcrumb" style="visibility: visible;"></span>',
+                    '</div>',
+                    '<div style="-webkit-overflow-scrolling: touch;">',
+                    '   <iframe class="admin-iframe" lay-id="', param.menuPath, '" src="', param.menuPath, '"',
+                    '      onload="layui.index.hideLoading(this);" frameborder="0"></iframe>',
+                    '</div>'].join(''));
+                admin.showLoading({elem: $('iframe[lay-id="' + param.menuPath + '"]').parent(), size: ''});
+            } else {
+                admin.showLoading({elem: $contentDom.parent(), size: ''});
+                $contentDom.attr('lay-id', param.menuPath).attr('src', param.menuPath);
+            }
+            $('[lay-filter="admin-body-breadcrumb"]').html(index.getBreadcrumbHtml(param.menuPath));
+            index.mTabList.splice(0, index.mTabList.length);
+            if (param.menuPath === index.homeUrl) {
+                index.mTabPosition = undefined;
+                index.setTabTitle($(param.menuName).text() || $(sideDOM + ' [lay-href="' + index.homeUrl + '"]').text() || '涓婚〉');
+            } else {
+                index.mTabPosition = param.menuPath;
+                index.mTabList.push(param);
+                index.setTabTitle(param.menuName);
+            }
+            if (!setter.cacheTab) return;
+            admin.putTempData('indexTabs', index.mTabList);
+            admin.putTempData('tabPosition', index.mTabPosition);
+        }
+        if (admin.getPageWidth() <= 768) admin.flexible(true); // 绉诲姩绔嚜鍔ㄦ敹璧蜂晶瀵艰埅
+    };
+
+    /** 鍔犺浇涓婚〉 */
+    index.loadHome = function (param) {
+        var cacheTabs = admin.getTempData('indexTabs');  // 鑾峰彇缂撳瓨tab
+        var cachePosition = admin.getTempData('tabPosition');
+        var recover = (param.loadSetting === undefined || param.loadSetting) && (setter.cacheTab && cacheTabs && cacheTabs.length > 0);
+        index.homeUrl = param.menuPath;
+        param.noChange = cachePosition ? recover : false;
+        if (setter.pageTabs || !recover) index.loadView(param);
+        if (recover) {  // 鎭㈠缂撳瓨tab
+            for (var i = 0; i < cacheTabs.length; i++) {
+                cacheTabs[i].noChange = cacheTabs[i].menuPath !== cachePosition;
+                if (!cacheTabs[i].noChange || (setter.pageTabs && !param.onlyLast)) index.loadView(cacheTabs[i]);
+            }
+        }
+        admin.removeLoading(undefined, false);
+    };
+
+    /** 鎵撳紑tab */
+    index.openTab = function (param) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.openTab(param);
+        if (param.end) tabEndCall[param.url] = param.end;
+        index.loadView({menuPath: param.url, menuName: param.title});
+    };
+
+    /** 鍏抽棴tab */
+    index.closeTab = function (url) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.closeTab(url);
+        element.tabDelete(tabFilter, url);
+    };
+
+    /** 璁剧疆鏄惁璁板繂Tab */
+    index.setTabCache = function (isCache) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabCache(isCache);
+        admin.putSetting('cacheTab', isCache);
+        if (!isCache) return index.clearTabCache();
+        admin.putTempData('indexTabs', index.mTabList);
+        admin.putTempData('tabPosition', index.mTabPosition);
+    };
+
+    /** 娓呴櫎tab璁板繂 */
+    index.clearTabCache = function () {
+        admin.putTempData('indexTabs', null);
+        admin.putTempData('tabPosition', null);
+    };
+
+    /** 璁剧疆tab鏍囬 */
+    index.setTabTitle = function (title, tabId) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabTitle(title, tabId);
+        if (setter.pageTabs) {
+            if (!tabId) tabId = $(tabDOM + '>.layui-tab-title>li.layui-this').attr('lay-id');
+            if (tabId) $(tabDOM + '>.layui-tab-title>li[lay-id="' + tabId + '"] .title').html(title || '');
+        } else if (title) {
+            $(titleDOM + '>.layui-body-header-title').html(title);
+            $(titleDOM).addClass('show');
+            $(headerDOM).css('box-shadow', '0 1px 0 0 rgba(0, 0, 0, .03)');
+        } else {
+            $(titleDOM).removeClass('show');
+            $(headerDOM).css('box-shadow', '');
+        }
+    };
+
+    /** 鑷畾涔塼ab鏍囬 */
+    index.setTabTitleHtml = function (html) {
+        if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabTitleHtml(html);
+        if (setter.pageTabs) return;
+        if (!html) return $(titleDOM).removeClass('show');
+        $(titleDOM).html(html);
+        $(titleDOM).addClass('show');
+    };
+
+    /** 鑾峰彇闈㈠寘灞� */
+    index.getBreadcrumb = function (tabId) {
+        if (!tabId) tabId = $(bodyDOM + '>div>.admin-iframe').attr('lay-id');
+        var breadcrumb = [];
+        var $href = $(sideDOM).find('[lay-href="' + tabId + '"]');
+        if ($href.length > 0) breadcrumb.push($href.text().replace(/(^\s*)|(\s*$)/g, ''));
+        while (true) {
+            $href = $href.parent('dd').parent('dl').prev('a');
+            if ($href.length === 0) break;
+            breadcrumb.unshift($href.text().replace(/(^\s*)|(\s*$)/g, ''));
+        }
+        return breadcrumb;
+    };
+
+    /** 鑾峰彇闈㈠寘灞戠粨鏋� */
+    index.getBreadcrumbHtml = function (tabId) {
+        var breadcrumb = index.getBreadcrumb(tabId);
+        var htmlStr = tabId === index.homeUrl ? '' : ('<a ew-href="' + index.homeUrl + '">棣栭〉</a>');
+        for (var i = 0; i < breadcrumb.length - 1; i++) {
+            if (htmlStr) htmlStr += '<span lay-separator="">/</span>';
+            htmlStr += ('<a><cite>' + breadcrumb[i] + '</cite></a>');
+        }
+        return htmlStr;
+    };
+
+    /** 鍏抽棴loading */
+    index.hideLoading = function (url) {
+        if (typeof url !== 'string') url = $(url).attr('lay-id');
+        admin.removeLoading($('iframe[lay-id="' + url + '"],' + bodyDOM + ' iframe[lay-id]').parent(), false);
+    };
+
+    /** 绉诲姩璁惧閬僵灞� */
+    var siteShadeDom = '.layui-layout-admin .site-mobile-shade';
+    if ($(siteShadeDom).length === 0) $('.layui-layout-admin').append('<div class="site-mobile-shade"></div>');
+    $(siteShadeDom).click(function () {
+        admin.flexible(true);
+    });
+
+    /** 琛ュ厖tab鐨刣om */
+    if (setter.pageTabs && $(tabDOM).length === 0) {
+        $(bodyDOM).html([
+            '<div class="layui-tab" lay-allowClose="true" lay-filter="', tabFilter, '" lay-autoRefresh="', setter.tabAutoRefresh == 'true', '">',
+            '   <ul class="layui-tab-title"></ul><div class="layui-tab-content"></div>',
+            '</div>',
+            '<div class="layui-icon admin-tabs-control layui-icon-prev" ew-event="leftPage"></div>',
+            '<div class="layui-icon admin-tabs-control layui-icon-next" ew-event="rightPage"></div>',
+            '<div class="layui-icon admin-tabs-control layui-icon-down">',
+            '   <ul class="layui-nav" lay-filter="admin-pagetabs-nav">',
+            '      <li class="layui-nav-item" lay-unselect>',
+            '         <dl class="layui-nav-child layui-anim-fadein">',
+            '            <dd ew-event="closeThisTabs" lay-unselect><a>鍏抽棴褰撳墠鏍囩椤�</a></dd>',
+            '            <dd ew-event="closeOtherTabs" lay-unselect><a>鍏抽棴鍏跺畠鏍囩椤�</a></dd>',
+            '            <dd ew-event="closeAllTabs" lay-unselect><a>鍏抽棴鍏ㄩ儴鏍囩椤�</a></dd>',
+            '         </dl>',
+            '      </li>',
+            '   </ul>',
+            '</div>'
+        ].join(''));
+        element.render('nav', 'admin-pagetabs-nav');
+    }
+
+    /** 渚у鑸偣鍑荤洃鍚� */
+    element.on('nav(' + navFilter + ')', function (elem) {
+        var $that = $(elem);
+        var href = $that.attr('lay-href');
+        if (!href || href === '#') return;
+        if (href.indexOf('javascript:') === 0) return new Function(href.substring(11))();
+        var name = $that.attr('ew-title') || $that.text().replace(/(^\s*)|(\s*$)/g, '');
+        var end = $that.attr('ew-end');
+        try {
+            if (end) end = new Function(end);
+            else end = undefined;
+        } catch (e) {
+            console.error(e);
+        }
+        index.openTab({url: href, title: name, end: end});
+        layui.event.call(this, 'admin', 'side({*})', {href: href});
+    });
+
+    /** tab鍒囨崲鐩戝惉 */
+    element.on('tab(' + tabFilter + ')', function () {
+        var layId = $(this).attr('lay-id');
+        index.mTabPosition = (layId !== index.homeUrl ? layId : undefined);  // 璁板綍褰撳墠Tab浣嶇疆
+        if (setter.cacheTab) admin.putTempData('tabPosition', index.mTabPosition);
+        admin.activeNav(layId);
+        admin.rollPage('auto');
+        if ($(tabDOM).attr('lay-autoRefresh') == 'true' && !mIsAddTab) admin.refresh(layId, true);  // 鍒囨崲tab鍒锋柊
+        mIsAddTab = false;
+        layui.event.call(this, 'admin', 'tab({*})', {layId: layId});
+    });
+
+    /** tab鍒犻櫎鐩戝惉 */
+    element.on('tabDelete(' + tabFilter + ')', function (data) {
+        var mTab = index.mTabList[data.index - 1];
+        if (mTab) {
+            index.mTabList.splice(data.index - 1, 1);
+            if (setter.cacheTab) admin.putTempData('indexTabs', index.mTabList);
+            tabEndCall[mTab.menuPath] && tabEndCall[mTab.menuPath].call();
+            layui.event.call(this, 'admin', 'tabDelete({*})', {layId: mTab.menuPath});
+        }
+        if ($(tabDOM + '>.layui-tab-title>li.layui-this').length === 0)
+            $(tabDOM + '>.layui-tab-title>li:last').trigger('click');  // 瑙e喅鍒犻櫎鍚庡彲鑳芥棤閫変腑bug
+    });
+
+    /** 澶氱郴缁熷垏鎹簨浠� */
+    $(document).off('click.navMore').on('click.navMore', '[nav-bind]', function () {
+        var navId = $(this).attr('nav-bind');
+        $('ul[lay-filter="' + navFilter + '"]').addClass('layui-hide');
+        $('ul[nav-id="' + navId + '"]').removeClass('layui-hide');
+        $(headerDOM + '>.layui-nav .layui-nav-item').removeClass('layui-this');
+        $(this).parent('.layui-nav-item').addClass('layui-this');
+        if (admin.getPageWidth() <= 768) admin.flexible(false);  // 灞曞紑渚ц竟鏍�
+        layui.event.call(this, 'admin', 'nav({*})', {navId: navId});
+    });
+
+    /** 寮�鍚疶ab鍙抽敭鑿滃崟 */
+    if (setter.openTabCtxMenu && setter.pageTabs) {
+        layui.use('contextMenu', function () {
+            if (!layui.contextMenu) return;
+            $(tabDOM + '>.layui-tab-title').off('contextmenu.tab').on('contextmenu.tab', 'li', function (e) {
+                var layId = $(this).attr('lay-id');
+                layui.contextMenu.show([{
+                    icon: 'layui-icon layui-icon-refresh',
+                    name: '鍒锋柊褰撳墠',
+                    click: function () {
+                        element.tabChange(tabFilter, layId);
+                        if ('true' != $(tabDOM).attr('lay-autoRefresh')) admin.refresh(layId);
+                    }
+                }, {
+                    icon: 'layui-icon layui-icon-close-fill ctx-ic-lg',
+                    name: '鍏抽棴褰撳墠',
+                    click: function () {
+                        admin.closeThisTabs(layId);
+                    }
+                }, {
+                    icon: 'layui-icon layui-icon-unlink',
+                    name: '鍏抽棴鍏朵粬',
+                    click: function () {
+                        admin.closeOtherTabs(layId);
+                    }
+                }, {
+                    icon: 'layui-icon layui-icon-close ctx-ic-lg',
+                    name: '鍏抽棴鍏ㄩ儴',
+                    click: function () {
+                        admin.closeAllTabs();
+                    }
+                }], e.clientX, e.clientY);
+                return false;
+            });
+        });
+    }
+
+    exports('index', index);
+});
diff --git a/src/main/webapp/static/layui/lay/modules/notice/1.wav b/src/main/webapp/static/layui/lay/modules/notice/1.wav
new file mode 100644
index 0000000..9c765d5
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/1.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/2.wav b/src/main/webapp/static/layui/lay/modules/notice/2.wav
new file mode 100644
index 0000000..920f729
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/2.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/3.wav b/src/main/webapp/static/layui/lay/modules/notice/3.wav
new file mode 100644
index 0000000..617cb1e
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/3.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/4.wav b/src/main/webapp/static/layui/lay/modules/notice/4.wav
new file mode 100644
index 0000000..34679f9
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/4.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/5.wav b/src/main/webapp/static/layui/lay/modules/notice/5.wav
new file mode 100644
index 0000000..400feb8
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/5.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/6.wav b/src/main/webapp/static/layui/lay/modules/notice/6.wav
new file mode 100644
index 0000000..9d1beae
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/6.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/notice.css b/src/main/webapp/static/layui/lay/modules/notice/notice.css
new file mode 100644
index 0000000..d723149
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/notice.css
@@ -0,0 +1,1929 @@
+.iziToast-capsule {
+    font-size: 0;
+    height: 0;
+    width: 100%;
+    transform: translateZ(0);
+    backface-visibility: hidden;
+    transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1), height 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
+}
+
+.iziToast-capsule, .iziToast-capsule * {
+    box-sizing: border-box;
+}
+
+.iziToast-overlay {
+    display: block;
+    position: fixed;
+    top: -100px;
+    left: 0;
+    right: 0;
+    bottom: -100px;
+    z-index: 19891100;
+}
+
+.iziToast {
+    display: inline-block;
+    clear: both;
+    position: relative;
+    font-family: 'Lato', Tahoma, Arial;
+    font-size: 14px;
+    padding: 8px 45px 9px 0;
+    background: #fff;
+    border-color: #fff;
+    width: 100%;
+    pointer-events: all;
+    cursor: default;
+    transform: translateX(0);
+    -webkit-touch-callout: none /* iOS Safari */;
+    -webkit-user-select: none /* Chrome/Safari/Opera */;
+    -khtml-user-select: none /* Konqueror */;
+    -moz-user-select: none /* Firefox */;
+    -ms-user-select: none /* Internet Explorer/Edge */;
+    user-select: none;
+    min-height: 45px;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
+    max-width: 90%;
+    margin: 5px 0;
+    border-radius: 4px;
+}
+
+.iziToast > .iziToast-progressbar {
+    position: absolute;
+    left: 0;
+    bottom: 0;
+    width: 100%;
+    z-index: 1;
+    background: rgba(255, 255, 255, 0.5);
+}
+
+.iziToast > .iziToast-progressbar > div {
+    height: 2px;
+    width: 100%;
+    background: #dddddd;
+    border-radius: 0 0 3px 3px;
+}
+
+.iziToast.iziToast-theme-dark > .iziToast-progressbar > div {
+    background: #fff;
+}
+
+.iziToast.iziToast-balloon:before {
+    content: '';
+    position: absolute;
+    right: 8px;
+    left: auto;
+    width: 0px;
+    height: 0px;
+    top: 100%;
+    border-right: 0px solid transparent;
+    border-left: 15px solid transparent;
+    border-top: 10px solid #000;
+    border-top-color: inherit;
+    border-radius: 0;
+}
+
+.iziToast.iziToast-balloon .iziToast-progressbar {
+    top: 0;
+    bottom: auto;
+}
+
+.iziToast.iziToast-balloon > div {
+    border-radius: 0 0 0 3px;
+}
+
+.iziToast > .iziToast-cover {
+    position: absolute;
+    left: 0;
+    top: 0;
+    bottom: 0;
+    height: 100%;
+    margin: 0;
+    background-size: 100%;
+    background-position: 50% 50%;
+    background-repeat: no-repeat;
+}
+
+.iziToast > .iziToast-close {
+    position: absolute;
+    right: 0;
+    top: 0;
+    border: 0;
+    padding: 0;
+    opacity: 0.6;
+    width: 42px;
+    height: 100%;
+    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAJPAAACTwBcGfW0QAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAD3SURBVFiF1ZdtDoMgDEBfdi4PwAX8vLFn0qT7wxantojKupmQmCi8R4tSACpgjC2ICCUbEBa8ingjsU1AXRBeR8aLN64FiknswN8CYefBBDQ3whuFESy7WyQMeC0ipEI0A+0FeBvHUFN8xPaUhAH/iKoWsnXHGegy4J0yxialOfaHJAz4bhRzQzgDvdGnz4GbAonZbCQMuBm1K/kcFu8Mp1N2cFFpsxsMuJqqbIGExGl4loARajU1twskJLLhIsID7+tvUoDnIjTg5T9DPH9EBrz8rxjPzciAl9+O8SxI8CzJ8CxKFfh3ynK8Dyb8wNHM/XDqejx/AtNyPO87tNybAAAAAElFTkSuQmCC") no-repeat 50% 50%;
+    background-size: 8px;
+    cursor: pointer;
+    outline: none;
+}
+
+.iziToast > .iziToast-close:hover {
+    opacity: 1;
+}
+
+.iziToast > .iziToast-body {
+    position: relative;
+    padding: 0 0 0 10px;
+    height: auto;
+    min-height: 28px;
+    margin: 0 0 0 15px;
+    text-align: left;
+}
+
+.iziToast > .iziToast-body:after {
+    content: "";
+    display: table;
+    clear: both;
+}
+
+.iziToast > .iziToast-body .iziToast-texts {
+    margin: 6px 0;
+    padding-right: 2px;
+    display: inline-block;
+    float: left;
+}
+
+.iziToast > .iziToast-body .iziToast-inputs {
+    min-height: 19px;
+    float: left;
+    margin: 3px -2px;
+}
+
+.iziToast > .iziToast-body .iziToast-inputs > input:not([type=checkbox]):not([type=radio]),
+.iziToast > .iziToast-body .iziToast-inputs > select {
+    position: relative;
+    display: inline-block;
+    margin: 2px;
+    border-radius: 2px;
+    border: 0;
+    padding: 4px 7px;
+    font-size: 13px;
+    letter-spacing: 0.02em;
+    background: rgba(0, 0, 0, 0.1);
+    color: #000;
+    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
+    min-height: 26px;
+}
+
+.iziToast > .iziToast-body .iziToast-inputs > input:not([type=checkbox]):not([type=radio]):focus,
+.iziToast > .iziToast-body .iziToast-inputs > select:focus {
+    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.6);
+}
+
+.iziToast > .iziToast-body .iziToast-buttons {
+    min-height: 17px;
+    float: left;
+    margin: 4px 0 0 0;
+}
+
+.iziToast > .iziToast-body .iziToast-buttons > a,
+.iziToast > .iziToast-body .iziToast-buttons > button,
+.iziToast > .iziToast-body .iziToast-buttons > input:not([type=checkbox]):not([type=radio]) {
+    position: relative;
+    display: inline-block;
+    margin: 2px;
+    border-radius: 2px;
+    border: 0;
+    padding: 5px 10px;
+    font-size: 12px;
+    letter-spacing: 0.02em;
+    cursor: pointer;
+    background: rgba(0, 0, 0, 0.1);
+    color: #555;
+}
+
+.iziToast > .iziToast-body .iziToast-buttons > a:hover,
+.iziToast > .iziToast-body .iziToast-buttons > button:hover,
+.iziToast > .iziToast-body .iziToast-buttons > input:not([type=checkbox]):not([type=radio]):hover {
+    background: rgba(0, 0, 0, 0.15);
+}
+
+.iziToast > .iziToast-body .iziToast-buttons > a:focus,
+.iziToast > .iziToast-body .iziToast-buttons > button:focus,
+.iziToast > .iziToast-body .iziToast-buttons > input:not([type=checkbox]):not([type=radio]):focus {
+    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.6);
+}
+
+.iziToast > .iziToast-body .iziToast-buttons > a:active,
+.iziToast > .iziToast-body .iziToast-buttons > button:active,
+.iziToast > .iziToast-body .iziToast-buttons > input:not([type=checkbox]):not([type=radio]):active {
+    top: 1px;
+}
+
+.iziToast > .iziToast-body .iziToast-icon {
+    height: 100%;
+    position: absolute;
+    left: 0;
+    top: 50%;
+    display: table;
+    font-size: 23px;
+    line-height: 24px;
+    margin-top: -11px;
+    color: #000;
+    width: 24px;
+    height: 24px;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-info {
+    background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTU1NzcxMTk5MzYwIiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjEwODAzIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTUxMiAyOC40MTZjLTI2Ny40Njg4IDAtNDg0LjI0OTYgMjE2LjgzMi00ODQuMjQ5NiA0ODQuMjQ5NiAwIDI2Ny40MTc2IDIxNi44MzIgNDg0LjI0OTYgNDg0LjI0OTYgNDg0LjI0OTYgMjY3LjQxNzYgMCA0ODQuMzAwOC0yMTYuODMyIDQ4NC4zMDA4LTQ4NC4yNDk2Qzk5Ni4zMDA4IDI0NS4yNDggNzc5LjQxNzYgMjguNDE2IDUxMiAyOC40MTZ6TTQ1NS41MjY0IDI0NS4wOTQ0QzQ3MC4zMjMyIDIyOS44ODggNDkwLjcwMDggMjIxLjMzNzYgNTExLjc5NTIgMjIxLjY0NDhjMjEuMTk2OC0wLjIwNDggNDEuNzc5MiA4LjI0MzIgNTYuNTI0OCAyMy40NDk2IDE1LjAwMTYgMTQuNzk2OCAyMy4yOTYgMzUuMTIzMiAyMy4wOTEyIDU2LjExNTIgMC4yMDQ4IDIxLjE5NjgtOC4yOTQ0IDQxLjU3NDQtMjMuMzk4NCA1Ni4yMTc2LTE0LjY5NDQgMTQuNjk0NC0zNC43MTM2IDIzLjA0LTU1LjM5ODQgMjMuMDRMNTExLjc5NTIgMzgwLjQ2NzJjLTIwLjk5MiAwLjIwNDgtNDEuMzY5Ni04LjE0MDgtNTYuMDY0LTIzLjE0MjRDNDQwLjY3ODQgMzQyLjY4MTYgNDMyLjMzMjggMzIyLjMwNCA0MzIuNTM3NiAzMDEuMjA5NiA0MzIuMzMyOCAyODAuMjE3NiA0NDAuNjc4NCAyNTkuODkxMiA0NTUuNTI2NCAyNDUuMDk0NHpNNjI3LjYwOTYgNzY4LjE1MzZsMCAxMy40MTQ0IDAgMjIuMjIwOEwzOTYuMjg4IDgwMy43ODg4bDAtNTcuMTM5MiAyMS42MDY0LTAuNzY4YzEwLjI0LTAuNDYwOCAxNC41OTItMi43MTM2IDE2Ljk5ODQtNC43NjE2bDEuMjI4OC01LjQyNzJjMC45NzI4LTUuNTgwOCAxLjYzODQtMTQuNDM4NCAxLjU4NzItMjUuOTA3Mkw0MzcuNzA4OCA1MDcuOTA0YzAuMjU2LTE3Ljc2NjQtMi4zNTUyLTI5LjkwMDgtMy40ODE2LTMyLjU2MzJsMCAwTDQzMS42MTYgNDc0LjA2MDhDNDI4Ljg1MTIgNDczLjA4OCA0MjMuOTM2IDQ3Mi4wNjQgNDE3LjE3NzYgNDcxLjY1NDRMMzk2LjI4OCA0NzAuMzc0NCAzOTYuMjg4IDQxMy40OTEybDE4OS40OTEyIDAgMCAyOTYuMjk0NGMtMC4zMDcyIDE3LjcxNTIgMi40MDY0IDI5Ljc5ODQgMy40MzA0IDMyLjU2MzJsMC4wNTEyIDAgMi43MTM2IDEuMTc3NmMyLjgxNiAwLjk3MjggNy43ODI0IDEuOTk2OCAxNC42OTQ0IDIuMzU1MmwyMC44ODk2IDEuMjhMNjI3LjU1ODQgNzY4LjE1MzZ6IiBwLWlkPSIxMDgwNCIgZmlsbD0iIzQwOUVGRiI+PC9wYXRoPjwvc3ZnPg==") no-repeat 50% 50%;
+    background-size: 85%;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-warning {
+    background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTU1NzcwODczNzUzIiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUxMTgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNNTEyLjAyMzI3MyAxMDI0Qzc5NC43NjM2MzYgMTAyNCAxMDI0IDc5NC43ODY5MDkgMTAyNCA1MTEuOTc2NzI3IDEwMjQgMjI5LjIzNjM2NCA3OTQuNzg2OTA5LTAuMDIzMjczIDUxMi4wMjMyNzMtMC4wMjMyNzNTMCAyMjkuMjEzMDkxIDAgNTExLjk3NjcyN0MwIDc5NC43ODY5MDkgMjI5LjIzNjM2NCAxMDI0IDUxMi4wMjMyNzMgMTAyNE00NjkuMzQxMDkxIDc2OGMwLTIzLjU1MiAxOC45MjA3MjctNDIuNjU4OTA5IDQyLjcwNTQ1NS00Mi42NTg5MDkgMjMuNTUyIDAgNDIuNjU4OTA5IDE4LjkyMDcyNyA0Mi42NTg5MDkgNDIuNjU4OTA5IDAgMjMuNTc1MjczLTE4LjkyMDcyNyA0Mi43MDU0NTUtNDIuNjU4OTA5IDQyLjcwNTQ1NUM0ODguNDcxMjczIDgxMC43MDU0NTUgNDY5LjM0MTA5MSA3OTEuNzM4MTgyIDQ2OS4zNDEwOTEgNzY4TTQ2OS4zNDEwOTEgMjU1LjgxMzgxOGMwLTIzLjQ1ODkwOSAxOC45MjA3MjctNDIuNDcyNzI3IDQyLjcwNTQ1NS00Mi40NzI3MjcgMjMuNTUyIDAgNDIuNjU4OTA5IDE5LjQzMjcyNyA0Mi42NTg5MDkgNDIuNDcyNzI3bDAgMzQxLjczNjcyN2MwIDIzLjQ1ODkwOS0xOC45MjA3MjcgNDIuNDcyNzI3LTQyLjY1ODkwOSA0Mi40NzI3MjctMjMuNTc1MjczIDAtNDIuNzA1NDU1LTE5LjQzMjcyNy00Mi43MDU0NTUtNDIuNDcyNzI3TDQ2OS4zNDEwOTEgMjU1LjgxMzgxOHoiIHAtaWQ9IjUxMTkiIGZpbGw9IiNmZjk5MDAiPjwvcGF0aD48L3N2Zz4=") no-repeat 50% 50%;
+    background-size: 85%;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-error {
+    background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTU1NzcwNDI1NDkwIiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjEyNjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNNTExLjk5NjQxOCAyMy41MjA2OTNjLTI2OS43NjcwNSAwLTQ4OC40NTQ3NDggMjE4LjY4ODcyMS00ODguNDU0NzQ4IDQ4OC40NTQ3NDggMCAyNjkuNzY4MDczIDIxOC42ODg3MjEgNDg4LjQ1MzcyNCA0ODguNDU0NzQ4IDQ4OC40NTM3MjQgMjY5Ljc2NjAyNyAwIDQ4OC40NTQ3NDgtMjE4LjY4NTY1MSA0ODguNDU0NzQ4LTQ4OC40NTM3MjRDMTAwMC40NTExNjYgMjQyLjIwOTQxNCA3ODEuNzYyNDQ1IDIzLjUyMDY5MyA1MTEuOTk2NDE4IDIzLjUyMDY5M3pNNzY5LjMzNDM5MSA3MTUuMTU1OTU2bC01NC4xNTY0MzQgNTQuMTU2NDM0TDUxMS45OTY0MTggNTY2LjEyOTgyOCAzMDguODEzODU2IDc2OS4zMTIzOWwtNTQuMTU1NDExLTU0LjE1NjQzNEw0NTcuODQxMDA4IDUxMS45NzU0NDEgMjU0LjY1ODQ0NiAzMDguNzkyODc4bDU0LjE1NTQxMS01NC4xNTU0MTFMNTExLjk5NjQxOCA0NTcuODIwMDNsMjAzLjE4MjU2Mi0yMDMuMTgyNTYyIDU0LjE1NjQzNCA1NC4xNTU0MTFMNTY2LjE1MTgyOSA1MTEuOTc1NDQxIDc2OS4zMzQzOTEgNzE1LjE1NTk1NnoiIHAtaWQ9IjEyNjYiIGZpbGw9IiNGNTZDNkMiPjwvcGF0aD48L3N2Zz4=") no-repeat 50% 50%;
+    background-size: 80%;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-success {
+    background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTU1NzcwNTI2MjA3IiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ5NjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNMTAyNCA1MTEuOTk5NTAyYzAgMjgyLjc3MDU1Ny0yMjkuMjI5OTQxIDUxMi4wMDA0OTgtNTExLjk5OTUwMiA1MTIuMDAwNDk4LTI4Mi43Njk1NjEgMC01MTIuMDAwNDk4LTIyOS4yMjk5NDEtNTEyLjAwMDQ5OC01MTIuMDAwNDk4IDAtMjgyLjc2ODU2NiAyMjkuMjMwOTM2LTUxMS45OTk1MDIgNTEyLjAwMDQ5OC01MTEuOTk5NTAyQzc5NC43NjkwNjQgMCAxMDI0IDIyOS4yMzA5MzYgMTAyNCA1MTEuOTk5NTAyek03OTYuNTc3MDgxIDM3OC4zMTc3MTNsLTQ4LjQ1OTA1MS00OC40NTkwNTEtMjk3LjA3ODM4NyAyOTcuMDc3MzkyTDI3Ny4yNjc4NTIgNDUzLjE2NTI1OGwtNDguNDU4MDU2IDQ4LjQ1ODA1NiAyMjIuMjI4ODUxIDIyMi4yMzA4NDJMNzk2LjU3NzA4MSAzNzguMzE3NzEzeiIgcC1pZD0iNDk2NiIgZmlsbD0iIzY3YzIzYSI+PC9wYXRoPjwvc3ZnPg==") no-repeat 50% 50%;
+    background-size: 85%;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-question {
+    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfhCQkUEhFovxTxAAAEDklEQVRo3s2ZTWgTQRTHf03ipTRUqghNSgsRjHgQrFUQC6JgD1Kak3gQUUoPqRdBglf1oBehBws9Cn4cGk+1SOmh2upBxAYVoeJHrR9tgq0i1Cq0lqYeks7MbpPdmU00/c8hm9n33v/t7Nt5M2+qMEWQI0QIibZKRrQpHvLL2KI2wnQzzBKrDm2RIeKEy01dTYKUI7G1ZRknQXV5yP10kTYgly1NF/5S6duZ8ES+1iZodyaocrjXxE0OFeifYYgp0mRIkwFChAkRJsIxGgrIP+I0n82fvZW5dc/zkss0O2o1c5mX6/TmaDWl77RFe5YkUW3tKEmyFv0lOvXJ/fTYnmCEFuMRbGHEZqVHLyT9DFjUJmkzJl9DG5MWWwM6Llif/gF1nukB6nhgGwUXdFrE+wiURA8QoM9i0zEWWpXQW+ZsyeRrOMuyEo5Fv4gmy4dXPvqcC+pH2VRYaMwy+OWG+iLGCgm0W0Kv9HdvR8ASjmKCXpuK/bxiV/76A/v5UdDIZuKcJGjrnec5KZ7wwsWFOp6xPX/9mt2sqDe7FO+Kf/fXHBPPDWpdXGhTpLvUG9VKwh1xMDDjkvu+cNDFBTk7ptX1QkKZ850m3duu6fcrWxwdaFFyREJ2j4vOpKP6Du6z4uJCv8sYJIVkCnJBGGZaBONO3roY2EqNrSfIPi7SKP4fdXyNUd6I6wbSAHEl33tFLe+FlSsusnK90A0+oEPcuufZgXnOi+u9LrKSJQZQw6LwqBnv2CKsfHORbFbyQhA6xN/pEuihSdj56Co7LWRjPiKie6gkB2LiKuUqK5kiPkLiz1QJ9K1cNXBAMoUCigNpQ9IqDtMI1HKA4/jyvUsaoSyZLA5kjOjDPFZen8Ql5TsvBskUgjciIPSX3QAXC86DT7VWvlEh/xZ+ij9BDVWJ0QL0SbZq6QaFxoLPcXPmBLveLCc4wXdDK6s+6/vwhCSniFLPXW0NJe5UB8zKCsviqpc7vGPVQFcyZbyPwGD+d5ZnxmNWlhG4xSBZZjivjIWHEQgoDkSMjMwTo54569JSE5IpA7EyJSMTyGTUAUFlO1ZKOtaHTMeL1PhYYFTcihmY2cQ5+ullj7EDkiVfVez2sCTz8yiv84djhg7IJVk81xFWJlPdfHBG0flkRC/zQFZ+DSllNtfDdUsOMCliyGX5uOzU3ZhIXFDof4m1gDuKbEx0t2YS25gVGpcMnr/I1kx3c6piB8P8ZoqEwfMX3ZyCXynJTmq/U7NUXqfUzCbWL1wqVKBQUeESzQYoUlW8TAcVL1RCxUu1G6BYXfFyfQ4VPbDI4T8d2WzgQ6sc/vmxnTsqfHCZQzUJxm1h5dxS5Tu6lQgTZ0ipqRVqSwzTbbLHMt+c19iO76tsx/cLZub+Ali+tYC93olEAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTA5LTA5VDIwOjE4OjE3KzAyOjAwjKtfjgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0wOS0wOVQyMDoxODoxNyswMjowMP325zIAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC") no-repeat 50% 50%;
+    background-size: 85%;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-load {
+    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTQ1NTUyMzAyOTE3IiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQyNDAiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNNTEyIDY0YzI0Ny4yIDAgNDQ4IDIwMC44IDQ0OCA0NDhoLTY0YzAtMjEyLTE3Mi0zODQtMzg0LTM4NFY2NHogbTAgODMyYy0yMTIgMC0zODQtMTcyLTM4NC0zODRINjRjMCAyNDcuMiAyMDAuOCA0NDggNDQ4IDQ0OHYtNjR6IiBwLWlkPSI0MjQxIiBmaWxsPSIjMUU5RkZGIj48L3BhdGg+PC9zdmc+') no-repeat 50% 50%;
+    background-size: 85%;
+    animation: rotating 1.2s linear infinite
+}
+
+@keyframes rotating {
+    from {
+        transform: rotate(0)
+    }
+    to {
+        transform: rotate(360deg)
+    }
+}
+
+.iziToast > .iziToast-body .iziToast-title {
+    padding: 0;
+    margin: 0 0 10px 0;
+    line-height: 16px;
+    font-size: 14px;
+    text-align: left;
+    float: left;
+    color: #303133;
+    white-space: normal;
+}
+
+.iziToast > .iziToast-body .iziToast-message {
+    padding: 0;
+    margin: 0;
+    font-size: 14px;
+    line-height: 16px;
+    text-align: left;
+    float: left;
+    color: #606266;
+    white-space: normal;
+}
+
+.iziToast.iziToast-animateInside .iziToast-title,
+.iziToast.iziToast-animateInside .iziToast-message,
+.iziToast.iziToast-animateInside .iziToast-icon,
+.iziToast.iziToast-animateInside .iziToast-buttons-child,
+.iziToast.iziToast-animateInside .iziToast-inputs-child {
+    opacity: 0;
+}
+
+.iziToast-target {
+    position: relative;
+    width: 100%;
+    margin: 0 auto;
+}
+
+.iziToast-target .iziToast-capsule {
+    overflow: hidden;
+}
+
+.iziToast-target .iziToast-capsule:after {
+    visibility: hidden;
+    display: block;
+    font-size: 0;
+    content: " ";
+    clear: both;
+    height: 0;
+}
+
+.iziToast-target .iziToast-capsule .iziToast {
+    width: 100%;
+    float: left;
+}
+
+.iziToast-wrapper {
+    z-index: 19891101;
+    position: fixed;
+    width: 100%;
+    pointer-events: none;
+    display: flex;
+    flex-direction: column;
+}
+
+.iziToast-wrapper .iziToast.iziToast-balloon:before {
+    border-right: 0 solid transparent;
+    border-left: 15px solid transparent;
+    border-top: 10px solid #000;
+    border-top-color: inherit;
+    right: 8px;
+    left: auto;
+}
+
+.iziToast-wrapper-bottomLeft {
+    left: 0;
+    bottom: 0;
+    text-align: left;
+}
+
+.iziToast-wrapper-bottomLeft .iziToast.iziToast-balloon:before {
+    border-right: 15px solid transparent;
+    border-left: 0 solid transparent;
+    right: auto;
+    left: 8px;
+}
+
+.iziToast-wrapper-bottomRight {
+    right: 0;
+    bottom: 0;
+    text-align: right;
+}
+
+.iziToast-wrapper-topLeft {
+    left: 0;
+    top: 0;
+    text-align: left;
+}
+
+.iziToast-wrapper-topLeft .iziToast.iziToast-balloon:before {
+    border-right: 15px solid transparent;
+    border-left: 0 solid transparent;
+    right: auto;
+    left: 8px;
+}
+
+.iziToast-wrapper-topRight {
+    top: 0;
+    right: 0;
+    text-align: right;
+}
+
+.iziToast-wrapper-topCenter {
+    top: 0;
+    left: 0;
+    right: 0;
+    text-align: center;
+}
+
+.iziToast-wrapper-bottomCenter {
+    bottom: 0;
+    left: 0;
+    right: 0;
+    text-align: center;
+}
+
+.iziToast-wrapper-center {
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    text-align: center;
+    justify-content: center;
+    flex-flow: column;
+    align-items: center;
+}
+
+.iziToast-rtl {
+    direction: rtl;
+    padding: 8px 0 9px 45px;
+    font-family: Tahoma, 'Lato', Arial;
+}
+
+.iziToast-rtl .iziToast-cover {
+    left: auto;
+    right: 0;
+}
+
+.iziToast-rtl .iziToast-close {
+    right: auto;
+    left: 0;
+}
+
+.iziToast-rtl .iziToast-body {
+    padding: 0 10px 0 0;
+    margin: 0 16px 0 0;
+    text-align: right;
+}
+
+.iziToast-rtl .iziToast-body .iziToast-buttons,
+.iziToast-rtl .iziToast-body .iziToast-inputs,
+.iziToast-rtl .iziToast-body .iziToast-texts,
+.iziToast-rtl .iziToast-body .iziToast-title,
+.iziToast-rtl .iziToast-body .iziToast-message {
+    float: right;
+    text-align: right;
+}
+
+.iziToast-rtl .iziToast-body .iziToast-icon {
+    left: auto;
+    right: 0;
+}
+
+@media only screen and (min-width: 568px) {
+    .iziToast-wrapper {
+        padding: 10px 15px;
+    }
+
+    .iziToast {
+        width: auto;
+    }
+
+    .iziToast:not(.iziToast-rtl) .iziToast-cover {
+        border-radius: 3px 0 0 3px;
+    }
+
+    .iziToast.iziToast-rtl .iziToast-cover {
+        border-radius: 0 3px 3px 0;
+    }
+
+    .iziToast.iziToast-color-dark:after {
+        box-shadow: inset 0 -10px 20px -10px rgba(255, 255, 255, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.25);
+    }
+
+    .iziToast.iziToast-balloon .iziToast-progressbar {
+        background: transparent;
+    }
+
+    .iziToast.iziToast-balloon:after {
+        box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.25), inset 0 10px 20px -5px rgba(0, 0, 0, 0.25);
+    }
+
+    .iziToast-target .iziToast:after {
+        box-shadow: inset 0 -10px 20px -10px rgba(0, 0, 0, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.1);
+    }
+}
+
+.iziToast.iziToast-theme-dark {
+    background: #565c70;
+    border-color: #565c70;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-title {
+    color: #fff;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-message {
+    color: rgba(255, 255, 255, 0.9);
+    font-weight: 300;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-close {
+    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgCR4OIQIPSao6AAAAwElEQVRIx72VUQ6EIAwFmz2XB+AConhjzqTJ7JeGKhLYlyx/BGdoBVpjIpMJNjgIZDKTkQHYmYfwmR2AfAqGFBcO2QjXZCd24bEggvd1KBx+xlwoDpYmvnBUUy68DYXD77ESr8WDtYqvxRex7a8oHP4Wo1Mkt5I68Mc+qYqv1h5OsZmZsQ3gj/02h6cO/KEYx29hu3R+VTTwz6D3TymIP1E8RvEiiVdZfEzicxYLiljSxKIqlnW5seitTW6uYnv/Aqh4whX3mEUrAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA5LTMwVDE0OjMzOjAyKzAyOjAwl6RMVgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wOS0zMFQxNDozMzowMiswMjowMOb59OoAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC") no-repeat 50% 50%;
+    background-size: 8px;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon {
+    color: #fff;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon.ico-info {
+    background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTQxNjQ5NjA1MTc2IiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjM1MzIiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNODUxLjE3MTU1NiA3MTcuOTM3Nzc4YzMuMjQyNjY3IDExLjk0NjY2NyAyLjg0NDQ0NCAyNC40NjIyMjItMS40MjIyMjMgMzYuNDA4ODg5YTYyLjkxOTExMSA2Mi45MTkxMTEgMCAwIDEtMjEuOTU5MTExIDI5LjUyNTMzMyA2NS4yNTE1NTYgNjUuMjUxNTU2IDAgMCAxLTM4LjkxMiAxMi41MTU1NTZIMTc4LjExOTExMWE2NC44NTMzMzMgNjQuODUzMzMzIDAgMCAxLTM4Ljc5ODIyMi0xMi41NzI0NDUgNjIuMjM2NDQ0IDYyLjIzNjQ0NCAwIDAgMS0yMi4wMTYtMjkuNTI1MzMzIDYwLjY0MzU1NiA2MC42NDM1NTYgMCAwIDEtMS4zNjUzMzMtMzYuNDA4ODg5YzMuNTg0LTEzLjE0MTMzMyAxMS40MzQ2NjctMjQuNTc2IDIyLjY5ODY2Ni0zMy4xMDkzMzNsNTguNDgxNzc4LTQ0LjAzMmE0MC43MzI0NDQgNDAuNzMyNDQ0IDAgMCAwIDE2LjQ5Nzc3OC0zMi43MTExMTJ2LTIwMy4wOTMzMzNjMC0zNS4yMTQyMjIgNy4xNjgtNjkuNTE4MjIyIDIxLjIxOTU1NS0xMDEuNzE3MzMzIDEzLjY1MzMzMy0zMS4xNzUxMTEgMzMuMTA5MzMzLTU5LjE2NDQ0NCA1Ny44NTYtODMuMTE0NjY3QTI2OC44NTY4ODkgMjY4Ljg1Njg4OSAwIDAgMSA0MTQuNzIgMTUyLjA2NHYtMjguNTAxMzMzQzQxNC43MiA4Ni44MTI0NDQgNDQ1LjYxMDY2NyA1Ni44ODg4ODkgNDgzLjU1NTU1NiA1Ni44ODg4ODljMzcuOTQ0ODg5IDAgNjguODM1NTU2IDI5LjkyMzU1NiA2OC44MzU1NTUgNjYuNjczNzc4djI4LjUwMTMzM2MxMi4zNDQ4ODkgMy4xODU3NzggMjQuNDYyMjIyIDcuMTY4IDM2LjIzODIyMiAxMi4wMDM1NTZhMjY4LjY4NjIyMiAyNjguNjg2MjIyIDAgMCAxIDg1Ljc4ODQ0NSA1Ni4wMzU1NTVjMjQuNzQ2NjY3IDI0LjAwNzExMSA0NC4yMDI2NjcgNTEuOTM5NTU2IDU3Ljc5OTExMSA4My4wNTc3NzggMTQuMTA4NDQ0IDMyLjMxMjg4OSAyMS4yMTk1NTYgNjYuNTYgMjEuMjE5NTU1IDEwMS44MzExMTF2MjAzLjA5MzMzM2MwIDEyLjg1Njg4OSA2LjAzMDIyMiAyNC44NjA0NDQgMTYuNTU0NjY3IDMyLjcxMTExMWw1OC40ODE3NzggNDQuMDMyYzExLjIwNzExMSA4LjUzMzMzMyAxOS4wNTc3NzggMTkuOTExMTExIDIyLjc1NTU1NSAzMy4wNTI0NDV6TTM5OC4yMjIyMjIgODU2LjE3Nzc3OFY4NTMuMzMzMzMzaDE3MC42NjY2Njd2Mi44NDQ0NDVDNTY4Ljg4ODg4OSA5MzUuOTM2IDUzMC42MDI2NjcgOTY3LjExMTExMSA0ODMuNTU1NTU2IDk2Ny4xMTExMTFTMzk4LjIyMjIyMiA5MzUuOTM2IDM5OC4yMjIyMjIgODU2LjE3Nzc3OHoiIHAtaWQ9IjM1MzMiIGZpbGw9IiNmZmZmZmYiPjwvcGF0aD48L3N2Zz4=") no-repeat 50% 50%;
+    background-size: 85%;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon.ico-warning {
+    background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTQxNjUxMTE1OTQ4IiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjUgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUwOTYiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTI4LjEyNSIgaGVpZ2h0PSIxMjgiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTk4NC4wMjI5NTAwMiA3NDYuODc1NDk3NUw2NDEuOTY0NjA3NTIgMTMwLjM4MDY1Yy0zMC40OTE4NDI1LTU0Ljg2MTUwMjUtNzcuOTMxMzE1LTg2LjMzNTY3MjUtMTMwLjE0MzUxLTg2LjMzNTY3MjUtNTIuMjkxNTc1IDAtOTkuNzQwOTcgMzEuNTEzODYtMTMwLjE0MzUxIDg2LjQzNDg5NzVMMzkuOTc2NDU1MDIgNzQ2LjgyNTg4NUM5Ljk2MDg5MjUyIDgwMC45NjMwNDUgNy45MTY4NTc1MiA4NTguMDE3NDIgMzQuMzUwMzk3NTIgOTAzLjM1MzMyMjVjMjYuNTEyOTIgNDUuNDc0ODE3NSA3Ny4xOTcwNSA3MS41NjEwNyAxMzkuMDczNzYgNzEuNTYxMDdoNjc3LjIyMDU0NzVjNjEuOTA2NDc3NSAwIDExMi41OTA2MDc1LTI2LjA4NjI1MjUgMTM5LjAxNDIyNS03MS40OTE2MTI1IDI2LjQ4MzE1MjUtNDUuMjc2MzY3NSAyNC40MjkxOTUtMTAyLjM0MDY2NS01LjYzNTk4LTE1Ni41NDcyODI1ek05MTEuNzU3MzgyNTIgODU3Ljk5NzU3NWMtOS44OTI3MzI1IDE2Ljk4NzMyLTMyLjE1ODgyMjUgMjYuNzMxMjE1LTYxLjExMjY3NzUgMjYuNzMxMjE1SDE3My40MjQxNTc1MmMtMjguOTQzOTMyNSAwLTUxLjIyOTg2NzUtOS43NjM3NC02MS4xNjIyOS0yNi43OTA3NS0xMC4wMjE3MjUtMTcuMTg1NzctNy42MTA1NTc1LTQxLjc0Mzk1NzUgNi41ODg1NC02Ny4zNzM3NzVsMzQxLjcxMTA1NS02MTYuMzY1ODU1YzE0LjA2MDE4MjUtMjUuMzkxNjc3NSAzMi43NTQxNzI1LTM5Ljk1NzkwNzUgNTEuMjU5NjM1LTM5Ljk1NzkwNzUgMTguNDk1NTQgMCAzNy4xOTk0NTI1IDE0LjU2NjIzIDUxLjMwOTI0NzUgMzkuOTM4MDYyNWwzNDIuMDI4NTc1IDYxNi40NDUyMzVjMTQuMjI4ODY1IDI1LjY0OTY2MjUgMTYuNjQwMDMyNSA1MC4xODgwMDUgNi41OTg0NjI1IDY3LjM3Mzc3NXoiIGZpbGw9IiNmZmZmZmYiIHAtaWQ9IjUwOTciPjwvcGF0aD48cGF0aCBkPSJNNTEyLjAxOTU0NzUyIDYzMC4yODYxMjI1YTQ1LjA4Nzg0IDQ1LjA4Nzg0IDAgMCAwIDQ1LjA5Nzc2MjUtNDUuMDA4NDZWMzc0LjY1Mjc1NWE0NS4wNzc5MTc1IDQ1LjA3NzkxNzUgMCAwIDAtNDUuMDk3NzYyNS00NS4wMDg0NiA0NS4wODc4NCA0NS4wODc4NCAwIDAgMC00NS4wOTc3NjI1IDQ1LjAwODQ2djIxMC42MTQ5ODVhNDUuMDg3ODQgNDUuMDg3ODQgMCAwIDAgNDUuMDk3NzYyNSA0NS4wMTgzODI1ek01MTIuMDE5NTQ3NTIgNjc1LjM3Mzk2MjVhNjAuMTcwMDQgNjAuMTcwMDQgMCAwIDAtNjAuMTMwMzUgNjAuMTMwMzVjMCAzMy4xNDExNSAyNi45MTk3NDI1IDYwLjEzMDM1IDYwLjEzMDM1IDYwLjEzMDM1IDMzLjE0MTE1IDAgNjAuMTMwMzUtMjYuOTE5NzQyNSA2MC4xMzAzNS02MC4xMzAzNSAwLTMzLjE0MTE1LTI2LjkxOTc0MjUtNjAuMTMwMzUtNjAuMTMwMzUtNjAuMTMwMzV6IiBmaWxsPSIjZmZmZmZmIiBwLWlkPSI1MDk4Ij48L3BhdGg+PC9zdmc+") no-repeat 50% 50%;
+    background-size: 85%;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon.ico-error {
+    background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTQxNjUxMzE1NTQ3IiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjY4MDYiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNNzcyLjI2NjY2NyA4ODMuMmMyNS42IDI1LjYgNjQgMjUuNiA4OS42IDAgMjUuNi0yNS42IDI1LjYtNjQgMC04OS42TDIzMC40IDE2Mi4xMzMzMzNjLTI1LjYtMjUuNi02NC0yNS42LTg5LjYgMC0yNS42IDI1LjYtMjUuNiA2NCAwIDg5LjZsNjMxLjQ2NjY2NyA2MzEuNDY2NjY3eiIgcC1pZD0iNjgwNyIgZmlsbD0iI2ZmZmZmZiI+PC9wYXRoPjxwYXRoIGQ9Ik04NjEuODY2NjY3IDI1MS43MzMzMzNjMjUuNi0yNS42IDI1LjYtNjQgMC04OS42LTI1LjYtMjUuNi02NC0yNS42LTg5LjYgMEwxNDAuOCA3OTMuNmMtMjUuNiAyNS42LTI1LjYgNjQgMCA4OS42czY0IDI1LjYgODkuNiAwbDYzMS40NjY2NjctNjMxLjQ2NjY2N3oiIHAtaWQ9IjY4MDgiIGZpbGw9IiNmZmZmZmYiPjwvcGF0aD48L3N2Zz4=") no-repeat 50% 50%;
+    background-size: 80%;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon.ico-success {
+    background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTQxNjUxMjQyNTMxIiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjYwMjMiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNNDA0LjI1MTQyOCA4MDkuNjEwN2MtMTEuNjY0MTAyIDAtMjMuMzI3MTc5LTQuNDQ4NzgyLTMyLjIyNTc2Ny0xMy4zNDczNjlMODMuOTgwMDk4IDUwOC4yMTk4MTVjLTE3Ljc5ODE5OS0xNy43OTcxNzUtMTcuNzk4MTk5LTQ2LjY1MzMzNSAwLTY0LjQ1MTUzM3M0Ni42NTMzMzUtMTcuNzk4MTk5IDY0LjQ1MTUzNCAwbDI4OC4wNDQ1MzkgMjg4LjA0MjQ5MWMxNy43OTgxOTkgMTcuNzk4MTk5IDE3Ljc5ODE5OSA0Ni42NTQzNTkgMCA2NC40NTI1NTgtOC44OTc1NjMgOC44OTg1ODctMjAuNTYxNjY1IDEzLjM0NzM2OS0zMi4yMjQ3NDMgMTMuMzQ3MzY5eiIgcC1pZD0iNjAyNCIgZmlsbD0iI2ZmZmZmZiI+PC9wYXRoPjxwYXRoIGQ9Ik00MDQuMjczOTUzIDgwOS42MTE3MjNjLTExLjY2NDEwMiAwLTIzLjMyNjE1NS00LjQ0OTgwNi0zMi4yMjU3NjYtMTMuMzQ4MzkyLTE3Ljc5ODE5OS0xNy43OTcxNzUtMTcuNzk5MjIyLTQ2LjY1MzMzNS0wLjAwMTAyNC02NC40NTE1MzRMODc2LjEwMTgxMyAyMjcuNzM1NjQ2YzE3Ljc5NjE1MS0xNy43OTgxOTkgNDYuNjUzMzM1LTE3Ljc5OTIyMiA2NC40NTE1MzMtMC4wMDEwMjQgMTcuNzk4MTk5IDE3Ljc5NzE3NSAxNy43OTkyMjIgNDYuNjUzMzM1IDAuMDAxMDI0IDY0LjQ1MTUzM0w0MzYuNTAwNzQ0IDc5Ni4yNjIzMDdjLTguODk4NTg3IDguODk4NTg3LTIwLjU2MjY4OSAxMy4zNDk0MTctMzIuMjI2NzkxIDEzLjM0OTQxNnoiIHAtaWQ9IjYwMjUiIGZpbGw9IiNmZmZmZmYiPjwvcGF0aD48L3N2Zz4=") no-repeat 50% 50%;
+    background-size: 85%;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon.ico-question {
+    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfhCQkUEg18vki+AAAETUlEQVRo3s1ZTWhbRxD+VlIuxsLFCYVIIQYVopBDoK5bKDWUBupDMNbJ5FBKg/FBziUQdE9yaC+FHBrwsdCfQ9RTGoLxwWl+DqHEojUFFydxnB9bInZDqOsErBrr6yGvs/ueX97bldTKo4Pe7puZb3Z33s7srIIjMY1jyCEjP6ImvyX8pF64arSHznKC06wzijY5xSKz7YbuYokV2lODsyyxqz3gSY6z6gCuqcpxJluFH+Z8U+D/0jyHoxFUBHgfvsGHIS9WMIUlVFFDFTUAGWSRQRY5HMeBEP6b+Ew9dh/7INd2jGeO59kfKdXP85zbIbfGQVf4sYC3N1hm3lo6zzIbPvk6x+zBk7wQGMEMB5xncIAzAS0XrFySSV72iS1yyBVcdA1x0afrsoUJgdFfY2+z8ADAXl7zz0KcwJiPfZKpVuABgClO+nRG+QIHDdfb4qlWwUXvKW4Z7vi6L4J9vg+vbfCeCeZH2RfOdMOc/HbCA4BvIW6EMQz7XK/ltd+hP+VzR9mgva2YSfyGI17fA7ynnocqeQNFfIJ0oHsdv6CC2+rXGBN6cQdveY3fcVRtmy/HDete+93zy8jA8zV7YkwYMrjHzRddRsCdiVCwwmh6wg9iTNC7Y9XIF1iS7kbUpsvvGEdPuTfSgAEjRpR096x0liPFD/Eqt2NMuBQzB2XhrACAApjFsuQFh9XdGAX70B3oSuNdnMVBaX+sopYxjwVpHFBVACyKTXNoktjD+6Ll8xhenS9MAAkAI/Lux2YNUOs4I413Ypg1SgEAu7kpFvWjaeJe0fJHDGe/cNaZBkekudw8PMA+0fMwlndZeAsJ5KR/qhUDUJCnSiyvRsolkJHGUgvjH8QXDgZopEzKMKDqCKrwEQ4C6MH7GEXC665buLJG8hlQc4LP4paxfJrOqYVYYY2UARfEIazTbgDg2dB98GebzJd54b8L/iWNdLyooeR6CHyZ+6xk0yKxkYg6nEVSUG4VJ9QJ9cxRCxO+9WiOyvgUeexXP1hLGH5nGuBWVtiSp4vqe3VP0UFWI9Wan4Er3v8q7jjPWVtm4FtcQQMrOKO2nOQCM5AyDMi56FDrKHA/1nyppS1ppBpYaE8wciEjGI2AaeM41kI4doDX4XiT3Qm1gevyruCgZg9P8xIv8m1nCzTKq6oiJ9xTMiZ505P5m8cdZ0CnZMVXHVljM7WMBzxpyDxygtdxoCEFTaMIWbZU85UvBjgUMYy0fBaAF8V1Lj9qWQ1aMZ5f4k9r+AGMSkMP1vZoZih6k6sicc5h/OFHM9vDqU/VIU7zJZdYYsKGH4g4nAJMGiXZRds1pVMoZ69RM5vfkbh0qkBhsnS2RLMLilQdL9MBHS9UAh0v1e6CYnXHy/WeeCcvLDwl/9OVze69tPKM+M+v7eJN6OzFpWdEF0ucDbhVNFXadnVrmJFlkVNGTS2M6pzmhMvltfPhnN2B63sVuL7fcNP3D1TSk2ihosPrAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTA5LTA5VDIwOjE4OjEzKzAyOjAweOR7nQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0wOS0wOVQyMDoxODoxMyswMjowMAm5wyEAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC") no-repeat 50% 50%;
+    background-size: 85%;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-buttons > a,
+.iziToast.iziToast-theme-dark .iziToast-buttons > button,
+.iziToast.iziToast-theme-dark .iziToast-buttons > input {
+    color: #fff;
+    background: rgba(255, 255, 255, 0.1);
+}
+
+.iziToast.iziToast-theme-dark .iziToast-buttons > a:hover,
+.iziToast.iziToast-theme-dark .iziToast-buttons > button:hover,
+.iziToast.iziToast-theme-dark .iziToast-buttons > input:hover {
+    background: rgba(255, 255, 255, 0.2);
+}
+
+.iziToast.iziToast-theme-dark .iziToast-buttons > a:focus,
+.iziToast.iziToast-theme-dark .iziToast-buttons > button:focus,
+.iziToast.iziToast-theme-dark .iziToast-buttons > input:focus {
+    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6);
+}
+
+.iziToast.iziToast-theme-dark.iziToast-color-red {
+    background: #F56C6C;
+    border-color: #F56C6C;
+}
+
+.iziToast.iziToast-theme-dark.iziToast-color-orange {
+    background: #E6A23C;
+    border-color: #E6A23C;
+}
+
+.iziToast.iziToast-theme-dark.iziToast-color-yellow {
+    background: rgba(255, 249, 178, 0.9);
+    border-color: rgba(255, 249, 178, 0.9);
+}
+
+.iziToast.iziToast-theme-dark.iziToast-color-blue {
+    background: #409EFF;
+    border-color: #409EFF;
+}
+
+.iziToast.iziToast-theme-dark.iziToast-color-green {
+    background: #67C23A;
+    border-color: #67C23A;
+}
+
+.iziToast.iziToast-layout2 .iziToast-body .iziToast-texts,
+.iziToast.iziToast-layout2 .iziToast-body .iziToast-message {
+    width: 100%;
+}
+
+.iziToast.iziToast-layout3 {
+    border-radius: 2px;
+}
+
+.iziToast.iziToast-layout3::after {
+    display: none;
+}
+
+.iziToast.revealIn,
+.iziToast .revealIn {
+    -webkit-animation: iziT-revealIn 1s cubic-bezier(0.25, 1.6, 0.25, 1) both;
+    -moz-animation: iziT-revealIn 1s cubic-bezier(0.25, 1.6, 0.25, 1) both;
+    animation: iziT-revealIn 1s cubic-bezier(0.25, 1.6, 0.25, 1) both;
+}
+
+.iziToast.slideIn,
+.iziToast .slideIn {
+    -webkit-animation: iziT-slideIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
+    -moz-animation: iziT-slideIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
+    animation: iziT-slideIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
+}
+
+.iziToast.bounceInLeft {
+    -webkit-animation: iziT-bounceInLeft 0.7s ease-in-out both;
+    animation: iziT-bounceInLeft 0.7s ease-in-out both;
+}
+
+.iziToast.bounceInRight {
+    -webkit-animation: iziT-bounceInRight 0.85s ease-in-out both;
+    animation: iziT-bounceInRight 0.85s ease-in-out both;
+}
+
+.iziToast.bounceInDown {
+    -webkit-animation: iziT-bounceInDown 0.7s ease-in-out both;
+    animation: iziT-bounceInDown 0.7s ease-in-out both;
+}
+
+.iziToast.bounceInUp {
+    -webkit-animation: iziT-bounceInUp 0.7s ease-in-out both;
+    animation: iziT-bounceInUp 0.7s ease-in-out both;
+}
+
+.iziToast.fadeIn,
+.iziToast .fadeIn {
+    -webkit-animation: iziT-fadeIn 0.5s ease both;
+    animation: iziT-fadeIn 0.5s ease both;
+}
+
+.iziToast.fadeInUp {
+    -webkit-animation: iziT-fadeInUp 0.7s ease both;
+    animation: iziT-fadeInUp 0.7s ease both;
+}
+
+.iziToast.fadeInDown {
+    -webkit-animation: iziT-fadeInDown 0.7s ease both;
+    animation: iziT-fadeInDown 0.7s ease both;
+}
+
+.iziToast.fadeInLeft {
+    -webkit-animation: iziT-fadeInLeft 0.85s cubic-bezier(0.25, 0.8, 0.25, 1) both;
+    animation: iziT-fadeInLeft 0.85s cubic-bezier(0.25, 0.8, 0.25, 1) both;
+}
+
+.iziToast.fadeInRight {
+    -webkit-animation: iziT-fadeInRight 0.85s cubic-bezier(0.25, 0.8, 0.25, 1) both;
+    animation: iziT-fadeInRight 0.85s cubic-bezier(0.25, 0.8, 0.25, 1) both;
+}
+
+.iziToast.flipInX {
+    -webkit-animation: iziT-flipInX 0.85s cubic-bezier(0.35, 0, 0.25, 1) both;
+    animation: iziT-flipInX 0.85s cubic-bezier(0.35, 0, 0.25, 1) both;
+}
+
+.iziToast.fadeOut {
+    -webkit-animation: iziT-fadeOut 0.7s ease both;
+    animation: iziT-fadeOut 0.7s ease both;
+}
+
+.iziToast.fadeOutDown {
+    -webkit-animation: iziT-fadeOutDown 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+    animation: iziT-fadeOutDown 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+}
+
+.iziToast.fadeOutUp {
+    -webkit-animation: iziT-fadeOutUp 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+    animation: iziT-fadeOutUp 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+}
+
+.iziToast.fadeOutLeft {
+    -webkit-animation: iziT-fadeOutLeft 0.5s ease both;
+    animation: iziT-fadeOutLeft 0.5s ease both;
+}
+
+.iziToast.fadeOutRight {
+    -webkit-animation: iziT-fadeOutRight 0.5s ease both;
+    animation: iziT-fadeOutRight 0.5s ease both;
+}
+
+.iziToast.flipOutX {
+    -webkit-backface-visibility: visible !important;
+    backface-visibility: visible !important;
+    -webkit-animation: iziT-flipOutX 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+    animation: iziT-flipOutX 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+}
+
+.iziToast-overlay.fadeIn {
+    -webkit-animation: iziT-fadeIn 0.5s ease both;
+    animation: iziT-fadeIn 0.5s ease both;
+}
+
+.iziToast-overlay.fadeOut {
+    -webkit-animation: iziT-fadeOut 0.7s ease both;
+    animation: iziT-fadeOut 0.7s ease both;
+}
+
+@-webkit-keyframes iziT-revealIn {
+    0% {
+        opacity: 0;
+        -webkit-transform: scale3d(0.3, 0.3, 1);
+    }
+    100% {
+        opacity: 1;
+    }
+}
+
+@-moz-keyframes iziT-revealIn {
+    0% {
+        opacity: 0;
+        -moz-transform: scale3d(0.3, 0.3, 1);
+    }
+    100% {
+        opacity: 1;
+    }
+}
+
+@-webkit-keyframes iziT-slideIn {
+    0% {
+        opacity: 0;
+        -webkit-transform: translateX(50px);
+    }
+    100% {
+        opacity: 1;
+        -webkit-transform: translateX(0);
+    }
+}
+
+@-moz-keyframes iziT-slideIn {
+    0% {
+        opacity: 0;
+        -moz-transform: translateX(50px);
+    }
+    100% {
+        opacity: 1;
+        -moz-transform: translateX(0);
+    }
+}
+
+@-webkit-keyframes iziT-bounceInLeft {
+    0% {
+        opacity: 0;
+        -webkit-transform: translateX(280px);
+    }
+    50% {
+        opacity: 1;
+        -webkit-transform: translateX(-20px);
+    }
+    70% {
+        -webkit-transform: translateX(10px);
+    }
+    100% {
+        -webkit-transform: translateX(0);
+    }
+}
+
+@-webkit-keyframes iziT-bounceInRight {
+    0% {
+        opacity: 0;
+        -webkit-transform: translateX(-280px);
+    }
+    50% {
+        opacity: 1;
+        -webkit-transform: translateX(20px);
+    }
+    70% {
+        -webkit-transform: translateX(-10px);
+    }
+    100% {
+        -webkit-transform: translateX(0);
+    }
+}
+
+@-webkit-keyframes iziT-bounceInDown {
+    0% {
+        opacity: 0;
+        -webkit-transform: translateY(-200px);
+    }
+    50% {
+        opacity: 1;
+        -webkit-transform: translateY(10px);
+    }
+    70% {
+        -webkit-transform: translateY(-5px);
+    }
+    100% {
+        -webkit-transform: translateY(0);
+    }
+}
+
+@-webkit-keyframes iziT-bounceInUp {
+    0% {
+        opacity: 0;
+        -webkit-transform: translateY(200px);
+    }
+    50% {
+        opacity: 1;
+        -webkit-transform: translateY(-10px);
+    }
+    70% {
+        -webkit-transform: translateY(5px);
+    }
+    100% {
+        -webkit-transform: translateY(0);
+    }
+}
+
+@-webkit-keyframes iziT-fadeIn {
+    from {
+        opacity: 0;
+    }
+    to {
+        opacity: 1;
+    }
+}
+
+@-webkit-keyframes iziT-fadeInUp {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(0, 100%, 0);
+        transform: translate3d(0, 100%, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-webkit-keyframes iziT-fadeInDown {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(0, -100%, 0);
+        transform: translate3d(0, -100%, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-webkit-keyframes iziT-fadeInLeft {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(300px, 0, 0);
+        transform: translate3d(300px, 0, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-webkit-keyframes iziT-fadeInRight {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(-300px, 0, 0);
+        transform: translate3d(-300px, 0, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-webkit-keyframes iziT-flipInX {
+    from {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        opacity: 0;
+    }
+    40% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+    }
+    60% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+        opacity: 1;
+    }
+    80% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+    }
+    to {
+        -webkit-transform: perspective(400px);
+        transform: perspective(400px);
+    }
+}
+
+@-webkit-keyframes iziT-fadeOut {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+    }
+}
+
+@-webkit-keyframes iziT-fadeOutDown {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(0, 100%, 0);
+        transform: translate3d(0, 100%, 0);
+    }
+}
+
+@-webkit-keyframes iziT-fadeOutUp {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(0, -100%, 0);
+        transform: translate3d(0, -100%, 0);
+    }
+}
+
+@-webkit-keyframes iziT-fadeOutLeft {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(-200px, 0, 0);
+        transform: translate3d(-200px, 0, 0);
+    }
+}
+
+@-webkit-keyframes iziT-fadeOutRight {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(200px, 0, 0);
+        transform: translate3d(200px, 0, 0);
+    }
+}
+
+@-webkit-keyframes iziT-flipOutX {
+    from {
+        -webkit-transform: perspective(400px);
+        transform: perspective(400px);
+    }
+    30% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        opacity: 1;
+    }
+    to {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        opacity: 0;
+    }
+}
+
+@-moz-keyframes iziT-revealIn {
+    0% {
+        opacity: 0;
+        transform: scale3d(0.3, 0.3, 1);
+    }
+    100% {
+        opacity: 1;
+    }
+}
+
+@-webkit-keyframes iziT-revealIn {
+    0% {
+        opacity: 0;
+        transform: scale3d(0.3, 0.3, 1);
+    }
+    100% {
+        opacity: 1;
+    }
+}
+
+@-o-keyframes iziT-revealIn {
+    0% {
+        opacity: 0;
+        transform: scale3d(0.3, 0.3, 1);
+    }
+    100% {
+        opacity: 1;
+    }
+}
+
+@keyframes iziT-revealIn {
+    0% {
+        opacity: 0;
+        transform: scale3d(0.3, 0.3, 1);
+    }
+    100% {
+        opacity: 1;
+    }
+}
+
+@-moz-keyframes iziT-slideIn {
+    0% {
+        opacity: 0;
+        transform: translateX(50px);
+    }
+    100% {
+        opacity: 1;
+        transform: translateX(0);
+    }
+}
+
+@-webkit-keyframes iziT-slideIn {
+    0% {
+        opacity: 0;
+        transform: translateX(50px);
+    }
+    100% {
+        opacity: 1;
+        transform: translateX(0);
+    }
+}
+
+@-o-keyframes iziT-slideIn {
+    0% {
+        opacity: 0;
+        transform: translateX(50px);
+    }
+    100% {
+        opacity: 1;
+        transform: translateX(0);
+    }
+}
+
+@keyframes iziT-slideIn {
+    0% {
+        opacity: 0;
+        transform: translateX(50px);
+    }
+    100% {
+        opacity: 1;
+        transform: translateX(0);
+    }
+}
+
+@-moz-keyframes iziT-bounceInLeft {
+    0% {
+        opacity: 0;
+        transform: translateX(280px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateX(-20px);
+    }
+    70% {
+        transform: translateX(10px);
+    }
+    100% {
+        transform: translateX(0);
+    }
+}
+
+@-webkit-keyframes iziT-bounceInLeft {
+    0% {
+        opacity: 0;
+        transform: translateX(280px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateX(-20px);
+    }
+    70% {
+        transform: translateX(10px);
+    }
+    100% {
+        transform: translateX(0);
+    }
+}
+
+@-o-keyframes iziT-bounceInLeft {
+    0% {
+        opacity: 0;
+        transform: translateX(280px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateX(-20px);
+    }
+    70% {
+        transform: translateX(10px);
+    }
+    100% {
+        transform: translateX(0);
+    }
+}
+
+@keyframes iziT-bounceInLeft {
+    0% {
+        opacity: 0;
+        transform: translateX(280px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateX(-20px);
+    }
+    70% {
+        transform: translateX(10px);
+    }
+    100% {
+        transform: translateX(0);
+    }
+}
+
+@-moz-keyframes iziT-bounceInRight {
+    0% {
+        opacity: 0;
+        transform: translateX(-280px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateX(20px);
+    }
+    70% {
+        transform: translateX(-10px);
+    }
+    100% {
+        transform: translateX(0);
+    }
+}
+
+@-webkit-keyframes iziT-bounceInRight {
+    0% {
+        opacity: 0;
+        transform: translateX(-280px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateX(20px);
+    }
+    70% {
+        transform: translateX(-10px);
+    }
+    100% {
+        transform: translateX(0);
+    }
+}
+
+@-o-keyframes iziT-bounceInRight {
+    0% {
+        opacity: 0;
+        transform: translateX(-280px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateX(20px);
+    }
+    70% {
+        transform: translateX(-10px);
+    }
+    100% {
+        transform: translateX(0);
+    }
+}
+
+@keyframes iziT-bounceInRight {
+    0% {
+        opacity: 0;
+        transform: translateX(-280px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateX(20px);
+    }
+    70% {
+        transform: translateX(-10px);
+    }
+    100% {
+        transform: translateX(0);
+    }
+}
+
+@-moz-keyframes iziT-bounceInDown {
+    0% {
+        opacity: 0;
+        transform: translateY(-200px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateY(10px);
+    }
+    70% {
+        transform: translateY(-5px);
+    }
+    100% {
+        transform: translateY(0);
+    }
+}
+
+@-webkit-keyframes iziT-bounceInDown {
+    0% {
+        opacity: 0;
+        transform: translateY(-200px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateY(10px);
+    }
+    70% {
+        transform: translateY(-5px);
+    }
+    100% {
+        transform: translateY(0);
+    }
+}
+
+@-o-keyframes iziT-bounceInDown {
+    0% {
+        opacity: 0;
+        transform: translateY(-200px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateY(10px);
+    }
+    70% {
+        transform: translateY(-5px);
+    }
+    100% {
+        transform: translateY(0);
+    }
+}
+
+@keyframes iziT-bounceInDown {
+    0% {
+        opacity: 0;
+        transform: translateY(-200px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateY(10px);
+    }
+    70% {
+        transform: translateY(-5px);
+    }
+    100% {
+        transform: translateY(0);
+    }
+}
+
+@-moz-keyframes iziT-bounceInUp {
+    0% {
+        opacity: 0;
+        transform: translateY(200px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateY(-10px);
+    }
+    70% {
+        transform: translateY(5px);
+    }
+    100% {
+        transform: translateY(0);
+    }
+}
+
+@-webkit-keyframes iziT-bounceInUp {
+    0% {
+        opacity: 0;
+        transform: translateY(200px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateY(-10px);
+    }
+    70% {
+        transform: translateY(5px);
+    }
+    100% {
+        transform: translateY(0);
+    }
+}
+
+@-o-keyframes iziT-bounceInUp {
+    0% {
+        opacity: 0;
+        transform: translateY(200px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateY(-10px);
+    }
+    70% {
+        transform: translateY(5px);
+    }
+    100% {
+        transform: translateY(0);
+    }
+}
+
+@keyframes iziT-bounceInUp {
+    0% {
+        opacity: 0;
+        transform: translateY(200px);
+    }
+    50% {
+        opacity: 1;
+        transform: translateY(-10px);
+    }
+    70% {
+        transform: translateY(5px);
+    }
+    100% {
+        transform: translateY(0);
+    }
+}
+
+@-moz-keyframes iziT-fadeIn {
+    from {
+        opacity: 0;
+    }
+    to {
+        opacity: 1;
+    }
+}
+
+@-webkit-keyframes iziT-fadeIn {
+    from {
+        opacity: 0;
+    }
+    to {
+        opacity: 1;
+    }
+}
+
+@-o-keyframes iziT-fadeIn {
+    from {
+        opacity: 0;
+    }
+    to {
+        opacity: 1;
+    }
+}
+
+@keyframes iziT-fadeIn {
+    from {
+        opacity: 0;
+    }
+    to {
+        opacity: 1;
+    }
+}
+
+@-moz-keyframes iziT-fadeInUp {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(0, 100%, 0);
+        transform: translate3d(0, 100%, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-webkit-keyframes iziT-fadeInUp {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(0, 100%, 0);
+        transform: translate3d(0, 100%, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-o-keyframes iziT-fadeInUp {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(0, 100%, 0);
+        transform: translate3d(0, 100%, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@keyframes iziT-fadeInUp {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(0, 100%, 0);
+        transform: translate3d(0, 100%, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-moz-keyframes iziT-fadeInDown {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(0, -100%, 0);
+        transform: translate3d(0, -100%, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-webkit-keyframes iziT-fadeInDown {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(0, -100%, 0);
+        transform: translate3d(0, -100%, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-o-keyframes iziT-fadeInDown {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(0, -100%, 0);
+        transform: translate3d(0, -100%, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@keyframes iziT-fadeInDown {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(0, -100%, 0);
+        transform: translate3d(0, -100%, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-moz-keyframes iziT-fadeInLeft {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(300px, 0, 0);
+        transform: translate3d(300px, 0, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-webkit-keyframes iziT-fadeInLeft {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(300px, 0, 0);
+        transform: translate3d(300px, 0, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-o-keyframes iziT-fadeInLeft {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(300px, 0, 0);
+        transform: translate3d(300px, 0, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@keyframes iziT-fadeInLeft {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(300px, 0, 0);
+        transform: translate3d(300px, 0, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-moz-keyframes iziT-fadeInRight {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(-300px, 0, 0);
+        transform: translate3d(-300px, 0, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-webkit-keyframes iziT-fadeInRight {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(-300px, 0, 0);
+        transform: translate3d(-300px, 0, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-o-keyframes iziT-fadeInRight {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(-300px, 0, 0);
+        transform: translate3d(-300px, 0, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@keyframes iziT-fadeInRight {
+    from {
+        opacity: 0;
+        -webkit-transform: translate3d(-300px, 0, 0);
+        transform: translate3d(-300px, 0, 0);
+    }
+    to {
+        opacity: 1;
+        -webkit-transform: none;
+        transform: none;
+    }
+}
+
+@-moz-keyframes iziT-flipInX {
+    from {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        opacity: 0;
+    }
+    40% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+    }
+    60% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+        opacity: 1;
+    }
+    80% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+    }
+    to {
+        -webkit-transform: perspective(400px);
+        transform: perspective(400px);
+    }
+}
+
+@-webkit-keyframes iziT-flipInX {
+    from {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        opacity: 0;
+    }
+    40% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+    }
+    60% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+        opacity: 1;
+    }
+    80% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+    }
+    to {
+        -webkit-transform: perspective(400px);
+        transform: perspective(400px);
+    }
+}
+
+@-o-keyframes iziT-flipInX {
+    from {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        opacity: 0;
+    }
+    40% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+    }
+    60% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+        opacity: 1;
+    }
+    80% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+    }
+    to {
+        -webkit-transform: perspective(400px);
+        transform: perspective(400px);
+    }
+}
+
+@keyframes iziT-flipInX {
+    from {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        opacity: 0;
+    }
+    40% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+    }
+    60% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+        opacity: 1;
+    }
+    80% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+    }
+    to {
+        -webkit-transform: perspective(400px);
+        transform: perspective(400px);
+    }
+}
+
+@-moz-keyframes iziT-fadeOut {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+    }
+}
+
+@-webkit-keyframes iziT-fadeOut {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+    }
+}
+
+@-o-keyframes iziT-fadeOut {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+    }
+}
+
+@keyframes iziT-fadeOut {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+    }
+}
+
+@-moz-keyframes iziT-fadeOutDown {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(0, 100%, 0);
+        transform: translate3d(0, 100%, 0);
+    }
+}
+
+@-webkit-keyframes iziT-fadeOutDown {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(0, 100%, 0);
+        transform: translate3d(0, 100%, 0);
+    }
+}
+
+@-o-keyframes iziT-fadeOutDown {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(0, 100%, 0);
+        transform: translate3d(0, 100%, 0);
+    }
+}
+
+@keyframes iziT-fadeOutDown {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(0, 100%, 0);
+        transform: translate3d(0, 100%, 0);
+    }
+}
+
+@-moz-keyframes iziT-fadeOutUp {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(0, -100%, 0);
+        transform: translate3d(0, -100%, 0);
+    }
+}
+
+@-webkit-keyframes iziT-fadeOutUp {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(0, -100%, 0);
+        transform: translate3d(0, -100%, 0);
+    }
+}
+
+@-o-keyframes iziT-fadeOutUp {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(0, -100%, 0);
+        transform: translate3d(0, -100%, 0);
+    }
+}
+
+@keyframes iziT-fadeOutUp {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(0, -100%, 0);
+        transform: translate3d(0, -100%, 0);
+    }
+}
+
+@-moz-keyframes iziT-fadeOutLeft {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(-200px, 0, 0);
+        transform: translate3d(-200px, 0, 0);
+    }
+}
+
+@-webkit-keyframes iziT-fadeOutLeft {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(-200px, 0, 0);
+        transform: translate3d(-200px, 0, 0);
+    }
+}
+
+@-o-keyframes iziT-fadeOutLeft {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(-200px, 0, 0);
+        transform: translate3d(-200px, 0, 0);
+    }
+}
+
+@keyframes iziT-fadeOutLeft {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(-200px, 0, 0);
+        transform: translate3d(-200px, 0, 0);
+    }
+}
+
+@-moz-keyframes iziT-fadeOutRight {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(200px, 0, 0);
+        transform: translate3d(200px, 0, 0);
+    }
+}
+
+@-webkit-keyframes iziT-fadeOutRight {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(200px, 0, 0);
+        transform: translate3d(200px, 0, 0);
+    }
+}
+
+@-o-keyframes iziT-fadeOutRight {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(200px, 0, 0);
+        transform: translate3d(200px, 0, 0);
+    }
+}
+
+@keyframes iziT-fadeOutRight {
+    from {
+        opacity: 1;
+    }
+    to {
+        opacity: 0;
+        -webkit-transform: translate3d(200px, 0, 0);
+        transform: translate3d(200px, 0, 0);
+    }
+}
+
+@-moz-keyframes iziT-flipOutX {
+    from {
+        -webkit-transform: perspective(400px);
+        transform: perspective(400px);
+    }
+    30% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        opacity: 1;
+    }
+    to {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        opacity: 0;
+    }
+}
+
+@-webkit-keyframes iziT-flipOutX {
+    from {
+        -webkit-transform: perspective(400px);
+        transform: perspective(400px);
+    }
+    30% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        opacity: 1;
+    }
+    to {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        opacity: 0;
+    }
+}
+
+@-o-keyframes iziT-flipOutX {
+    from {
+        -webkit-transform: perspective(400px);
+        transform: perspective(400px);
+    }
+    30% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        opacity: 1;
+    }
+    to {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        opacity: 0;
+    }
+}
+
+@keyframes iziT-flipOutX {
+    from {
+        -webkit-transform: perspective(400px);
+        transform: perspective(400px);
+    }
+    30% {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+        opacity: 1;
+    }
+    to {
+        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+        opacity: 0;
+    }
+}
diff --git a/src/main/webapp/static/layui/lay/modules/notice/notice.js b/src/main/webapp/static/layui/lay/modules/notice/notice.js
new file mode 100644
index 0000000..d414a51
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/notice.js
@@ -0,0 +1,1241 @@
+layui.define([], function (exports) {
+    var PLUGIN_NAME = 'iziToast';  // 鏍峰紡绫诲悕
+    var BODY = document.querySelector('body');
+    var ISMOBILE = (/Mobi/.test(navigator.userAgent)) ? true : false;
+    var MOBILEWIDTH = 568;
+    var ISCHROME = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
+    var ISFIREFOX = typeof InstallTrigger !== 'undefined';
+    var ACCEPTSTOUCH = 'ontouchstart' in document.documentElement;
+    // 鏄剧ず鍖哄煙
+    var POSITIONS = ['bottomRight', 'bottomLeft', 'bottomCenter', 'topRight', 'topLeft', 'topCenter', 'center'];
+    // 榛樿涓婚
+    var THEMES = {
+        info: {
+            color: 'blue',
+            icon: 'ico-info'
+        },
+        success: {
+            color: 'green',
+            icon: 'ico-success'
+        },
+        warning: {
+            color: 'orange',
+            icon: 'ico-warning'
+        },
+        error: {
+            color: 'red',
+            icon: 'ico-error'
+        },
+        question: {
+            color: 'yellow',
+            icon: 'ico-question'
+        }
+    };
+    var CONFIG = {};  // 鍏ㄥ眬閰嶇疆
+    // 榛樿閰嶇疆
+    var defaults = {
+        id: null,
+        className: '',  // 鑷畾涔塩lass锛岀敤绌烘牸鍒嗗壊
+        title: '',  // 鏍囬
+        titleColor: '',  // 鏍囬鏂囧瓧棰滆壊
+        titleSize: '',  // 鏍囬鏂囧瓧澶у皬
+        titleLineHeight: '',  // 鏍囬楂樺害
+        message: '',  // 鍐呭
+        messageColor: '',  // 鍐呭鏂囧瓧棰滆壊
+        messageSize: '',  // 鍐呭鏂囧瓧澶у皬
+        messageLineHeight: '',  // 鍐呭楂樺害
+        backgroundColor: '',  // 鑳屾櫙棰滆壊
+        theme: 'light', // dark
+        color: '', // 鑳屾櫙棰滆壊
+        icon: '',  // 鍥炬爣
+        iconText: '',  // 鍥炬爣鏂囧瓧
+        iconColor: '',  // 鍥炬爣棰滆壊
+        iconUrl: null,  // 鍥炬爣鍦板潃
+        image: '',  // 鏄惁鏄剧ず鍥剧墖
+        imageWidth: 60,  // 鍥剧墖瀹藉害
+        maxWidth: null,  // 鏈�澶у搴�
+        zindex: null,  //
+        layout: 2,  // 甯冨眬绫诲瀷
+        balloon: false,  // 姘旀场
+        close: true,  // 鏄惁鏄剧ず鍏抽棴鎸夐挳
+        closeOnEscape: false,
+        closeOnClick: false,  // 鐐瑰嚮鍏抽棴
+        displayMode: 0,  // 0鏃犻檺鍒�,1瀛樺湪灏变笉鍙戝嚭,2閿�姣佷箣鍓�
+        position: 'topRight', // bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter, center
+        target: '',  // 鏄剧ず浣嶇疆
+        targetFirst: null,  // 鎻掑叆椤哄簭
+        timeout: 5000,  // 鍏抽棴鏃堕棿锛宖alse涓嶈嚜鍔ㄥ叧闂�
+        rtl: false,  // 鍐呭灞呭彸
+        animateInside: false,  // 杩涘叆鍔ㄧ敾鏁堟灉
+        drag: true,  // 鏄惁鍙粦鍔ㄧЩ闄�
+        pauseOnHover: true,  // 榧犳爣绉诲叆鏆傚仠杩涘害鏉℃椂闂�
+        resetOnHover: false,  // 榧犳爣绉诲叆閲嶇疆杩涘害鏉℃椂闂�
+        progressBar: true,  // 鏄惁鏄剧ず杩涘害鏉�
+        progressBarColor: '',  // 杩涘害鏉¢鑹�
+        progressBarEasing: 'linear',  // 杩涘害鏉″姩鐢绘晥鏋�
+        overlay: false,  // 鏄惁鏄剧ず閬僵灞�
+        overlayClose: false,  // 鐐瑰嚮閬僵灞傛槸鍚﹀叧闂�
+        overlayColor: 'rgba(0, 0, 0, 0.1)',  // 閬僵灞傞鑹�
+        transitionIn: 'fadeInLeft', // bounceInLeft, bounceInRight, bounceInUp, bounceInDown, fadeIn, fadeInDown, fadeInUp, fadeInLeft, fadeInRight, flipInX
+        transitionOut: 'fadeOutRight', // fadeOut, fadeOutUp, fadeOutDown, fadeOutLeft, fadeOutRight, flipOutX
+        transitionInMobile: 'bounceInDown',  // 绉诲姩绔繘鍏ュ姩鐢�
+        transitionOutMobile: 'fadeOutUp',  // 绉诲姩绔��鍑哄姩鐢�
+        buttons: {},  // 鎿嶄綔鎸夐挳
+        inputs: {},  // 杈撳叆妗�
+        audio: '',  // 闊虫晥
+        onOpening: function () {
+        },
+        onOpened: function () {
+        },
+        onClosing: function () {
+        },
+        onClosed: function () {
+        }
+    };
+
+    var $iziToast = {
+        children: {},
+        setSetting: function (ref, option, value) {
+            $iziToast.children[ref][option] = value;
+        },
+        getSetting: function (ref, option) {
+            return $iziToast.children[ref][option];
+        },
+        // 鍏ㄥ眬璁剧疆
+        settings: function (options) {
+            $iziToast.destroy();  // 鍏ㄩ儴閿�姣佷箣鍓嶇殑閫氱煡
+            CONFIG = options;
+            defaults = extend(defaults, options || {});
+        },
+        // 鍏抽棴鎵�鏈夐�氱煡
+        destroy: function () {
+            forEach(document.querySelectorAll('.' + PLUGIN_NAME + '-overlay'), function (element, index) {
+                element.remove();
+            });
+            forEach(document.querySelectorAll('.' + PLUGIN_NAME + '-wrapper'), function (element, index) {
+                element.remove();
+            });
+            forEach(document.querySelectorAll('.' + PLUGIN_NAME), function (element, index) {
+                element.remove();
+            });
+            this.children = {};
+            // 绉婚櫎浜嬩欢鐩戝惉
+            document.removeEventListener(PLUGIN_NAME + '-opened', {}, false);
+            document.removeEventListener(PLUGIN_NAME + '-opening', {}, false);
+            document.removeEventListener(PLUGIN_NAME + '-closing', {}, false);
+            document.removeEventListener(PLUGIN_NAME + '-closed', {}, false);
+            document.removeEventListener('keyup', {}, false);
+            CONFIG = {};  // 绉婚櫎鍏ㄥ眬閰嶇疆
+        },
+        // msg绫诲瀷
+        msg: function (msg, options) {
+            if (options.icon == 4) {
+                options.overlay = true;
+                options.timeout = false;
+                options.drag = false;
+                options.displayMode = 0;
+            }
+            var icons = ['ico-success', 'ico-error', 'ico-warning', 'ico-load', 'ico-info'];
+            options.icon = icons[options.icon - 1];
+            var theme = {
+                message: msg,
+                position: 'topCenter',
+                transitionIn: 'bounceInDown',
+                transitionOut: 'fadeOut',
+                transitionOutMobile: 'fadeOut',
+                progressBar: false,
+                close: false,
+                layout: 1,
+                audio: ''
+            };
+            var settings = extend(CONFIG, options || {});
+            settings = extend(theme, settings || {});
+            this.show(settings);
+        }
+    };
+
+    // 鍏抽棴鎸囧畾鐨勯�氱煡
+    $iziToast.hide = function (options, $toast, closedBy) {
+        if (typeof $toast != 'object') {
+            $toast = document.querySelector($toast);
+        }
+        var that = this;
+        var settings = extend(this.children[$toast.getAttribute('data-iziToast-ref')], options || {});
+        settings.closedBy = closedBy || null;
+        delete settings.time.REMAINING;
+        $toast.classList.add(PLUGIN_NAME + '-closing');
+        // 绉婚櫎閬僵灞�
+        (function () {
+            var $overlay = document.querySelector('.' + PLUGIN_NAME + '-overlay');
+            if ($overlay !== null) {
+                var refs = $overlay.getAttribute('data-iziToast-ref');
+                refs = refs.split(',');
+                var index = refs.indexOf(String(settings.ref));
+                if (index !== -1) {
+                    refs.splice(index, 1);
+                }
+                $overlay.setAttribute('data-iziToast-ref', refs.join());
+                if (refs.length === 0) {
+                    $overlay.classList.remove('fadeIn');
+                    $overlay.classList.add('fadeOut');
+                    setTimeout(function () {
+                        $overlay.remove();
+                    }, 700);
+                }
+            }
+        })();
+        // 绉婚櫎鍔ㄧ敾
+        if (settings.transitionIn) {
+            $toast.classList.remove(settings.transitionIn);
+        }
+        if (settings.transitionInMobile) {
+            $toast.classList.remove(settings.transitionInMobile);
+        }
+        if (ISMOBILE || window.innerWidth <= MOBILEWIDTH) {
+            if (settings.transitionOutMobile)
+                $toast.classList.add(settings.transitionOutMobile);
+        } else {
+            if (settings.transitionOut)
+                $toast.classList.add(settings.transitionOut);
+        }
+        var H = $toast.parentNode.offsetHeight;
+        $toast.parentNode.style.height = H + 'px';
+        $toast.style.pointerEvents = 'none';
+        if (!ISMOBILE || window.innerWidth > MOBILEWIDTH) {
+            $toast.parentNode.style.transitionDelay = '0.2s';
+        }
+        try {
+            var event = new CustomEvent(PLUGIN_NAME + '-closing', {detail: settings, bubbles: true, cancelable: true});
+            document.dispatchEvent(event);
+        } catch (ex) {
+            console.warn(ex);
+        }
+        setTimeout(function () {
+            $toast.parentNode.style.height = '0px';
+            $toast.parentNode.style.overflow = '';
+            setTimeout(function () {
+                delete that.children[settings.ref];
+                $toast.parentNode.remove();
+                try {
+                    var event = new CustomEvent(PLUGIN_NAME + '-closed', {
+                        detail: settings,
+                        bubbles: true,
+                        cancelable: true
+                    });
+                    document.dispatchEvent(event);
+                } catch (ex) {
+                    console.warn(ex);
+                }
+                if (typeof settings.onClosed !== 'undefined') {
+                    settings.onClosed.apply(null, [settings, $toast, closedBy]);
+                }
+            }, 1000);
+        }, 200);
+        // 鍥炶皟鍏抽棴浜嬩欢
+        if (typeof settings.onClosing !== 'undefined') {
+            settings.onClosing.apply(null, [settings, $toast, closedBy]);
+        }
+    };
+
+    // 鏄剧ず閫氱煡
+    $iziToast.show = function (options) {
+        var that = this;
+        // Merge user options with defaults
+        var settings = extend(CONFIG, options || {});
+        settings = extend(defaults, settings);
+        settings.time = {};
+        if (settings.id === null) {
+            settings.id = generateId(settings.title + settings.message + settings.color);
+        }
+        if (settings.displayMode == 1 || settings.displayMode == 'once') {
+            try {
+                if (document.querySelectorAll('.' + PLUGIN_NAME + '#' + settings.id).length > 0) {
+                    return false;
+                }
+            } catch (exc) {
+                console.warn('[' + PLUGIN_NAME + '] Could not find an element with this selector: ' + '#' + settings.id + '. Try to set an valid id.');
+            }
+        }
+        if (settings.displayMode == 2 || settings.displayMode == 'replace') {
+            try {
+                forEach(document.querySelectorAll('.' + PLUGIN_NAME + '#' + settings.id), function (element, index) {
+                    that.hide(settings, element, 'replaced');
+                });
+            } catch (exc) {
+                console.warn('[' + PLUGIN_NAME + '] Could not find an element with this selector: ' + '#' + settings.id + '. Try to set an valid id.');
+            }
+        }
+        settings.ref = new Date().getTime() + Math.floor((Math.random() * 10000000) + 1);
+        $iziToast.children[settings.ref] = settings;
+        var $DOM = {
+            body: document.querySelector('body'),
+            overlay: document.createElement('div'),
+            toast: document.createElement('div'),
+            toastBody: document.createElement('div'),
+            toastTexts: document.createElement('div'),
+            toastCapsule: document.createElement('div'),
+            cover: document.createElement('div'),
+            buttons: document.createElement('div'),
+            inputs: document.createElement('div'),
+            icon: !settings.iconUrl ? document.createElement('i') : document.createElement('img'),
+            wrapper: null
+        };
+        $DOM.toast.setAttribute('data-iziToast-ref', settings.ref);
+        $DOM.toast.appendChild($DOM.toastBody);
+        $DOM.toastCapsule.appendChild($DOM.toast);
+        // CSS Settings
+        (function () {
+            $DOM.toast.classList.add(PLUGIN_NAME);
+            $DOM.toast.classList.add(PLUGIN_NAME + '-opening');
+            $DOM.toastCapsule.classList.add(PLUGIN_NAME + '-capsule');
+            $DOM.toastBody.classList.add(PLUGIN_NAME + '-body');
+            $DOM.toastTexts.classList.add(PLUGIN_NAME + '-texts');
+            if (ISMOBILE || window.innerWidth <= MOBILEWIDTH) {
+                if (settings.transitionInMobile)
+                    $DOM.toast.classList.add(settings.transitionInMobile);
+            } else {
+                if (settings.transitionIn)
+                    $DOM.toast.classList.add(settings.transitionIn);
+            }
+            if (settings.className) {
+                var classes = settings.className.split(' ');
+                forEach(classes, function (value, index) {
+                    $DOM.toast.classList.add(value);
+                });
+            }
+            if (settings.id) {
+                $DOM.toast.id = settings.id;
+            }
+            if (settings.rtl) {
+                $DOM.toast.classList.add(PLUGIN_NAME + '-rtl');
+                $DOM.toast.setAttribute('dir', 'rtl');
+            }
+            if (settings.layout > 1) {
+                $DOM.toast.classList.add(PLUGIN_NAME + '-layout' + settings.layout);
+            }
+            if (settings.balloon) {
+                $DOM.toast.classList.add(PLUGIN_NAME + '-balloon');
+            }
+            if (settings.maxWidth) {
+                if (!isNaN(settings.maxWidth)) {
+                    $DOM.toast.style.maxWidth = settings.maxWidth + 'px';
+                } else {
+                    $DOM.toast.style.maxWidth = settings.maxWidth;
+                }
+            }
+            if (settings.theme !== '' || settings.theme !== 'light') {
+                $DOM.toast.classList.add(PLUGIN_NAME + '-theme-' + settings.theme);
+            }
+            if (settings.color) { //#, rgb, rgba, hsl
+                if (isColor(settings.color)) {
+                    $DOM.toast.style.background = settings.color;
+                } else {
+                    $DOM.toast.classList.add(PLUGIN_NAME + '-color-' + settings.color);
+                }
+            }
+            if (settings.backgroundColor) {
+                $DOM.toast.style.background = settings.backgroundColor;
+                if (settings.balloon) {
+                    $DOM.toast.style.borderColor = settings.backgroundColor;
+                }
+            }
+        })();
+        // Cover image
+        (function () {
+            if (settings.image) {
+                $DOM.cover.classList.add(PLUGIN_NAME + '-cover');
+                $DOM.cover.style.width = settings.imageWidth + 'px';
+                if (isBase64(settings.image.replace(/ /g, ''))) {
+                    $DOM.cover.style.backgroundImage = 'url(data:image/png;base64,' + settings.image.replace(/ /g, '') + ')';
+                } else {
+                    $DOM.cover.style.backgroundImage = 'url(' + settings.image + ')';
+                }
+                if (settings.rtl) {
+                    $DOM.toastBody.style.marginRight = (settings.imageWidth) + 'px';
+                } else {
+                    $DOM.toastBody.style.marginLeft = (settings.imageWidth) + 'px';
+                }
+                $DOM.toast.appendChild($DOM.cover);
+            }
+        })();
+        // Button close
+        (function () {
+            if (settings.close) {
+                $DOM.buttonClose = document.createElement('button');
+                // $DOM.buttonClose.type = 'button';
+                $DOM.buttonClose.setAttribute('type', 'button');
+                $DOM.buttonClose.classList.add(PLUGIN_NAME + '-close');
+                $DOM.buttonClose.addEventListener('click', function (e) {
+                    var button = e.target;
+                    that.hide(settings, $DOM.toast, 'button');
+                });
+                $DOM.toast.appendChild($DOM.buttonClose);
+            } else {
+                if (settings.rtl) {
+                    $DOM.toast.style.paddingLeft = '18px';
+                } else {
+                    $DOM.toast.style.paddingRight = '18px';
+                }
+            }
+        })();
+        // Progress Bar & Timeout
+        (function () {
+            if (settings.progressBar) {
+                $DOM.progressBar = document.createElement('div');
+                $DOM.progressBarDiv = document.createElement('div');
+                $DOM.progressBar.classList.add(PLUGIN_NAME + '-progressbar');
+                $DOM.progressBarDiv.style.background = settings.progressBarColor;
+                $DOM.progressBar.appendChild($DOM.progressBarDiv);
+                $DOM.toast.appendChild($DOM.progressBar);
+            }
+            if (settings.timeout) {
+                if (settings.pauseOnHover && !settings.resetOnHover) {
+                    $DOM.toast.addEventListener('mouseenter', function (e) {
+                        that.progress(settings, $DOM.toast).pause();
+                    });
+                    $DOM.toast.addEventListener('mouseleave', function (e) {
+                        that.progress(settings, $DOM.toast).resume();
+                    });
+                }
+                if (settings.resetOnHover) {
+                    $DOM.toast.addEventListener('mouseenter', function (e) {
+                        that.progress(settings, $DOM.toast).reset();
+                    });
+                    $DOM.toast.addEventListener('mouseleave', function (e) {
+                        that.progress(settings, $DOM.toast).start();
+                    });
+                }
+            }
+        })();
+        // Icon
+        (function () {
+            if (settings.iconUrl) {
+                $DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon');
+                $DOM.icon.setAttribute('src', settings.iconUrl);
+            } else if (settings.icon) {
+                $DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon ' + settings.icon);
+                if (settings.iconText) {
+                    $DOM.icon.appendChild(document.createTextNode(settings.iconText));
+                }
+                if (settings.iconColor) {
+                    $DOM.icon.style.color = settings.iconColor;
+                }
+            }
+            if (settings.icon || settings.iconUrl) {
+                if (settings.rtl) {
+                    $DOM.toastBody.style.paddingRight = '33px';
+                } else {
+                    $DOM.toastBody.style.paddingLeft = '33px';
+                }
+                $DOM.toastBody.appendChild($DOM.icon);
+            }
+
+        })();
+        // Title & Message
+        (function () {
+            if (settings.title.length > 0) {
+                $DOM.strong = document.createElement('strong');
+                $DOM.strong.classList.add(PLUGIN_NAME + '-title');
+                $DOM.strong.appendChild(createFragElem(settings.title));
+                $DOM.toastTexts.appendChild($DOM.strong);
+                if (settings.titleColor) {
+                    $DOM.strong.style.color = settings.titleColor;
+                }
+                if (settings.titleSize) {
+                    if (!isNaN(settings.titleSize)) {
+                        $DOM.strong.style.fontSize = settings.titleSize + 'px';
+                    } else {
+                        $DOM.strong.style.fontSize = settings.titleSize;
+                    }
+                }
+                if (settings.titleLineHeight) {
+                    if (!isNaN(settings.titleSize)) {
+                        $DOM.strong.style.lineHeight = settings.titleLineHeight + 'px';
+                    } else {
+                        $DOM.strong.style.lineHeight = settings.titleLineHeight;
+                    }
+                }
+            }
+            if (settings.message.length > 0) {
+                $DOM.p = document.createElement('p');
+                $DOM.p.classList.add(PLUGIN_NAME + '-message');
+                $DOM.p.appendChild(createFragElem(settings.message));
+                $DOM.toastTexts.appendChild($DOM.p);
+                if (settings.messageColor) {
+                    $DOM.p.style.color = settings.messageColor;
+                }
+                if (settings.messageSize) {
+                    if (!isNaN(settings.titleSize)) {
+                        $DOM.p.style.fontSize = settings.messageSize + 'px';
+                    } else {
+                        $DOM.p.style.fontSize = settings.messageSize;
+                    }
+                }
+                if (settings.messageLineHeight) {
+                    if (!isNaN(settings.titleSize)) {
+                        $DOM.p.style.lineHeight = settings.messageLineHeight + 'px';
+                    } else {
+                        $DOM.p.style.lineHeight = settings.messageLineHeight;
+                    }
+                }
+            }
+            if (settings.title.length > 0 && settings.message.length > 0) {
+                if (settings.rtl) {
+                    $DOM.strong.style.marginLeft = '10px';
+                } else if (settings.layout != 2 && !settings.rtl) {
+                    $DOM.strong.style.marginRight = '10px';
+                    $DOM.strong.style.marginBottom = '0px';
+                }
+            }
+        })();
+        $DOM.toastBody.appendChild($DOM.toastTexts);
+        // Inputs
+        var $inputs;
+        (function () {
+            if (settings.inputs.length > 0) {
+                $DOM.inputs.classList.add(PLUGIN_NAME + '-inputs');
+                forEach(settings.inputs, function (value, index) {
+                    $DOM.inputs.appendChild(createFragElem(value[0]));
+                    $inputs = $DOM.inputs.childNodes;
+                    $inputs[index].classList.add(PLUGIN_NAME + '-inputs-child');
+                    if (value[3]) {
+                        setTimeout(function () {
+                            $inputs[index].focus();
+                        }, 300);
+                    }
+                    $inputs[index].addEventListener(value[1], function (e) {
+                        var ts = value[2];
+                        return ts(that, $DOM.toast, this, e);
+                    });
+                });
+                $DOM.toastBody.appendChild($DOM.inputs);
+            }
+        })();
+        // Buttons
+        (function () {
+            if (settings.buttons.length > 0) {
+                $DOM.buttons.classList.add(PLUGIN_NAME + '-buttons');
+                forEach(settings.buttons, function (value, index) {
+                    $DOM.buttons.appendChild(createFragElem(value[0]));
+                    var $btns = $DOM.buttons.childNodes;
+                    $btns[index].classList.add(PLUGIN_NAME + '-buttons-child');
+                    if (value[2]) {
+                        setTimeout(function () {
+                            $btns[index].focus();
+                        }, 300);
+                    }
+                    $btns[index].addEventListener('click', function (e) {
+                        e.preventDefault();
+                        var ts = value[1];
+                        return ts(that, $DOM.toast, this, e, $inputs);
+                    });
+                });
+            }
+            $DOM.toastTexts.appendChild($DOM.buttons);
+        })();
+        if (settings.message.length > 0 && (settings.inputs.length > 0 || settings.buttons.length > 0)) {
+            $DOM.p.style.marginBottom = '0';
+        }
+        if (settings.inputs.length > 0 || settings.buttons.length > 0) {
+            if (settings.rtl) {
+                $DOM.toastTexts.style.marginLeft = '10px';
+            } else {
+                $DOM.toastTexts.style.marginRight = '10px';
+            }
+            if (settings.inputs.length > 0 && settings.buttons.length > 0) {
+                if (settings.rtl) {
+                    $DOM.inputs.style.marginLeft = '8px';
+                } else {
+                    $DOM.inputs.style.marginRight = '8px';
+                }
+            }
+        }
+        // Wrap
+        (function () {
+            $DOM.toastCapsule.style.visibility = 'hidden';
+            setTimeout(function () {
+                var H = $DOM.toast.offsetHeight;
+                var style = $DOM.toast.currentStyle || window.getComputedStyle($DOM.toast);
+                var marginTop = style.marginTop;
+                marginTop = marginTop.split('px');
+                marginTop = parseInt(marginTop[0]);
+                var marginBottom = style.marginBottom;
+                marginBottom = marginBottom.split('px');
+                marginBottom = parseInt(marginBottom[0]);
+
+                $DOM.toastCapsule.style.visibility = '';
+                $DOM.toastCapsule.style.height = (H + marginBottom + marginTop) + 'px';
+
+                setTimeout(function () {
+                    $DOM.toastCapsule.style.height = 'auto';
+                    if (settings.target) {
+                        $DOM.toastCapsule.style.overflow = 'visible';
+                    }
+                }, 500);
+
+                if (settings.timeout) {
+                    that.progress(settings, $DOM.toast).start();
+                }
+            }, 100);
+        })();
+        // Target
+        (function () {
+            var position = settings.position;
+            if (settings.target) {
+                $DOM.wrapper = document.querySelector(settings.target);
+                $DOM.wrapper.classList.add(PLUGIN_NAME + '-target');
+                if (settings.targetFirst) {
+                    $DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);
+                } else {
+                    $DOM.wrapper.appendChild($DOM.toastCapsule);
+                }
+            } else {
+                if (POSITIONS.indexOf(settings.position) == -1) {
+                    console.warn('[' + PLUGIN_NAME + '] Incorrect position.\nIt can be 鈥� ' + POSITIONS);
+                    return;
+                }
+                if (ISMOBILE || window.innerWidth <= MOBILEWIDTH) {
+                    if (settings.position == 'bottomLeft' || settings.position == 'bottomRight' || settings.position == 'bottomCenter') {
+                        position = PLUGIN_NAME + '-wrapper-bottomCenter';
+                    } else if (settings.position == 'topLeft' || settings.position == 'topRight' || settings.position == 'topCenter') {
+                        position = PLUGIN_NAME + '-wrapper-topCenter';
+                    } else {
+                        position = PLUGIN_NAME + '-wrapper-center';
+                    }
+                } else {
+                    position = PLUGIN_NAME + '-wrapper-' + position;
+                }
+                $DOM.wrapper = document.querySelector('.' + PLUGIN_NAME + '-wrapper.' + position);
+                if (!$DOM.wrapper) {
+                    $DOM.wrapper = document.createElement('div');
+                    $DOM.wrapper.classList.add(PLUGIN_NAME + '-wrapper');
+                    $DOM.wrapper.classList.add(position);
+                    document.body.appendChild($DOM.wrapper);
+                }
+                var targetFirst = settings.targetFirst;
+                if ((targetFirst == undefined || targetFirst == null) && (settings.position == 'topLeft' || settings.position == 'topCenter' || settings.position == 'topRight')) {
+                    targetFirst = true;
+                }
+                if (targetFirst) {
+                    $DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);
+                } else {
+                    $DOM.wrapper.appendChild($DOM.toastCapsule);
+                }
+            }
+            if (!isNaN(settings.zindex)) {
+                $DOM.wrapper.style.zIndex = settings.zindex;
+            } else {
+                console.warn('[' + PLUGIN_NAME + '] Invalid zIndex.');
+            }
+        })();
+        // Overlay
+        (function () {
+            if (settings.overlay) {
+                if (document.querySelector('.' + PLUGIN_NAME + '-overlay.fadeIn') !== null) {
+                    $DOM.overlay = document.querySelector('.' + PLUGIN_NAME + '-overlay');
+                    $DOM.overlay.setAttribute('data-iziToast-ref', $DOM.overlay.getAttribute('data-iziToast-ref') + ',' + settings.ref);
+                    if (!isNaN(settings.zindex) && settings.zindex !== null) {
+                        $DOM.overlay.style.zIndex = settings.zindex - 1;
+                    }
+                } else {
+                    $DOM.overlay.classList.add(PLUGIN_NAME + '-overlay');
+                    $DOM.overlay.classList.add('fadeIn');
+                    $DOM.overlay.style.background = settings.overlayColor;
+                    $DOM.overlay.setAttribute('data-iziToast-ref', settings.ref);
+                    if (!isNaN(settings.zindex) && settings.zindex !== null) {
+                        $DOM.overlay.style.zIndex = settings.zindex - 1;
+                    }
+                    document.querySelector('body').appendChild($DOM.overlay);
+                }
+                if (settings.overlayClose) {
+                    $DOM.overlay.removeEventListener('click', {});
+                    $DOM.overlay.addEventListener('click', function (e) {
+                        that.hide(settings, $DOM.toast, 'overlay');
+                    });
+                } else {
+                    $DOM.overlay.removeEventListener('click', {});
+                }
+            }
+        })();
+        // Inside animations
+        (function () {
+            if (settings.animateInside) {
+                $DOM.toast.classList.add(PLUGIN_NAME + '-animateInside');
+                var animationTimes = [200, 100, 300];
+                if (settings.transitionIn == 'bounceInLeft' || settings.transitionIn == 'bounceInRight') {
+                    animationTimes = [400, 200, 400];
+                }
+                if (settings.title.length > 0) {
+                    setTimeout(function () {
+                        $DOM.strong.classList.add('slideIn');
+                    }, animationTimes[0]);
+                }
+                if (settings.message.length > 0) {
+                    setTimeout(function () {
+                        $DOM.p.classList.add('slideIn');
+                    }, animationTimes[1]);
+                }
+                if (settings.icon || settings.iconUrl) {
+                    setTimeout(function () {
+                        $DOM.icon.classList.add('revealIn');
+                    }, animationTimes[2]);
+                }
+                var counter = 150;
+                if (settings.buttons.length > 0 && $DOM.buttons) {
+                    setTimeout(function () {
+                        forEach($DOM.buttons.childNodes, function (element, index) {
+                            setTimeout(function () {
+                                element.classList.add('revealIn');
+                            }, counter);
+                            counter = counter + 150;
+                        });
+                    }, settings.inputs.length > 0 ? 150 : 0);
+                }
+                if (settings.inputs.length > 0 && $DOM.inputs) {
+                    counter = 150;
+                    forEach($DOM.inputs.childNodes, function (element, index) {
+                        setTimeout(function () {
+                            element.classList.add('revealIn');
+                        }, counter);
+                        counter = counter + 150;
+                    });
+                }
+            }
+        })();
+        settings.onOpening.apply(null, [settings, $DOM.toast]);
+        try {
+            var event = new CustomEvent(PLUGIN_NAME + '-opening', {detail: settings, bubbles: true, cancelable: true});
+            document.dispatchEvent(event);
+        } catch (ex) {
+            console.warn(ex);
+        }
+        setTimeout(function () {
+            $DOM.toast.classList.remove(PLUGIN_NAME + '-opening');
+            $DOM.toast.classList.add(PLUGIN_NAME + '-opened');
+            try {
+                var event = new CustomEvent(PLUGIN_NAME + '-opened', {
+                    detail: settings,
+                    bubbles: true,
+                    cancelable: true
+                });
+                document.dispatchEvent(event);
+            } catch (ex) {
+                console.warn(ex);
+            }
+            settings.onOpened.apply(null, [settings, $DOM.toast]);
+        }, 1000);
+        if (settings.drag) {
+            if (ACCEPTSTOUCH) {
+                $DOM.toast.addEventListener('touchstart', function (e) {
+                    drag.startMoving(this, that, settings, e);
+                }, false);
+                $DOM.toast.addEventListener('touchend', function (e) {
+                    drag.stopMoving(this, e);
+                }, false);
+            } else {
+                $DOM.toast.addEventListener('mousedown', function (e) {
+                    e.preventDefault();
+                    drag.startMoving(this, that, settings, e);
+                }, false);
+                $DOM.toast.addEventListener('mouseup', function (e) {
+                    e.preventDefault();
+                    drag.stopMoving(this, e);
+                }, false);
+            }
+        }
+        if (settings.closeOnEscape) {
+            document.addEventListener('keyup', function (evt) {
+                evt = evt || window.event;
+                if (evt.keyCode == 27) {
+                    that.hide(settings, $DOM.toast, 'esc');
+                }
+            });
+        }
+        if (settings.closeOnClick) {
+            $DOM.toast.addEventListener('click', function (evt) {
+                that.hide(settings, $DOM.toast, 'toast');
+            });
+        }
+        // 鎾斁澹伴煶
+        if (settings.audio) {
+            that.playSound(settings.audio);
+        }
+        that.toast = $DOM.toast;
+    };
+
+    // 鎺у埗杩涘害鏉�
+    $iziToast.progress = function (options, $toast, callback) {
+        var that = this,
+            ref = $toast.getAttribute('data-iziToast-ref'),
+            settings = extend(this.children[ref], options || {}),
+            $elem = $toast.querySelector('.' + PLUGIN_NAME + '-progressbar div');
+        return {
+            start: function () {
+                if (typeof settings.time.REMAINING == 'undefined') {
+                    $toast.classList.remove(PLUGIN_NAME + '-reseted');
+                    if ($elem !== null) {
+                        $elem.style.transition = 'width ' + settings.timeout + 'ms ' + settings.progressBarEasing;
+                        $elem.style.width = '0%';
+                    }
+                    settings.time.START = new Date().getTime();
+                    settings.time.END = settings.time.START + settings.timeout;
+                    settings.time.TIMER = setTimeout(function () {
+                        clearTimeout(settings.time.TIMER);
+                        if (!$toast.classList.contains(PLUGIN_NAME + '-closing')) {
+                            that.hide(settings, $toast, 'timeout');
+                            if (typeof callback === 'function') {
+                                callback.apply(that);
+                            }
+                        }
+                    }, settings.timeout);
+                    that.setSetting(ref, 'time', settings.time);
+                }
+            },
+            pause: function () {
+                if (typeof settings.time.START !== 'undefined' && !$toast.classList.contains(PLUGIN_NAME + '-paused') && !$toast.classList.contains(PLUGIN_NAME + '-reseted')) {
+                    $toast.classList.add(PLUGIN_NAME + '-paused');
+                    settings.time.REMAINING = settings.time.END - new Date().getTime();
+                    clearTimeout(settings.time.TIMER);
+                    that.setSetting(ref, 'time', settings.time);
+                    if ($elem !== null) {
+                        var computedStyle = window.getComputedStyle($elem),
+                            propertyWidth = computedStyle.getPropertyValue('width');
+                        $elem.style.transition = 'none';
+                        $elem.style.width = propertyWidth;
+                    }
+                    if (typeof callback === 'function') {
+                        setTimeout(function () {
+                            callback.apply(that);
+                        }, 10);
+                    }
+                }
+            },
+            resume: function () {
+                if (typeof settings.time.REMAINING !== 'undefined') {
+                    $toast.classList.remove(PLUGIN_NAME + '-paused');
+                    if ($elem !== null) {
+                        $elem.style.transition = 'width ' + settings.time.REMAINING + 'ms ' + settings.progressBarEasing;
+                        $elem.style.width = '0%';
+                    }
+                    settings.time.END = new Date().getTime() + settings.time.REMAINING;
+                    settings.time.TIMER = setTimeout(function () {
+                        clearTimeout(settings.time.TIMER);
+                        if (!$toast.classList.contains(PLUGIN_NAME + '-closing')) {
+                            that.hide(settings, $toast, 'timeout');
+                            if (typeof callback === 'function') {
+                                callback.apply(that);
+                            }
+                        }
+                    }, settings.time.REMAINING);
+                    that.setSetting(ref, 'time', settings.time);
+                } else {
+                    this.start();
+                }
+            },
+            reset: function () {
+                clearTimeout(settings.time.TIMER);
+                delete settings.time.REMAINING;
+                that.setSetting(ref, 'time', settings.time);
+                $toast.classList.add(PLUGIN_NAME + '-reseted');
+                $toast.classList.remove(PLUGIN_NAME + '-paused');
+                if ($elem !== null) {
+                    $elem.style.transition = 'none';
+                    $elem.style.width = '100%';
+                }
+                if (typeof callback === 'function') {
+                    setTimeout(function () {
+                        callback.apply(that);
+                    }, 10);
+                }
+            }
+        };
+    };
+
+    // 鍒ゆ柇鏄惁鏄痠e9浠ヤ笅鐗堟湰
+    var isIE9_ = function () {
+        var userAgent = navigator.userAgent;
+        if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
+            var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
+            reIE.test(userAgent);
+            var fIEVersion = parseFloat(RegExp["$1"]);
+            if (fIEVersion != 10) {
+                return true;
+            }
+        }
+        return false;
+    };
+
+    // 缁橢lement娣诲姞remove鏂规硶
+    if (!('remove' in Element.prototype)) {
+        Element.prototype.remove = function () {
+            if (this.parentNode) {
+                this.parentNode.removeChild(this);
+            }
+        };
+    }
+
+    // 鑷畾涔変簨浠�
+    if (typeof window.CustomEvent !== 'function') {
+        var CustomEventPolyfill = function (event, params) {
+            params = params || {bubbles: false, cancelable: false, detail: undefined};
+            var evt = document.createEvent('CustomEvent');
+            evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
+            return evt;
+        };
+        CustomEventPolyfill.prototype = window.Event.prototype;
+        window.CustomEvent = CustomEventPolyfill;
+    }
+
+    // 閬嶅巻鏁版嵁
+    var forEach = function (collection, callback, scope) {
+        if (Object.prototype.toString.call(collection) === '[object Object]') {
+            for (var prop in collection) {
+                if (Object.prototype.hasOwnProperty.call(collection, prop)) {
+                    callback.call(scope, collection[prop], prop, collection);
+                }
+            }
+        } else {
+            if (collection) {
+                for (var i = 0, len = collection.length; i < len; i++) {
+                    callback.call(scope, collection[i], i, collection);
+                }
+            }
+        }
+    };
+
+    // 鍚堝苟鑷畾涔夊弬鏁板拰榛樿鍙傛暟
+    var extend = function (defaults, options) {
+        var extended = {};
+        forEach(defaults, function (value, prop) {
+            extended[prop] = defaults[prop];
+        });
+        forEach(options, function (value, prop) {
+            extended[prop] = options[prop];
+        });
+        return extended;
+    };
+
+    // 鍒涘缓鏂扮殑鏂囨。鐗囨
+    var createFragElem = function (htmlStr) {
+        var frag = document.createDocumentFragment(),
+            temp = document.createElement('div');
+        temp.innerHTML = htmlStr;
+        while (temp.firstChild) {
+            frag.appendChild(temp.firstChild);
+        }
+        return frag;
+    };
+
+    // 鐢熸垚ID
+    var generateId = function (params) {
+        var newId = btoa(encodeURIComponent(params));
+        return newId.replace(/=/g, "");
+    };
+
+    // 鍒ゆ柇鏄惁鏄鑹插瓧绗︿覆
+    var isColor = function (color) {
+        if (color.substring(0, 1) == '#' || color.substring(0, 3) == 'rgb' || color.substring(0, 3) == 'hsl') {
+            return true;
+        } else {
+            return false;
+        }
+    };
+
+    // 鍒ゆ柇鏄惁鏄痓ase64瀛楃涓�
+    var isBase64 = function (str) {
+        try {
+            return btoa(atob(str)) == str;
+        } catch (err) {
+            return false;
+        }
+    };
+
+    // 鎷栨嫿鏂规硶
+    var drag = function () {
+        return {
+            move: function (toast, instance, settings, xpos) {
+                var opacity,
+                    opacityRange = 0.3,
+                    distance = 180;
+                if (xpos !== 0) {
+                    toast.classList.add(PLUGIN_NAME + '-dragged');
+                    toast.style.transform = 'translateX(' + xpos + 'px)';
+                    if (xpos > 0) {
+                        opacity = (distance - xpos) / distance;
+                        if (opacity < opacityRange) {
+                            instance.hide(extend(settings, {
+                                transitionOut: 'fadeOutRight',
+                                transitionOutMobile: 'fadeOutRight'
+                            }), toast, 'drag');
+                        }
+                    } else {
+                        opacity = (distance + xpos) / distance;
+                        if (opacity < opacityRange) {
+                            instance.hide(extend(settings, {
+                                transitionOut: 'fadeOutLeft',
+                                transitionOutMobile: 'fadeOutLeft'
+                            }), toast, 'drag');
+                        }
+                    }
+                    toast.style.opacity = opacity;
+                    if (opacity < opacityRange) {
+                        if (ISCHROME || ISFIREFOX)
+                            toast.style.left = xpos + 'px';
+                        toast.parentNode.style.opacity = opacityRange;
+                        this.stopMoving(toast, null);
+                    }
+                }
+            },
+            startMoving: function (toast, instance, settings, e) {
+                e = e || window.event;
+                var posX = ((ACCEPTSTOUCH) ? e.touches[0].clientX : e.clientX),
+                    toastLeft = toast.style.transform.replace('px)', '');
+                toastLeft = toastLeft.replace('translateX(', '');
+                var offsetX = posX - toastLeft;
+                if (settings.transitionIn) {
+                    toast.classList.remove(settings.transitionIn);
+                }
+                if (settings.transitionInMobile) {
+                    toast.classList.remove(settings.transitionInMobile);
+                }
+                toast.style.transition = '';
+                if (ACCEPTSTOUCH) {
+                    document.ontouchmove = function (e) {
+                        e.preventDefault();
+                        e = e || window.event;
+                        var posX = e.touches[0].clientX,
+                            finalX = posX - offsetX;
+                        drag.move(toast, instance, settings, finalX);
+                    };
+                } else {
+                    document.onmousemove = function (e) {
+                        e.preventDefault();
+                        e = e || window.event;
+                        var posX = e.clientX,
+                            finalX = posX - offsetX;
+                        drag.move(toast, instance, settings, finalX);
+                    };
+                }
+            },
+            stopMoving: function (toast, e) {
+                if (ACCEPTSTOUCH) {
+                    document.ontouchmove = function () {
+                    };
+                } else {
+                    document.onmousemove = function () {
+                    };
+                }
+                toast.style.opacity = '';
+                toast.style.transform = '';
+                if (toast.classList.contains(PLUGIN_NAME + '-dragged')) {
+                    toast.classList.remove(PLUGIN_NAME + '-dragged');
+                    toast.style.transition = 'transform 0.4s ease, opacity 0.4s ease';
+                    setTimeout(function () {
+                        toast.style.transition = '';
+                    }, 400);
+                }
+            }
+        };
+    }();
+
+    // 鍏煎IE
+    var Base64 = {
+        _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode: function (e) {
+            var t = "";
+            var n, r, i, s, o, u, a;
+            var f = 0;
+            e = Base64._utf8_encode(e);
+            while (f < e.length) {
+                n = e.charCodeAt(f++);
+                r = e.charCodeAt(f++);
+                i = e.charCodeAt(f++);
+                s = n >> 2;
+                o = (n & 3) << 4 | r >> 4;
+                u = (r & 15) << 2 | i >> 6;
+                a = i & 63;
+                if (isNaN(r)) {
+                    u = a = 64
+                } else if (isNaN(i)) {
+                    a = 64
+                }
+                t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a)
+            }
+            return t
+        }, decode: function (e) {
+            var t = "";
+            var n, r, i;
+            var s, o, u, a;
+            var f = 0;
+            e = e.replace(/[^A-Za-z0-9+/=]/g, "");
+            while (f < e.length) {
+                s = this._keyStr.indexOf(e.charAt(f++));
+                o = this._keyStr.indexOf(e.charAt(f++));
+                u = this._keyStr.indexOf(e.charAt(f++));
+                a = this._keyStr.indexOf(e.charAt(f++));
+                n = s << 2 | o >> 4;
+                r = (o & 15) << 4 | u >> 2;
+                i = (u & 3) << 6 | a;
+                t = t + String.fromCharCode(n);
+                if (u != 64) {
+                    t = t + String.fromCharCode(r)
+                }
+                if (a != 64) {
+                    t = t + String.fromCharCode(i)
+                }
+            }
+            t = Base64._utf8_decode(t);
+            return t
+        }, _utf8_encode: function (e) {
+            e = e.replace(/rn/g, "n");
+            var t = "";
+            for (var n = 0; n < e.length; n++) {
+                var r = e.charCodeAt(n);
+                if (r < 128) {
+                    t += String.fromCharCode(r)
+                } else if (r > 127 && r < 2048) {
+                    t += String.fromCharCode(r >> 6 | 192);
+                    t += String.fromCharCode(r & 63 | 128)
+                } else {
+                    t += String.fromCharCode(r >> 12 | 224);
+                    t += String.fromCharCode(r >> 6 & 63 | 128);
+                    t += String.fromCharCode(r & 63 | 128)
+                }
+            }
+            return t
+        }, _utf8_decode: function (e) {
+            var t = "";
+            var n = 0;
+            var r = c1 = c2 = 0;
+            while (n < e.length) {
+                r = e.charCodeAt(n);
+                if (r < 128) {
+                    t += String.fromCharCode(r);
+                    n++
+                } else if (r > 191 && r < 224) {
+                    c2 = e.charCodeAt(n + 1);
+                    t += String.fromCharCode((r & 31) << 6 | c2 & 63);
+                    n += 2
+                } else {
+                    c2 = e.charCodeAt(n + 1);
+                    c3 = e.charCodeAt(n + 2);
+                    t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);
+                    n += 3
+                }
+            }
+            return t
+        }
+    };
+    if (isIE9_()) {
+        // 鍏煎btoa鍜宎tob鏂规硶
+        window.btoa = function (str) {
+            return Base64.encode(str);
+        };
+        window.atob = function (str) {
+            return Base64.decode(str);
+        };
+        // 鍏煎classList灞炴��
+        if (!("classList" in document.documentElement)) {
+            Object.defineProperty(window.Element.prototype, 'classList', {
+                get: function () {
+                    var self = this;
+
+                    function update(fn) {
+                        return function () {
+                            var className = self.className.replace(/^\s+|\s+$/g, ''),
+                                valArr = arguments;
+                            return fn(className, valArr)
+                        }
+                    }
+
+                    function add_rmv(className, valArr, tag) {
+                        for (var i in valArr) {
+                            if (typeof valArr[i] !== 'string' || !!~valArr[i].search(/\s+/g)) throw TypeError('the type of value is error')
+                            var temp = valArr[i]
+                            var flag = !!~className.search(new RegExp('(\\s+)?' + temp + '(\\s+)?'))
+                            if (tag === 1) {
+                                !flag ? className += ' ' + temp : ''
+                            } else if (tag === 2) {
+                                flag ? className = className.replace(new RegExp('(\\s+)?' + temp), '') : ''
+                            }
+                        }
+                        self.className = className;
+                        return tag;
+                    }
+
+                    return {
+                        add: update(function (className, valArr) {
+                            add_rmv(className, valArr, 1)
+                        }),
+                        remove: update(function (className, valArr) {
+                            add_rmv(className, valArr, 2)
+                        }),
+                        toggle: function (value) {
+                            if (typeof value !== 'string' || arguments.length === 0) throw TypeError("Failed to execute 'toggle' on 'DOMTokenList': 1 argument(string) required, but only 0 present.")
+                            if (arguments.length === 1) {
+                                this.contains(value) ? this.remove(value) : this.add(value)
+                                return
+                            }
+                            !arguments[1] ? this.remove(value) : this.add(value)
+                        },
+                        contains: update(function (className, valArr) {
+                            if (valArr.length === 0) throw TypeError("Failed to execute 'contains' on 'DOMTokenList': 1 argument required, but only 0 present.")
+                            if (typeof valArr[0] !== 'string' || !!~valArr[0].search(/\s+/g)) return false
+                            return !!~className.search(new RegExp(valArr[0]))
+                        }),
+                        item: function (index) {
+                            typeof index === 'string' ? index = parseInt(index) : ''
+                            if (arguments.length === 0 || typeof index !== 'number') throw TypeError("Failed to execute 'toggle' on 'DOMTokenList': 1 argument required, but only 0 present.")
+                            var claArr = self.className.replace(/^\s+|\s+$/, '').split(/\s+/)
+                            var len = claArr.length
+                            if (index < 0 || index >= len) return null
+                            return claArr[index]
+                        }
+                    }
+                }
+            });
+        }
+    }
+
+    // 鎾斁澹伴煶
+    $iziToast.playSound = function (src) {
+        if (!(src.indexOf('http') == 0)) {
+            src = layui.cache.base + 'notice/' + src + '.wav';
+        }
+        if (!!window.ActiveXObject || "ActiveXObject" in window) {  // IE
+            var embed = document.noticePlay;
+            if (embed) {
+                embed.remove();
+            }
+            embed = document.createElement('embed');
+            embed.setAttribute('name', 'noticePlay');
+            embed.setAttribute('src', src);
+            embed.setAttribute('autostart', true);
+            embed.setAttribute('loop', false);
+            embed.setAttribute('hidden', true);
+            document.body.appendChild(embed);
+            embed = document.noticePlay;
+            embed.volume = 100;
+        } else {   // 闈濱E
+            var audio = document.createElement('audio');
+            audio.setAttribute('hidden', true);
+            audio.setAttribute('src', src);
+            document.body.appendChild(audio);
+            audio.addEventListener('ended', function () {
+                audio.parentNode.removeChild(audio);
+            }, false);
+            audio.play();
+        }
+    };
+
+    // 涓嶅悓涓婚鐨勯�氱煡
+    forEach(THEMES, function (theme, name) {
+        $iziToast[name] = function (options) {
+            var settings = extend(CONFIG, options || {});
+            settings = extend(theme, settings || {});
+            this.show(settings);
+        };
+    });
+
+    layui.link(layui.cache.base + 'notice/notice.css');  // 鍔犺浇css
+    exports('notice', $iziToast);
+});
diff --git a/src/main/webapp/views/home/console.html b/src/main/webapp/views/home/console.html
new file mode 100644
index 0000000..aff7c04
--- /dev/null
+++ b/src/main/webapp/views/home/console.html
@@ -0,0 +1,440 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>棣栭〉</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, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+    <script type="text/javascript" src="../../static/js/common.js"></script>
+    <script type="text/javascript" src="../../static/layui/layui.js"></script>
+    <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+    <script type="text/javascript" src="../../static/js/echarts/echarts.min.js"></script>
+    <script type="text/javascript" src="../../static/js/echarts/highcharts.js"></script>
+    <style>
+        body {
+            background-color: #f1f1f1;
+        }
+        .home-elem {
+            background-color: #fff;
+            height: 30%;
+            margin: 15px 15px 45px 15px;
+            border-radius: 5px;
+            box-shadow: 0 0 3px rgba(0,0,0,.3);
+        }
+        .home-elem:first-child{
+            margin-bottom: 0;
+        }
+        .chart-elem {
+            box-sizing: border-box;
+            display: inline-block;
+            width: 49%;
+        }
+        .chart-elem div {
+            padding-top: 15px;
+            padding-bottom: 5px;
+        }
+        .chart-elem:first-child {
+            padding: 0 50px;
+        }
+        .chart-elem:last-child {
+            padding: 0 50px;
+            border-left: 1px solid rgba(0,0,0,.1);
+        }
+        /*琛ㄦ牸宸ュ叿鏍�*/
+        .layui-table-tool {
+            display: none;
+        }
+        /*琛ㄦ牸*/
+        .layui-table thead th {
+            font-weight: bold;
+            text-align: center;
+        }
+        div .layui-table-tool .layui-table-tool-self .layui-inline[title='瀵煎嚭']{
+            display: none;
+        }
+        .layui-form.layui-border-box.layui-table-view{
+            margin: 15px 0 35px 0;
+            width: 100%;
+            border-width: 0;
+        }
+        .layui-table-box{
+            padding-bottom: 10px;
+        }
+        .layui-table-body.layui-table-main{
+            overflow: hidden;
+        }
+        .layui-table-page{
+            border-width: 0;
+        }
+        .layui-table tbody tr:hover, .layui-table thead tr, .layui-table-click, .layui-table-header, .layui-table-hover, .layui-table-mend, .layui-table-patch, .layui-table-tool, .layui-table-total, .layui-table-total tr, .layui-table[lay-even] tr:nth-child(even) {
+            background-color: #f9f9f9;
+        }
+        .layui-table thead tr {
+            background-color: #fff;
+        }
+        #form-header {
+            font-size: 18px;
+            color: #377bb5;
+            font-weight: bold;
+            height: 30px;
+            box-sizing: border-box;
+            padding: 10px 0 10px 20px;
+        }
+        .layui-form.layui-border-box.layui-table-view {
+            border-top: 1px solid rgba(0,0,0,.1);
+        }
+        #search-box {
+            margin-left: 10px;
+            z-index: 999;
+            position: relative;
+            padding: 0 30px 10px 30px;
+        }
+    </style>
+</head>
+<body>
+
+<!--鎶ヨ〃鏁版嵁-->
+<div class="home-elem charts-contain">
+    <div class="chart-elem">
+        <div id="pie"></div>
+    </div>
+    <div class="chart-elem">
+        <div id="line"></div>
+    </div>
+</div>
+
+<!--琛ㄦ牸鏁版嵁-->
+<div class="home-elem loc-retention">
+    <div class="layui-form">
+        <div id="form-header">搴撳瓨婊炵暀鏃堕棿缁熻琛�</div>
+        <div class="layui-card" style="padding: 0 20px 1px 20px;">
+            <fieldset class="layui-elem-field site-demo-button" style="margin: 20px;">
+                <legend>鎼滅储鏍�</legend>
+                <div id="search-box" class="layui-form layui-card-header">
+                    <div class="layui-inline">
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">
+                        </div>
+                    </div>
+                    <!-- 寰呮坊鍔� -->
+                    <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
+                        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+                        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+                    </div>
+                </div>
+            </fieldset>
+
+        </div>
+        <table class="layui-hide" id="stayTime" lay-filter="stayTime"></table>
+    </div>
+</div>
+</body>
+<script>
+    pieCharts();
+    lineCharts();
+    // 楗煎浘
+    function pieCharts(){
+        $.ajax({
+            url:baseUrl+'/console/loc/pie/charts',
+            headers: {'token': localStorage.getItem('token')},
+            dataType: 'json',
+            contentType: 'application/json;charset=UTF-8',
+            crossDomain: true,
+            method: 'POST',
+            success:function(res){
+                var data = res.data;
+                var dataPie=eval(data.rows);
+                var chart = {
+                    plotBackgroundColor: null,
+                    plotBorderWidth: null,
+                    plotShadow: false
+                };
+                var title = {
+                    text: '搴撲綅浣跨敤姣斾緥',
+                    margin:1,
+                    style: {fontSize: '18px',color: '#777',fontWeight: 'bold'},
+                    y: 5
+                };
+                var tooltip = {
+                    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
+                };
+                var plotOptions = {
+                    pie: {
+                        allowPointSelect: true,
+                        cursor: 'pointer',
+                        dataLabels: {
+                            enabled: true,
+                            format: '<b>{point.name}</b>: {point.percentage:.1f} %',
+                            style: {
+                                color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
+                            }
+                        }
+                    }
+                };
+                var series= [{
+                    type: 'pie',
+                    name: '搴撲綅鍗犳瘮',
+                    data: dataPie
+                }];
+                var loading = {
+                    hideDuration: 3,
+                    showDuration: 3
+                };
+                var json = {};
+                json.chart = chart;
+                json.title = title;
+                json.tooltip = tooltip;
+                json.series = series;
+                json.plotOptions = plotOptions;
+                json.loading = loading;
+                json.credits = {enabled: false};
+                $('#pie').highcharts(json);
+
+            },
+            error:function(){
+            }
+        });
+    }
+
+    // 鎶樼嚎鍥�
+    function lineCharts() {
+        $.ajax({
+            url: baseUrl+'/console/locIo/line/charts',
+            headers: {'token': localStorage.getItem('token')},
+            dataType: 'json',
+            contentType: 'application/json;charset=UTF-8',
+            method: 'POST',
+            success: function (res) {
+                var data = res.data;
+                var dataPie = eval(data.rows);
+                var title = {
+                    text: '鏃ュ叆鍑哄簱鏁伴噺',
+                    margin: 1,
+                    style: {fontSize: '18px',color: '#777',fontWeight: 'bold'},
+                    y: 5
+                };
+                var xAxis = {
+                    categories: [getDate(-11), getDate(-10), getDate(-9), getDate(-8), getDate(-7), getDate(-6),
+                        getDate(-5), getDate(-4), getDate(-3), getDate(-2), getDate(-1), getDate(-0)]
+                };
+                var yAxis = {
+                    title: {
+                        text: '鍏�/鍑哄簱鏁伴噺'
+                    },
+                    plotLines: [{
+                        value: 0,
+                        width: 1,
+                        color: '#808080'
+                    }]
+                };
+                var tooltip = {};
+                var legend = {
+                    layout: 'vertical',
+                    align: 'right',
+                    verticalAlign: 'middle',
+                    borderWidth: 0
+                };
+                var loading = {
+                    hideDuration: 3,
+                    showDuration: 3
+                }
+                var series = dataPie;
+                var json = {};
+                json.title = title;
+                json.xAxis = xAxis;
+                json.yAxis = yAxis;
+                json.tooltip = tooltip;
+                json.legend = legend;
+                json.loading = loading;
+                json.series = series;
+                json.credits = {enabled: false};
+                $('#line').highcharts(json);
+            }
+        });
+    }
+
+    // 琛ㄦ牸
+    var pageCurr;
+    function getCol() {
+        var cols = [
+            //{field: 'appeTime$', title: '鍏ュ簱鏃堕棿', align: 'center', width: 165}
+            {field: 'stay_time', align: 'center',title: '婊炵暀澶╂暟',width: 90}
+            ,{field: 'store_max_date', align: 'center',title: '搴撻緞涓婇檺',width: 90}
+            ,{field: 'store_min', title: '搴撳瓨涓嬮檺', align: 'center'}
+            ,{field: 'sum_qty', title: '搴撳瓨鎬绘暟', align: 'center'}
+            ,{field: 'store_max', title: '搴撳瓨涓婇檺', align: 'center'}
+            ,{field: 'loc_no', align: 'center',title: '搴撲綅鍙�',width: 90}
+
+        ];
+        cols.push.apply(cols, detlCols);
+        //cols.push({field: 'sum_qty', title: '搴撳瓨鎬绘暟', align: 'center'})
+        return cols;
+    }
+    layui.use(['table','laydate', 'form'], function() {
+        var table = layui.table;
+        var $ = layui.jquery;
+        var layer = layui.layer;
+        var form = layui.form;
+
+        // 鏁版嵁娓叉煋
+        tableIns = table.render({
+            elem: '#stayTime',
+            headers: {token: localStorage.getItem('token')},
+            url: baseUrl+'/report/viewStayTimeList.action',
+            page: true,
+            limit: 10,
+            toolbar: '#toolbar',
+            even: true,
+            cellMinWidth: 50,
+            crossDomain: true,
+            cols: [getCol()],
+            request: {
+                pageName: 'curr',
+                pageSize: 'limit'
+            },
+            parseData: function (res) {
+                return {
+                    'code': res.code,
+                    'msg': res.msg,
+                    'count': res.data.total,
+                    'data': res.data.records
+                }
+            },
+            response: {
+                statusCode: 200
+            },
+            done: function(res, curr, count) {
+                var that = this.elem.next();
+                res.data.forEach(function (item, index) {
+                    var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']");
+                    if (item.store_max_date != null) {
+                        if (item.stay_time > item.store_max_date) {
+                            tr.css("background-color", "#ff6f00");
+                            tr.css("color", "white");
+                            tr.children()[1].style.backgroundColor="#ff0000"
+                        }
+                    }
+                    //浣庝簬涓嬮檺
+                    if (item.sum_qty < item.store_min) {
+                        tr.css("background-color", "#ff6f00");
+                        tr.css("color", "white");
+                        tr.children()[2].style.backgroundColor="rgb(255,0,0)"
+                        tr.children()[2].style.color="white"
+                        tr.children()[3].style.backgroundColor="#ff0000"
+                        tr.children()[3].style.color="white"
+                    }
+                    //楂樹簬涓婇檺
+                    if(item.store_max != null) {
+                        if (item.sum_qty > item.store_max) {
+                            tr.css("background-color", "#ff6f00");
+                            tr.css("color", "white");
+                            tr.children()[3].style.backgroundColor="#009c04"
+                            tr.children()[3].style.color="white"
+                            tr.children()[4].style.backgroundColor="#3da83f"
+                            tr.children()[4].style.color="white"
+                        }
+                    }
+                });
+                if (res.code === 403) {
+                    top.location.href = baseUrl+"/";
+                }
+                pageCurr=curr;
+            }
+        });
+
+        // 鐩戝惉鎺掑簭浜嬩欢
+        table.on('sort(stayTime)', function (obj) {
+            var searchData = {};
+            $.each($('#search-box [name]').serializeArray(), function() {
+                searchData[this.name] = this.value;
+            });
+            searchData['orderByField'] = obj.field;
+            searchData['orderByType'] = obj.type;
+            tableIns.reload({
+                where: searchData,
+                page: {
+                    curr: 1
+                },
+                done: function (res, curr, count) {
+                    var that = this.elem.next();
+                    res.data.forEach(function (item, index) {
+                        if (item.store_max_date != null) {
+                            if (item.stay_time > item.store_max_date) {
+                                var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']");
+                                tr.css("background-color", "#FF5722");
+                                tr.css("color", "white");
+                            }
+                        }
+                    });
+                    if (res.code === 403) {
+                        top.location.href = baseUrl+"/";
+                    }
+                    pageCurr=curr;
+                }
+            });
+        });
+
+        // 鎼滅储鏍忔悳绱簨浠�
+        form.on('submit(search)', function (data) {
+            tableReload();
+        });
+        // 鎼滅储鏍忔悳绱簨浠�
+        form.on('submit(reset)', function (data) {
+            $(':input', $('#search-box'))
+                .val('')
+                .removeAttr('checked')
+                .removeAttr('selected');
+            var searchData = {};
+            $.each($('#search-box [name]').serializeArray(), function() {
+                searchData[this.name] = this.value;
+            });
+            tableIns.reload({
+                where: searchData
+            });
+
+        });
+
+        function tableReload() {
+            var searchData = {};
+            $.each($('#search-box [name]').serializeArray(), function() {
+                searchData[this.name] = this.value;
+            });
+            tableIns.reload({
+                where: searchData
+            });
+        }
+    });
+
+
+    function getDate(value){
+        var date = new Date();// 鑾峰彇褰撳墠鏃堕棿
+        date.setDate(date.getDate() + value);// 璁剧疆澶╂暟 -1 澶�
+        return date.Format("MM-dd");
+    }
+    /**
+     * 鏃ユ湡鏍煎紡鍖�
+     */
+    Date.prototype.Format = function (fmt) {
+        var o = {
+            "M+": this.getMonth() + 1, //鏈堜唤
+            "d+": this.getDate(), //鏃�
+            "h+": this.getHours(), //灏忔椂
+            "m+": this.getMinutes(), //鍒�
+            "s+": this.getSeconds(), //绉�
+            "q+": Math.floor((this.getMonth() + 3) / 3), //瀛e害
+            "S": this.getMilliseconds() //姣
+        };
+        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
+        for (var k in o)
+            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
+        return fmt;
+    }
+</script>
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/home/map.html b/src/main/webapp/views/home/map.html
new file mode 100644
index 0000000..6c43354
--- /dev/null
+++ b/src/main/webapp/views/home/map.html
@@ -0,0 +1,1118 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>搴撲綅鍦板浘</title>
+    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+    <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+    <script type="text/javascript" src="../../static/layui/layui.js"></script>
+    <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+    <script type="text/javascript" src="../../static/js/common.js"></script>
+    <script type="text/javascript" src="../../static/js/vue.min.js"></script>
+    <style>
+        .pointContainer {
+            display: flex;
+            justify-content: center;
+            margin-top: 1px;
+        }
+
+        .pointBox {
+            background: #bababa;
+            width: 40px;
+            height: 40px;
+            margin-right: 1px;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            font-size: 14px;
+            user-select: none;
+            color: #fff;
+        }
+
+        .pointBox:hover{
+            background: #00ff7f;
+        }
+
+        .pointBoxEmpty {
+            background: #c2c934;
+        }
+
+        .pointBoxOut {
+            background: #f1aa19;
+        }
+
+        .pointBoxOutYy {
+            background: #618593;
+        }
+
+        .pointBoxInYy {
+            background: #fa736f;
+        }
+
+        .pointBoxGreen {
+            background: #00ff7f;
+        }
+
+        .pointBoxBlue {
+            background: #55aaff;
+        }
+
+        .pointBoxRed {
+            background: #ff0000;
+        }
+
+        .pointBoxStart {
+            background: #ffaa00;
+        }
+
+        .pointBoxEnd {
+            background: #ff55ff;
+        }
+
+        .pointBoxStation {
+            background: #ffff00;
+        }
+
+        .chargeStation {
+            background: #ffaa7f;
+        }
+
+        .pointBoxDefault {
+            background: #86779d;
+        }
+
+        .pointBoxSelected {
+            background: #00ff7f !important;
+        }
+
+        .pointBoxSearch {
+            background: #9900ff;
+        }
+
+        .crnLine{
+            width: auto;
+            height: 2px;
+            margin: 10px 0;
+            background: #000;
+            position: relative;
+        }
+
+        .popBox {
+            position: absolute;
+        }
+
+        /*鍗$墖鏍峰紡start*/
+        .apple-card {
+            width: 190px;
+            height: 254px;
+            margin: 0 auto;
+            background-color: #011522;
+            border-radius: 8px;
+            z-index: 1;
+            animation:fadeInOut 0.5s 1;
+        }
+
+        .apple-card .tools {
+            display: flex;
+            align-items: center;
+            padding: 9px;
+        }
+
+        .apple-card .circle {
+            padding: 0 4px;
+        }
+
+        .apple-card .box {
+            display: inline-block;
+            align-items: center;
+            width: 10px;
+            height: 10px;
+            padding: 1px;
+            border-radius: 50%;
+        }
+
+        .apple-card .red {
+            background-color: #ff605c;
+            position: relative;
+        }
+
+        .apple-card .red:hover{
+            background-color: #ff0300;
+        }
+
+        .apple-card .red:hover::before {
+            content: "x";
+            font-size: 11px;
+            color: #fff;
+            width: 10px;
+            height: 10px;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            position: absolute;
+            animation:fadeInOut 0.5s 1;
+        }
+
+        .apple-card .yellow {
+            background-color: #ffbd44;
+        }
+
+        .apple-card .green {
+            background-color: #00ca4e;
+        }
+
+        .apple-card .card-content{
+            color: #fff;
+            padding: 10px;
+        }
+        /*鍗$墖鏍峰紡end*/
+
+        /*婊戝姩鍗$墖start*/
+        .hoverCard {
+            width: 160px;
+            height: 224px;
+            border-radius: 20px;
+            background: #f5f5f5;
+            position: relative;
+            padding: 1.8rem;
+            border: 2px solid #c3c6ce;
+            transition: 0.5s ease-out;
+            overflow: visible;
+            margin-top: 30px;
+        }
+
+        .hoverCard .card-details {
+            color: black;
+            height: 100%;
+            gap: .5em;
+            display: grid;
+            place-content: center;
+        }
+
+        .hoverCard .card-button {
+            transform: translate(-50%, 125%);
+            width: 60%;
+            border-radius: 1rem;
+            border: none;
+            background-color: #008bf8;
+            color: #fff;
+            font-size: 1rem;
+            padding: .5rem 1rem;
+            position: absolute;
+            left: 50%;
+            bottom: 0;
+            opacity: 0;
+            transition: 0.3s ease-out;
+        }
+
+        .hoverCard .text-body {
+            color: rgb(134, 134, 134);
+        }
+
+        /*Text*/
+        .hoverCard .text-title {
+            font-size: 1.5em;
+            font-weight: bold;
+        }
+
+        /*Hover*/
+        .hoverCard:hover {
+            border-color: #008bf8;
+            box-shadow: 0 4px 18px 0 rgba(0, 0, 0, 0.25);
+        }
+
+        .hoverCard:hover .card-button {
+            transform: translate(-50%, 50%);
+            opacity: 1;
+        }
+        /*婊戝姩鍗$墖end*/
+
+        /*妤煎眰鎺у埗start*/
+        .floorSelect {
+            --text: #414856;
+            --radio: #7C96B2;
+            --radio-checked: #4F29F0;
+            --radio-size: 20px;
+            --width: 150px;
+            --height: 200px;
+            --border-radius: 10px;
+            width: var(--width);
+            height: var(--height);
+            border-radius: var(--border-radius);
+            color: var(--text);
+            position: relative;
+            box-shadow: 0 10px 30px rgba(65, 72, 86, 0.05);
+            display: grid;
+            grid-template-columns: auto var(--radio-size);
+            align-items: center;
+        }
+
+        .floorSelect label {
+            cursor: pointer;
+        }
+
+        .floorSelect input[type="radio"] {
+            -webkit-appearance: none;
+            -moz-appearance: none;
+            position: relative;
+            height: var(--radio-size);
+            width: var(--radio-size);
+            outline: none;
+            margin: 0;
+            cursor: pointer;
+            border: 2px solid var(--radio);
+            background: transparent;
+            border-radius: 50%;
+            display: grid;
+            justify-self: end;
+            justify-items: center;
+            align-items: center;
+            overflow: hidden;
+            transition: border .5s ease;
+        }
+
+        .floorSelect input[type="radio"]::before, .floorSelect input[type="radio"]::after {
+            content: "";
+            display: flex;
+            justify-self: center;
+            border-radius: 50%;
+        }
+
+        .floorSelect input[type="radio"]::before {
+            position: absolute;
+            width: 100%;
+            height: 100%;
+            z-index: 1;
+            opacity: var(--opacity, 1);
+        }
+
+        .floorSelect input[type="radio"]::after {
+            position: relative;
+            width: calc(100% /2);
+            height: calc(100% /2);
+            background: var(--radio-checked);
+            top: var(--y, 100%);
+            transition: top 0.5s cubic-bezier(0.48, 1.97, 0.5, 0.63);
+        }
+
+        .floorSelect input[type="radio"]:checked {
+            --radio: var(--radio-checked);
+        }
+
+        .floorSelect input[type="radio"]:checked::after {
+            --y: 0%;
+            animation: stretch-animate .3s ease-out .17s;
+        }
+
+        .floorSelect input[type="radio"]:checked::before {
+            --opacity: 0;
+        }
+
+        .floorSelect input[type="radio"]:checked ~ input[type="radio"]::after {
+            --y: -100%;
+        }
+
+        .floorSelect input[type="radio"]:not(:checked)::before {
+            --opacity: 1;
+            transition: opacity 0s linear .5s;
+        }
+
+        @keyframes stretch-animate {
+            0% {
+                transform: scale(1, 1);
+            }
+
+            28% {
+                transform: scale(1.15, 0.85);
+            }
+
+            50% {
+                transform: scale(0.9, 1.1);
+            }
+
+            100% {
+                transform: scale(1, 1);
+            }
+        }
+        /*妤煎眰鎺у埗end*/
+
+        /*鎼滅储start*/
+        .search-input {
+            line-height: 28px;
+            border: 2px solid transparent;
+            border-bottom-color: #777;
+            padding: .2rem 0;
+            outline: none;
+            background-color: transparent;
+            color: #0d0c22;
+            transition: .3s cubic-bezier(0.645, 0.045, 0.355, 1);
+        }
+
+        .search-input:focus, .search-input:hover {
+            outline: none;
+            padding: .2rem 1rem;
+            border-radius: 1rem;
+            border-color: #7a9cc6;
+        }
+
+        .search-input::placeholder {
+            color: #777;
+        }
+
+        .search-input:focus::placeholder {
+            opacity: 0;
+            transition: opacity .3s;
+        }
+        /*鎼滅储end*/
+
+        @keyframes fadeInOut {
+            0%{
+                opacity: 0;
+            }
+            100%{
+                opacity: 1;
+            }
+        }
+    </style>
+</head>
+<body>
+<div id="app" style="display: flex;justify-content: space-around;margin-top: 50px;flex-wrap: wrap;" @click="bgClick()">
+    <div style="flex: 12;scale: 0.85;">
+        <div style="margin-top: -110px;">
+            <div class="pointContainer" v-for="(x,index) in map" :key="index">
+                <div v-if="index != 0 && (index != map.length-1)" v-for="(y,idx) in x" :key="idx">
+                    <div v-if="idx != 0 && (idx != map[index].length-1)">
+                        <div v-if="map[index][idx].value < 0" style="visibility: hidden;" class="pointBox"></div>
+
+                        <!--搴撲綅-->
+                        <div v-else-if="map[index][idx].value  == 0" @contextmenu.prevent="rightEvent(index,idx,$event)">
+                            <div v-if="map[index][idx].locSts == 'O'" class="pointBox pointBoxBlue">{{ map[index][idx].locSts }}</div>
+                            <div v-else-if="map[index][idx].locSts == 'F'" @click.left.stop="selectLoc(index,idx)" :class="{'pointBoxSelected':map[index][idx].locOutSelected,'pointBoxSearch':map[index][idx].searchStatus}" class="pointBox pointBoxRed">{{ map[index][idx].locSts }}</div>
+                            <div v-else-if="map[index][idx].locSts == 'D'" class="pointBox pointBoxEmpty">{{ map[index][idx].locSts }}</div>
+                            <div v-else-if="map[index][idx].locSts == 'P'" class="pointBox pointBoxOut">{{ map[index][idx].locSts }}</div>
+                            <div v-else-if="map[index][idx].locSts == 'R'" :class="{'pointBoxSearch':map[index][idx].searchStatus}" class="pointBox pointBoxOutYy">{{ map[index][idx].locSts }}</div>
+                            <div v-else-if="map[index][idx].locSts == 'S'" class="pointBox pointBoxInYy">{{ map[index][idx].locSts }}</div>
+                            <div v-else class="pointBox pointBoxDefault">{{ map[index][idx].locSts }}</div>
+                        </div>
+
+                        <!--姣嶈建閬�-->
+                        <div v-else-if="map[index][idx].value  == 3">
+                            <div class="pointBox" style="visibility: hidden;"></div>
+                        </div>
+
+                        <!--绔欑偣-->
+                        <div v-else-if="map[index][idx].value  == 4" class="pointBox pointBoxStation" style="visibility: hidden;"></div>
+                        <div v-else-if="map[index][idx].value  == 5" class="pointBox chargeStation"
+                             @contextmenu.prevent="rightEvent(index,idx,$event)"></div>
+                        <div v-else-if="map[index][idx].value  == 9" class="pointBox pointBoxRed"
+                             @contextmenu.prevent="rightEvent(index,idx,$event)"></div>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div style="padding: 20px;flex: 5;margin-top: -70px;">
+        <div style="display: flex;justify-content: space-between;flex-wrap: wrap;">
+            <div class="hoverCard" style="width: 100%;">
+                <div class="card-details" style="place-content: normal;height: auto;">
+                    <div class="text-body" style="display: flex;flex-wrap: wrap;">
+                        <div style="width: 100%;margin-bottom: 20px;">
+                            <div style="display: flex;justify-content: space-between;">
+                                <div><input v-model="searchMatnr" placeholder="鐗╂枡鍙�" type="text" class="search-input"></div>
+                                <div><input v-model="searchOrderNo" placeholder="璁㈠崟鍙�" type="text" class="search-input"></div>
+                            </div>
+                            <div style="display: flex;justify-content: space-between;margin-top: 10px;">
+                                <div><input style="width: 110px;" v-model="searchMaktx" placeholder="鐗╂枡鍚嶇О" type="text" class="search-input"></div>
+                                <div><input style="width: 110px;" v-model="searchSpecs" placeholder="瑙勬牸" type="text" class="search-input"></div>
+                                <div><input style="width: 110px;" v-model="searchLocNo" placeholder="搴撲綅鍙�" type="text" class="search-input"></div>
+                            </div>
+                            <button style="width: 100%;margin-top: 10px;" @click="searchLoc" class="layui-btn layui-btn-sm">鎼滅储</button>
+                        </div>
+<!--                        <div>-->
+<!--                            <button @click="locToLoc2" class="layui-btn layui-btn-sm">渚ц竟绉诲簱</button>-->
+<!--                        </div>-->
+                        <div v-if="!locOutStatus">
+                            <button @click="locOutStatus = true" class="layui-btn layui-btn-sm">鍑哄簱閫夋嫨</button>
+                        </div>
+                        <div v-else style="margin-left: 10px;border: 1px red solid;display: flex;">
+                            <div>
+                                <button @click="cancelSelectLoc" class="layui-btn layui-btn-sm">鍙栨秷閫夋嫨</button>
+                            </div>
+                            <div style="display: flex;justify-content: center;align-items: center;">
+                                <select v-model="outSite">
+                                    <option v-for="(item,index) in outSites" :key="index" :value="item.siteId">{{ item.desc }}</option>
+                                </select>
+                            </div>
+                            <div>
+                                <button @click="locOut" class="layui-btn layui-btn-sm">鍑哄簱</button>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <button class="card-button">鍔熻兘鍖�</button>
+            </div>
+
+            <div class="hoverCard">
+                <div class="card-details">
+                    <div class="text-body" style="display: flex;justify-content: space-around;flex-wrap: wrap;">
+                        <div style="flex: 1;margin-top: 10px;">
+                            <div style="font-size: 10px;">绌哄簱浣�</div><div class="pointBox pointBoxBlue">O</div>
+                        </div>
+                        <div style="flex: 1;margin-top: 10px;">
+                            <div style="font-size: 10px;">鍦ㄥ簱</div><div class="pointBox pointBoxRed">F</div>
+                        </div>
+                        <div style="flex: 1;margin-top: 10px;">
+                            <div style="font-size: 10px;">绌烘澘</div><div class="pointBox pointBoxEmpty">D</div>
+                        </div>
+                        <div style="flex: 1;margin-top: 10px;">
+                            <div style="font-size: 10px;">鍑哄簱涓�</div><div class="pointBox pointBoxOut">P</div>
+                        </div>
+                        <div style="flex: 1;margin-top: 10px;">
+                            <div style="font-size: 10px;">鍑哄簱棰勭害</div><div class="pointBox pointBoxOutYy">R</div>
+                        </div>
+                        <div style="flex: 1;margin-top: 10px;">
+                            <div style="font-size: 10px;">鍏ュ簱棰勭害</div><div class="pointBox pointBoxInYy">S</div>
+                        </div>
+                        <div style="flex: 1;margin-top: 10px;">
+                            <div style="font-size: 10px;">鎼滅储缁撴灉</div><div class="pointBox pointBoxSearch"></div>
+                        </div>
+                        <div style="flex: 1;margin-top: 10px;">
+                            <div style="font-size: 10px;">閫夋嫨缁撴灉</div><div class="pointBox pointBoxSelected"></div>
+                        </div>
+                        <div style="flex: 1;margin-top: 10px;">
+                            <div style="font-size: 10px;">鍏朵粬</div><div class="pointBox pointBoxDefault">鍏朵粬</div>
+                        </div>
+                    </div>
+                </div>
+                <button class="card-button">搴撲綅鐘舵��</button>
+            </div>
+
+            <div class="hoverCard">
+                <div class="card-details">
+                    <p class="text-title" style="text-align: center;">妤煎眰 {{currentLev}}F</p>
+                    <div class="text-body" style="display: flex;">
+                        <div class="floorSelect">
+                            <label for="01">1F</label>
+                            <input id="01" type="radio" name="r" v-model="currentLev" value="1" checked="">
+                            <label for="02">2F</label>
+                            <input id="02" type="radio" v-model="currentLev" name="r" value="2">
+                            <label for="03">3F</label>
+                            <input id="03" type="radio" v-model="currentLev" name="r" value="3">
+                            <label for="04">4F</label>
+                            <input id="04" type="radio" v-model="currentLev" name="r" value="4">
+                        </div>
+                    </div>
+                </div>
+                <button class="card-button">妤煎眰 {{currentLev}}F</button>
+            </div>
+
+        </div>
+    </div>
+
+    <div v-if="rightBox" @click.stop="" :style="{left: rightBoxLeft,top: rightBoxTop}" class="popBox">
+        <div class="apple-card">
+            <div class="tools">
+                <div class="circle" @click.stop="rightBox = false">
+                    <span class="red box"></span>
+                </div>
+                <div class="circle">
+                    <span class="yellow box"></span>
+                </div>
+                <div class="circle">
+                    <span class="green box"></span>
+                </div>
+            </div>
+            <div class="card-content">
+                <div>
+                    搴撲綅鍙�: {{ map[mapI][mapJ].locNo }}
+                </div>
+                <div style="margin-top: 10px;">
+                    搴撲綅鐘舵��: {{ map[mapI][mapJ].locSts$ }}
+                </div>
+                <div style="margin-top: 10px;display: flex;justify-content: space-between;flex-wrap: wrap;">
+                    <div style="margin-top: 5px;">
+                        <button class="layui-btn layui-btn-sm" @click="openLocDetail(map[mapI][mapJ].locNo)">搴撲綅璇︽儏</button>
+                    </div>
+                    <div style="margin-top: 5px;">
+                        <button v-if="map[mapI][mapJ].locSts == 'F'" class="layui-btn layui-btn-sm" @click="locMove(map[mapI][mapJ].locNo)">搴撲綅绉昏浆</button>
+                        <button v-else-if="map[mapI][mapJ].locSts == 'D'" class="layui-btn layui-btn-sm" @click="locMove(map[mapI][mapJ].locNo)">搴撲綅绉昏浆</button>
+                        <button v-else class="layui-btn layui-btn-sm layui-btn-disabled" disabled>搴撲綅绉昏浆</button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div v-if="crnBox" @click.stop="" :style="{left: crnBoxLeft,top: crnBoxTop}" class="popBox">
+        <div class="apple-card">
+            <div class="tools">
+                <div class="circle" @click.stop="crnBox = false">
+                    <span class="red box"></span>
+                </div>
+                <div class="circle">
+                    <span class="yellow box"></span>
+                </div>
+                <div class="circle">
+                    <span class="green box"></span>
+                </div>
+            </div>
+            <div class="card-content">
+                <div>鍫嗗灈鏈哄彿锛歿{crnList[crnBox - 1].crnNo}}</div>
+                <div>宸ヤ綔鍙凤細{{crnList[crnBox - 1].wrkNo}}</div>
+                <div>婧愬簱浣嶏細{{crnList[crnBox - 1].frmLocno}}</div>
+                <div>鐩爣搴撲綅锛歿{crnList[crnBox - 1].toLocno}}</div>
+                <div>鍙叆锛歿{crnList[crnBox - 1].inEnable}}</div>
+                <div>鍙嚭锛歿{crnList[crnBox - 1].outEnable}}</div>
+                <div>鐘舵�侊細{{crnList[crnBox - 1].crnSts$}}</div>
+                <div>寮傚父锛歿{crnList[crnBox - 1].crnErr$}}</div>
+            </div>
+        </div>
+    </div>
+
+</div>
+<script>
+
+    var $layui = layui.config({
+        base: baseUrl + "/static/layui/lay/modules/"
+    }).use(['layer','form'], function () {})
+
+    var app = new Vue({
+        el: '#app',
+        data: {
+            map: [],
+            mapData: "",
+            importData: null,
+            startPosition: "0500501",
+            endPosition: "0802501",
+            mapI: 0,
+            mapJ: 0,
+            rightBox: false,
+            rightBoxTop: "0px",
+            rightBoxLeft: "0px",
+            pointContainerWidth: 0,
+            currentLev: 1,
+            crnList: null,
+            crnBox: false,
+            crnBoxTop: "0px",
+            crnBoxLeft: "0px",
+            locOutStatus: false,
+            locOutLocNo: [],
+            searchMatnr: "",
+            searchOrderNo: "",
+            searchSpecs: "",
+            searchMaktx: "",
+            searchLocNo: "",
+            outSite: null,
+            outSites: null,
+        },
+        created(){
+            this.init()
+
+            this.getOutSite()
+
+            // setInterval((that) => {
+            //     //瀹氭椂鑾峰彇鍫嗗灈鏈烘暟鎹�
+            //     that.getCrnData()
+            // },1000,this)
+        },
+        watch: {
+            map: {
+                deep: true,
+                handler(val) {
+                    this.printData()
+                }
+            },
+            currentLev: {
+                deep: true,
+                handler(val) {
+                    this.init()
+                }
+            }
+        },
+        methods: {
+            init(){
+                let that = this
+                $.ajax({
+                    url: baseUrl + "/map/getData/" + this.currentLev + "/auth",
+                    headers: {'token': localStorage.getItem('token')},
+                    method: "get",
+                    success: (data) => {
+                        that.importDataClick(data)
+                    }
+                })
+
+                this.locOutStatus = false
+                this.locOutLocNo = []
+            },
+            printData() {
+                this.mapData = JSON.stringify(this.map)
+            },
+            importDataClick(mapData) {
+                let tmp = JSON.parse(mapData);
+                let data = []
+                tmp.forEach((item, index) => {
+                    let data2 = []
+                    item.forEach((val, idx) => {
+                        val.searchStatus = false//鎼滅储鏍囪
+                        data2.push(val)
+                    })
+                    this.pointContainerWidth = item.length * (40+1)
+                    data.push(data2)
+                })
+                this.map = data
+                this.printData()
+            },
+            rightEvent(x, y, e) {
+                this.rightBox = true
+                this.mapI = x
+                this.mapJ = y
+                this.rightBoxTop = e.y + "px"
+                this.rightBoxLeft = e.x + "px"
+            },
+            bgClick() {
+                this.rightBox = false
+                this.crnBox = false
+            },
+            openLocDetail(locNo) {
+                $layui.layer.open({
+                    type: 2,
+                    title: '搴撲綅鐗╂枡',
+                    maxmin: true,
+                    area: [top.detailWidth, top.detailHeight],
+                    shadeClose: true,
+                    content: '../report/locDetl.html?locNo=' + locNo,
+                    success: function(layero, index){
+                    }
+                });
+            },
+            locMove(locNo) {
+                //搴撲綅绉昏浆
+                let that = this
+                $.ajax({
+                    url: baseUrl + "/loc/move/start",
+                    headers: {'token': localStorage.getItem('token')},
+                    dataType: 'json',
+                    data: {
+                        sourceLocNo: locNo
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            $layui.layer.msg(res.msg);
+                            that.init()
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            $layui.layer.msg(res.msg);
+                        }
+                    }
+                })
+            },
+            getCrnData() {
+                //鑾峰彇鍫嗗灈鏈烘暟鎹�
+                let that = this
+                $.ajax({
+                    url: baseUrl + "/basCrnp/list/auth",
+                    headers: {'token': localStorage.getItem('token')},
+                    dataType: 'json',
+                    data: {},
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            let tmp = [];
+                            res.data.records.forEach((item,index) => {
+                                if (item.endLoc != null && item.endLoc != "") {
+                                    let locNo = item.endLoc
+                                    item.bay = parseInt(locNo.substr(2,3))
+                                    item.lev = parseInt(locNo.substr(5,2))
+                                }else {
+                                    item.bay = 0
+                                    item.lev = 1
+                                }
+                                //璁$畻绉诲姩璺緞
+                                item.left = item.bay * 41 - 80;
+                                item.sameLev = item.lev == that.currentLev ? true : false//鏄惁涓哄悓涓�灞�
+                                tmp[item.crnNo - 1] = item;
+                            })
+
+                            console.log(tmp)
+                            that.crnList = tmp;
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            $layui.layer.msg(res.msg);
+                        }
+                    }
+                })
+            },
+            clickCrnBox(e,crnNo) {
+                this.crnBox = crnNo
+                this.crnBoxTop = e.y + "px"
+                this.crnBoxLeft = e.x + "px"
+            },
+            locToLoc2(){
+                //渚ц竟鍏ュ簱
+                let that = this
+                $.ajax({
+                    url: baseUrl + "/loc/locToLoc2/start",
+                    headers: {'token': localStorage.getItem('token')},
+                    dataType: 'json',
+                    data: {},
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            $layui.layer.msg(res.msg);
+                            that.init()
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            $layui.layer.msg(res.msg);
+                        }
+                    }
+                })
+            },
+            locOut() {
+                //鍑哄簱
+                let that = this
+                let locOutLocNo = this.locOutLocNo
+                if (locOutLocNo.length == 0) {
+                    $layui.layer.msg("璇峰厛閫夋嫨搴撲綅");
+                    return;
+                }
+
+                let map = this.map
+                //宸烽亾list
+                let bayList = []
+                // 灏嗙敤鎴烽�夊畾鐨勫簱浣嶉�氳繃宸烽亾杩涜鍒嗙粍
+                locOutLocNo.forEach((item,index) => {
+                    let obj = {
+                        x: item.x,
+                        y: item.y,
+                        locNo: map[item.x][item.y].locNo
+                    }
+
+                    if (bayList[item.y] == undefined) {
+                        bayList[item.y] = [obj]
+                    }else {
+                        bayList[item.y].push(obj)
+                    }
+                })
+
+                //杩涜鎺掑簭
+                bayList.forEach((item,index) => {
+                    for (var i = 0; i < item.length; i++) {
+                        for (var j = i+1; j < item.length; j++) {
+                            if (item[i].x > item[j].x) {
+                                //浜ゆ崲
+                                let tmp = item[j];
+                                item[j] = item[i]
+                                item[i] = tmp
+                            }
+                        }
+                    }
+                })
+
+                // let result = true;//鏈�缁堢粨鏋�
+                // //妫�娴嬪簱浣嶆槸鍚︾己灏戦�夋嫨瀵艰嚧涓嶅畬鏁�
+                // bayList.forEach((item,index) => {
+                //     //鎼滅储褰撳墠宸烽亾鏈夋晥鍦ㄥ簱list
+                //     //涓婂崐閮ㄥ垎锛屽贩閬�
+                //     let topList = []
+                //     for (var i = 8; i >= 3; i--) {
+                //         let obj = {
+                //             x: i,
+                //             y: index,
+                //             status: false,
+                //             locNo: map[i][index].locNo
+                //         }
+                //
+                //         if (map[i][index].locSts == 'F') {
+                //             //鍦ㄥ簱鐘舵�侊紝瀛樺叆宸烽亾鍦ㄥ簱list
+                //             topList.push(obj)
+                //         }
+                //     }
+                //
+                //     //涓嬪崐閮ㄥ垎锛屽贩閬�
+                //     let bottomList = []
+                //     for (var i = 9; i < 14; i++) {
+                //         let obj = {
+                //             x: i,
+                //             y: index,
+                //             status: false,
+                //             locNo: map[i][index].locNo
+                //         }
+                //
+                //         if (map[i][index].locSts == 'F') {
+                //             //鍦ㄥ簱鐘舵�侊紝瀛樺叆宸烽亾鍦ㄥ簱list
+                //             bottomList.push(obj)
+                //         }
+                //     }
+                //
+                //     // if (topList.length == 0 && bottomList.length == 0) {
+                //     //     result = false;
+                //     // }
+                //
+                //     for (var i = 0; i < item.length; i++) {
+                //         if (item[i].x > 8) {
+                //             //涓嬪崐閮ㄥ垎鏁版嵁
+                //             let index = this.searchDataIndex(item[i],bottomList)
+                //             // console.log(item[i],bottomList,index)
+                //             if (index == -1) {
+                //                 continue
+                //             }
+                //             bottomList[index].status = true
+                //         }else {
+                //             //涓婂崐閮ㄥ垎鏁版嵁
+                //             let index = this.searchDataIndex(item[i],topList)
+                //             // console.log(item[i],topList,index)
+                //             if (index == -1) {
+                //                 continue
+                //             }
+                //             topList[index].status = true
+                //         }
+                //
+                //     }
+                //
+                //     let tmp1 = []
+                //     let tmp2 = []
+                //     for (var i = item.length - 1; i >= 0; i--) {
+                //         if (item[i].x < 9) {
+                //             tmp1.push(item[i]);
+                //         }
+                //     }
+                //     for (var i = 0; i < item.length; i++) {
+                //         if (item[i].x > 8) {
+                //             tmp2.push(item[i]);
+                //         }
+                //     }
+                //
+                //     if (tmp1.length > 0) {
+                //         //鍒ゆ柇涓婂崐閮ㄥ垎鍑哄簱鏄惁閫夋嫨瀹屾暣
+                //         let topIndex = this.searchDataIndex(tmp1[0],topList);
+                //         if (topIndex != -1) {
+                //             for (var i = topIndex; i < topList.length; i++) {
+                //                 if (topList[i].status != true) {
+                //                     result = false;
+                //                 }
+                //             }
+                //         }
+                //     }
+                //
+                //     if (tmp2.length > 0) {
+                //         //鍒ゆ柇涓嬪崐閮ㄥ垎鍑哄簱鏄惁閫夋嫨瀹屾暣
+                //         let bottomIndex = this.searchDataIndex(tmp2[0],bottomList)
+                //         if (bottomIndex != -1) {
+                //             for (var i = bottomIndex; i < bottomList.length; i++) {
+                //                 if (bottomList[i].status != true) {
+                //                     result = false;
+                //                 }
+                //             }
+                //             console.log(tmp2[0],bottomList,bottomIndex)
+                //         }
+                //     }
+                // })
+                //
+                // if (!result) {
+                //     $layui.layer.msg("鍑哄簱璺緞閫夋嫨鏈夎");
+                //     return;
+                // }
+
+                //鍑嗗鍑哄簱
+                if (this.outSite == null) {
+                    $layui.layer.msg("璇烽�夋嫨鍑哄簱绔欑偣");
+                    return;
+                }
+
+                let locNos = []
+                bayList.forEach((item,index) => {
+                    item.forEach((val,idx) => {
+                        locNos.push(val.locNo)
+                    })
+                })
+
+                let locDetls = []
+                $.ajax({
+                    url: baseUrl+"/locDetl/auth",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: {locNos:locNos},
+                    method: 'POST',
+                    async: false,
+                    success: function (res) {
+                        if (res.code === 200) {
+                            locDetls = res.data
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            layer.msg(res.msg)
+                        }
+                    }
+                })
+
+                locDetls.forEach((item,index) => {
+                    item.count = item.anfme
+                })
+
+                $.ajax({
+                    url: baseUrl + "/plate/out/start",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: JSON.stringify({
+                        outSite: this.outSite,
+                        locDetls: locDetls
+                    }),
+                    contentType:'application/json;charset=UTF-8',
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200){
+                            $layui.layer.msg(res.msg);
+                            that.init()
+                        } else if (res.code === 403){
+                            top.location.href = baseUrl+"/";
+                        } else {
+                            $layui.layer.msg(res.msg)
+                        }
+                    }
+                });
+            },
+            searchDataIndex(data,dist) {
+                //鎼滅储璧峰鐐�
+                let searchStartPoint = -1;
+                dist.forEach((val,idx) => {
+                    if (val.x == data.x && val.y == data.y) {
+                        //鎵惧埌鐐逛綅
+                        searchStartPoint = idx
+                    }
+                })
+                return searchStartPoint;
+            },
+            selectLoc(x, y) {
+                //閫夋嫨搴撲綅
+                if (this.locOutStatus) {
+                    let tmp = this.map
+                    let selected = tmp[x][y].locOutSelected ? 0 : 1
+                    tmp[x][y].locOutSelected = selected
+
+                    if (selected) {
+                        this.locOutLocNo.push({
+                            x: x,
+                            y: y
+                        });
+                    }else {
+                        //鍓旈櫎鎺変笉閫夋嫨鍏冪礌
+                        let locOutLocNo = this.locOutLocNo
+                        let tmp = []
+                        locOutLocNo.forEach((item,index) => {
+                            if (item.x !== x || item.y !== y) {
+                                tmp.push(item)
+                            }
+                        })
+                        this.locOutLocNo = tmp
+                    }
+
+                    this.map = tmp
+                    this.$forceUpdate()
+                }
+            },
+            cancelSelectLoc() {
+                //鍙栨秷閫夋嫨搴撲綅
+                let data = this.locOutLocNo
+                let tmp = this.map
+                data.forEach((item,index) => {
+                    tmp[item.x][item.y].locOutSelected = 0;
+                })
+                this.locOutLocNo = []
+                this.map = tmp
+                this.locOutStatus = false
+            },
+            searchLoc() {
+                //閫氳繃鐗╂枡缂栧彿鎼滅储搴撲綅鍙�
+                // if (this.searchValue == "") {
+                //     $layui.layer.msg("璇疯緭鍏ョ墿鏂欑紪鍙锋垨璁㈠崟鍙�");
+                //     return;
+                // }
+
+                let that = this;
+                $.ajax({
+                    url: baseUrl + "/map/searchData/auth",
+                    headers: {'token': localStorage.getItem('token')},
+                    dataType: 'json',
+                    data: {
+                        lev: this.currentLev,
+                        locNo: this.searchLocNo,
+                        orderNo: this.searchOrderNo,
+                        specs: this.searchSpecs,
+                        matnr: this.searchMatnr,
+                        maktx: this.searchMaktx
+                    },
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            let tmp = that.map
+                            let data = res.data
+                            tmp.forEach((item,index) => {//娓呯┖涔嬪墠鐨勬悳绱㈢粨鏋�
+                                item.forEach((val,idx) => {
+                                    if (tmp[index][idx].searchStatus != undefined) {
+                                        tmp[index][idx].searchStatus = false;//鎼滅储鏍囪
+                                    }
+
+                                })
+                            })
+
+                            tmp.forEach((item,index) => {//娓呯┖涔嬪墠鐨勬悳绱㈢粨鏋�
+                                item.forEach((val,idx) => {
+                                    if (tmp[index][idx].searchStatus != undefined) {
+                                        tmp[index][idx].searchStatus = false;//鎼滅储鏍囪
+                                    }
+
+                                })
+                            })
+                            data.forEach((item,index) => {
+                                let locNo = item.locNo
+                                let y = parseInt(locNo.substr(2,3))
+                                let x = parseInt(locNo.substr(0,2))
+                                if (x >= 2 && x <= 12) {
+                                    x += 1;
+                                }else if (x == 13) {
+                                    x += 2;
+                                }
+
+                                tmp[x][y].searchStatus = true//鎼滅储鏍囪
+                            })
+                            that.map = tmp
+                            $layui.layer.msg("鎼滅储鎴愬姛");
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            $layui.layer.msg(res.msg);
+                        }
+                    }
+                })
+            },
+            getOutSite() {
+                let that = this
+                $.ajax({
+                    url: baseUrl + "/available/take/site",
+                    headers: {'token': localStorage.getItem('token')},
+                    dataType: 'json',
+                    data: {},
+                    method: 'POST',
+                    success: function (res) {
+                        if (res.code === 200) {
+                            that.outSites = res.data
+                            that.outSite = res.data[0].siteId
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            $layui.layer.msg(res.msg);
+                        }
+                    }
+                })
+            },
+        }
+    })
+
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/home/map_edit.html b/src/main/webapp/views/home/map_edit.html
new file mode 100644
index 0000000..d5497b3
--- /dev/null
+++ b/src/main/webapp/views/home/map_edit.html
@@ -0,0 +1,368 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>搴撲綅鍦板浘缂栬緫</title>
+    <script type="text/javascript" src="../../static/js/vue.min.js"></script>
+    <style>
+        .pointContainer {
+            display: flex;
+            justify-content: center;
+            margin-top: 1px;
+        }
+
+        .pointBox {
+            background: #bababa;
+            width: 30px;
+            height: 30px;
+            margin-right: 1px;
+        }
+
+        .pointBoxGreen {
+            background: #00ff7f !important;
+        }
+
+        .pointBoxBlue {
+            background: #55aaff !important;
+        }
+
+        .pointBoxRed {
+            background: #ff0000 !important;
+        }
+
+        .pointBoxStart {
+            background: #ffaa00 !important;
+        }
+
+        .pointBoxEnd {
+            background: #ff55ff !important;
+        }
+
+        .pointBoxStation {
+            background: #ffff00 !important;
+        }
+
+        .chargeStation {
+            background: #ffaa7f !important;
+        }
+    </style>
+</head>
+<body>
+<div id="app" style="display: flex;justify-content: flex-start;" @click="bgClick()">
+    <div style="margin-right: 100px;">
+        <div>Col:<input type="text" v-model="col" /></div>
+        <div>Row:<input type="text" v-model="row" /></div>
+        <div>
+            <button @click="generate">鐢熸垚鏁版嵁</button>
+            <button @click="printData">鏄剧ず鏁版嵁</button>
+        </div>
+        <div>
+            <div>
+                绂佹鍖哄煙锛�
+                <div class="pointBox"></div>
+            </div>
+            <div>
+                搴撲綅锛�
+                <div class="pointBox pointBoxBlue"></div>
+            </div>
+            <div>
+                鍫嗗灈鏈猴細
+                <div class="pointBox pointBoxGreen"></div>
+            </div>
+            <div>
+                杞ㄨ抗锛�
+                <div class="pointBox pointBoxRed"></div>
+            </div>
+            <div>
+                绔欑偣锛�
+                <div class="pointBox pointBoxStation"></div>
+            </div>
+            <div>
+                鍏呯數妗╋細
+                <div class="pointBox chargeStation"></div>
+            </div>
+        </div>
+        <div>
+            <div>璧风偣锛�<input type="text" v-model="startPosition"></div>
+            <div>缁堢偣锛�<input type="text" v-model="endPosition"></div>
+            <div><button @click="calcPath">璁$畻璺緞</button></div>
+        </div>
+        <div>
+            <textarea v-model="importData"></textarea>
+            <button @click="importDataClick">瀵煎叆鏁版嵁</button>
+        </div>
+    </div>
+
+    <div>
+        <div class="pointContainer" v-for="(x,index) in map" :key="index">
+            <div v-for="(y,ind) in x" :key="ind">
+                <div v-if="map[index][ind].value < 0" class="pointBox"
+                     @contextmenu.prevent="rightEvent(index,ind,$event)" @click.left="switchBox(index,ind)"></div>
+                <div v-else-if="map[index][ind].value  == 0" class="pointBox pointBoxBlue"
+                     @contextmenu.prevent="rightEvent(index,ind,$event)" @click="switchBox(index,ind)"></div>
+                <div v-else-if="map[index][ind].value  == 3" class="pointBox pointBoxGreen"
+                     @contextmenu.prevent="rightEvent(index,ind,$event)" @click="switchBox(index,ind)"></div>
+                <div v-else-if="map[index][ind].value  == 4" class="pointBox pointBoxStation"
+                     @contextmenu.prevent="rightEvent(index,ind,$event)" @click="switchBox(index,ind)"></div>
+                <div v-else-if="map[index][ind].value  == 5" class="pointBox chargeStation"
+                     @contextmenu.prevent="rightEvent(index,ind,$event)" @click="switchBox(index,ind)"></div>
+                <div v-else-if="map[index][ind].value  == 9" class="pointBox pointBoxRed"
+                     @contextmenu.prevent="rightEvent(index,ind,$event)" @click="switchBox(index,ind)"></div>
+                <div v-else-if="map[index][ind].value  == 10" class="pointBox pointBoxStart"
+                     @contextmenu.prevent="rightEvent(index,ind,$event)" @click="switchBox(index,ind)"></div>
+                <div v-else-if="map[index][ind].value  == 11" class="pointBox pointBoxEnd"
+                     @contextmenu.prevent="rightEvent(index,ind,$event)" @click="switchBox(index,ind)"></div>
+            </div>
+        </div>
+    </div>
+
+    <div>
+        {{ mapData }}
+    </div>
+
+    <div v-if="rightBox" @click.stop="" :style="{left: rightBoxLeft,top: rightBoxTop}"
+         style="position: absolute;height: 270px;width: 200px;background-color: antiquewhite;padding: 10px;">
+        <div>
+            value:
+            <div style="display: flex;justify-content: space-between;">
+                <div @click="map[mapI][mapJ].value = -1" class="pointBox"></div>
+                <div @click="map[mapI][mapJ].value = 0" class="pointBox pointBoxBlue"></div>
+                <div @click="map[mapI][mapJ].value = 3" class="pointBox pointBoxGreen"></div>
+                <div @click="map[mapI][mapJ].value = 4" class="pointBox pointBoxStation"></div>
+                <div @click="map[mapI][mapJ].value = 5" class="pointBox chargeStation"></div>
+            </div>
+        </div>
+        <div>
+            data: <input type="text" v-model="map[mapI][mapJ].data">
+        </div>
+        <div>
+            top: <input type="text" v-model="map[mapI][mapJ].top">
+        </div>
+        <div>
+            bottom: <input type="text" v-model="map[mapI][mapJ].bottom">
+        </div>
+        <div>
+            left: <input type="text" v-model="map[mapI][mapJ].left">
+        </div>
+        <div>
+            right: <input type="text" v-model="map[mapI][mapJ].right">
+        </div>
+    </div>
+</div>
+<script>
+    var app = new Vue({
+        el: '#app',
+        data: {
+            map: [],
+            col: 25,
+            row: 15,
+            mapData: "",
+            importData: null,
+            startPosition: "0500501",
+            endPosition: "0802501",
+            mapI: 0,
+            mapJ: 0,
+            rightBox: false,
+            rightBoxTop: "0px",
+            rightBoxLeft: "0px"
+        },
+        watch: {
+            map: {
+                deep: true,
+                handler(val) {
+                    this.printData()
+                }
+            }
+        },
+        methods: {
+            generate() {
+                let tmp = []
+                //瀹為檯鍖哄煙澧炲姞涓よ涓ゅ垪绂佸尯
+                let rowR = Number(this.row) + Number(2)
+                let colR = Number(this.col) + Number(2)
+                console.log(rowR, colR)
+                for (var i = 0; i < rowR; i++) {
+                    let x = []
+                    for (var j = 0; j < colR; j++) {
+                        if (i == 0 || i == rowR - 1) {
+                            // x.push(-1)
+                            x.push({
+                                value: -1,
+                                data: '',
+                                top: 1000,
+                                bottom: 1000,
+                                left: 1000,
+                                right: 1000,
+                                x: i,
+                                y: j
+                            })
+                            continue
+                        }
+
+                        if (j == 0) {
+                            // x.push(-1)
+                            x.push({
+                                value: -1,
+                                data: '',
+                                top: 1000,
+                                bottom: 1000,
+                                left: 1000,
+                                right: 1000,
+                                x: i,
+                                y: j
+                            })
+                            continue
+                        }
+
+                        if (j == colR - 1) {
+                            let calc = (this.row - i + 1) * -1
+                            // x.push(calc == 0 ? -1 : calc)
+                            x.push({
+                                value: calc == 0 ? -1 : calc,
+                                data: '',
+                                top: 1000,
+                                bottom: 1000,
+                                left: 1000,
+                                right: 1000,
+                                x: i,
+                                y: j
+                            })
+                            continue
+                        }
+                        // x.push(0)
+                        x.push({
+                            value: 0,
+                            data: '',
+                            top: 1000,
+                            bottom: 1000,
+                            left: 1000,
+                            right: 1000,
+                            x: i,
+                            y: j
+                        })
+                    }
+                    tmp.push(x)
+                }
+
+                this.map = tmp
+                this.printData()
+            },
+            switchBox(x, y) {
+                let tmp = this.map
+                console.log(x, y, tmp[x][y])
+                switch (tmp[x][y].value) {
+                    case -1:
+                        tmp[x][y].value = 0
+                        break;
+                    case 0:
+                        tmp[x][y].value = 3
+                        break;
+                    case 3:
+                        tmp[x][y].value = 4
+                        break;
+                    case 4:
+                        tmp[x][y].value = 5
+                        break;
+                    case 5:
+                        tmp[x][y].value = -1
+                        break;
+                    default:
+                        tmp[x][y].value = -1
+                }
+                this.map = tmp
+                this.$forceUpdate()
+                this.printData()
+                this.rightBox = false
+            },
+            printData() {
+                // let tmp = this.map
+                // let data = []
+                // tmp.forEach((item,index) => {
+                //  let data2 = []
+                //  item.forEach((val,idx) => {
+                //   let valJson = {
+                //       value: val,
+                //       data: '',
+                //       top: '',
+                //       bottom: '',
+                //       left: '',
+                //       right: ''
+                //   }
+                //   data2.push(valJson)
+                //  })
+                //  data.push(data2)
+                // })
+
+                // this.mapData = JSON.stringify(data)
+                this.mapData = JSON.stringify(this.map)
+            },
+            importDataClick() {
+                let tmp = JSON.parse(this.importData);
+                let data = []
+                tmp.forEach((item, index) => {
+                    let data2 = []
+                    item.forEach((val, idx) => {
+                        let json = {
+                            value: val.value,
+                            data: val.data,
+                            top: val.top == null ? 1000: val.top,
+                            bottom: val.bottom == null ? 1000:val.bottom,
+                            left: val.left == null ? 1000:val.left,
+                            right: val.right == null ? 1000:val.right
+                        }
+                        data2.push(json)
+                    })
+                    data.push(data2)
+                })
+                this.map = data
+                this.printData()
+            },
+            calcPath() {
+                let that = this
+                let param = new URLSearchParams()
+                param.append('startPosition', this.startPosition)
+                param.append('endPosition', this.endPosition)
+                param.append('map', JSON.stringify(this.map))
+                this.$axios({
+                    method: "post",
+                    url: "http://127.0.0.1:8081/calc",
+                    data: param
+                }).then((res) => {
+                    let data = res.data
+                    let tmp = that.map
+                    console.log(data)
+                    data.forEach((item, index) => {
+                        let x = item.x
+                        let y = item.y
+                        tmp[x][y] = 9
+
+                        if (index == 0) {
+                            tmp[x][y] = 10
+                        }
+
+                        if (index == data.length - 1) {
+                            tmp[x][y] = 11
+                        }
+                        that.map = tmp
+                    })
+                    this.$forceUpdate()
+                    this.printData()
+                }).catch((error) => {
+                    console.log(error)
+                })
+            },
+            rightEvent(x, y, e) {
+                this.rightBox = true
+                this.mapI = x
+                this.mapJ = y
+                this.rightBoxTop = e.y + "px"
+                this.rightBoxLeft = e.x + "px"
+            },
+            bgClick() {
+                this.rightBox = false
+            }
+        }
+    })
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/home/navigation.html b/src/main/webapp/views/home/navigation.html
new file mode 100644
index 0000000..64ce2a6
--- /dev/null
+++ b/src/main/webapp/views/home/navigation.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>浠撳偍绠$悊绯荤粺</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, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/css/road.css">
+
+    <style media="screen">
+        *{
+            -webkit-box-sizing: border-box;
+            -moz-box-sizing: border-box;
+            box-sizing: border-box;
+            margin: 0;
+            padding: 0;
+            font-family: 寰蒋闆呴粦;
+            letter-spacing: 1px;
+        }
+        body{
+            background: url(../../static/image/nav/bg_1.png);
+            background-size: cover;
+        }
+        .fn_1{
+            width: 250px; height: 220px;
+            background: url(../../static/image/nav/fn_1.png);
+            background-size: cover;
+        }
+        .fn_1:hover{
+            background: url(../../static/image/nav/fn_1_h.png);
+            background-size: cover;
+        }
+
+        .fn_2{
+            width: 250px; height: 220px;
+            background: url(../../static/image/nav/fn_2.png);
+            background-size: cover;
+        }
+        .fn_2:hover{
+            background: url(../../static/image/nav/fn_2_h.png);
+            background-size: cover;
+        }
+        .fn_3{
+            width: 250px; height: 220px;
+            background: url(../../static/image/nav/fn_3.png);
+            background-size: cover;
+        }
+        .fn_3:hover{
+            background: url(../../static/image/nav/fn_3_h.png);
+            background-size: cover;
+        }
+
+        .sci-wheel{
+            position: absolute;
+            top: 0;
+            right: 0;
+            width: 100px;
+        }
+
+        .header{
+            width: 100%; height: 100px; line-height: 100px;
+            padding: 0 40px;
+            background:rgba(0,0,0,0.3);
+        }
+        .header img{
+            float: left;
+            margin: 10px 10px;
+            width: 100px;
+        }
+        .header p{
+            float: left;
+            font-size: 30px; color: white;
+            letter-spacing: 3px;
+        }
+        .header .home-btn {
+            float: left;
+            margin-top: 20px;
+            width: 74px;
+            height: 74px;
+            border: 1px solid #102262;
+            border-radius: 5px;
+            background: url(../../static/image/nav/icon.png) no-repeat center center;
+            background-size: 45% 45%;
+            cursor: pointer;
+        }
+        .center{
+            position: absolute;
+            top: 0; bottom: 0; left: 0; right: 0;
+            margin: auto;
+            width: 930px; height: 250px;
+            /* bottom: 300px; */
+        }
+        .center .list{
+            display: block;
+            float: left;
+            margin: 0 30px;
+            cursor: pointer;
+        }
+        .center .list p{
+            text-align: center;
+            color: #00BAF1;
+            font-size: 18px;
+            margin-top: 240px;
+        }
+        /* .center .list img{
+          width: 250px;
+          margin: 0 30px;
+        } */
+    </style>
+
+</head>
+<body>
+
+<div class="header">
+    <p style="margin-left:20px">璇烽�夋嫨鎮ㄨ浣跨敤鐨勬ā鍧�</p>
+</div>
+
+<div class="center">
+    <a class="list fn_1 moveUpDownFla1" ew-href="order/order.html?resourceId=40517">
+        <p>鍗曟嵁绠$悊</p>
+    </a>
+    <a class="list fn_2 moveUpDownFla2" ew-href="wrkMast/wrkMast.html?resourceId=214">
+        <p>杩愯浠诲姟</p>
+    </a>
+    <a class="list fn_3 moveUpDownFla1" ew-href="stoMan/stoQue.html?resourceId=10276">
+        <p>搴撳瓨鏄庣粏</p>
+    </a>
+</div>
+
+</body>
+<script type="text/javascript" src="../../static/js/common.js"></script>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js"></script>
+<script>
+    layui.config({
+        base: baseUrl + "/static/layui/lay/modules/"
+    }).use(['layer', 'element', 'admin'], function () {
+        var element = layui.element;
+        var $ = layui.jquery;
+        var layer = layui.layer;
+        var admin = layui.admin;
+    })
+</script>
+</html>
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 6b47357..6d576f4 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -1,48 +1,179 @@
 <!DOCTYPE html>
-<html>
+<html lang="en">
 <head>
-    <meta charset="utf-8">
-    <title>鑷姩浠撳簱WCS绯荤粺</title>
-    <link rel="stylesheet" href="../static/css/index.css">
-    <script src="../static/js/jquery/jquery-3.3.1.min.js"></script>
+  <meta charset="utf-8">
+  <title>娴欐睙涓壃 - 鑷姩鍖栫珛浣撲粨搴� - AS / RS</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="../static/layui/css/layui.css" media="all">
+  <link rel="stylesheet" href="../static/css/admin.css?v=318" media="all">
+  <link rel="stylesheet" href="../static/css/loader.css" media="all">
+  <style>
+    .layui-logo img {
+      width: 25px;
+    }
+    .layui-logo cite {
+      font-size: 18px;
+      font-weight: 400;
+      /*margin-left: 5px;*/
+    }
+  </style>
 </head>
-<body>
-<!-- 瀵艰埅鏍� -->
-<!--		<div class="nav">-->
-<!--			<li class="right">娉ㄩ攢<a id="about" class="nav-unselect" onclick="logout()" href="#"></a></li>-->
-<!--		</div>-->
-<div class="sidebar">
-    <div class="nav">
-        <ul class="cl-effect-4">
-            <li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">涓绘帶鍥�</a></li>
-            <li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">杈撻�佽澶�</a></li>
-            <li><a id="crn" onclick="nav(this.id)" class="nav-unselect" href="#">鍫嗗灈鏈�</a></li>
-        </ul>
+<body class="layui-layout-body">
+<div class="layui-layout layui-layout-admin">
+  <!-- 澶撮儴 -->
+  <div class="layui-header">
+    <div class="layui-logo">
+      <img src="../static/image/logo.png" style="display: inline-block; width: 60%;height: auto">
+      <!--          <span style="margin-top: 0; letter-spacing: 10px">涓壃绔嬪簱</span>-->
+      <!--          <img src="../static/image/logo.svg"/>-->
+      <!--          <cite>涓壃 - Zoneyung</cite>-->
     </div>
+
+    <ul class="layui-nav layui-layout-left">
+      <li class="layui-nav-item" lay-unselect>
+        <a ew-event="flexible" title="渚ц竟浼哥缉"><i class="layui-icon layui-icon-shrink-right"></i></a>
+      </li>
+      <li class="layui-nav-item" lay-unselect>
+        <a ew-event="refresh" title="鍒锋柊"><i class="layui-icon layui-icon-refresh-3"></i></a>
+      </li>
+    </ul>
+    <ul class="layui-nav layui-layout-right">
+      <li class="layui-nav-item" lay-unselect>
+        <a ew-event="note" title="渚跨"><i class="layui-icon layui-icon-note"></i></a>
+      </li>
+      <li class="layui-nav-item layui-hide-xs" lay-unselect>
+        <a ew-event="fullScreen" title="鍏ㄥ睆"><i class="layui-icon layui-icon-screen-full"></i></a>
+      </li>
+      <li class="layui-nav-item" lay-unselect>
+        <a>
+          <cite id="username" style="margin-right: 5px">绠$悊鍛�</cite>
+        </a>
+        <dl class="layui-nav-child">
+          <dd lay-unselect><a ew-href="detail.html?resourceId=8">鍩烘湰璧勬枡</a></dd>
+          <hr>
+          <dd lay-unselect><a id="logout">閫�鍑�</a></dd>
+        </dl>
+      </li>
+      <li class="layui-nav-item" lay-unselect>
+        <a ew-event="theme" title="涓婚"><i class="layui-icon layui-icon-more-vertical"></i></a>
+      </li>
+    </ul>
+  </div>
+
+  <!-- 渚ц竟鏍� -->
+  <div class="layui-side">
+    <div class="layui-side-scroll">
+      <ul id="menu-main" class="layui-nav layui-nav-tree arrow2" lay-filter="admin-side-nav" lay-shrink="_all">
+      </ul>
+    </div>
+  </div>
+
+  <!-- 涓讳綋閮ㄥ垎 -->
+  <div class="layui-body"></div>
+  <!-- 搴曢儴 -->
+  <div class="layui-footer layui-text">
+    copyright 漏 2023 娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙� all rights reserved.
+    <span class="pull-right">Version 1.0.0</span>
+  </div>
+
 </div>
-<!--<div style="z-index: 999; position: absolute; top: 250px; left: 900px; width: 200px; height: 200px; opacity: 0.5;background-color: #0000FF">-->
 
-<!--</div>-->
-<!-- 涓讳綋鍐呭 -->
-<iframe id="content" src="console.html"></iframe>
-<footer class="footer">
-    Copyright 漏 2015 All Rights Reserved. <a href="http://www.zoneyung.com" target="_blank">娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙�</a>  淇濈暀鎵�鏈夋潈鍒�
-</footer>
-</body>
+<!--鍒濆鍖栧姞杞藉眰-->
+<div class="layuimini-loader">
+  <div class="layuimini-loader-inner"></div>
+</div>
+
+<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../static/layui/layui.js"></script>
+<script type="text/javascript" src="../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../static/js/common.js"></script>
 <script>
-    // 瀵艰埅鏍�
-    function nav(id) {
-        $('.nav-select').attr("class", "nav-unselect");
-        $('#'+id).attr("class", "nav-select");
-        $('#content').attr("src", id+".html");
+  console.log('%c 涓壃绔嬪簱骞冲彴 %c 1.0.0','background-color:rgb(53,73,94);color: #fff;border-radius:2px 0 0 2px;padding:2px 4px;','background-color:rgb(25,190,107);color: #fff;border-radius:0 2px 2px 0;padding:2px 4px;font: 9pt "Apercu Regular", Georgia, "Times New Roman", Times, serif;');
+  $(function () {
+    if ("" === localStorage.getItem('token')) {
+      top.location.href = baseUrl + "/login";
+    }
+  });
+
+  layui.config({
+    base: baseUrl + "/static/layui/lay/modules/"
+  }).extend({
+    notice: 'notice/notice',
+  }).use(['index', 'element', 'layer', 'admin', 'notice'], function () {
+    var $ = layui.jquery;
+    var index = layui.index;
+    var element = layui.element;
+    var layer = layui.layer;
+    var admin = layui.admin;
+    var notice = layui.notice;
+
+    var easywebIframeMsg = localStorage.getItem("easyweb-iframe");
+    if (!isEmpty(easywebIframeMsg)) {
+      var easywebIframeObj = JSON.parse(easywebIframeMsg);
+      if (easywebIframeObj.defaultTheme === undefined) {
+        admin.changeTheme("theme-colorful");
+      }
     }
 
-    function logout() {
-        localStorage.removeItem("token");
-        window.location.href = baseUrl + "/login";
-    }
+    $.ajax({
+      url: baseUrl + "/menu/auth",
+      headers: {'token': localStorage.getItem('token')},
+      method: 'POST',
+      // async: false,
+      success: function (res) {
+        // 鍏抽棴鍔犺浇鍔ㄧ敾
+        $('.layuimini-loader').fadeOut();
+        if (res.code === 200) {
+          var tpl = $('#menuTpl').html();
+          var template = Handlebars.compile(tpl);
+          var html = template(res);
+          $("#menu-main").html(html);
+          element.init();
+        } else if (res.code === 403) {
+          top.location.href = baseUrl + "/login";
+        } else {
+          layer.msg(res.msg, {icon: 2});
+        }
+      }
+    });
 
-    // 绯荤粺杩愯鐘舵��
-    var systemRunning = true;
+    // 榛樿鍔犺浇涓婚〉
+    index.loadHome({
+      menuPath: baseUrl+'/views/home/navigation.html',
+      menuName: '<i class="layui-icon layui-icon-home"></i>'
+    });
+
+    $('#username').text(localStorage.getItem('username'));
+
+    $(document).on('click','#logout', function () {
+      window.location.href = "login.html";
+      localStorage.removeItem('token');
+      localStorage.removeItem('username');
+      admin.closeAllTabs();
+    });
+
+    // 鏇挎崲閫�鍑烘寜閽彉閲�
+    var logout = document.getElementById('logout');
+    var url = logout.getAttribute('href');
+    logout.setAttribute('href', baseUrl + "/login");
+
+  });
 </script>
+<script type="text/html" id="menuTpl">
+  {{#each data}}
+  <li class="layui-nav-item">
+    <a><i class="layui-icon {{this.menuIcon}}"></i>&emsp;<cite>{{this.menu}}</cite></a>
+    <dl class="layui-nav-child">
+      {{#each this.subMenu}}
+      <dd><a lay-href="{{this.code}}?resourceId={{this.id}}">{{this.name}}</a></dd>
+      {{/each}}
+    </dl>
+  </li>
+  {{/each}}
+</script>
+</body>
 </html>
+
+

--
Gitblit v1.9.1