diff --git a/pom.xml b/pom.xml index 8cdce044..b1179e21 100644 --- a/pom.xml +++ b/pom.xml @@ -9,6 +9,7 @@ pom + sop-admin sop-registry sop-gateway sop-gateway-common diff --git a/sop-admin/pom.xml b/sop-admin/pom.xml new file mode 100644 index 00000000..bf55daf0 --- /dev/null +++ b/sop-admin/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + com.gitee.sop + sop-admin + 1.0.0-SNAPSHOT + pom + + + sop-admin-server + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/README.md b/sop-admin/sop-admin-front/README.md new file mode 100644 index 00000000..5efbdf4a --- /dev/null +++ b/sop-admin/sop-admin-front/README.md @@ -0,0 +1,2 @@ +# admin前端页面 + diff --git a/sop-admin/sop-admin-front/assets/css/font.css b/sop-admin/sop-admin-front/assets/css/font.css new file mode 100644 index 00000000..b83e5b4b --- /dev/null +++ b/sop-admin/sop-admin-front/assets/css/font.css @@ -0,0 +1,16 @@ +@font-face { + font-family: 'iconfont'; + src: url('../fonts/iconfont.eot'); + src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/iconfont.woff') format('woff'), + url('../fonts/iconfont.ttf') format('truetype'), + url('../fonts/iconfont.svg#iconfont') format('svg'); +} +.iconfont{ + font-family:"iconfont" !important; + font-size:16px;font-style:normal; + -webkit-font-smoothing: antialiased; + -webkit-text-stroke-width: 0.2px; + -moz-osx-font-smoothing: grayscale; +} + diff --git a/sop-admin/sop-admin-front/assets/css/xadmin.css b/sop-admin/sop-admin-front/assets/css/xadmin.css new file mode 100644 index 00000000..99260ead --- /dev/null +++ b/sop-admin/sop-admin-front/assets/css/xadmin.css @@ -0,0 +1,659 @@ +@charset "utf-8"; +@import url(../lib/layui/css/layui.css); +*{ + margin: 0px; + padding: 0px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +a{ + text-decoration: none; +} +html{ + width: 100%; + height: 100%; + overflow-x:hidden; + overflow-y:auto; +} +body{ + width: 100%; + min-height: 100%; +} +.login-bg{ + /*background: #eeeeee url() 0 0 no-repeat;*/ + background:url(../images/bg.png) no-repeat center; + background-size: cover; + overflow: hidden; +} +.login{ + margin: 120px auto 0 auto; + min-height: 420px; + max-width: 420px; + padding: 40px; + background-color: #ffffff; + margin-left: auto; + margin-right: auto; + border-radius: 4px; + /* overflow-x: hidden; */ + box-sizing: border-box; +} +.login a.logo{ + display: block; + height: 58px; + width: 167px; + margin: 0 auto 30px auto; + background-size: 167px 42px; +} +.login .message { + margin: 10px 0 0 -58px; + padding: 18px 10px 18px 60px; + background: #189F92; + position: relative; + color: #fff; + font-size: 16px; +} +.login #darkbannerwrap { + background: url(../images/aiwrap.png); + width: 18px; + height: 10px; + margin: 0 0 20px -58px; + position: relative; +} + +.login input[type=text], +.login input[type=file], +.login input[type=password], +.login input[type=email], select { + border: 1px solid #DCDEE0; + vertical-align: middle; + border-radius: 3px; + height: 50px; + padding: 0px 16px; + font-size: 14px; + color: #555555; + outline:none; + width:100%; + box-sizing: border-box; +} +.login input[type=text]:focus, +.login input[type=file]:focus, +.login input[type=password]:focus, +.login input[type=email]:focus, select:focus { + border: 1px solid #27A9E3; +} +.login input[type=submit], +.login input[type=button]{ + display: inline-block; + vertical-align: middle; + padding: 12px 24px; + margin: 0px; + font-size: 18px; + line-height: 24px; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + color: #ffffff; + background-color: #189F92; + border-radius: 3px; + border: none; + -webkit-appearance: none; + outline:none; + width:100%; +} +.login hr { + background: #fff url() 0 0 no-repeat; +} +.login hr.hr15 { + height: 15px; + border: none; + margin: 0px; + padding: 0px; + width: 100%; +} +.login hr.hr20 { + height: 20px; + border: none; + margin: 0px; + padding: 0px; + width: 100%; +} +.x-body{ + padding: 20px; +} +.x-nav{ + padding: 0 20px; + position: relative; + z-index: 99; + border-bottom: 1px solid #e5e5e5; + line-height: 39px; + height: 39px; + overflow: hidden; +} +xblock{ + display: block; + margin-bottom: 10px; + padding: 5px; + line-height: 22px; + /* border-left: 5px solid #009688; */ + border-radius: 0 2px 2px 0; + background-color: #f2f2f2; +} +.x-right{ + float: right; +} +.x-so{ + /*text-align: center;*/ + /*background: #f2f2f2 url() 0 0 no-repeat;*/ + margin-bottom: 20px; +} +.x-so input.layui-input{ + width: 150px; +} +.x-so .layui-form-label{ + display: inline-block; +} +.x-so input.layui-input,.x-so input.layui-btn{ + display: inline-block; +} +.x-red{ + color: red; +} +.x-a{ + color: #1AA093; +} +.x-a:hover{ + color: #127F74; +} +.x-sort{ + height: 30px; +} +.x-show{ + cursor: pointer; +} +.layui-form-switch{ + margin-top: 0px; +} +.layui-input:focus, .layui-textarea:focus { + border-color: #189f92!important; +} + +.page{ + margin-top: 20px; + text-align: center; + +} +.page a{ + display: inline-block; + background: #fff url() 0 0 no-repeat; + color: #888; + padding: 10px; + min-width: 15px; + border: 1px solid #E2E2E2; + +} +.page span{ + display: inline-block; + padding: 10px; + min-width: 15px; + border: 1px solid #E2E2E2; +} +.page span.current{ + display: inline-block; + background: #009688 url() 0 0 no-repeat; + color: #fff; + padding: 10px; + min-width: 15px; + border: 1px solid #009688; +} +.page .pagination li{ + display: inline-block; + margin-right: 5px; + text-align: center; +} +.page .pagination li.active span{ + background: #009688 url() 0 0 no-repeat; + color: #fff; + border: 1px solid #009688; + +} + +/*登录样式*/ +/*头部*/ +.container{ + width: 100%; + height: 45px; + background-color: #222; + border-bottom: 1px solid rgba(255, 255, 255, 0.2); +} +.container .logo a{ + float: left; + color: #fff; + font-size: 18px; + padding-left: 20px; + line-height: 45px; + width: 200px; +} +.container .right{ + background-color:rgba(0,0,0,0); + float: right; + +} +.container .left_open{ + height: 45px; + float: left; +} +.container .left_open i{ + display: block; + background: rgba(255,255,255,0.1) url() 0 0 no-repeat; + color: #fff; + width: 32px; + height: 32px; + line-height: 32px; + border-radius: 3px; + text-align: center; + margin-top: 7px; + cursor: pointer; +} +.container .left_open i:hover{ + background: rgba(255,255,255,0.3) url() 0 0 no-repeat; +} + +.container .left{ + background-color:rgba(0,0,0,0); + float: left; + +} +.container .layui-nav-item{ + line-height: 45px; +} +.container .layui-nav-more{ + top: 20px; +} +.container .layui-nav-child{ + top: 50px; +} +.container .layui-nav-child i{ + margin-right: 10px; +} +.layui-nav .layui-nav-item a{ + color: #fff; + cursor: pointer; +} +.layui-nav .layui-nav-child a{ + color: #333; + cursor: pointer; +} +.left-nav{ + position: absolute; + top: 46px; + bottom: 42px; + left: 0; + z-index: 2; + padding-top: 10px; + background-color: #EEEEEE; + width: 220px; + max-width: 220px; + overflow: auto; + overflow-x:hidden; + border-right: 1px solid #e5e5e5; + + /*width: 0px;*/ +} +.left-nav #nav li{ + border-bottom: 1px solid #e5e5e5; +} +.left-nav #nav li:hover > a{ + /*color: blue;*/ +} +.left-nav #nav .current{ + background-color: rgba(0, 0, 0, 0.3); +} +.left-nav #nav li a{ + font-size: 14px; + padding: 10px 15px 10px 20px; + display: block; + cursor: pointer; +} +.left-nav #nav li a cite{ + font-size: 14px; +} + +.left-nav #nav li .sub-menu{ + display: none; +} +.left-nav #nav li .opened{ + display: block; +} +.left-nav #nav li .opened:hover{ + /*background: #fff url() 0 0 no-repeat;*/ +} +.left-nav #nav li .opened .current{ + +} +.left-nav #nav li .sub-menu li:hover{ + /*color: blue;*/ + /*background: #fff url() 0 0 no-repeat;*/ +} +.left-nav #nav li .sub-menu li a{ + padding: 12px 15px 12px 30px; + font-size: 14px; + cursor: pointer; +} +.left-nav #nav li .sub-menu li .sub-menu li a{ + padding-left: 45px; +} +.left-nav #nav li .sub-menu li a:hover{ + color: #148cf1; +} +.left-nav #nav li .sub-menu li a i{ + font-size: 12px; +} +.left-nav #nav li a i{ + padding-right: 10px; + line-height: 14px; +} +.left-nav #nav li .nav_right{ + float: right; + font-size: 16px; +} +.x-slide_left { + width: 17px; + height: 61px; + background: url(../images/icon.png) 0 0 no-repeat; + position: absolute; + top: 200px; + left: 221px; + cursor: pointer; + z-index: 3; +} +.page-content{ + position: absolute; + top: 46px; + right: 0; + bottom: 42px; + left: 221px; + overflow: hidden; + z-index: 1; +} +.page-content-bg{ + position: absolute; + top: 46px; + right: 0; + bottom: 42px; + left: 221px; + background: rgba(0,0,0,0.5); url() 0 0 no-repeat; + overflow: hidden; + z-index: 100; + display: none; +} + +.page-content .tab{ + height: 100%; + width: 100%; + background: #EFEEF0 url() 0 0 no-repeat; + margin: 0px; +} +.page-content .layui-tab-title{ + /*padding-top: 5px;*/ + height: 35px; + background: #EFEEF0 url() 0 0 no-repeat; + position: relative; + z-index: 100; +} +.page-content .layui-tab-title li.home i{ + padding-right: 5px; +} +.page-content .layui-tab-title li.home .layui-tab-close{ + display: none; +} +.page-content .layui-tab-title li{ + line-height: 35px; +} +.page-content .layui-tab-title .layui-this:after{ + height: 36px; +} +.page-content .layui-tab-title li .layui-tab-close{ + border-radius: 50%; +} +.page-content .layui-tab-title .layui-this{ + background: #fff url() 0 0 no-repeat; +} +.page-content .layui-tab-bar{ + height:34px; + line-height: 35px; +} +.page-content .layui-tab-content{ + position: absolute; + top: 36px; + bottom: 0px; + width: 100%; + background: #fff url() 0 0 no-repeat; + padding: 0px; + overflow: hidden; +} +.page-content .layui-tab-content .layui-tab-item{ + width: 100%; + height: 100%; + +} +.page-content .layui-tab-content .layui-tab-item iframe{ + width: 100%; + height: 100%; + +} +.x-admin-carousel,.layui-carousel,.x-admin-carousel>[carousel-item]>* { + background-color:#fff +} + +.x-admin-backlog .x-admin-backlog-body { + display:block; + padding:10px 15px; + background-color:#f8f8f8; + color:#999; + border-radius:2px; + transition:all .3s; + -webkit-transition:all .3s +} +.x-admin-backlog-body h3 { + padding-bottom:10px; + font-size:12px +} +.x-admin-backlog-body p cite { + font-style:normal; + font-size:30px; + font-weight:300; + color:#009688 +} +.x-admin-backlog-body:hover { + background-color:#CFCFCF; + color:#888 +} + +.welcome-footer{padding: 30px 0; line-height: 30px; text-align: center; background-color: #eee; color: #666; font-weight: 300;} +body .layui-layout-admin .footer-demo{height: auto; padding: 15px 0; line-height: 26px;} +.welcome-footer a{padding: 0 5px;} + +table th, table td { + word-break: break-all; +} + +.footer{ + position: fixed; + bottom: 0px; + width: 100%; + background-color: #222; + border-top: 1px solid rgba(255, 255, 255, 0.2); + line-height: 41px; + color: #fff; + /*padding-left: 10px;*/ +} +.footer .copyright{ + margin-left: 10px; +} + +/*404页面样式*/ +.fly-panel { + margin-bottom: 15px; + border-radius: 2px; + background-color: #fff; + box-shadow: 0 1px 2px 0 rgba(0,0,0,.05); +} +.fly-none { + min-height: 600px; + text-align: center; + padding-top: 50px; + color: #999; +} +.fly-none .layui-icon { + line-height: 300px; + font-size: 300px; + color: #393D49; +} +.fly-none p { + margin-top: 50px; + padding: 0 15px; + font-size: 20px; + color: #999; + font-weight: 300; +} +#tab_right{ + display: none; + width: 80px; + position: absolute; + top: 35px; + left: 0px; +} +#tab_right dl{ + top: 0px; +} +#tab_show{ + position: absolute; + top: 36px; + bottom: 0px; + width: 100%; + background:rgb(255, 255, 255,0); + padding: 0px; + overflow: hidden; + display: none; +} + + +@media screen and (max-width: 768px){ + .fast-add{ + display: none; + } + .layui-nav .to-index{ + display: none; + } + .container .logo a{ + width: 140px; + } + .container .left_open { + /*float: right;*/ + } + .left-nav{ + left: -221px; + } + .page-content{ + left: 0px; + } + .page-content .layui-tab-content .layui-tab-item{ + -webkit-overflow-scrolling: touch; + overflow-y: scroll; + } + .x-so input.layui-input{ + width: 100%; + margin: 10px; + } +} + + +/*精细版样式*/ + +.x-admin-sm{ + font-size: 12px; +} +.x-admin-sm body{ + font-size: 12px; +} +/*登录页面样式*/ +.x-admin-sm .login input[type=submit],.x-admin-sm .login input[type=button]{ + font-size: 14px; +} +.x-admin-sm .login input[type=text], +.x-admin-sm .login input[type=file], +.x-admin-sm .login input[type=password], +.x-admin-sm .login input[type=email], .x-admin-sm select { + font-size: 12px; +} +.x-admin-sm .login .message{ + font-size: 14px; +} + +.x-admin-sm .layui-table td, .x-admin-sm .layui-table th{ + font-size: 12px; +} +.x-admin-sm .layui-elem-field legend{ + font-size: 18px; +} + +.x-admin-sm .x-admin-backlog-body p cite{ + font-size: 24px; +} +.x-admin-sm .left-nav #nav li a cite{ + font-size: 12px; +} +.x-admin-sm .iconfont{ + font-size: 14px; +} +.x-admin-sm .layui-tab-title li{ + font-size: 12px; +} +.x-admin-sm .layui-icon{ + font-size: 14px; +} +.x-admin-sm .layui-nav *{ + font-size: 12px; +} +.x-admin-sm .layui-breadcrumb>*{ + font-size: 12px; +} +.x-admin-sm .layui-btn,.x-admin-sm .layui-btn-xs,.x-admin-sm .layui-btn-sm{ + font-size: 12px; +} + +.x-admin-sm .layui-laydate{ + font-size: 12px; +} +.x-admin-sm .layui-btn{ + height: 30px; + line-height: 30px; + padding: 0 10px; +} + +.x-admin-sm .layui-btn-lg{ + height: 38px; + line-height: 38px; + padding: 0 18px; + font-size: 14px; +} +.x-admin-sm .layui-layer-title,.x-admin-sm .layui-layer-dialog .layui-layer-content{ + font-size: 12px; +} +.x-admin-sm .layui-input,.x-admin-sm .layui-select,.x-admin-sm .layui-textarea{ + height: 30px; +} + +.x-admin-sm .layui-form-pane .layui-form-label{ + height: 30px; + line-height: 14px; +} +.x-admin-sm .layui-form-checkbox span{ + font-size: 12px; +} +.x-admin-sm .fly-none .layui-icon { + line-height: 300px; + font-size: 300px; + color: #393D49; +} + diff --git a/sop-admin/sop-admin-front/assets/fonts/iconfont.eot b/sop-admin/sop-admin-front/assets/fonts/iconfont.eot new file mode 100644 index 00000000..df5334af Binary files /dev/null and b/sop-admin/sop-admin-front/assets/fonts/iconfont.eot differ diff --git a/sop-admin/sop-admin-front/assets/fonts/iconfont.svg b/sop-admin/sop-admin-front/assets/fonts/iconfont.svg new file mode 100644 index 00000000..f6f082eb --- /dev/null +++ b/sop-admin/sop-admin-front/assets/fonts/iconfont.svg @@ -0,0 +1,477 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sop-admin/sop-admin-front/assets/fonts/iconfont.ttf b/sop-admin/sop-admin-front/assets/fonts/iconfont.ttf new file mode 100644 index 00000000..ccf533ec Binary files /dev/null and b/sop-admin/sop-admin-front/assets/fonts/iconfont.ttf differ diff --git a/sop-admin/sop-admin-front/assets/fonts/iconfont.woff b/sop-admin/sop-admin-front/assets/fonts/iconfont.woff new file mode 100644 index 00000000..d06756ca Binary files /dev/null and b/sop-admin/sop-admin-front/assets/fonts/iconfont.woff differ diff --git a/sop-admin/sop-admin-front/assets/images/aiwrap.png b/sop-admin/sop-admin-front/assets/images/aiwrap.png new file mode 100644 index 00000000..36fd481b Binary files /dev/null and b/sop-admin/sop-admin-front/assets/images/aiwrap.png differ diff --git a/sop-admin/sop-admin-front/assets/images/bg.png b/sop-admin/sop-admin-front/assets/images/bg.png new file mode 100644 index 00000000..c518e9d6 Binary files /dev/null and b/sop-admin/sop-admin-front/assets/images/bg.png differ diff --git a/sop-admin/sop-admin-front/assets/js/cookie.js b/sop-admin/sop-admin-front/assets/js/cookie.js new file mode 100644 index 00000000..79b05ac7 --- /dev/null +++ b/sop-admin/sop-admin-front/assets/js/cookie.js @@ -0,0 +1,38 @@ +function setCookie(name, value, expires, path, domain, secure) { + if(typeof is_remember!="undefined") + return false; + var today = new Date(); + today.setTime( today.getTime() ); + var expires_date = new Date( today.getTime() + (expires) ); + document.cookie= name + "=" + escape(value) + + ((expires) ? "; expires=" + expires_date.toGMTString() : "") + + ((path) ? "; path=" + path : "") + + ((domain) ? "; domain=" + domain : "") + + ((secure) ? "; secure" : ""); +} +function getCookie(name) { + var dc = document.cookie; + var prefix = name + "="; + var begin = dc.indexOf("; " + prefix); + if (begin == -1) { + begin = dc.indexOf(prefix); + if (begin != 0) return null; + } else { + begin += 2; + } + var end = document.cookie.indexOf(";", begin); + if (end == -1) { + end = dc.length; + } + return unescape(dc.substring(begin + prefix.length, end)); +} +function deleteCookie(name, path, domain) { + if (getCookie(name)) { + document.cookie = name + "=" + + ((path) ? "; path=" + path : "") + + ((domain) ? "; domain=" + domain : "") + + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; + } +} + + diff --git a/sop-admin/sop-admin-front/assets/js/xadmin.js b/sop-admin/sop-admin-front/assets/js/xadmin.js new file mode 100644 index 00000000..1d137753 --- /dev/null +++ b/sop-admin/sop-admin-front/assets/js/xadmin.js @@ -0,0 +1,413 @@ +// Array.prototype.remove = function(val) { +// var index = this.indexOf(val); +// if (index > -1) { +// return this.splice(index, 1); +// } + +// }; + +$(function () { + + //加载弹出层 + layui.use(['form','element'], + function() { + layer = layui.layer; + element = layui.element; + + //tab 右键事件 + $(".layui-tab-title").on('contextmenu', 'li', function(event) { + var tab_left = $(this).position().left; + var left = $(this).position().top; + this_index = $(this).attr('lay-id'); + $('#tab_right').css({'left':tab_left+50}).show(); + $('#tab_show').show(); + return false; + }); + + $('.page-content,#tab_show,.container,.left-nav').click(function(event) { + $('#tab_right').hide(); + $('#tab_show').hide(); + }); + + $('#tab_right').on('click', 'dd', function(event) { + + if(getCookie('tab_list')){ + var tab_list = getCookie('tab_list').split(','); + }else{ + var tab_list = []; + } + + var type = $(this).attr('data-type'); + + if(type=='this'){ + + tab.tabDelete(this_index); + + var index = -1; + + for (var i in tab_list) { + if(tab_list[i]==(this_index-1)){ + index = i; + } + } + if (index > -1) { + tab_list.splice(index, 1); + } + + setCookie('tab_list',tab_list); + } + if(type=='all'){ + + for (var i in tab_list) { + tab.tabDelete(Number(tab_list[i])+1); + } + + setCookie('tab_list',[]); + } + + if(type=='other'){ + + for (var i in tab_list) { + if(tab_list[i]!=(this_index-1)){ + tab.tabDelete(Number(tab_list[i])+1); + } + } + + setCookie('tab_list',[this_index-1]); + } + // alert(this_index); + $('#tab_right').hide(); + }); + + // tab 双击事件 + $(".layui-tab-title").on('dblclick', 'li', function(event) { + var id = $(this).attr('lay-id'); + tab.tabDelete(id); + + if(getCookie('tab_list')){ + tab_list = getCookie('tab_list').split(','); + }else{ + tab_list = []; + } + + + var index = -1; + + for (var i in tab_list) { + if(tab_list[i]==(id-1)){ + index = i; + } + } + + + if (index > -1) { + tab_list.splice(index, 1); + } + + setCookie('tab_list',tab_list); + return false; + }); + + // tab 删除事件 + element.on('tabDelete(xbs_tab)', function(data){ + var id = $(this).parent().attr('lay-id')-1; + + if(getCookie('tab_list')){ + tab_list = getCookie('tab_list').split(','); + }else{ + tab_list = []; + } + + + var index = -1; + + for (var i in tab_list) { + if(tab_list[i]==id){ + index = i; + } + } + + + if (index > -1) { + tab_list.splice(index, 1); + } + + setCookie('tab_list',tab_list); + + }); + + if(getCookie('tab_list')){ + tab_list = getCookie('tab_list').split(','); + + for (var i in tab_list) { + $('.left-nav #nav li').eq(tab_list[i]).click(); + } + } + }); + + //触发事件 + var tab = { + tabAdd: function(title,url,id){ + //新增一个Tab项 + element.tabAdd('xbs_tab', { + title: title + ,content: '' + ,id: id + }) + } + ,tabDelete: function(othis){ + //删除指定Tab项 + element.tabDelete('xbs_tab', othis); //删除:“商品管理” + + + // othis.addClass('layui-btn-disabled'); + } + ,tabChange: function(id){ + //切换到指定Tab项 + element.tabChange('xbs_tab', id); //切换到:用户管理 + } + }; + + + tableCheck = { + init:function () { + $(".x-admin .layui-form-checkbox").click(function(event) { + if($(this).hasClass('layui-form-checked')){ + $(this).removeClass('layui-form-checked'); + if($(this).hasClass('header')){ + $(".x-admin .layui-form-checkbox").removeClass('layui-form-checked'); + } + }else{ + $(this).addClass('layui-form-checked'); + if($(this).hasClass('header')){ + $(".x-admin .layui-form-checkbox").addClass('layui-form-checked'); + } + } + + }); + }, + getData:function () { + var obj = $(".x-admin .layui-form-checked").not('.header'); + var arr=[]; + obj.each(function(index, el) { + arr.push(obj.eq(index).attr('data-id')); + }); + return arr; + } + } + + // 开启表格多选 + tableCheck.init(); + + + $('.container .left_open i').click(function(event) { + if($('.left-nav').css('left')=='0px'){ + $('.left-nav').animate({left: '-221px'}, 100); + $('.page-content').animate({left: '0px'}, 100); + $('.page-content-bg').hide(); + }else{ + $('.left-nav').animate({left: '0px'}, 100); + $('.page-content').animate({left: '221px'}, 100); + if($(window).width()<768){ + $('.page-content-bg').show(); + } + } + + }); + + $('.page-content-bg').click(function(event) { + $('.left-nav').animate({left: '-221px'}, 100); + $('.page-content').animate({left: '0px'}, 100); + $(this).hide(); + }); + + + + $('.layui-tab-close').click(function(event) { + $('.layui-tab-title li').eq(0).find('i').remove(); + }); + + $("tbody.x-cate tr[fid!='0']").hide(); + // 栏目多级显示效果 + $('.x-show').click(function () { + if($(this).attr('status')=='true'){ + $(this).html(''); + $(this).attr('status','false'); + cateId = $(this).parents('tr').attr('cate-id'); + $("tbody tr[fid="+cateId+"]").show(); + }else{ + cateIds = []; + $(this).html(''); + $(this).attr('status','true'); + cateId = $(this).parents('tr').attr('cate-id'); + getCateId(cateId); + for (var i in cateIds) { + $("tbody tr[cate-id="+cateIds[i]+"]").hide().find('.x-show').html('').attr('status','true'); + } + } + }) + + //左侧菜单效果 + + $('.left-nav #nav').on('click', 'li', function(event) { + + var index = $('.left-nav #nav li').index($(this)); + + if($(this).children('.sub-menu').length){ + if($(this).hasClass('open')){ + + if($(this).parent().hasClass('sub-menu')){ + deleteCookie('left_menu_son'); + }else{ + deleteCookie('left_menu_father'); + } + + $(this).removeClass('open'); + $(this).find('.nav_right').html(''); + $(this).children('.sub-menu').stop().slideUp(); + $(this).siblings().children('.sub-menu').slideUp(); + }else{ + + + if($(this).parent().hasClass('sub-menu')){ + setCookie('left_menu_son',index); + }else{ + setCookie('left_menu_father',index); + } + + $(this).addClass('open'); + $(this).children('a').find('.nav_right').html(''); + $(this).children('.sub-menu').stop().slideDown(); + $(this).siblings().children('.sub-menu').stop().slideUp(); + $(this).siblings().find('.nav_right').html(''); + $(this).siblings().removeClass('open'); + } + }else{ + + var url = $(this).children('a').attr('_href'); + var title = $(this).find('cite').html(); + // var index = $('.left-nav #nav li').index($(this)); + + var is_refresh = $(this).attr('date-refresh')?true:false; + + for (var i = 0; i <$('.x-iframe').length; i++) { + if($('.x-iframe').eq(i).attr('tab-id')==index+1){ + tab.tabChange(index+1); + event.stopPropagation(); + + if(is_refresh) + $('.x-iframe').eq(i).attr("src",$('.x-iframe').eq(i).attr('src')); + + return; + } + }; + + if(getCookie('tab_list')){ + tab_list = getCookie('tab_list').split(','); + }else{ + tab_list = []; + } + + var is_exist = false; + + for (var i in tab_list) { + if(tab_list[i]==index) + is_exist = true; + } + + if(!is_exist){ + tab_list.push(index); + } + + setCookie('tab_list',tab_list); + + tab.tabAdd(title,url,index+1); + tab.tabChange(index+1); + } + + event.stopPropagation(); + + }) + + // 左侧菜单记忆功能 + if(getCookie('left_menu_father')!=null){ + $('.left-nav #nav li').eq(getCookie('left_menu_father')).click(); + } + + if(getCookie('left_menu_son')!=null){ + $('.left-nav #nav li').eq(getCookie('left_menu_son')).click(); + } + + + + +}) +var cateIds = []; +function getCateId(cateId) { + + $("tbody tr[fid="+cateId+"]").each(function(index, el) { + id = $(el).attr('cate-id'); + cateIds.push(id); + getCateId(id); + }); +} + +/*弹出层*/ +/* + 参数解释: + title 标题 + url 请求的url + id 需要操作的数据id + w 弹出层宽度(缺省调默认值) + h 弹出层高度(缺省调默认值) +*/ +function x_admin_show(title,url,w,h){ + if (title == null || title == '') { + title=false; + }; + if (url == null || url == '') { + url="404.html"; + }; + if (w == null || w == '') { + w=($(window).width()*0.9); + }; + if (h == null || h == '') { + h=($(window).height() - 50); + }; + layer.open({ + type: 2, + area: [w+'px', h +'px'], + fix: false, //不固定 + maxmin: true, + shadeClose: true, + shade:0.4, + title: title, + content: url, + success: function(){ + //窗口加载成功刷新frame + // location.replace(location.href); + }, + cancel:function(){ + //关闭窗口之后刷新frame + // location.replace(location.href); + }, + end:function(){ + //窗口销毁之后刷新frame + // location.replace(location.href); + } + }); +} + +/*关闭弹出框口*/ +function x_admin_close(){ + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); +} + +function x_admin_father_reload(){ + + parent.location.reload(); +} + + + diff --git a/sop-admin/sop-admin-front/assets/js/xcity.js b/sop-admin/sop-admin-front/assets/js/xcity.js new file mode 100644 index 00000000..e1fb2cf3 --- /dev/null +++ b/sop-admin/sop-admin-front/assets/js/xcity.js @@ -0,0 +1,511 @@ +$.fn.xcity = function(pName,cName,aName){ + + var p = $(this).find('select[lay-filter=province]'); + + var c = $(this).find('select[lay-filter=city]'); + + var a = $(this).find('select[lay-filter=area]'); + + var cityList = []; + + var areaList = []; + + showP(provinceList); + + showC(cityList); + + showA(areaList); + + function showP(provinceList) { + p.html(''); + + is_pName = false; + + for (var i in provinceList) { + + if(pName==provinceList[i].name){ + is_pName = true; + cityList = provinceList[i].cityList; + p.append("") + }else{ + p.append("") + } + } + if(!is_pName){ + cityList = provinceList[0].cityList; + } + + } + + function showC(cityList) { + + c.html(''); + + is_cName = false; + + for (var i in cityList) { + if(cName==cityList[i].name){ + is_cName = true; + areaList = cityList[i].areaList; + c.append("") + }else{ + c.append("") + } + } + + if(!is_cName){ + areaList = cityList[0].areaList; + } + } + + function showA(areaList) { + a.html(''); + + for (var i in areaList) { + + if(aName==areaList[i]){ + a.append("") + }else{ + a.append("") + } + } + } + + form.render('select'); + + form.on('select(province)', function(data){ + pName = data.value; + showP(provinceList); + showC(cityList); + showA(areaList); + form.render('select'); + }); + + form.on('select(city)', function(data){ + cName = data.value; + showC(cityList); + showA(areaList); + form.render('select'); + }); + + + +} +var provinceList = [ +{name:'北京', cityList:[ +{name:'市辖区', areaList:['东城区','西城区','崇文区','宣武区','朝阳区','丰台区','石景山区','海淀区','门头沟区','房山区','通州区','顺义区','昌平区','大兴区','怀柔区','平谷区']}, +{name:'县', areaList:['密云县','延庆县']} +]}, +{name:'上海', cityList:[ +{name:'市辖区', areaList:['黄浦区','卢湾区','徐汇区','长宁区','静安区','普陀区','闸北区','虹口区','杨浦区','闵行区','宝山区','嘉定区','浦东新区','金山区','松江区','青浦区','南汇区','奉贤区']}, +{name:'县', areaList:['崇明县']} +]}, +{name:'天津', cityList:[ +{name:'市辖区', areaList:['和平区','河东区','河西区','南开区','河北区','红桥区','塘沽区','汉沽区','大港区','东丽区','西青区','津南区','北辰区','武清区','宝坻区']}, +{name:'县', areaList:['宁河县','静海县','蓟 县']} +]}, +{name:'重庆', cityList:[ +{name:'市辖区', areaList:['万州区','涪陵区','渝中区','大渡口区','江北区','沙坪坝区','九龙坡区','南岸区','北碚区','万盛区','双桥区','渝北区','巴南区','黔江区','长寿区']}, +{name:'县', areaList:['綦江县','潼南县','铜梁县','大足县','荣昌县','璧山县','梁平县','城口县','丰都县','垫江县','武隆县','忠 县','开 县','云阳县','奉节县','巫山县','巫溪县','石柱土家族自治县','秀山土家族苗族自治县','酉阳土家族苗族自治县','彭水苗族土家族自治县']}, +{name:'市', areaList:['江津市','合川市','永川市','南川市']} +]}, +{name:'四川', cityList:[ +{name:'成都市', areaList:['市辖区','锦江区','青羊区','金牛区','武侯区','成华区','龙泉驿区','青白江区','新都区','温江县','金堂县','双流县','郫 县','大邑县','蒲江县','新津县','都江堰市','彭州市','邛崃市','崇州市']}, +{name:'自贡市', areaList:['市辖区','自流井区','贡井区','大安区','沿滩区','荣 县','富顺县']}, +{name:'攀枝花市', areaList:['市辖区','东 区','西 区','仁和区','米易县','盐边县']}, +{name:'泸州市', areaList:['市辖区','江阳区','纳溪区','龙马潭区','泸 县','合江县','叙永县','古蔺县']}, +{name:'德阳市', areaList:['市辖区','旌阳区','中江县','罗江县','广汉市','什邡市','绵竹市']}, +{name:'绵阳市', areaList:['市辖区','涪城区','游仙区','三台县','盐亭县','安 县','梓潼县','北川羌族自治县','平武县','江油市']}, +{name:'广元市', areaList:['市辖区','市中区','元坝区','朝天区','旺苍县','青川县','剑阁县','苍溪县']}, +{name:'遂宁市', areaList:['市辖区','船山区','安居区','蓬溪县','射洪县','大英县']}, +{name:'内江市', areaList:['市辖区','市中区','东兴区','威远县','资中县','隆昌县']}, +{name:'乐山市', areaList:['市辖区','市中区','沙湾区','五通桥区','金口河区','犍为县','井研县','夹江县','沐川县','峨边彝族自治县','马边彝族自治县','峨眉山市']}, +{name:'南充市', areaList:['市辖区','顺庆区','高坪区','嘉陵区','南部县','营山县','蓬安县','仪陇县','西充县','阆中市']}, +{name:'眉山市', areaList:['市辖区','东坡区','仁寿县','彭山县','洪雅县','丹棱县','青神县']}, +{name:'宜宾市', areaList:['市辖区','翠屏区','宜宾县','南溪县','江安县','长宁县','高 县','珙 县','筠连县','兴文县','屏山县']}, +{name:'广安市', areaList:['市辖区','广安区','岳池县','武胜县','邻水县','华莹市']}, +{name:'达州市', areaList:['市辖区','通川区','达 县','宣汉县','开江县','大竹县','渠 县','万源市']}, +{name:'雅安市', areaList:['市辖区','雨城区','名山县','荥经县','汉源县','石棉县','天全县','芦山县','宝兴县']}, +{name:'巴中市', areaList:['市辖区','巴州区','通江县','南江县','平昌县']}, +{name:'资阳市', areaList:['市辖区','雁江区','安岳县','乐至县','简阳市']}, +{name:'阿坝藏族羌族自治州', areaList:['汶川县','理 县','茂 县','松潘县','九寨沟县','金川县','小金县','黑水县','马尔康县','壤塘县','阿坝县','若尔盖县','红原县']}, +{name:'甘孜藏族自治州', areaList:['康定县','泸定县','丹巴县','九龙县','雅江县','道孚县','炉霍县','甘孜县','新龙县','德格县','白玉县','石渠县','色达县','理塘县','巴塘县','乡城县','稻城县','得荣县']}, +{name:'凉山彝族自治州', areaList:['西昌市','木里藏族自治县','盐源县','德昌县','会理县','会东县','宁南县','普格县','布拖县','金阳县','昭觉县','喜德县','冕宁县','越西县','甘洛县','美姑县','雷波县']} +]}, +{name:'贵州', cityList:[ +{name:'贵阳市', areaList:['市辖区','南明区','云岩区','花溪区','乌当区','白云区','小河区','开阳县','息烽县','修文县','清镇市']}, +{name:'六盘水市', areaList:['钟山区','六枝特区','水城县','盘 县']}, +{name:'遵义市', areaList:['市辖区','红花岗区','汇川区','遵义县','桐梓县','绥阳县','正安县','道真仡佬族苗族自治县','务川仡佬族苗族自治县','凤冈县','湄潭县','余庆县','习水县','赤水市','仁怀市']}, +{name:'安顺市', areaList:['市辖区','西秀区','平坝县','普定县','镇宁布依族苗族自治县','关岭布依族苗族自治县','紫云苗族布依族自治县']}, +{name:'铜仁地区', areaList:['铜仁市','江口县','玉屏侗族自治县','石阡县','思南县','印江土家族苗族自治县','德江县','沿河土家族自治县','松桃苗族自治县','万山特区']}, +{name:'黔西南布依族苗族自治州', areaList:['兴义市','兴仁县','普安县','晴隆县','贞丰县','望谟县','册亨县','安龙县']}, +{name:'毕节地区', areaList:['毕节市','大方县','黔西县','金沙县','织金县','纳雍县','威宁彝族回族苗族自治县','赫章县']}, +{name:'黔东南苗族侗族自治州', areaList:['凯里市','黄平县','施秉县','三穗县','镇远县','岑巩县','天柱县','锦屏县','剑河县','台江县','黎平县','榕江县','从江县','雷山县','麻江县','丹寨县']}, +{name:'黔南布依族苗族自治州', areaList:['都匀市','福泉市','荔波县','贵定县','瓮安县','独山县','平塘县','罗甸县','长顺县','龙里县','惠水县','三都水族自治县']} +]}, +{name:'云南', cityList:[ +{name:'昆明市', areaList:['市辖区','五华区','盘龙区','官渡区','西山区','东川区','呈贡县','晋宁县','富民县','宜良县','石林彝族自治县','嵩明县','禄劝彝族苗族自治县','寻甸回族彝族自治县','安宁市']}, +{name:'曲靖市', areaList:['市辖区','麒麟区','马龙县','陆良县','师宗县','罗平县','富源县','会泽县','沾益县','宣威市']}, +{name:'玉溪市', areaList:['市辖区','红塔区','江川县','澄江县','通海县','华宁县','易门县','峨山彝族自治县','新平彝族傣族自治县','元江哈尼族彝族傣族自治县']}, +{name:'保山市', areaList:['市辖区','隆阳区','施甸县','腾冲县','龙陵县','昌宁县']}, +{name:'昭通市', areaList:['市辖区','昭阳区','鲁甸县','巧家县','盐津县','大关县','永善县','绥江县','镇雄县','彝良县','威信县','水富县']}, +{name:'丽江市', areaList:['市辖区','古城区','玉龙纳西族自治县','永胜县','华坪县','宁蒗彝族自治县']}, +{name:'思茅市', areaList:['市辖区','翠云区','普洱哈尼族彝族自治县','墨江哈尼族自治县','景东彝族自治县','景谷傣族彝族自治县','镇沅彝族哈尼族拉祜族自治县','江城哈尼族彝族自治县','孟连傣族拉祜族佤族自治县','澜沧拉祜族自治县','西盟佤族自治县']}, +{name:'临沧市', areaList:['市辖区','临翔区','凤庆县','云 县','永德县','镇康县','双江拉祜族佤族布朗族傣族自治县','耿马傣族佤族自治县','沧源佤族自治县']}, +{name:'楚雄彝族自治州', areaList:['楚雄市','双柏县','牟定县','南华县','姚安县','大姚县','永仁县','元谋县','武定县','禄丰县']}, +{name:'红河哈尼族彝族自治州', areaList:['个旧市','开远市','蒙自县','屏边苗族自治县','建水县','石屏县','弥勒县','泸西县','元阳县','红河县','金平苗族瑶族傣族自治县','绿春县','河口瑶族自治县']}, +{name:'文山壮族苗族自治州', areaList:['文山县','砚山县','西畴县','麻栗坡县','马关县','丘北县','广南县','富宁县']}, +{name:'西双版纳傣族自治州', areaList:['景洪市','勐海县','勐腊县']}, +{name:'大理白族自治州', areaList:['大理市','漾濞彝族自治县','祥云县','宾川县','弥渡县','南涧彝族自治县','巍山彝族回族自治县','永平县','云龙县','洱源县','剑川县','鹤庆县']}, +{name:'德宏傣族景颇族自治州', areaList:['瑞丽市','潞西市','梁河县','盈江县','陇川县']}, +{name:'怒江傈僳族自治州', areaList:['泸水县','福贡县','贡山独龙族怒族自治县','兰坪白族普米族自治县']}, +{name:'迪庆藏族自治州', areaList:['香格里拉县','德钦县','维西傈僳族自治县']} +]}, +{name:'西藏', cityList:[ +{name:'拉萨市', areaList:['市辖区','城关区','林周县','当雄县','尼木县','曲水县','堆龙德庆县','达孜县','墨竹工卡县']}, +{name:'昌都地区', areaList:['昌都县','江达县','贡觉县','类乌齐县','丁青县','察雅县','八宿县','左贡县','芒康县','洛隆县','边坝县']}, +{name:'山南地区', areaList:['乃东县','扎囊县','贡嘎县','桑日县','琼结县','曲松县','措美县','洛扎县','加查县','隆子县','错那县','浪卡子县']}, +{name:'日喀则地区', areaList:['日喀则市','南木林县','江孜县','定日县','萨迦县','拉孜县','昂仁县','谢通门县','白朗县','仁布县','康马县','定结县','仲巴县','亚东县','吉隆县','聂拉木县','萨嘎县','岗巴县']}, +{name:'那曲地区', areaList:['那曲县','嘉黎县','比如县','聂荣县','安多县','申扎县','索 县','班戈县','巴青县','尼玛县']}, +{name:'阿里地区', areaList:['普兰县','札达县','噶尔县','日土县','革吉县','改则县','措勤县']}, +{name:'林芝地区', areaList:['林芝县','工布江达县','米林县','墨脱县','波密县','察隅县','朗 县']} +]}, +{name:'河南', cityList:[ +{name:'郑州市', areaList:['市辖区','中原区','二七区','管城回族区','金水区','上街区','邙山区','中牟县','巩义市','荥阳市','新密市','新郑市','登封市']}, +{name:'开封市', areaList:['市辖区','龙亭区','顺河回族区','鼓楼区','南关区','郊 区','杞 县','通许县','尉氏县','开封县','兰考县']}, +{name:'洛阳市', areaList:['市辖区','老城区','西工区','廛河回族区','涧西区','吉利区','洛龙区','孟津县','新安县','栾川县','嵩 县','汝阳县','宜阳县','洛宁县','伊川县','偃师市']}, +{name:'平顶山市', areaList:['市辖区','新华区','卫东区','石龙区','湛河区','宝丰县','叶 县','鲁山县','郏 县','舞钢市','汝州市']}, +{name:'安阳市', areaList:['市辖区','文峰区','北关区','殷都区','龙安区','安阳县','汤阴县','滑 县','内黄县','林州市']}, +{name:'鹤壁市', areaList:['市辖区','鹤山区','山城区','淇滨区','浚 县','淇 县']}, +{name:'新乡市', areaList:['市辖区','红旗区','卫滨区','凤泉区','牧野区','新乡县','获嘉县','原阳县','延津县','封丘县','长垣县','卫辉市','辉县市']}, +{name:'焦作市', areaList:['市辖区','解放区','中站区','马村区','山阳区','修武县','博爱县','武陟县','温 县','济源市','沁阳市','孟州市']}, +{name:'濮阳市', areaList:['市辖区','华龙区','清丰县','南乐县','范 县','台前县','濮阳县']}, +{name:'许昌市', areaList:['市辖区','魏都区','许昌县','鄢陵县','襄城县','禹州市','长葛市']}, +{name:'漯河市', areaList:['市辖区','源汇区','郾城区','召陵区','舞阳县','临颍县']}, +{name:'三门峡市', areaList:['市辖区','湖滨区','渑池县','陕 县','卢氏县','义马市','灵宝市']}, +{name:'南阳市', areaList:['市辖区','宛城区','卧龙区','南召县','方城县','西峡县','镇平县','内乡县','淅川县','社旗县','唐河县','新野县','桐柏县','邓州市']}, +{name:'商丘市', areaList:['市辖区','梁园区','睢阳区','民权县','睢 县','宁陵县','柘城县','虞城县','夏邑县','永城市']}, +{name:'信阳市', areaList:['市辖区','师河区','平桥区','罗山县','光山县','新 县','商城县','固始县','潢川县','淮滨县','息 县']}, +{name:'周口市', areaList:['市辖区','川汇区','扶沟县','西华县','商水县','沈丘县','郸城县','淮阳县','太康县','鹿邑县','项城市']}, +{name:'驻马店市', areaList:['市辖区','驿城区','西平县','上蔡县','平舆县','正阳县','确山县','泌阳县','汝南县','遂平县','新蔡县']} +]}, +{name:'湖北', cityList:[ +{name:'武汉市', areaList:['市辖区','江岸区','江汉区','乔口区','汉阳区','武昌区','青山区','洪山区','东西湖区','汉南区','蔡甸区','江夏区','黄陂区','新洲区']}, +{name:'黄石市', areaList:['市辖区','黄石港区','西塞山区','下陆区','铁山区','阳新县','大冶市']}, +{name:'十堰市', areaList:['市辖区','茅箭区','张湾区','郧 县','郧西县','竹山县','竹溪县','房 县','丹江口市']}, +{name:'宜昌市', areaList:['市辖区','西陵区','伍家岗区','点军区','猇亭区','夷陵区','远安县','兴山县','秭归县','长阳土家族自治县','五峰土家族自治县','宜都市','当阳市','枝江市']}, +{name:'襄樊市', areaList:['市辖区','襄城区','樊城区','襄阳区','南漳县','谷城县','保康县','老河口市','枣阳市','宜城市']}, +{name:'鄂州市', areaList:['市辖区','梁子湖区','华容区','鄂城区']}, +{name:'荆门市', areaList:['市辖区','东宝区','掇刀区','京山县','沙洋县','钟祥市']}, +{name:'孝感市', areaList:['市辖区','孝南区','孝昌县','大悟县','云梦县','应城市','安陆市','汉川市']}, +{name:'荆州市', areaList:['市辖区','沙市区','荆州区','公安县','监利县','江陵县','石首市','洪湖市','松滋市']}, +{name:'黄冈市', areaList:['市辖区','黄州区','团风县','红安县','罗田县','英山县','浠水县','蕲春县','黄梅县','麻城市','武穴市']}, +{name:'咸宁市', areaList:['市辖区','咸安区','嘉鱼县','通城县','崇阳县','通山县','赤壁市']}, +{name:'随州市', areaList:['市辖区','曾都区','广水市']}, +{name:'恩施土家族苗族自治州', areaList:['恩施市','利川市','建始县','巴东县','宣恩县','咸丰县','来凤县','鹤峰县']}, +{name:'省直辖行政单位', areaList:['仙桃市','潜江市','天门市','神农架林区']} +]}, +{name:'湖南', cityList:[ +{name:'长沙市', areaList:['市辖区','芙蓉区','天心区','岳麓区','开福区','雨花区','长沙县','望城县','宁乡县','浏阳市']}, +{name:'株洲市', areaList:['市辖区','荷塘区','芦淞区','石峰区','天元区','株洲县','攸 县','茶陵县','炎陵县','醴陵市']}, +{name:'湘潭市', areaList:['市辖区','雨湖区','岳塘区','湘潭县','湘乡市','韶山市']}, +{name:'衡阳市', areaList:['市辖区','珠晖区','雁峰区','石鼓区','蒸湘区','南岳区','衡阳县','衡南县','衡山县','衡东县','祁东县','耒阳市','常宁市']}, +{name:'邵阳市', areaList:['市辖区','双清区','大祥区','北塔区','邵东县','新邵县','邵阳县','隆回县','洞口县','绥宁县','新宁县','城步苗族自治县','武冈市']}, +{name:'岳阳市', areaList:['市辖区','岳阳楼区','云溪区','君山区','岳阳县','华容县','湘阴县','平江县','汨罗市','临湘市']}, +{name:'常德市', areaList:['市辖区','武陵区','鼎城区','安乡县','汉寿县','澧 县','临澧县','桃源县','石门县','津市市']}, +{name:'张家界市', areaList:['市辖区','永定区','武陵源区','慈利县','桑植县']}, +{name:'益阳市', areaList:['市辖区','资阳区','赫山区','南 县','桃江县','安化县','沅江市']}, +{name:'郴州市', areaList:['市辖区','北湖区','苏仙区','桂阳县','宜章县','永兴县','嘉禾县','临武县','汝城县','桂东县','安仁县','资兴市']}, +{name:'永州市', areaList:['市辖区','芝山区','冷水滩区','祁阳县','东安县','双牌县','道 县','江永县','宁远县','蓝山县','新田县','江华瑶族自治县']}, +{name:'怀化市', areaList:['市辖区','鹤城区','中方县','沅陵县','辰溪县','溆浦县','会同县','麻阳苗族自治县','新晃侗族自治县','芷江侗族自治县','靖州苗族侗族自治县','通道侗族自治县','洪江市']}, +{name:'娄底市', areaList:['市辖区','娄星区','双峰县','新化县','冷水江市','涟源市']}, +{name:'湘西土家族苗族自治州', areaList:['吉首市','泸溪县','凤凰县','花垣县','保靖县','古丈县','永顺县','龙山县']} +]}, +{name:'广东', cityList:[ +{name:'广州市', areaList:['市辖区','东山区','荔湾区','越秀区','海珠区','天河区','芳村区','白云区','黄埔区','番禺区','花都区','增城市','从化市']}, +{name:'韶关市', areaList:['市辖区','武江区','浈江区','曲江区','始兴县','仁化县','翁源县','乳源瑶族自治县','新丰县','乐昌市','南雄市']}, +{name:'深圳市', areaList:['市辖区','罗湖区','福田区','南山区','宝安区','龙岗区','盐田区']}, +{name:'珠海市', areaList:['市辖区','香洲区','斗门区','金湾区']}, +{name:'汕头市', areaList:['市辖区','龙湖区','金平区','濠江区','潮阳区','潮南区','澄海区','南澳县']}, +{name:'佛山市', areaList:['市辖区','禅城区','南海区','顺德区','三水区','高明区']}, +{name:'江门市', areaList:['市辖区','蓬江区','江海区','新会区','台山市','开平市','鹤山市','恩平市']}, +{name:'湛江市', areaList:['市辖区','赤坎区','霞山区','坡头区','麻章区','遂溪县','徐闻县','廉江市','雷州市','吴川市']}, +{name:'茂名市', areaList:['市辖区','茂南区','茂港区','电白县','高州市','化州市','信宜市']}, +{name:'肇庆市', areaList:['市辖区','端州区','鼎湖区','广宁县','怀集县','封开县','德庆县','高要市','四会市']}, +{name:'惠州市', areaList:['市辖区','惠城区','惠阳区','博罗县','惠东县','龙门县']}, +{name:'梅州市', areaList:['市辖区','梅江区','梅 县','大埔县','丰顺县','五华县','平远县','蕉岭县','兴宁市']}, +{name:'汕尾市', areaList:['市辖区','城 区','海丰县','陆河县','陆丰市']}, +{name:'河源市', areaList:['市辖区','源城区','紫金县','龙川县','连平县','和平县','东源县']}, +{name:'阳江市', areaList:['市辖区','江城区','阳西县','阳东县','阳春市']}, +{name:'清远市', areaList:['市辖区','清城区','佛冈县','阳山县','连山壮族瑶族自治县','连南瑶族自治县','清新县','英德市','连州市']}, +{name:'东莞市', areaList:['东莞市']}, +{name:'中山市', areaList:['中山市']}, +{name:'潮州市', areaList:['市辖区','湘桥区','潮安县','饶平县']}, +{name:'揭阳市', areaList:['市辖区','榕城区','揭东县','揭西县','惠来县','普宁市']}, +{name:'云浮市', areaList:['市辖区','云城区','新兴县','郁南县','云安县','罗定市']} +]}, +{name:'广西', cityList:[ +{name:'南宁市', areaList:['市辖区','兴宁区','青秀区','江南区','西乡塘区','良庆区','邕宁区','武鸣县','隆安县','马山县','上林县','宾阳县','横 县']}, +{name:'柳州市', areaList:['市辖区','城中区','鱼峰区','柳南区','柳北区','柳江县','柳城县','鹿寨县','融安县','融水苗族自治县','三江侗族自治县']}, +{name:'桂林市', areaList:['市辖区','秀峰区','叠彩区','象山区','七星区','雁山区','阳朔县','临桂县','灵川县','全州县','兴安县','永福县','灌阳县','龙胜各族自治县','资源县','平乐县','荔蒲县','恭城瑶族自治县']}, +{name:'梧州市', areaList:['市辖区','万秀区','蝶山区','长洲区','苍梧县','藤 县','蒙山县','岑溪市']}, +{name:'北海市', areaList:['市辖区','海城区','银海区','铁山港区','合浦县']}, +{name:'防城港市', areaList:['市辖区','港口区','防城区','上思县','东兴市']}, +{name:'钦州市', areaList:['市辖区','钦南区','钦北区','灵山县','浦北县']}, +{name:'贵港市', areaList:['市辖区','港北区','港南区','覃塘区','平南县','桂平市']}, +{name:'玉林市', areaList:['市辖区','玉州区','容 县','陆川县','博白县','兴业县','北流市']}, +{name:'百色市', areaList:['市辖区','右江区','田阳县','田东县','平果县','德保县','靖西县','那坡县','凌云县','乐业县','田林县','西林县','隆林各族自治县']}, +{name:'贺州市', areaList:['市辖区','八步区','昭平县','钟山县','富川瑶族自治县']}, +{name:'河池市', areaList:['市辖区','金城江区','南丹县','天峨县','凤山县','东兰县','罗城仫佬族自治县','环江毛南族自治县','巴马瑶族自治县','都安瑶族自治县','大化瑶族自治县','宜州市']}, +{name:'来宾市', areaList:['市辖区','兴宾区','忻城县','象州县','武宣县','金秀瑶族自治县','合山市']}, +{name:'崇左市', areaList:['市辖区','江洲区','扶绥县','宁明县','龙州县','大新县','天等县','凭祥市']} +]}, +{name:'陕西', cityList:[ +{name:'西安市', areaList:['市辖区','新城区','碑林区','莲湖区','灞桥区','未央区','雁塔区','阎良区','临潼区','长安区','蓝田县','周至县','户 县','高陵县']}, +{name:'铜川市', areaList:['市辖区','王益区','印台区','耀州区','宜君县']}, +{name:'宝鸡市', areaList:['市辖区','渭滨区','金台区','陈仓区','凤翔县','岐山县','扶风县','眉 县','陇 县','千阳县','麟游县','凤 县','太白县']}, +{name:'咸阳市', areaList:['市辖区','秦都区','杨凌区','渭城区','三原县','泾阳县','乾 县','礼泉县','永寿县','彬 县','长武县','旬邑县','淳化县','武功县','兴平市']}, +{name:'渭南市', areaList:['市辖区','临渭区','华 县','潼关县','大荔县','合阳县','澄城县','蒲城县','白水县','富平县','韩城市','华阴市']}, +{name:'延安市', areaList:['市辖区','宝塔区','延长县','延川县','子长县','安塞县','志丹县','吴旗县','甘泉县','富 县','洛川县','宜川县','黄龙县','黄陵县']}, +{name:'汉中市', areaList:['市辖区','汉台区','南郑县','城固县','洋 县','西乡县','勉 县','宁强县','略阳县','镇巴县','留坝县','佛坪县']}, +{name:'榆林市', areaList:['市辖区','榆阳区','神木县','府谷县','横山县','靖边县','定边县','绥德县','米脂县','佳 县','吴堡县','清涧县','子洲县']}, +{name:'安康市', areaList:['市辖区','汉滨区','汉阴县','石泉县','宁陕县','紫阳县','岚皋县','平利县','镇坪县','旬阳县','白河县']}, +{name:'商洛市', areaList:['市辖区','商州区','洛南县','丹凤县','商南县','山阳县','镇安县','柞水县']} +]}, +{name:'甘肃', cityList:[ +{name:'兰州市', areaList:['市辖区','城关区','七里河区','西固区','安宁区','红古区','永登县','皋兰县','榆中县']}, +{name:'嘉峪关市', areaList:['市辖区']}, +{name:'金昌市', areaList:['市辖区','金川区','永昌县']}, +{name:'白银市', areaList:['市辖区','白银区','平川区','靖远县','会宁县','景泰县']}, +{name:'天水市', areaList:['市辖区','秦城区','北道区','清水县','秦安县','甘谷县','武山县','张家川回族自治县']}, +{name:'武威市', areaList:['市辖区','凉州区','民勤县','古浪县','天祝藏族自治县']}, +{name:'张掖市', areaList:['市辖区','甘州区','肃南裕固族自治县','民乐县','临泽县','高台县','山丹县']}, +{name:'平凉市', areaList:['市辖区','崆峒区','泾川县','灵台县','崇信县','华亭县','庄浪县','静宁县']}, +{name:'酒泉市', areaList:['市辖区','肃州区','金塔县','安西县','肃北蒙古族自治县','阿克塞哈萨克族自治县','玉门市','敦煌市']}, +{name:'庆阳市', areaList:['市辖区','西峰区','庆城县','环 县','华池县','合水县','正宁县','宁 县','镇原县']}, +{name:'定西市', areaList:['市辖区','安定区','通渭县','陇西县','渭源县','临洮县','漳 县','岷 县']}, +{name:'陇南市', areaList:['市辖区','武都区','成 县','文 县','宕昌县','康 县','西和县','礼 县','徽 县','两当县']}, +{name:'临夏回族自治州', areaList:['临夏市','临夏县','康乐县','永靖县','广河县','和政县','东乡族自治县','积石山保安族东乡族撒拉族自治县']}, +{name:'甘南藏族自治州', areaList:['合作市','临潭县','卓尼县','舟曲县','迭部县','玛曲县','碌曲县','夏河县']} +]}, +{name:'青海', cityList:[ +{name:'西宁市', areaList:['市辖区','城东区','城中区','城西区','城北区','大通回族土族自治县','湟中县','湟源县']}, +{name:'海东地区', areaList:['平安县','民和回族土族自治县','乐都县','互助土族自治县','化隆回族自治县','循化撒拉族自治县']}, +{name:'海北藏族自治州', areaList:['门源回族自治县','祁连县','海晏县','刚察县']}, +{name:'黄南藏族自治州', areaList:['同仁县','尖扎县','泽库县','河南蒙古族自治县']}, +{name:'海南藏族自治州', areaList:['共和县','同德县','贵德县','兴海县','贵南县']}, +{name:'果洛藏族自治州', areaList:['玛沁县','班玛县','甘德县','达日县','久治县','玛多县']}, +{name:'玉树藏族自治州', areaList:['玉树县','杂多县','称多县','治多县','囊谦县','曲麻莱县']}, +{name:'海西蒙古族藏族自治州', areaList:['格尔木市','德令哈市','乌兰县','都兰县','天峻县']} +]}, +{name:'宁夏', cityList:[ +{name:'银川市', areaList:['市辖区','兴庆区','西夏区','金凤区','永宁县','贺兰县','灵武市']}, +{name:'石嘴山市', areaList:['市辖区','大武口区','惠农区','平罗县']}, +{name:'吴忠市', areaList:['市辖区','利通区','盐池县','同心县','青铜峡市']}, +{name:'固原市', areaList:['市辖区','原州区','西吉县','隆德县','泾源县','彭阳县','海原县']}, +{name:'中卫市', areaList:['市辖区','沙坡头区','中宁县']} +]}, +{name:'新疆', cityList:[ +{name:'乌鲁木齐市', areaList:['市辖区','天山区','沙依巴克区','新市区','水磨沟区','头屯河区','达坂城区','东山区','乌鲁木齐县']}, +{name:'克拉玛依市', areaList:['市辖区','独山子区','克拉玛依区','白碱滩区','乌尔禾区']}, +{name:'吐鲁番地区', areaList:['吐鲁番市','鄯善县','托克逊县']}, +{name:'哈密地区', areaList:['哈密市','巴里坤哈萨克自治县','伊吾县']}, +{name:'昌吉回族自治州', areaList:['昌吉市','阜康市','米泉市','呼图壁县','玛纳斯县','奇台县','吉木萨尔县','木垒哈萨克自治县']}, +{name:'博尔塔拉蒙古自治州', areaList:['博乐市','精河县','温泉县']}, +{name:'巴音郭楞蒙古自治州', areaList:['库尔勒市','轮台县','尉犁县','若羌县','且末县','焉耆回族自治县','和静县','和硕县','博湖县']}, +{name:'阿克苏地区', areaList:['阿克苏市','温宿县','库车县','沙雅县','新和县','拜城县','乌什县','阿瓦提县','柯坪县']}, +{name:'克孜勒苏柯尔克孜自治州', areaList:['阿图什市','阿克陶县','阿合奇县','乌恰县']}, +{name:'喀什地区', areaList:['喀什市','疏附县','疏勒县','英吉沙县','泽普县','莎车县','叶城县','麦盖提县','岳普湖县','伽师县','巴楚县','塔什库尔干塔吉克自治县']}, +{name:'和田地区', areaList:['和田市','和田县','墨玉县','皮山县','洛浦县','策勒县','于田县','民丰县']}, +{name:'伊犁哈萨克自治州', areaList:['伊宁市','奎屯市','伊宁县','察布查尔锡伯自治县','霍城县','巩留县','新源县','昭苏县','特克斯县','尼勒克县']}, +{name:'塔城地区', areaList:['塔城市','乌苏市','额敏县','沙湾县','托里县','裕民县','和布克赛尔蒙古自治县']}, +{name:'阿勒泰地区', areaList:['阿勒泰市','布尔津县','富蕴县','福海县','哈巴河县','青河县','吉木乃县']}, +{name:'省直辖行政单位', areaList:['石河子市','阿拉尔市','图木舒克市','五家渠市']} +]}, +{name:'河北', cityList:[ +{name:'石家庄市', areaList:['市辖区','长安区','桥东区','桥西区','新华区','井陉矿区','裕华区','井陉县','正定县','栾城县','行唐县','灵寿县','高邑县','深泽县','赞皇县','无极县','平山县','元氏县','赵 县','辛集市','藁城市','晋州市','新乐市','鹿泉市']}, +{name:'唐山市', areaList:['市辖区','路南区','路北区','古冶区','开平区','丰南区','丰润区','滦 县','滦南县','乐亭县','迁西县','玉田县','唐海县','遵化市','迁安市']}, +{name:'秦皇岛市', areaList:['市辖区','海港区','山海关区','北戴河区','青龙满族自治县','昌黎县','抚宁县','卢龙县']}, +{name:'邯郸市', areaList:['市辖区','邯山区','丛台区','复兴区','峰峰矿区','邯郸县','临漳县','成安县','大名县','涉 县','磁 县','肥乡县','永年县','邱 县','鸡泽县','广平县','馆陶县','魏 县','曲周县','武安市']}, +{name:'邢台市', areaList:['市辖区','桥东区','桥西区','邢台县','临城县','内丘县','柏乡县','隆尧县','任 县','南和县','宁晋县','巨鹿县','新河县','广宗县','平乡县','威 县','清河县','临西县','南宫市','沙河市']}, +{name:'保定市', areaList:['市辖区','新市区','北市区','南市区','满城县','清苑县','涞水县','阜平县','徐水县','定兴县','唐 县','高阳县','容城县','涞源县','望都县','安新县','易 县','曲阳县','蠡 县','顺平县','博野县','雄 县','涿州市','定州市','安国市','高碑店市']}, +{name:'张家口市', areaList:['市辖区','桥东区','桥西区','宣化区','下花园区','宣化县','张北县','康保县','沽源县','尚义县','蔚 县','阳原县','怀安县','万全县','怀来县','涿鹿县','赤城县','崇礼县']}, +{name:'承德市', areaList:['市辖区','双桥区','双滦区','鹰手营子矿区','承德县','兴隆县','平泉县','滦平县','隆化县','丰宁满族自治县','宽城满族自治县','围场满族蒙古族自治县']}, +{name:'沧州市', areaList:['市辖区','新华区','运河区','沧 县','青 县','东光县','海兴县','盐山县','肃宁县','南皮县','吴桥县','献 县','孟村回族自治县','泊头市','任丘市','黄骅市','河间市']}, +{name:'廊坊市', areaList:['市辖区','安次区','广阳区','固安县','永清县','香河县','大城县','文安县','大厂回族自治县','霸州市','三河市']}, +{name:'衡水市', areaList:['市辖区','桃城区','枣强县','武邑县','武强县','饶阳县','安平县','故城县','景 县','阜城县','冀州市','深州市']} +]}, +{name:'山西', cityList:[ +{name:'太原市', areaList:['市辖区','小店区','迎泽区','杏花岭区','尖草坪区','万柏林区','晋源区','清徐县','阳曲县','娄烦县','古交市']}, +{name:'大同市', areaList:['市辖区','城 区','矿 区','南郊区','新荣区','阳高县','天镇县','广灵县','灵丘县','浑源县','左云县','大同县']}, +{name:'阳泉市', areaList:['市辖区','城 区','矿 区','郊 区','平定县','盂 县']}, +{name:'长治市', areaList:['市辖区','城 区','郊 区','长治县','襄垣县','屯留县','平顺县','黎城县','壶关县','长子县','武乡县','沁 县','沁源县','潞城市']}, +{name:'晋城市', areaList:['市辖区','城 区','沁水县','阳城县','陵川县','泽州县','高平市']}, +{name:'朔州市', areaList:['市辖区','朔城区','平鲁区','山阴县','应 县','右玉县','怀仁县']}, +{name:'晋中市', areaList:['市辖区','榆次区','榆社县','左权县','和顺县','昔阳县','寿阳县','太谷县','祁 县','平遥县','灵石县','介休市']}, +{name:'运城市', areaList:['市辖区','盐湖区','临猗县','万荣县','闻喜县','稷山县','新绛县','绛 县','垣曲县','夏 县','平陆县','芮城县','永济市','河津市']}, +{name:'忻州市', areaList:['市辖区','忻府区','定襄县','五台县','代 县','繁峙县','宁武县','静乐县','神池县','五寨县','岢岚县','河曲县','保德县','偏关县','原平市']}, +{name:'临汾市', areaList:['市辖区','尧都区','曲沃县','翼城县','襄汾县','洪洞县','古 县','安泽县','浮山县','吉 县','乡宁县','大宁县','隰 县','永和县','蒲 县','汾西县','侯马市','霍州市']}, +{name:'吕梁市', areaList:['市辖区','离石区','文水县','交城县','兴 县','临 县','柳林县','石楼县','岚 县','方山县','中阳县','交口县','孝义市','汾阳市']} +]}, +{name:'内蒙古', cityList:[ +{name:'呼和浩特市', areaList:['市辖区','新城区','回民区','玉泉区','赛罕区','土默特左旗','托克托县','和林格尔县','清水河县','武川县']}, +{name:'包头市', areaList:['市辖区','东河区','昆都仑区','青山区','石拐区','白云矿区','九原区','土默特右旗','固阳县','达尔罕茂明安联合旗']}, +{name:'乌海市', areaList:['市辖区','海勃湾区','海南区','乌达区']}, +{name:'赤峰市', areaList:['市辖区','红山区','元宝山区','松山区','阿鲁科尔沁旗','巴林左旗','巴林右旗','林西县','克什克腾旗','翁牛特旗','喀喇沁旗','宁城县','敖汉旗']}, +{name:'通辽市', areaList:['市辖区','科尔沁区','科尔沁左翼中旗','科尔沁左翼后旗','开鲁县','库伦旗','奈曼旗','扎鲁特旗','霍林郭勒市']}, +{name:'鄂尔多斯市', areaList:['东胜区','达拉特旗','准格尔旗','鄂托克前旗','鄂托克旗','杭锦旗','乌审旗','伊金霍洛旗']}, +{name:'呼伦贝尔市', areaList:['市辖区','海拉尔区','阿荣旗','莫力达瓦达斡尔族自治旗','鄂伦春自治旗','鄂温克族自治旗','陈巴尔虎旗','新巴尔虎左旗','新巴尔虎右旗','满洲里市','牙克石市','扎兰屯市','额尔古纳市','根河市']}, +{name:'巴彦淖尔市', areaList:['市辖区','临河区','五原县','磴口县','乌拉特前旗','乌拉特中旗','乌拉特后旗','杭锦后旗']}, +{name:'乌兰察布市', areaList:['市辖区','集宁区','卓资县','化德县','商都县','兴和县','凉城县','察哈尔右翼前旗','察哈尔右翼中旗','察哈尔右翼后旗','四子王旗','丰镇市']}, +{name:'兴安盟', areaList:['乌兰浩特市','阿尔山市','科尔沁右翼前旗','科尔沁右翼中旗','扎赉特旗','突泉县']}, +{name:'锡林郭勒盟', areaList:['二连浩特市','锡林浩特市','阿巴嘎旗','苏尼特左旗','苏尼特右旗','东乌珠穆沁旗','西乌珠穆沁旗','太仆寺旗','镶黄旗','正镶白旗','正蓝旗','多伦县']}, +{name:'阿拉善盟', areaList:['阿拉善左旗','阿拉善右旗','额济纳旗']} +]}, +{name:'江苏', cityList:[ +{name:'南京市', areaList:['市辖区','玄武区','白下区','秦淮区','建邺区','鼓楼区','下关区','浦口区','栖霞区','雨花台区','江宁区','六合区','溧水县','高淳县']}, +{name:'无锡市', areaList:['市辖区','崇安区','南长区','北塘区','锡山区','惠山区','滨湖区','江阴市','宜兴市']}, +{name:'徐州市', areaList:['市辖区','鼓楼区','云龙区','九里区','贾汪区','泉山区','丰 县','沛 县','铜山县','睢宁县','新沂市','邳州市']}, +{name:'常州市', areaList:['市辖区','天宁区','钟楼区','戚墅堰区','新北区','武进区','溧阳市','金坛市']}, +{name:'苏州市', areaList:['市辖区','沧浪区','平江区','金阊区','虎丘区','吴中区','相城区','常熟市','张家港市','昆山市','吴江市','太仓市']}, +{name:'南通市', areaList:['市辖区','崇川区','港闸区','海安县','如东县','启东市','如皋市','通州市','海门市']}, +{name:'连云港市', areaList:['市辖区','连云区','新浦区','海州区','赣榆县','东海县','灌云县','灌南县']}, +{name:'淮安市', areaList:['市辖区','清河区','楚州区','淮阴区','清浦区','涟水县','洪泽县','盱眙县','金湖县']}, +{name:'盐城市', areaList:['市辖区','亭湖区','盐都区','响水县','滨海县','阜宁县','射阳县','建湖县','东台市','大丰市']}, +{name:'扬州市', areaList:['市辖区','广陵区','邗江区','郊 区','宝应县','仪征市','高邮市','江都市']}, +{name:'镇江市', areaList:['市辖区','京口区','润州区','丹徒区','丹阳市','扬中市','句容市']}, +{name:'泰州市', areaList:['市辖区','海陵区','高港区','兴化市','靖江市','泰兴市','姜堰市']}, +{name:'宿迁市', areaList:['市辖区','宿城区','宿豫区','沭阳县','泗阳县','泗洪县']} +]}, +{name:'浙江', cityList:[ +{name:'杭州市', areaList:['市辖区','上城区','下城区','江干区','拱墅区','西湖区','滨江区','萧山区','余杭区','桐庐县','淳安县','建德市','富阳市','临安市']}, +{name:'宁波市', areaList:['市辖区','海曙区','江东区','江北区','北仑区','镇海区','鄞州区','象山县','宁海县','余姚市','慈溪市','奉化市']}, +{name:'温州市', areaList:['市辖区','鹿城区','龙湾区','瓯海区','洞头县','永嘉县','平阳县','苍南县','文成县','泰顺县','瑞安市','乐清市']}, +{name:'嘉兴市', areaList:['市辖区','秀城区','秀洲区','嘉善县','海盐县','海宁市','平湖市','桐乡市']}, +{name:'湖州市', areaList:['市辖区','吴兴区','南浔区','德清县','长兴县','安吉县']}, +{name:'绍兴市', areaList:['市辖区','越城区','绍兴县','新昌县','诸暨市','上虞市','嵊州市']}, +{name:'金华市', areaList:['市辖区','婺城区','金东区','武义县','浦江县','磐安县','兰溪市','义乌市','东阳市','永康市']}, +{name:'衢州市', areaList:['市辖区','柯城区','衢江区','常山县','开化县','龙游县','江山市']}, +{name:'舟山市', areaList:['市辖区','定海区','普陀区','岱山县','嵊泗县']}, +{name:'台州市', areaList:['市辖区','椒江区','黄岩区','路桥区','玉环县','三门县','天台县','仙居县','温岭市','临海市']}, +{name:'丽水市', areaList:['市辖区','莲都区','青田县','缙云县','遂昌县','松阳县','云和县','庆元县','景宁畲族自治县','龙泉市']} +]}, +{name:'安徽', cityList:[ +{name:'合肥市', areaList:['市辖区','瑶海区','庐阳区','蜀山区','包河区','长丰县','肥东县','肥西县']}, +{name:'芜湖市', areaList:['市辖区','镜湖区','马塘区','新芜区','鸠江区','芜湖县','繁昌县','南陵县']}, +{name:'蚌埠市', areaList:['市辖区','龙子湖区','蚌山区','禹会区','淮上区','怀远县','五河县','固镇县']}, +{name:'淮南市', areaList:['市辖区','大通区','田家庵区','谢家集区','八公山区','潘集区','凤台县']}, +{name:'马鞍山市', areaList:['市辖区','金家庄区','花山区','雨山区','当涂县']}, +{name:'淮北市', areaList:['市辖区','杜集区','相山区','烈山区','濉溪县']}, +{name:'铜陵市', areaList:['市辖区','铜官山区','狮子山区','郊 区','铜陵县']}, +{name:'安庆市', areaList:['市辖区','迎江区','大观区','郊 区','怀宁县','枞阳县','潜山县','太湖县','宿松县','望江县','岳西县','桐城市']}, +{name:'黄山市', areaList:['市辖区','屯溪区','黄山区','徽州区','歙 县','休宁县','黟 县','祁门县']}, +{name:'滁州市', areaList:['市辖区','琅琊区','南谯区','来安县','全椒县','定远县','凤阳县','天长市','明光市']}, +{name:'阜阳市', areaList:['市辖区','颍州区','颍东区','颍泉区','临泉县','太和县','阜南县','颍上县','界首市']}, +{name:'宿州市', areaList:['市辖区','墉桥区','砀山县','萧 县','灵璧县','泗 县']}, +{name:'巢湖市', areaList:['市辖区','居巢区','庐江县','无为县','含山县','和 县']}, +{name:'六安市', areaList:['市辖区','金安区','裕安区','寿 县','霍邱县','舒城县','金寨县','霍山县']}, +{name:'亳州市', areaList:['市辖区','谯城区','涡阳县','蒙城县','利辛县']}, +{name:'池州市', areaList:['市辖区','贵池区','东至县','石台县','青阳县']}, +{name:'宣城市', areaList:['市辖区','宣州区','郎溪县','广德县','泾 县','绩溪县','旌德县','宁国市']} +]}, +{name:'福建', cityList:[ +{name:'福州市', areaList:['市辖区','鼓楼区','台江区','仓山区','马尾区','晋安区','闽侯县','连江县','罗源县','闽清县','永泰县','平潭县','福清市','长乐市']}, +{name:'厦门市', areaList:['市辖区','思明区','海沧区','湖里区','集美区','同安区','翔安区']}, +{name:'莆田市', areaList:['市辖区','城厢区','涵江区','荔城区','秀屿区','仙游县']}, +{name:'三明市', areaList:['市辖区','梅列区','三元区','明溪县','清流县','宁化县','大田县','尤溪县','沙 县','将乐县','泰宁县','建宁县','永安市']}, +{name:'泉州市', areaList:['市辖区','鲤城区','丰泽区','洛江区','泉港区','惠安县','安溪县','永春县','德化县','金门县','石狮市','晋江市','南安市']}, +{name:'漳州市', areaList:['市辖区','芗城区','龙文区','云霄县','漳浦县','诏安县','长泰县','东山县','南靖县','平和县','华安县','龙海市']}, +{name:'南平市', areaList:['市辖区','延平区','顺昌县','浦城县','光泽县','松溪县','政和县','邵武市','武夷山市','建瓯市','建阳市']}, +{name:'龙岩市', areaList:['市辖区','新罗区','长汀县','永定县','上杭县','武平县','连城县','漳平市']}, +{name:'宁德市', areaList:['市辖区','蕉城区','霞浦县','古田县','屏南县','寿宁县','周宁县','柘荣县','福安市','福鼎市']} +]}, +{name:'江西', cityList:[ +{name:'南昌市', areaList:['市辖区','东湖区','西湖区','青云谱区','湾里区','青山湖区','南昌县','新建县','安义县','进贤县']}, +{name:'景德镇市', areaList:['市辖区','昌江区','珠山区','浮梁县','乐平市']}, +{name:'萍乡市', areaList:['市辖区','安源区','湘东区','莲花县','上栗县','芦溪县']}, +{name:'九江市', areaList:['市辖区','庐山区','浔阳区','九江县','武宁县','修水县','永修县','德安县','星子县','都昌县','湖口县','彭泽县','瑞昌市']}, +{name:'新余市', areaList:['市辖区','渝水区','分宜县']}, +{name:'鹰潭市', areaList:['市辖区','月湖区','余江县','贵溪市']}, +{name:'赣州市', areaList:['市辖区','章贡区','赣 县','信丰县','大余县','上犹县','崇义县','安远县','龙南县','定南县','全南县','宁都县','于都县','兴国县','会昌县','寻乌县','石城县','瑞金市','南康市']}, +{name:'吉安市', areaList:['市辖区','吉州区','青原区','吉安县','吉水县','峡江县','新干县','永丰县','泰和县','遂川县','万安县','安福县','永新县','井冈山市']}, +{name:'宜春市', areaList:['市辖区','袁州区','奉新县','万载县','上高县','宜丰县','靖安县','铜鼓县','丰城市','樟树市','高安市']}, +{name:'抚州市', areaList:['市辖区','临川区','南城县','黎川县','南丰县','崇仁县','乐安县','宜黄县','金溪县','资溪县','东乡县','广昌县']}, +{name:'上饶市', areaList:['市辖区','信州区','上饶县','广丰县','玉山县','铅山县','横峰县','弋阳县','余干县','鄱阳县','万年县','婺源县','德兴市']} +]}, +{name:'山东', cityList:[ +{name:'济南市', areaList:['市辖区','历下区','市中区','槐荫区','天桥区','历城区','长清区','平阴县','济阳县','商河县','章丘市']}, +{name:'青岛市', areaList:['市辖区','市南区','市北区','四方区','黄岛区','崂山区','李沧区','城阳区','胶州市','即墨市','平度市','胶南市','莱西市']}, +{name:'淄博市', areaList:['市辖区','淄川区','张店区','博山区','临淄区','周村区','桓台县','高青县','沂源县']}, +{name:'枣庄市', areaList:['市辖区','市中区','薛城区','峄城区','台儿庄区','山亭区','滕州市']}, +{name:'东营市', areaList:['市辖区','东营区','河口区','垦利县','利津县','广饶县']}, +{name:'烟台市', areaList:['市辖区','芝罘区','福山区','牟平区','莱山区','长岛县','龙口市','莱阳市','莱州市','蓬莱市','招远市','栖霞市','海阳市']}, +{name:'潍坊市', areaList:['市辖区','潍城区','寒亭区','坊子区','奎文区','临朐县','昌乐县','青州市','诸城市','寿光市','安丘市','高密市','昌邑市']}, +{name:'济宁市', areaList:['市辖区','市中区','任城区','微山县','鱼台县','金乡县','嘉祥县','汶上县','泗水县','梁山县','曲阜市','兖州市','邹城市']}, +{name:'泰安市', areaList:['市辖区','泰山区','岱岳区','宁阳县','东平县','新泰市','肥城市']}, +{name:'威海市', areaList:['市辖区','环翠区','文登市','荣成市','乳山市']}, +{name:'日照市', areaList:['市辖区','东港区','岚山区','五莲县','莒 县']}, +{name:'莱芜市', areaList:['市辖区','莱城区','钢城区']}, +{name:'临沂市', areaList:['市辖区','兰山区','罗庄区','河东区','沂南县','郯城县','沂水县','苍山县','费 县','平邑县','莒南县','蒙阴县','临沭县']}, +{name:'德州市', areaList:['市辖区','德城区','陵 县','宁津县','庆云县','临邑县','齐河县','平原县','夏津县','武城县','乐陵市','禹城市']}, +{name:'聊城市', areaList:['市辖区','东昌府区','阳谷县','莘 县','茌平县','东阿县','冠 县','高唐县','临清市']}, +{name:'滨州市', areaList:['市辖区','滨城区','惠民县','阳信县','无棣县','沾化县','博兴县','邹平县']}, +{name:'荷泽市', areaList:['市辖区','牡丹区','曹 县','单 县','成武县','巨野县','郓城县','鄄城县','定陶县','东明县']} +]}, +{name:'辽宁', cityList:[ +{name:'沈阳市', areaList:['市辖区','和平区','沈河区','大东区','皇姑区','铁西区','苏家屯区','东陵区','新城子区','于洪区','辽中县','康平县','法库县','新民市']}, +{name:'大连市', areaList:['市辖区','中山区','西岗区','沙河口区','甘井子区','旅顺口区','金州区','长海县','瓦房店市','普兰店市','庄河市']}, +{name:'鞍山市', areaList:['市辖区','铁东区','铁西区','立山区','千山区','台安县','岫岩满族自治县','海城市']}, +{name:'抚顺市', areaList:['市辖区','新抚区','东洲区','望花区','顺城区','抚顺县','新宾满族自治县','清原满族自治县']}, +{name:'本溪市', areaList:['市辖区','平山区','溪湖区','明山区','南芬区','本溪满族自治县','桓仁满族自治县']}, +{name:'丹东市', areaList:['市辖区','元宝区','振兴区','振安区','宽甸满族自治县','东港市','凤城市']}, +{name:'锦州市', areaList:['市辖区','古塔区','凌河区','太和区','黑山县','义 县','凌海市','北宁市']}, +{name:'营口市', areaList:['市辖区','站前区','西市区','鲅鱼圈区','老边区','盖州市','大石桥市']}, +{name:'阜新市', areaList:['市辖区','海州区','新邱区','太平区','清河门区','细河区','阜新蒙古族自治县','彰武县']}, +{name:'辽阳市', areaList:['市辖区','白塔区','文圣区','宏伟区','弓长岭区','太子河区','辽阳县','灯塔市']}, +{name:'盘锦市', areaList:['市辖区','双台子区','兴隆台区','大洼县','盘山县']}, +{name:'铁岭市', areaList:['市辖区','银州区','清河区','铁岭县','西丰县','昌图县','调兵山市','开原市']}, +{name:'朝阳市', areaList:['市辖区','双塔区','龙城区','朝阳县','建平县','喀喇沁左翼蒙古族自治县','北票市','凌源市']}, +{name:'葫芦岛市', areaList:['市辖区','连山区','龙港区','南票区','绥中县','建昌县','兴城市']} +]}, +{name:'吉林', cityList:[ +{name:'长春市', areaList:['市辖区','南关区','宽城区','朝阳区','二道区','绿园区','双阳区','农安县','九台市','榆树市','德惠市']}, +{name:'吉林市', areaList:['市辖区','昌邑区','龙潭区','船营区','丰满区','永吉县','蛟河市','桦甸市','舒兰市','磐石市']}, +{name:'四平市', areaList:['市辖区','铁西区','铁东区','梨树县','伊通满族自治县','公主岭市','双辽市']}, +{name:'辽源市', areaList:['市辖区','龙山区','西安区','东丰县','东辽县']}, +{name:'通化市', areaList:['市辖区','东昌区','二道江区','通化县','辉南县','柳河县','梅河口市','集安市']}, +{name:'白山市', areaList:['市辖区','八道江区','抚松县','靖宇县','长白朝鲜族自治县','江源县','临江市']}, +{name:'松原市', areaList:['市辖区','宁江区','前郭尔罗斯蒙古族自治县','长岭县','乾安县','扶余县']}, +{name:'白城市', areaList:['市辖区','洮北区','镇赉县','通榆县','洮南市','大安市']}, +{name:'延边朝鲜族自治州', areaList:['延吉市','图们市','敦化市','珲春市','龙井市','和龙市','汪清县','安图县']} +]}, +{name:'黑龙江', cityList:[ +{name:'哈尔滨市', areaList:['市辖区','道里区','南岗区','道外区','香坊区','动力区','平房区','松北区','呼兰区','依兰县','方正县','宾 县','巴彦县','木兰县','通河县','延寿县','阿城市','双城市','尚志市','五常市']}, +{name:'齐齐哈尔市', areaList:['市辖区','龙沙区','建华区','铁锋区','昂昂溪区','富拉尔基区','碾子山区','梅里斯达斡尔族区','龙江县','依安县','泰来县','甘南县','富裕县','克山县','克东县','拜泉县','讷河市']}, +{name:'鸡西市', areaList:['市辖区','鸡冠区','恒山区','滴道区','梨树区','城子河区','麻山区','鸡东县','虎林市','密山市']}, +{name:'鹤岗市', areaList:['市辖区','向阳区','工农区','南山区','兴安区','东山区','兴山区','萝北县','绥滨县']}, +{name:'双鸭山市', areaList:['市辖区','尖山区','岭东区','四方台区','宝山区','集贤县','友谊县','宝清县','饶河县']}, +{name:'大庆市', areaList:['市辖区','萨尔图区','龙凤区','让胡路区','红岗区','大同区','肇州县','肇源县','林甸县','杜尔伯特蒙古族自治县']}, +{name:'伊春市', areaList:['市辖区','伊春区','南岔区','友好区','西林区','翠峦区','新青区','美溪区','金山屯区','五营区','乌马河区','汤旺河区','带岭区','乌伊岭区','红星区','上甘岭区','嘉荫县','铁力市']}, +{name:'佳木斯市', areaList:['市辖区','永红区','向阳区','前进区','东风区','郊 区','桦南县','桦川县','汤原县','抚远县','同江市','富锦市']}, +{name:'七台河市', areaList:['市辖区','新兴区','桃山区','茄子河区','勃利县']}, +{name:'牡丹江市', areaList:['市辖区','东安区','阳明区','爱民区','西安区','东宁县','林口县','绥芬河市','海林市','宁安市','穆棱市']}, +{name:'黑河市', areaList:['市辖区','爱辉区','嫩江县','逊克县','孙吴县','北安市','五大连池市']}, +{name:'绥化市', areaList:['市辖区','北林区','望奎县','兰西县','青冈县','庆安县','明水县','绥棱县','安达市','肇东市','海伦市']}, +{name:'大兴安岭地区', areaList:['呼玛县','塔河县','漠河县']} +]}, +{name:'海南', cityList:[ +{name:'海口市', areaList:['市辖区','秀英区','龙华区','琼山区','美兰区']}, +{name:'三亚市', areaList:['市辖区']}, +{name:'省直辖县级行政单位', areaList:['五指山市','琼海市','儋州市','文昌市','万宁市','东方市','定安县','屯昌县','澄迈县','临高县','白沙黎族自治县','昌江黎族自治县','乐东黎族自治县','陵水黎族自治县','保亭黎族苗族自治县','琼中黎族苗族自治县','西沙群岛','南沙群岛','中沙群岛的岛礁及其海域']} +]}, +{name:'台湾', cityList:[ +{name:'台湾', areaList:['台湾']} +]}, +{name:'香港', cityList:[ +{name:'香港', areaList:['香港']} +]}, +{name:'澳门', cityList:[ +{name:'澳门', areaList:['澳门']} +]} +]; diff --git a/sop-admin/sop-admin-front/assets/lib/jquery/3.2.1/jquery.min.js b/sop-admin/sop-admin-front/assets/lib/jquery/3.2.1/jquery.min.js new file mode 100644 index 00000000..ba9b3b09 --- /dev/null +++ b/sop-admin/sop-admin-front/assets/lib/jquery/3.2.1/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), + a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), + null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" + + + + + + + +
+ +
+ +
+ + +
+ + + + + + + +
+
+
    +
  • 我的桌面
  • +
+
+
+
关闭当前
+
关闭其它
+
关闭全部
+
+
+
+
+ +
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/admin-add.html b/sop-admin/sop-admin-front/pages/admin-add.html new file mode 100644 index 00000000..599d1730 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/admin-add.html @@ -0,0 +1,147 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+ *将会成为您唯一的登入名 +
+
+
+ +
+ +
+
+ *将会成为您唯一的登入名 +
+
+
+ +
+ +
+
+ * +
+
+
+ +
+ + + +
+
+
+ +
+ +
+
+ 6到16个字符 +
+
+
+ +
+ +
+
+
+ + +
+
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/admin-cate.html b/sop-admin/sop-admin-front/pages/admin-cate.html new file mode 100644 index 00000000..a6b4f764 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/admin-cate.html @@ -0,0 +1,154 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + + +
+
+
+ + +
+
+ + + 共有数据:88 条 + + + + + + + + + + + + + + + + + +
+
+
ID分类名操作
+
+
1会员相关 + + + + + + +
+
+
+ + 1 + 2 + 3 + 489 + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/admin-edit.html b/sop-admin/sop-admin-front/pages/admin-edit.html new file mode 100644 index 00000000..27e346ec --- /dev/null +++ b/sop-admin/sop-admin-front/pages/admin-edit.html @@ -0,0 +1,145 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+ *将会成为您唯一的登入名 +
+
+
+ +
+ +
+
+ *将会成为您唯一的登入名 +
+
+
+ +
+ +
+
+ * +
+
+
+ +
+ + + +
+
+
+ +
+ +
+
+ 6到16个字符 +
+
+
+ +
+ +
+
+
+ + +
+
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/admin-list.html b/sop-admin/sop-admin-front/pages/admin-list.html new file mode 100644 index 00000000..24db7a3c --- /dev/null +++ b/sop-admin/sop-admin-front/pages/admin-list.html @@ -0,0 +1,171 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + + +
+
+
+ + + + +
+
+ + + + 共有数据:88 条 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
ID登录名手机邮箱角色加入时间状态操作
+
+
1admin18925139194113664000@qq.com超级管理员2017-01-01 11:11:42 + 已启用 + + + + + + + + + +
+
+
+ + 1 + 2 + 3 + 489 + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/admin-role.html b/sop-admin/sop-admin-front/pages/admin-role.html new file mode 100644 index 00000000..703c4b22 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/admin-role.html @@ -0,0 +1,167 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + + +
+
+
+ + + + +
+
+ + + + 共有数据:88 条 + + + + + + + + + + + + + + + + + + + + + + + +
+
+
ID角色名拥有权限规则描述状态操作
+
+
1超级管理员会员列表,问题列表具有至高无上的权利 + 已启用 + + + + + + + + + +
+
+
+ + 1 + 2 + 3 + 489 + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/admin-rule.html b/sop-admin/sop-admin-front/pages/admin-rule.html new file mode 100644 index 00000000..7edcbf94 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/admin-rule.html @@ -0,0 +1,184 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+ +
+ + +
+
+ + + 共有数据:88 条 + + + + + + + + + + + + + + + + + + + + + +
+
+
ID权限规则权限名称所属分类操作
+
+
1admin/user/userlist会员列表会员相关 + + + + + + +
+
+
+ + 1 + 2 + 3 + 489 + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/cate.html b/sop-admin/sop-admin-front/pages/cate.html new file mode 100644 index 00000000..ef749c4a --- /dev/null +++ b/sop-admin/sop-admin-front/pages/cate.html @@ -0,0 +1,237 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + + +
+
+
+ + +
+
+
每个tr 上有两个属性 cate-id='1' 当前分类id fid='0' 父级id ,顶级分类为 0,有子分类的前面加收缩图标
+ + + 共有数据:88 条 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
ID栏目名排序状态操作
+
+
1 + + 产品管理 + + + + + + +
+
+
2 +      + + 产品列表 + + + + + + +
+
+
3 +           + ├产品列表 + + + + + + +
+
+
4 +           + ├产品列表 + + + + + + +
+
+
5 + + 新闻 + + + + + + +
+
+
6 +      + ├国内新闻 + + + + + + +
+
+
7 +      + ├国外新闻 + + + + + + +
+
+ + + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/city.html b/sop-admin/sop-admin-front/pages/city.html new file mode 100644 index 00000000..10e328b6 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/city.html @@ -0,0 +1,87 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + + +
+
+
+
+ +
+ +
+
+ +
+
+ +
+
+
+
+
+
+          //xcity城市插件 基于于jquery与layui form 模块,使用之前先确认这两者是否引入 
+          //插件文件为 xcity.js,引入 
+          select lay-filter 属性值 为必须 "province/city/area"
+          //初始化
+          $('#x-city').xcity();
+          //传默认值 
+          $('#x-city').xcity('广东','广州市','东山区');
+      
+
+ + + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/echarts1.html b/sop-admin/sop-admin-front/pages/echarts1.html new file mode 100644 index 00000000..87e86f77 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/echarts1.html @@ -0,0 +1,108 @@ + + + + + 后台登录-X-admin2.1 + + + + + + + + + +
+
+ 特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用,详细了解可以访问官网 ECharts。 x-admin不承担任何版权问题。 +
+ +
+
+ 注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离线,请至Echarts官网下载。 +
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/echarts2.html b/sop-admin/sop-admin-front/pages/echarts2.html new file mode 100644 index 00000000..f460b54c --- /dev/null +++ b/sop-admin/sop-admin-front/pages/echarts2.html @@ -0,0 +1,106 @@ + + + + + 后台登录-X-admin2.1 + + + + + + + + + +
+
+ 特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用或者详细更多案例可以访问官网 ECharts。 x-admin不承担任何版权问题。 +
+ +
+
+ 注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离线,请至Echarts官网下载。 +
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/echarts3.html b/sop-admin/sop-admin-front/pages/echarts3.html new file mode 100644 index 00000000..c201fb2c --- /dev/null +++ b/sop-admin/sop-admin-front/pages/echarts3.html @@ -0,0 +1,349 @@ + + + + + 后台登录-X-admin2.1 + + + + + + + + + +
+
+ 特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用或者详细更多案例可以访问官网 ECharts。 x-admin不承担任何版权问题。 +
+ +
+
+ 注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离线,请至Echarts官网下载。 +
+
+ + + + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/echarts4.html b/sop-admin/sop-admin-front/pages/echarts4.html new file mode 100644 index 00000000..4f5727ce --- /dev/null +++ b/sop-admin/sop-admin-front/pages/echarts4.html @@ -0,0 +1,114 @@ + + + + + 后台登录-X-admin2.1 + + + + + + + + + +
+
+ 特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用或者详细更多案例可以访问官网 ECharts。 x-admin不承担任何版权问题。 +
+ +
+
+ 注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离线,请至Echarts官网下载。 +
+
+ + + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/echarts5.html b/sop-admin/sop-admin-front/pages/echarts5.html new file mode 100644 index 00000000..1d9c6229 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/echarts5.html @@ -0,0 +1,80 @@ + + + + + 后台登录-X-admin2.1 + + + + + + + + + +
+
+ 特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用,详细了解可以访问官网 ECharts。 x-admin不承担任何版权问题。 +
+ +
+
+ 注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离线,请至Echarts官网下载。 +
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/echarts6.html b/sop-admin/sop-admin-front/pages/echarts6.html new file mode 100644 index 00000000..62fc569f --- /dev/null +++ b/sop-admin/sop-admin-front/pages/echarts6.html @@ -0,0 +1,343 @@ + + + + + 后台登录-X-admin2.1 + + + + + + + + + +
+
+ 特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用,详细了解可以访问官网 ECharts。 x-admin不承担任何版权问题。 +
+ +
+
+ 注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离线,请至Echarts官网下载。 +
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/echarts7.html b/sop-admin/sop-admin-front/pages/echarts7.html new file mode 100644 index 00000000..85c1c3b0 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/echarts7.html @@ -0,0 +1,496 @@ + + + + + 后台登录-X-admin2.1 + + + + + + + + + +
+
+ 特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用或者详细更多案例可以访问官网 ECharts。 x-admin不承担任何版权问题。 +
+ +
+
+ 注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离线,请至Echarts官网下载。 +
+
+ + + + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/echarts8.html b/sop-admin/sop-admin-front/pages/echarts8.html new file mode 100644 index 00000000..1465a5dc --- /dev/null +++ b/sop-admin/sop-admin-front/pages/echarts8.html @@ -0,0 +1,238 @@ + + + + + 后台登录-X-admin2.1 + + + + + + + + + +
+
+ 特别声明:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。如需使用,详细了解可以访问官网 ECharts。 x-admin不承担任何版权问题。 +
+ +
+
+ 注意:本案例的Echarts图表库由cdn引入,需要在线才能正常使用,如想离线,请至Echarts官网下载。 +
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/error.html b/sop-admin/sop-admin-front/pages/error.html new file mode 100644 index 00000000..4c44d0e5 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/error.html @@ -0,0 +1,33 @@ + + + + + 后台登录-X-admin2.1 + + + + + + + + + +
+
+
+

+

页面或者数据被 纸飞机 运到火星了,啥都看不到了…

+
+
+
+ + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/login.html b/sop-admin/sop-admin-front/pages/login.html new file mode 100644 index 00000000..bd5cfea0 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/login.html @@ -0,0 +1,68 @@ + + + + + 后台登录-X-admin2.1 + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/member-add.html b/sop-admin/sop-admin-front/pages/member-add.html new file mode 100644 index 00000000..e7085d39 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/member-add.html @@ -0,0 +1,123 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+ *将会成为您唯一的登入名 +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ 6到16个字符 +
+
+
+ +
+ +
+
+
+ + +
+
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/member-del.html b/sop-admin/sop-admin-front/pages/member-del.html new file mode 100644 index 00000000..d8021d55 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/member-del.html @@ -0,0 +1,172 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + + +
+
+
+ + + + +
+
+ + + 共有数据:88 条 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
ID用户名性别手机邮箱地址加入时间状态操作
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + + 已删除 + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + + 已删除 + + + + + + + + +
+
+
+ + 1 + 2 + 3 + 489 + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/member-edit.html b/sop-admin/sop-admin-front/pages/member-edit.html new file mode 100644 index 00000000..b5d6e516 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/member-edit.html @@ -0,0 +1,122 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+ *将会成为您唯一的登入名 +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ 6到16个字符 +
+
+
+ +
+ +
+
+
+ + +
+
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/member-list.html b/sop-admin/sop-admin-front/pages/member-list.html new file mode 100644 index 00000000..ed847a2b --- /dev/null +++ b/sop-admin/sop-admin-front/pages/member-list.html @@ -0,0 +1,1490 @@ + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + + +
+
+
+ + + + +
+
+ + + + 共有数据:88 条 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
ID用户名性别手机邮箱地址加入时间状态操作
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
1小明13000000000admin@mail.com北京市 海淀区2017-01-01 11:11:42 + 已启用 + + + + + + + + + + + + +
+
+
+ + 1 + 2 + 3 + 489 + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/member-list1.html b/sop-admin/sop-admin-front/pages/member-list1.html new file mode 100644 index 00000000..a6aed2dd --- /dev/null +++ b/sop-admin/sop-admin-front/pages/member-list1.html @@ -0,0 +1,125 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + + +
+
+
+ + + + +
+
+ + + + + + + + + + + + +
IDID用户名邮箱性别城市积分
+ +
+ + + + + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/member-password.html b/sop-admin/sop-admin-front/pages/member-password.html new file mode 100644 index 00000000..77d0313c --- /dev/null +++ b/sop-admin/sop-admin-front/pages/member-password.html @@ -0,0 +1,103 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ 6到16个字符 +
+
+
+ +
+ +
+
+
+ + +
+
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/order-add.html b/sop-admin/sop-admin-front/pages/order-add.html new file mode 100644 index 00000000..080100c2 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/order-add.html @@ -0,0 +1,185 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ * +
+
+
+ +
+ + + + + + + + + + + + + + + + + +
haier海尔 BC-93TMPF 93升单门冰箱0.019841删除
haier海尔 BC-93TMPF 93升单门冰箱0.019841删除
+
+
+
+ +
+ +
+
+
+ + +
+
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/order-list.html b/sop-admin/sop-admin-front/pages/order-list.html new file mode 100644 index 00000000..37da6de7 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/order-list.html @@ -0,0 +1,200 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+
+ +
+
+ +
+ + +
+
+ + + + 共有数据:88 条 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
订单编号收货人总金额应付金额订单状态支付状态发货状态支付方式配送方式下单时间操作
+
+
2017009171822298053老王:189251391947829.107854.10待确认未支付未发货其他方式申通物流2017-08-17 18:22 + + + + + + +
+
+
+ + 1 + 2 + 3 + 489 + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/role-add.html b/sop-admin/sop-admin-front/pages/role-add.html new file mode 100644 index 00000000..d2127774 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/role-add.html @@ -0,0 +1,147 @@ + + + + + + 欢迎页面-X-admin2.1 + + + + + + + + + + + + + + +
+
+
+ +
+ +
+
+
+ + + + + + + + + + + + +
+ + +
+ + + + + + + + + +
+
+ + + +
+ + + + + +
+
+
+
+ +
+ +
+
+
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/unicode.html b/sop-admin/sop-admin-front/pages/unicode.html new file mode 100644 index 00000000..876d7976 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/unicode.html @@ -0,0 +1,1311 @@ + + + + + IconFont + + + + + + +
+

IconFont 图标

+
    + +
  • + +
    all
    +
    &#xe696;
    +
  • + +
  • + +
    back
    +
    &#xe697;
    +
  • + +
  • + +
    cart
    +
    &#xe698;
    +
  • + +
  • + +
    Category
    +
    &#xe699;
    +
  • + +
  • + +
    close
    +
    &#xe69a;
    +
  • + +
  • + +
    comments
    +
    &#xe69b;
    +
  • + +
  • + +
    cry
    +
    &#xe69c;
    +
  • + +
  • + +
    delete
    +
    &#xe69d;
    +
  • + +
  • + +
    edit
    +
    &#xe69e;
    +
  • + +
  • + +
    email
    +
    &#xe69f;
    +
  • + +
  • + +
    favorite
    +
    &#xe6a0;
    +
  • + +
  • + +
    form
    +
    &#xe6a2;
    +
  • + +
  • + +
    help
    +
    &#xe6a3;
    +
  • + +
  • + +
    information
    +
    &#xe6a4;
    +
  • + +
  • + +
    less
    +
    &#xe6a5;
    +
  • + +
  • + +
    more_unfold
    +
    &#xe6a6;
    +
  • + +
  • + +
    more
    +
    &#xe6a7;
    +
  • + +
  • + +
    pic
    +
    &#xe6a8;
    +
  • + +
  • + +
    QRCode
    +
    &#xe6a9;
    +
  • + +
  • + +
    refresh
    +
    &#xe6aa;
    +
  • + +
  • + +
    RFQ
    +
    &#xe6ab;
    +
  • + +
  • + +
    search
    +
    &#xe6ac;
    +
  • + +
  • + +
    selected
    +
    &#xe6ad;
    +
  • + +
  • + +
    set
    +
    &#xe6ae;
    +
  • + +
  • + +
    Smile
    +
    &#xe6af;
    +
  • + +
  • + +
    success
    +
    &#xe6b1;
    +
  • + +
  • + +
    survey
    +
    &#xe6b2;
    +
  • + +
  • + +
    training
    +
    &#xe6b3;
    +
  • + +
  • + +
    ViewGallery
    +
    &#xe6b4;
    +
  • + +
  • + +
    Viewlist
    +
    &#xe6b5;
    +
  • + +
  • + +
    warning
    +
    &#xe6b6;
    +
  • + +
  • + +
    wrong
    +
    &#xe6b7;
    +
  • + +
  • + +
    account
    +
    &#xe6b8;
    +
  • + +
  • + +
    add
    +
    &#xe6b9;
    +
  • + +
  • + +
    atm
    +
    &#xe6ba;
    +
  • + +
  • + +
    clock
    +
    &#xe6bb;
    +
  • + +
  • + +
    remind
    +
    &#xe6bc;
    +
  • + +
  • + +
    calendar
    +
    &#xe6bf;
    +
  • + +
  • + +
    attachment
    +
    &#xe6c0;
    +
  • + +
  • + +
    discount
    +
    &#xe6c5;
    +
  • + +
  • + +
    service
    +
    &#xe6c7;
    +
  • + +
  • + +
    print
    +
    &#xe6c9;
    +
  • + +
  • + +
    box
    +
    &#xe6cb;
    +
  • + +
  • + +
    process
    +
    &#xe6ce;
    +
  • + +
  • + +
    beauty
    +
    &#xe6d2;
    +
  • + +
  • + +
    electrical
    +
    &#xe6d4;
    +
  • + +
  • + +
    home
    +
    &#xe6d7;
    +
  • + +
  • + +
    electronics
    +
    &#xe6da;
    +
  • + +
  • + +
    gifts
    +
    &#xe6db;
    +
  • + +
  • + +
    lights
    +
    &#xe6de;
    +
  • + +
  • + +
    sports
    +
    &#xe6e0;
    +
  • + +
  • + +
    toys
    +
    &#xe6e1;
    +
  • + +
  • + +
    auto
    +
    &#xe6e3;
    +
  • + +
  • + +
    jewelry
    +
    &#xe6e4;
    +
  • + +
  • + +
    trade-assurance
    +
    &#xe6e5;
    +
  • + +
  • + +
    browse
    +
    &#xe6e6;
    +
  • + +
  • + +
    rfq-qm
    +
    &#xe6e7;
    +
  • + +
  • + +
    rfq-quantity
    +
    &#xe6e8;
    +
  • + +
  • + +
    atm-away
    +
    &#xe6e9;
    +
  • + +
  • + +
    rfq
    +
    &#xe6eb;
    +
  • + +
  • + +
    scanning
    +
    &#xe6ec;
    +
  • + +
  • + +
    compare
    +
    &#xe6ee;
    +
  • + +
  • + +
    filter
    +
    &#xe6f1;
    +
  • + +
  • + +
    pin
    +
    &#xe6f2;
    +
  • + +
  • + +
    history
    +
    &#xe6f3;
    +
  • + +
  • + +
    product-features
    +
    &#xe6f4;
    +
  • + +
  • + +
    supplier-features
    +
    &#xe6f5;
    +
  • + +
  • + +
    similar-product
    +
    &#xe6f6;
    +
  • + +
  • + +
    link
    +
    &#xe6f7;
    +
  • + +
  • + +
    cut
    +
    &#xe6f8;
    +
  • + +
  • + +
    nav-list
    +
    &#xe6fa;
    +
  • + +
  • + +
    image-text
    +
    &#xe6fb;
    +
  • + +
  • + +
    text
    +
    &#xe6fc;
    +
  • + +
  • + +
    move
    +
    &#xe6fd;
    +
  • + +
  • + +
    subtract
    +
    &#xe6fe;
    +
  • + +
  • + +
    dollar
    +
    &#xe702;
    +
  • + +
  • + +
    raw
    +
    &#xe704;
    +
  • + +
  • + +
    office
    +
    &#xe705;
    +
  • + +
  • + +
    agriculture
    +
    &#xe707;
    +
  • + +
  • + +
    machinery
    +
    &#xe709;
    +
  • + +
  • + +
    assessed-Badge
    +
    &#xe70a;
    +
  • + +
  • + +
    personal-center
    +
    &#xe70b;
    +
  • + +
  • + +
    integral
    +
    &#xe70c;
    +
  • + +
  • + +
    operation
    +
    &#xe70e;
    +
  • + +
  • + +
    remind
    +
    &#xe713;
    +
  • + +
  • + +
    download
    +
    &#xe714;
    +
  • + +
  • + +
    map
    +
    &#xe715;
    +
  • + +
  • + +
    bad
    +
    &#xe716;
    +
  • + +
  • + +
    good
    +
    &#xe717;
    +
  • + +
  • + +
    skip
    +
    &#xe718;
    +
  • + +
  • + +
    play
    +
    &#xe719;
    +
  • + +
  • + +
    stop
    +
    &#xe71a;
    +
  • + +
  • + +
    compass
    +
    &#xe71b;
    +
  • + +
  • + +
    security
    +
    &#xe71c;
    +
  • + +
  • + +
    share
    +
    &#xe71d;
    +
  • + +
  • + +
    store
    +
    &#xe722;
    +
  • + +
  • + +
    manage-order
    +
    &#xe723;
    +
  • + +
  • + +
    rejected-order
    +
    &#xe724;
    +
  • + +
  • + +
    phone
    +
    &#xe725;
    +
  • + +
  • + +
    bussiness-man
    +
    &#xe726;
    +
  • + +
  • + +
    shoes
    +
    &#xe728;
    +
  • + +
  • + +
    Mobile-phone
    +
    &#xe72a;
    +
  • + +
  • + +
    email-filling
    +
    &#xe72d;
    +
  • + +
  • + +
    favorites-filling
    +
    &#xe730;
    +
  • + +
  • + +
    account-filling
    +
    &#xe732;
    +
  • + +
  • + +
    credit-level
    +
    &#xe735;
    +
  • + +
  • + +
    credit-level-filling
    +
    &#xe736;
    +
  • + +
  • + +
    exl
    +
    &#xe73f;
    +
  • + +
  • + +
    pdf
    +
    &#xe740;
    +
  • + +
  • + +
    zip
    +
    &#xe741;
    +
  • + +
  • + +
    sorting
    +
    &#xe743;
    +
  • + +
  • + +
    copy
    +
    &#xe744;
    +
  • + +
  • + +
    save
    +
    &#xe747;
    +
  • + +
  • + +
    inquiry-template
    +
    &#xe749;
    +
  • + +
  • + +
    template-default
    +
    &#xe74a;
    +
  • + +
  • + +
    libra
    +
    &#xe74c;
    +
  • + +
  • + +
    survey
    +
    &#xe74e;
    +
  • + +
  • + +
    ship
    +
    &#xe74f;
    +
  • + +
  • + +
    bussiness-card
    +
    &#xe753;
    +
  • + +
  • + +
    hot
    +
    &#xe756;
    +
  • + +
  • + +
    data
    +
    &#xe757;
    +
  • + +
  • + +
    trade
    +
    &#xe758;
    +
  • + +
  • + +
    onepage
    +
    &#xe75a;
    +
  • + +
  • + +
    signboard
    +
    &#xe75c;
    +
  • + +
  • + +
    shuffling-banner
    +
    &#xe75e;
    +
  • + +
  • + +
    component
    +
    &#xe75f;
    +
  • + +
  • + +
    component-filling
    +
    &#xe760;
    +
  • + +
  • + +
    color
    +
    &#xe761;
    +
  • + +
  • + +
    color-filling
    +
    &#xe7cd;
    +
  • + +
  • + +
    favorites
    +
    &#xe7ce;
    +
  • + +
  • + +
    pic-filling
    +
    &#xe802;
    +
  • + +
  • + +
    RFQ
    +
    &#xe803;
    +
  • + +
  • + +
    RFQ-filling
    +
    &#xe804;
    +
  • + +
  • + +
    original-image
    +
    &#xe806;
    +
  • + +
  • + +
    logistic
    +
    &#xe811;
    +
  • + +
  • + +
    Calculator
    +
    &#xe812;
    +
  • + +
  • + +
    video
    +
    &#xe820;
    +
  • + +
  • + +
    earth
    +
    &#xe828;
    +
  • + +
  • + +
    task-management
    +
    &#xe829;
    +
  • + +
  • + +
    trust
    +
    &#xe82a;
    +
  • + +
  • + +
    password
    +
    &#xe82b;
    +
  • + +
  • + +
    3column
    +
    &#xe839;
    +
  • + +
  • + +
    apparel
    +
    &#xe83a;
    +
  • + +
  • + +
    bags
    +
    &#xe83b;
    +
  • + +
  • + +
    folder
    +
    &#xe83c;
    +
  • + +
  • + +
    4column
    +
    &#xe83d;
    +
  • + +
  • + +
    code
    +
    &#xe842;
    +
  • + +
  • + +
    RFQ-filling
    +
    &#xe843;
    +
  • + +
+

unicode引用

+
+ +

unicode是字体在网页端最原始的应用方式,特点是:

+
    +
  • 兼容性最好,支持ie6+,及所有现代浏览器。
  • +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
  • +
+
+

注意:新版iconfont支持多色图标,这些多色图标在unicode模式下将不能使用,如果有需求建议使用symbol的引用方式

+
+ +

挑选相应图标并获取字体编码,应用于页面

+
<i class="iconfont">&#x33;</i>
+ +
+

"iconfont"是你项目下的font-family。可以通过编辑项目查看,默认是"iconfont"。

+
+
+ + + + diff --git a/sop-admin/sop-admin-front/pages/user.json b/sop-admin/sop-admin-front/pages/user.json new file mode 100644 index 00000000..d5c0f2a6 --- /dev/null +++ b/sop-admin/sop-admin-front/pages/user.json @@ -0,0 +1,95 @@ +{ + "code": 0 + ,"msg": "" + ,"count": 3000000 + ,"data": [{ + "id": "10001" + ,"username": "杜甫" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "点击此处,显示更多。当内容超出时,点击单元格会自动显示更多内容。" + ,"experience": "116" + ,"ip": "192.168.0.8" + ,"logins": "108" + ,"joinTime": "2016-10-14" + }, { + "id": "10002" + ,"username": "李白" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。(倾耳听 一作:侧耳听) 钟鼓馔玉不足贵,但愿长醉不复醒。(不足贵 一作:何足贵;不复醒 一作:不愿醒/不用醒) 古来圣贤皆寂寞,惟有饮者留其名。(古来 一作:自古;惟 通:唯) 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。" + ,"experience": "12" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + ,"LAY_CHECKED": true + }, { + "id": "10003" + ,"username": "王勃" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "65" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10004" + ,"username": "李清照" + ,"email": "xianxin@layui.com" + ,"sex": "女" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "666" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10005" + ,"username": "冰心" + ,"email": "xianxin@layui.com" + ,"sex": "女" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "86" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10006" + ,"username": "贤心" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "12" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10007" + ,"username": "贤心" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "16" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10008" + ,"username": "贤心" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "106" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }] +} \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/welcome.html b/sop-admin/sop-admin-front/pages/welcome.html new file mode 100644 index 00000000..038726cf --- /dev/null +++ b/sop-admin/sop-admin-front/pages/welcome.html @@ -0,0 +1,165 @@ + + + + + 欢迎页面-X-admin2.1 + + + + + + + +
+
欢迎管理员: + test!当前时间:2018-04-25 20:50:53
+
+ 数据统计 + +
+
+ 系统通知 +
+ + + + + + + + + +
+ 新版x-admin 2.0上线了 +
+ 交流qq群:(519492808) +
+
+
+
+ 系统信息 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xxx版本1.0.180420
服务器地址x.xuebingsi.com
操作系统WINNT
运行环境Apache/2.4.23 (Win32) OpenSSL/1.0.2j mod_fcgid/2.3.9
PHP版本5.6.27
PHP运行方式cgi-fcgi
MYSQL版本5.5.53
ThinkPHP5.0.18
上传附件限制2M
执行时间限制30s
剩余空间86015.2M
+
+
+
+ 开发团队 +
+ + + + + + + + + + +
版权所有xuebingsi(xuebingsi) + 访问官网
开发者马志斌(113664000@qq.com)
+
+
+
感谢layui,百度Echarts,jquery,本系统由x-admin提供技术支持。
+
+ + + \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pom.xml b/sop-admin/sop-admin-front/pom.xml new file mode 100644 index 00000000..8c683712 --- /dev/null +++ b/sop-admin/sop-admin-front/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + com.gitee.sop + sop-admin-front + 1.0.0-SNAPSHOT + jar + + + UTF-8 + ${project.build.outputDirectory}/META-INF/resources/webjars/${project.artifactId}/${project.version} + + + + + + ${project.basedir} + ${destDir} + + ${project.basedir}/target + + + + + \ No newline at end of file diff --git a/sop-admin/sop-admin-server/.gitignore b/sop-admin/sop-admin-server/.gitignore new file mode 100644 index 00000000..18ccf36e --- /dev/null +++ b/sop-admin/sop-admin-server/.gitignore @@ -0,0 +1,25 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ +/local-config/ diff --git a/sop-admin/sop-admin-server/pom.xml b/sop-admin/sop-admin-server/pom.xml new file mode 100644 index 00000000..3221ecd9 --- /dev/null +++ b/sop-admin/sop-admin-server/pom.xml @@ -0,0 +1,73 @@ + + + 4.0.0 + com.gitee.sop + sop-admin-server + 1.0.0-SNAPSHOT + jar + + sop-admin-server + sop-admin-server + + + org.springframework.boot + spring-boot-starter-parent + 2.0.3.RELEASE + + + + + UTF-8 + UTF-8 + 1.8 + + + + + + net.oschina.durcframework + easyopen-spring-boot-starter + 1.16.0 + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.apache.maven.plugins + maven-surefire-plugin + + true + + + + + + + diff --git a/sop-admin/sop-admin-server/readme.md b/sop-admin/sop-admin-server/readme.md new file mode 100644 index 00000000..4ce8a684 --- /dev/null +++ b/sop-admin/sop-admin-server/readme.md @@ -0,0 +1,9 @@ +# easyopen-server + +启动后,接口url:http://ip:port/api + +如果有contextPath的话则是:http://ip:port/contextPath/api + +业务类在api下,重点关注这里即可。 + + diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/SopAdminServerSpringbootApplication.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/SopAdminServerSpringbootApplication.java new file mode 100644 index 00000000..d0b252d5 --- /dev/null +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/SopAdminServerSpringbootApplication.java @@ -0,0 +1,12 @@ +package com.gitee.sop.adminserver; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SopAdminServerSpringbootApplication { + + public static void main(String[] args) { + SpringApplication.run(SopAdminServerSpringbootApplication.class, args); + } +} diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/GoodsApi.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/GoodsApi.java new file mode 100644 index 00000000..3503a6b0 --- /dev/null +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/GoodsApi.java @@ -0,0 +1,51 @@ +package com.gitee.sop.adminserver.api; + +import com.gitee.easyopen.annotation.Api; +import com.gitee.easyopen.annotation.ApiService; +import com.gitee.easyopen.doc.annotation.ApiDoc; +import com.gitee.easyopen.doc.annotation.ApiDocField; +import com.gitee.easyopen.doc.annotation.ApiDocMethod; +import com.gitee.sop.adminserver.api.param.GoodsParam; +import com.gitee.sop.adminserver.api.result.Goods; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; + +/** + * 业务类 + * + * @author tanghc + * + */ +@ApiService +@ApiDoc("商品模块") +public class GoodsApi { + + @Api(name = "goods.get") + @ApiDocMethod(description = "获取商品") + public Goods getGoods(GoodsParam param) { + Goods goods = new Goods(); + goods.setId(1L); + goods.setGoods_name("苹果iPhoneX"); + goods.setPrice(new BigDecimal(8000)); + return goods; + } + + @Api(name = "goods.list", version = "2.0") + @ApiDocMethod(description = "获取商品列表", results = { + @ApiDocField(description = "商品列表", name = "list", elementClass = Goods.class) }) + public List listGoods(GoodsParam param) { + Goods goods = new Goods(); + goods.setId(1L); + goods.setGoods_name("iPhoneX"); + goods.setPrice(new BigDecimal(8000)); + + Goods goods2 = new Goods(); + goods2.setId(2L); + goods2.setGoods_name("三星"); + goods2.setPrice(new BigDecimal(7000)); + return Arrays.asList(goods, goods2); + } + +} diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/param/GoodsParam.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/param/GoodsParam.java new file mode 100644 index 00000000..271ec22d --- /dev/null +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/param/GoodsParam.java @@ -0,0 +1,22 @@ +package com.gitee.sop.adminserver.api.param; + +import com.gitee.easyopen.doc.annotation.ApiDocField; +import org.hibernate.validator.constraints.Length; +import org.hibernate.validator.constraints.NotEmpty; + +public class GoodsParam { + + @ApiDocField(description = "商品名称", required = true, example = "iphoneX") + @NotEmpty(message = "商品名称不能为空") + @Length(min = 3, max = 20, message = "{goods.name.length}=3,20") + private String goods_name; + + public String getGoods_name() { + return goods_name; + } + + public void setGoods_name(String goods_name) { + this.goods_name = goods_name; + } + +} diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/result/Goods.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/result/Goods.java new file mode 100644 index 00000000..7ec2c455 --- /dev/null +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/api/result/Goods.java @@ -0,0 +1,48 @@ +package com.gitee.sop.adminserver.api.result; + +import com.gitee.easyopen.doc.DataType; +import com.gitee.easyopen.doc.annotation.ApiDocField; +import com.thoughtworks.xstream.annotations.XStreamAlias; + +import java.math.BigDecimal; + +@XStreamAlias("goods") +public class Goods { + + @ApiDocField(description = "id") + private Long id; + @ApiDocField(description = "商品名称") + private String goods_name; + @ApiDocField(description = "价格", dataType = DataType.FLOAT) + private BigDecimal price; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getGoods_name() { + return goods_name; + } + + public void setGoods_name(String goods_name) { + this.goods_name = goods_name; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + @Override + public String toString() { + return "Goods [id=" + id + ", goods_name=" + goods_name + ", price=" + price + "]"; + } + +} diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/interceptor/LockInterceptor.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/interceptor/LockInterceptor.java new file mode 100644 index 00000000..3584e983 --- /dev/null +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/interceptor/LockInterceptor.java @@ -0,0 +1,43 @@ +package com.gitee.sop.adminserver.interceptor; + +import java.util.Map; + +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; + +import com.auth0.jwt.interfaces.Claim; +import com.gitee.easyopen.ApiContext; +import com.gitee.easyopen.ApiMeta; +import com.gitee.easyopen.support.BaseLockInterceptor; + +/** + * 使用分布式锁防止表单重复提交 + * + * @author tanghc + */ +public class LockInterceptor extends BaseLockInterceptor { + + private StringRedisTemplate redisTemplate; + + public LockInterceptor() { + redisTemplate = ApiContext.getApplicationContext().getBean(StringRedisTemplate.class); + } + + @SuppressWarnings("rawtypes") + @Override + protected RedisTemplate getRedisTemplate() { + return redisTemplate; + } + + @Override + protected String getUserId() { + Map jwtData = ApiContext.getJwtData(); + String id = jwtData.get("id").asString(); // 用户id + return id; + } + + @Override + public boolean match(ApiMeta apiMeta) { + return "userlock.test".equals(apiMeta.getName()); // 只针对这个接口 + } +} diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/interceptor/LogInterceptor.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/interceptor/LogInterceptor.java new file mode 100644 index 00000000..bf0c3068 --- /dev/null +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/interceptor/LogInterceptor.java @@ -0,0 +1,66 @@ +package com.gitee.sop.adminserver.interceptor; + +import java.util.Map; +import java.util.Set; +import java.util.Map.Entry; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson.JSON; +import com.auth0.jwt.interfaces.Claim; +import com.gitee.easyopen.ApiContext; +import com.gitee.easyopen.ApiMeta; +import com.gitee.easyopen.interceptor.ApiInterceptorAdapter; +import com.gitee.easyopen.util.RequestUtil; + +public class LogInterceptor extends ApiInterceptorAdapter { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object serviceObj, Object argu) + throws Exception { + + System.out.println("======preHandle======"); + System.out.println("IP:" + RequestUtil.getClientIP(request)); + System.out.println("接口类:" + serviceObj.getClass().getName()); + if(argu != null) { + System.out.println("参数类:" + argu.getClass().getName()); + } + + Map jwtData = ApiContext.getJwtData(); + if(jwtData != null) { + System.out.println("-------jwt start-------"); + Set> set = jwtData.entrySet(); + for (Entry entry : set) { + System.out.println("key:" + entry.getKey() + ", value:" + entry.getValue().asString()); + } + System.out.println("-------jwt end-------"); + } + + return true; + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object serviceObj, Object argu, + Object result) throws Exception { + System.out.println("======postHandle======"); + System.out.println("接口类:" + serviceObj.getClass().getName()); + if(argu != null) { + System.out.println("参数类:" + argu.getClass().getName()); + } + System.out.println("结果:" + JSON.toJSONString(result)); + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object serviceObj, + Object argu, Object result, Exception e) throws Exception { + System.out.println("======afterCompletion======"); + System.out.println("接口类:" + serviceObj.getClass().getName()); + if(argu != null) { + System.out.println("参数类:" + argu.getClass().getName()); + } + System.out.println("最终结果:" + JSON.toJSONString(result)); + System.out.println("e:" + e); + } + +} diff --git a/sop-admin/sop-admin-server/src/main/resources/application.properties b/sop-admin/sop-admin-server/src/main/resources/application.properties new file mode 100644 index 00000000..3e962752 --- /dev/null +++ b/sop-admin/sop-admin-server/src/main/resources/application.properties @@ -0,0 +1,38 @@ +server.port=8082 + +#################easyopen基础配置################# +# 显示文档 +easyopen.show-doc=true +# 本地秘钥 +easyopen.app-secret.test=123456 + +# 关闭跨域,默认开启 +#easyopen.cors=false + +# 开启webflux +easyopen.mono=false + +## 拦截器 +#easyopen.interceptors[0]=com.gitee.easyopen.support.LimitInterceptor +#easyopen.interceptors[1]=com.gitee.easyopen.support.PermissionInterceptor + +# 配置中心,config-server-port对应easyopen-config中的netty.server.port +#easyopen.app-name=app-normal +#easyopen.config-server-ip=127.0.0.1 +#easyopen.config-server-port=8071 +#easyopen.doc-url=http://127.0.0.1:8081/api/doc + + +#################redis基础配置################# +spring.redis.database=1 +spring.redis.host=10.1.11.48 +spring.redis.password=0987654321rfvujmtgbyhn +spring.redis.port=6379 +# 连接超时时间 单位 ms(毫秒) +spring.redis.timeout=3000 + + +logging.file=D:/logs/server/server +logging.level.com.gitee=debug + + diff --git a/sop-admin/sop-admin-server/src/test/java/com/gitee/durcframework/easyopen/server/PubPriKeyTest.java b/sop-admin/sop-admin-server/src/test/java/com/gitee/durcframework/easyopen/server/PubPriKeyTest.java new file mode 100644 index 00000000..7833a8e9 --- /dev/null +++ b/sop-admin/sop-admin-server/src/test/java/com/gitee/durcframework/easyopen/server/PubPriKeyTest.java @@ -0,0 +1,23 @@ +package com.gitee.durcframework.easyopen.server; + +import org.junit.Test; + +import com.gitee.easyopen.util.KeyStore; +import com.gitee.easyopen.util.RSAUtil; + +import junit.framework.TestCase; + +public class PubPriKeyTest extends TestCase { + /** + * 生成公私钥 + * @throws Exception + */ + @Test + public void testCreate() throws Exception { + KeyStore store = RSAUtil.createKeys(); + System.out.println("公钥:"); + System.out.println(store.getPublicKey()); + System.out.println("私钥:"); + System.out.println(store.getPrivateKey()); + } +} diff --git a/sop-admin/sop-admin-server/src/test/java/com/gitee/durcframework/easyopen/server/SignTest.java b/sop-admin/sop-admin-server/src/test/java/com/gitee/durcframework/easyopen/server/SignTest.java new file mode 100644 index 00000000..1162a0cc --- /dev/null +++ b/sop-admin/sop-admin-server/src/test/java/com/gitee/durcframework/easyopen/server/SignTest.java @@ -0,0 +1,52 @@ +package com.gitee.durcframework.easyopen.server; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.junit.Test; + +import com.gitee.easyopen.ApiConfig; +import com.gitee.easyopen.ApiContext; +import com.gitee.easyopen.verify.DefaultMd5Verifier; + +import junit.framework.TestCase; + +public class SignTest extends TestCase { + + private DefaultMd5Verifier signer = new DefaultMd5Verifier(); + { + ApiConfig apiConfig = new ApiConfig(); + ApiContext.setApiConfig(apiConfig); + } + + @Test + public void testPost() throws IOException { + String appKey = "test"; + String secret = "123456"; + /* + * { + "access_token" = ""; + "app_key" = test; + data = "%7B%22pageSize%22:%2210%22,%22pageIndex%22:%221%22%7D"; + format = json; + name = "nologin.activity.page"; + sign = C1AD013FD8CD4E114C3E4604813E8AD8; + timestamp = "2018-03-21 14:38:09"; + version = "1.0.0"; +} + */ + Map param = new HashMap(); + param.put("name", "nologin.activity.page"); + param.put("app_key", appKey); + param.put("data", "%7B%22pageSize%22:%2210%22,%22pageIndex%22:%221%22%7D"); + param.put("timestamp", "2018-03-21 14:38:09"); + param.put("format", "json"); + param.put("access_token", ""); + param.put("version", "1.0.0"); + + String sign = signer.buildSign(param, secret); + + System.out.println(sign); + } +} diff --git a/sop-admin/sop-admin-server/src/test/java/com/gitee/durcframework/easyopen/server/SopAdminServerSpringbootApplicationTests.java b/sop-admin/sop-admin-server/src/test/java/com/gitee/durcframework/easyopen/server/SopAdminServerSpringbootApplicationTests.java new file mode 100644 index 00000000..d9f10017 --- /dev/null +++ b/sop-admin/sop-admin-server/src/test/java/com/gitee/durcframework/easyopen/server/SopAdminServerSpringbootApplicationTests.java @@ -0,0 +1,16 @@ +package com.gitee.durcframework.easyopen.server; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class SopAdminServerSpringbootApplicationTests { + + @Test + public void contextLoads() { + } + +}