| @ -1,5 +1,4 @@ | ||||
| # 后台admin | ||||
| 
 | ||||
| - sop-admin-front: admin前端layui实现(停止维护,改用sop-admin-vue) | ||||
| - sop-admin-server: admin服务端 | ||||
| - sop-admin-vue: admin前端vue实现 | ||||
|  | ||||
| @ -1,23 +0,0 @@ | ||||
| # admin前端页面(停止维护,改用sop-admin-vue) | ||||
| 
 | ||||
| 做到前后端分离。 | ||||
| 
 | ||||
| 当然也可以不分离,直接把前端页面放入到server中。这样做的好处是启动服务器即可访问页面。 | ||||
| 
 | ||||
| 步骤如下: | ||||
| 
 | ||||
| - cd到sop-admin-front目录,执行命令`mvn clean install` | ||||
| - sop-admin-server工程添加maven依赖 | ||||
| 
 | ||||
| ``` | ||||
| <dependency> | ||||
|     <groupId>com.gitee.sop</groupId> | ||||
|     <artifactId>sop-admin-front</artifactId> | ||||
|     <version>1.0.0-SNAPSHOT</version> | ||||
| </dependency> | ||||
| ``` | ||||
| 
 | ||||
| 启动服务端,访问:http://localhost:8082 | ||||
| 
 | ||||
| 原理就是springboot访问webjars资源,建议在开发的时候前后端分离,开发完成后再打包成webjars。 | ||||
| 
 | ||||
| @ -1,16 +0,0 @@ | ||||
| @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; | ||||
| } | ||||
| 
 | ||||
| @ -1,680 +0,0 @@ | ||||
| @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 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: 10px; | ||||
| } | ||||
| .x-nav{ | ||||
|     padding: 0 20px; | ||||
|     position: relative; | ||||
|     z-index: 99; | ||||
|     border-bottom: 1px solid #e5e5e5; | ||||
|     line-height: 39px; | ||||
|     height: 37px; | ||||
|     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-green{ | ||||
|     color: green; | ||||
| } | ||||
| .x-yellow{ | ||||
|     color: #ffae19; | ||||
| } | ||||
| .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 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 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 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) 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) 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: 1px;*/ | ||||
|     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: block; | ||||
| } | ||||
| .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; | ||||
|     margin-left: 8px; | ||||
| } | ||||
| .left-nav #nav li a i{ | ||||
|     /*padding-right: 10px;*/ | ||||
|     line-height: 14px; | ||||
| } | ||||
| .left-nav #nav li .nav_right{ | ||||
|     float: right; | ||||
|     font-size: 16px; | ||||
| } | ||||
| .left-nav #nav li.active { | ||||
|     background: #ddd; | ||||
| } | ||||
| .left-nav #nav li.active a { | ||||
|     color: #148cf1; | ||||
| } | ||||
| 
 | ||||
| .x-slide_left { | ||||
|     width: 17px; | ||||
|     height: 61px; | ||||
|     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 0 0 no-repeat; | ||||
|     margin: 0px; | ||||
| } | ||||
| .page-content .layui-tab-title{ | ||||
|     /*padding-top: 5px;*/ | ||||
|     height: 35px; | ||||
|     background: #EFEEF0 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 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 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); | ||||
|     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; | ||||
| } | ||||
| 
 | ||||
| .layui-table-cell .layui-btn { | ||||
|     height: 27px; | ||||
|     line-height: 28px; | ||||
| } | ||||
| 
 | ||||
| .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; | ||||
| } | ||||
| 
 | ||||
| .x-win {display: none;padding: 20px;} | ||||
| 
 | ||||
| .layui-this{font-weight: bold;} | ||||
| Before Width: | Height: | Size: 315 KiB | 
| Before Width: | Height: | Size: 3.0 KiB | 
| Before Width: | Height: | Size: 28 KiB | 
| @ -1,85 +0,0 @@ | ||||
| /** | ||||
|  * 请求工具 | ||||
|  */ | ||||
| var ApiUtil = (function () { | ||||
|     var ACCESS_TOKEN_KEY = "sop_admin_access_token"; | ||||
| 
 | ||||
|     // 接口URL,更改此处即可
 | ||||
|     var url = SopConfig.url; | ||||
|     var URI_CHAR = '/'; | ||||
|     var params = {}; | ||||
| 
 | ||||
|     (function () { | ||||
|         var aPairs, aTmp; | ||||
|         var queryString = window.location.search.toString(); | ||||
|         queryString = queryString.substring(1, queryString.length); //remove   "?"
 | ||||
|         aPairs = queryString.split("&"); | ||||
|         for (var i = 0; i < aPairs.length; i++) { | ||||
|             aTmp = aPairs[i].split("="); | ||||
|             params[aTmp[0]] = decodeURIComponent(aTmp[1]); | ||||
|         } | ||||
|     })(); | ||||
| 
 | ||||
|     function formatUri(uri) { | ||||
|         if (uri.substring(0, 1) !== URI_CHAR) { | ||||
|             uri = URI_CHAR + uri; | ||||
|         } | ||||
|         if (uri.substring(uri.length - 1) !== URI_CHAR) { | ||||
|             uri = uri + URI_CHAR; | ||||
|         } | ||||
|         return uri; | ||||
|     } | ||||
| 
 | ||||
|     function getAccessToken() { | ||||
|         return localStorage.getItem(ACCESS_TOKEN_KEY) || ''; | ||||
|     } | ||||
| 
 | ||||
|     return { | ||||
|         post: function (uri, params, callback) { | ||||
|             uri = formatUri(uri); | ||||
|             sdk.post({ | ||||
|                 url: url + uri | ||||
|                 , data: params // 请求参数
 | ||||
|                 , access_token: getAccessToken() | ||||
|                 , callback: function (resp) { // 成功回调
 | ||||
|                     var code = resp.code | ||||
|                     if (!code || code === '-9') { | ||||
|                         alert('系统错误'); | ||||
|                         return | ||||
|                     } | ||||
|                     if (code === '-100' || code === '18' || code === '21') { // 未登录
 | ||||
|                         ApiUtil.logout() | ||||
|                         return | ||||
|                     } | ||||
|                     if (code === '0') { // 成功
 | ||||
|                         callback(resp) | ||||
|                     } else { | ||||
|                         layer.alert(resp.msg); | ||||
|                     } | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|         , setAccessToken:function (accessToken) { | ||||
|             localStorage.setItem(ACCESS_TOKEN_KEY,accessToken); | ||||
|         } | ||||
|         , getAccessToken: function () { | ||||
|             return getAccessToken(); | ||||
|         } | ||||
|         , logout: function () { | ||||
|             localStorage.removeItem(ACCESS_TOKEN_KEY); | ||||
|             top.location.href = '../login/login.html'; | ||||
|         } | ||||
|         , getUrl: function () { | ||||
|             return url; | ||||
|         } | ||||
|         , createUrl: function (uri, params) { | ||||
|             if (!uri) { | ||||
|                 throw new Error('uri不能为空'); | ||||
|             } | ||||
|             return url + formatUri(uri) + (params ? '?data=' + encodeURIComponent(JSON.stringify(params)) : ''); | ||||
|         } | ||||
|         , getParam: function (paramName) { | ||||
|             return params[paramName]; | ||||
|         } | ||||
|     } | ||||
| })(); | ||||
| @ -1,38 +0,0 @@ | ||||
| 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"; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @ -1,37 +0,0 @@ | ||||
| $(function () { | ||||
|     var $pageFrame = $('#pageFrame'); | ||||
|     var $selectLi = null; | ||||
|     $('.left-nav').on('click', 'li', function (event) { | ||||
|         var $tagLi = $(this); | ||||
|         var $tagA = $tagLi.find('a').eq(0); | ||||
|         var href = $tagA.prop('href'); | ||||
|         if (href) { | ||||
|             $pageFrame.prop('src', href + '?q=' + new Date().getTime()); | ||||
|             if ($selectLi) { | ||||
|                 $selectLi.removeClass('active') | ||||
|             } | ||||
|             $selectLi = $tagLi.addClass('active'); | ||||
|         } | ||||
|         return false; | ||||
|     }); | ||||
| 
 | ||||
|     $('.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(); | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     ApiUtil.post('admin.userinfo.get', {}, function (resp) { | ||||
|         var userInfo = resp.data; | ||||
|         $('#username').text(userInfo.username); | ||||
|     }); | ||||
| 
 | ||||
| }); | ||||
| @ -1,22 +0,0 @@ | ||||
| var RouteRole = { | ||||
|     loadAllRole: function (form, contentId, callback) { | ||||
|         ApiUtil.post('role.listall', {}, function (resp) { | ||||
|             var roles = resp.data; | ||||
|             var html = [] | ||||
|             for (var i = 0; i < roles.length; i++) { | ||||
|                 if (i > 0 && i % 5 === 0) { | ||||
|                     html.push('<br>'); | ||||
|                 } | ||||
|                 var role = roles[i]; | ||||
|                 html.push('<input type="checkbox" name="roleCode" value="'+role.roleCode+'" lay-skin="primary" title="'+role.description+'">'); | ||||
|             } | ||||
|             $('#' + contentId).html(html.join('')); | ||||
| 
 | ||||
|             // 如果你的HTML是动态生成的,自动渲染就会失效
 | ||||
|             // 因此你需要在相应的地方,执行下述方法来手动渲染,跟这类似的还有 element.init();
 | ||||
|             form.render(); | ||||
| 
 | ||||
|             callback && callback(); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
| @ -1,414 +0,0 @@ | ||||
| // 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: '<iframe tab-id="'+id+'" frameborder="0" src="'+url+'" scrolling="yes" class="x-iframe"></iframe>' | ||||
|             ,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(); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -1,136 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html> | ||||
| <head> | ||||
| <meta charset="UTF-8"> | ||||
| <title>sdk</title> | ||||
| <script type="text/javascript" src="sdk.js"></script> | ||||
| <script type="text/javascript"> | ||||
| //需要发布到服务器上运行,并且server端需要处理跨域 | ||||
| //在IndexController.java上加@CrossOrigin(origins={"*"}) | ||||
| 
 | ||||
| // 初始化配置,执行一次即可 | ||||
| sdk.config({ | ||||
|     url : 'http://localhost:8080/api' | ||||
|     ,app_key : 'test' | ||||
|     ,secret : '123456' | ||||
| }); | ||||
| 
 | ||||
| sdk.get({ | ||||
| 	name   : 'goods.get' // 接口名 | ||||
| // 	,version:'1.0' | ||||
| // 	,access_token:'' | ||||
| 	,data  : {'goods_name':'iphone'} // 请求参数 | ||||
| 	,callback:function(resp) { // 成功回调 | ||||
| 		console.log(resp) | ||||
| 	} | ||||
| }); | ||||
| </script> | ||||
| </head> | ||||
| <body> | ||||
| 
 | ||||
| <h1>打开F12查看效果</h1> | ||||
| 
 | ||||
| <fieldset> | ||||
|     <legend>GET/POST</legend> | ||||
|     <button onclick="getTest()">GET</button> | ||||
|     <button onclick="postTest()">POST</button> | ||||
| </fieldset> | ||||
| <hr> | ||||
| <fieldset> | ||||
|     <legend>上传文件demo</legend> | ||||
|     <form id="frm"> | ||||
| 	    头像图片:<input type="file" name="headImg"/> <br><br> | ||||
| 	    身份证图片:<input type="file" name="idcardImg"/> | ||||
| 	</form> | ||||
|     <br> | ||||
|     <button onclick="uploadTest()">上传文件请求</button> | ||||
| </fieldset> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <pre> | ||||
| //需要发布到服务器上运行,并且server端需要处理跨域 | ||||
| //在IndexController.java上加@CrossOrigin(origins={"*"}) | ||||
| 
 | ||||
| sdk.config({ | ||||
|     url : 'http://localhost:8080/api' | ||||
|     ,app_key : 'test' | ||||
|     ,secret : '123456' | ||||
| }); | ||||
| 
 | ||||
| sdk.get({ | ||||
|     name   : 'goods.get' // 接口名 | ||||
|     ,data  : {'goods_name':'iphone'} // 请求参数 | ||||
|     ,callback:function(resp) { // 成功回调 | ||||
|         console.log(resp) | ||||
|     } | ||||
| }); // get方式不支持上传 | ||||
| 
 | ||||
| sdk.post({ | ||||
|     name   : 'goods.get' // 接口名 | ||||
|     ,data  : {'goods_name':'iphone'} // 请求参数 | ||||
|     ,callback:function(resp) { // 成功回调 | ||||
|         console.log(resp) | ||||
|     } | ||||
| }); | ||||
| 
 | ||||
| 
 | ||||
| /* ****************上传文件**************** */ | ||||
| <form id="frm"> | ||||
|     上传文件1:<input type="file" name="headImg"/> | ||||
|     上传文件2:<input type="file" name="idcardImg"/> | ||||
| </form> | ||||
| 
 | ||||
| function uploadTest() { | ||||
|     sdk.get({ | ||||
|         name   : 'file.upload' // 接口名 | ||||
|         ,data  : {'goods_name':'iphone'} // 请求参数 | ||||
|         ,form  : document.getElementById('frm') | ||||
|         ,callback:function(resp) { // 成功回调 | ||||
|             if(resp.code == '0') { | ||||
|                 alert('上传成功,' + resp.msg); | ||||
|             } else { | ||||
|                 alert('上传失败,' + resp.msg) | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| </pre> | ||||
| 
 | ||||
| <script type="text/javascript"> | ||||
| function uploadTest() { | ||||
| 	sdk.post({ | ||||
| 	    name   : 'file.upload' // 接口名 | ||||
| 	    ,data  : {'goods_name':'iphone'} // 请求参数 | ||||
| 	    ,form  : document.getElementById('frm') | ||||
| 	    ,callback:function(resp) { // 成功回调 | ||||
| 	        if(resp.code == '0') { | ||||
| 	        	alert('上传成功,' + resp.data); | ||||
| 	        } else { | ||||
| 	        	alert('上传失败,' + resp.msg) | ||||
| 	        } | ||||
| 	    } | ||||
| 	}); | ||||
| } | ||||
| function getTest() { | ||||
| 	sdk.get({ | ||||
|         name   : 'goods.get' // 接口名 | ||||
|         ,data  : {'goods_name':'iphone'} // 请求参数 | ||||
|         ,callback:function(resp) { // 成功回调 | ||||
|             console.log(resp); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| function postTest() { | ||||
| 	sdk.post({ | ||||
| 	    name   : 'goods.get' // 接口名 | ||||
| 	    ,data  : {'goods_name':'iphone'} // 请求参数 | ||||
| 	    ,callback:function(resp) { // 成功回调 | ||||
| 	        console.log(resp); | ||||
| 	    } | ||||
| 	}); | ||||
| } | ||||
| </script> | ||||
| </body> | ||||
| </html> | ||||
| @ -1,2 +0,0 @@ | ||||
| /** layui-v2.4.5 MIT License By https://www.layui.com */ | ||||
|  html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} | ||||
| Before Width: | Height: | Size: 5.8 KiB | 
| Before Width: | Height: | Size: 11 KiB | 
| Before Width: | Height: | Size: 5.7 KiB | 
| Before Width: | Height: | Size: 701 B | 
| Before Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 274 KiB | 
| Before Width: | Height: | Size: 2.6 KiB | 
| Before Width: | Height: | Size: 5.4 KiB | 
| Before Width: | Height: | Size: 2.7 KiB | 
| Before Width: | Height: | Size: 4.0 KiB | 
| Before Width: | Height: | Size: 3.3 KiB | 
| Before Width: | Height: | Size: 7.3 KiB | 
| Before Width: | Height: | Size: 2.3 KiB | 
| Before Width: | Height: | Size: 1.8 KiB | 
| Before Width: | Height: | Size: 6.6 KiB | 
| Before Width: | Height: | Size: 4.3 KiB | 
| Before Width: | Height: | Size: 2.9 KiB | 
| Before Width: | Height: | Size: 3.0 KiB | 
| Before Width: | Height: | Size: 3.1 KiB | 
| Before Width: | Height: | Size: 5.0 KiB | 
| Before Width: | Height: | Size: 5.1 KiB | 
| Before Width: | Height: | Size: 9.6 KiB | 
| Before Width: | Height: | Size: 3.7 KiB | 
| Before Width: | Height: | Size: 7.9 KiB | 
| Before Width: | Height: | Size: 3.1 KiB | 
| Before Width: | Height: | Size: 3.2 KiB | 
| Before Width: | Height: | Size: 4.3 KiB | 
| Before Width: | Height: | Size: 2.7 KiB | 
| Before Width: | Height: | Size: 4.7 KiB | 
| Before Width: | Height: | Size: 3.9 KiB | 
| Before Width: | Height: | Size: 2.5 KiB | 
| Before Width: | Height: | Size: 2.0 KiB | 
| Before Width: | Height: | Size: 3.4 KiB | 
| Before Width: | Height: | Size: 2.4 KiB | 
| Before Width: | Height: | Size: 3.6 KiB | 
| Before Width: | Height: | Size: 1.8 KiB | 
| Before Width: | Height: | Size: 2.3 KiB | 
| Before Width: | Height: | Size: 1.5 KiB | 
| Before Width: | Height: | Size: 3.5 KiB | 
| Before Width: | Height: | Size: 6.3 KiB | 
| Before Width: | Height: | Size: 5.6 KiB | 
| Before Width: | Height: | Size: 3.1 KiB | 
| Before Width: | Height: | Size: 3.6 KiB | 
| Before Width: | Height: | Size: 5.2 KiB | 
| Before Width: | Height: | Size: 2.6 KiB | 
| Before Width: | Height: | Size: 4.0 KiB | 
| Before Width: | Height: | Size: 3.3 KiB | 
| Before Width: | Height: | Size: 2.9 KiB | 
| Before Width: | Height: | Size: 2.3 KiB | 
| Before Width: | Height: | Size: 2.6 KiB | 
| Before Width: | Height: | Size: 2.3 KiB | 
| Before Width: | Height: | Size: 4.5 KiB | 
| Before Width: | Height: | Size: 5.7 KiB | 
| Before Width: | Height: | Size: 2.7 KiB | 
| Before Width: | Height: | Size: 777 B | 
| Before Width: | Height: | Size: 2.1 KiB | 
| Before Width: | Height: | Size: 2.1 KiB | 
| Before Width: | Height: | Size: 1.9 KiB | 
| Before Width: | Height: | Size: 2.0 KiB | 
| Before Width: | Height: | Size: 2.6 KiB | 
| Before Width: | Height: | Size: 2.2 KiB | 
| Before Width: | Height: | Size: 10 KiB | 
| Before Width: | Height: | Size: 2.2 KiB | 
| Before Width: | Height: | Size: 3.2 KiB | 
| Before Width: | Height: | Size: 2.4 KiB | 
| Before Width: | Height: | Size: 2.0 KiB | 
| Before Width: | Height: | Size: 5.7 KiB | 
| Before Width: | Height: | Size: 6.3 KiB | 
| Before Width: | Height: | Size: 3.5 KiB |