From fd675264a5bf204d0697860d46a73d6259aa80c0 Mon Sep 17 00:00:00 2001 From: hello-hao <923453645@qq.com> Date: Fri, 29 Oct 2021 14:23:40 +0800 Subject: [PATCH] =?UTF-8?q?:art:=E4=BC=98=E5=8C=96=E6=95=B4=E4=BD=93?= =?UTF-8?q?=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/hellohao/auth/filter/OriginFilter.java | 26 - .../cn/hellohao/auth/shiro/ShiroConfig.java | 3 - .../cn/hellohao/auth/shiro/UserRealm.java | 1 - .../java/cn/hellohao/auth/token/JWTUtil.java | 15 +- .../hellohao/controller/AdminController.java | 18 +- .../controller/AdminRootController.java | 6 - .../hellohao/controller/AlbumController.java | 15 +- .../hellohao/controller/ClientController.java | 23 +- .../hellohao/controller/CodeController.java | 1 - .../controller/ExceptionHandling.java | 10 - .../hellohao/controller/GroupController.java | 8 - .../hellohao/controller/IndexController.java | 18 + .../hellohao/controller/UserController.java | 17 +- src/main/java/cn/hellohao/dao/ImgMapper.java | 2 - .../java/cn/hellohao/dao/NoticeMapper.java | 9 - src/main/java/cn/hellohao/pojo/User.java | 16 +- .../java/cn/hellohao/service/ImgService.java | 2 - .../cn/hellohao/service/NoticeService.java | 9 - .../hellohao/service/impl/ClientService.java | 2 - .../hellohao/service/impl/ImgServiceImpl.java | 4 - .../service/impl/NoticeServiceImpl.java | 18 - src/main/resources/db/doc.txt | 1 - src/main/resources/db/img.ini | 3 - src/main/resources/mapper/ImgMapper.xml | 7 +- src/main/resources/mapper/UserMapper.xml | 4 +- src/main/resources/static/css/Mini/reset.css | 35 - src/main/resources/static/css/Mini/style.css | 113 - src/main/resources/static/css/animate.min.css | 11 - src/main/resources/static/css/default.css | 7465 --------------- .../resources/static/css/font-awesome.min.css | 4 - src/main/resources/static/css/intro.css | 43 - .../resources/static/css/jquery.kenburnsy.css | 1 - .../static/css/jquery.mCustomScrollbar.css | 1265 --- .../static/css/jquery.wordrotator.min.css | 5 - .../resources/static/css/owl.carousel.css | 248 - src/main/resources/static/css/owl.theme.css | 99 - src/main/resources/static/css/style.css | 2631 ------ .../resources/static/css/urllist/all.min.css | 5 - .../resources/static/css/urllist/style.css | 547 -- src/main/resources/static/css/verify.css | 170 - src/main/resources/static/css/viewer.css | 456 - .../static/css/webfonts/fa-brands-400.eot | Bin 129590 -> 0 bytes .../static/css/webfonts/fa-brands-400.ttf | Bin 129284 -> 0 bytes .../static/css/webfonts/fa-brands-400.woff | Bin 87520 -> 0 bytes .../static/css/webfonts/fa-brands-400.woff2 | Bin 74524 -> 0 bytes .../static/css/webfonts/fa-regular-400.eot | Bin 34394 -> 0 bytes .../static/css/webfonts/fa-regular-400.ttf | Bin 34096 -> 0 bytes .../static/css/webfonts/fa-regular-400.woff | Bin 16804 -> 0 bytes .../static/css/webfonts/fa-regular-400.woff2 | Bin 13584 -> 0 bytes .../static/css/webfonts/fa-solid-900.eot | Bin 192122 -> 0 bytes .../static/css/webfonts/fa-solid-900.ttf | Bin 191836 -> 0 bytes .../static/css/webfonts/fa-solid-900.woff | Bin 98016 -> 0 bytes .../static/css/webfonts/fa-solid-900.woff2 | Bin 75408 -> 0 bytes .../resources/static/gallery/css/style1.css | 211 - .../static/gallery/css/style_login.css | 164 - .../resources/static/gallery/js/classie.js | 85 - .../static/gallery/js/html5shiv.min.js | 1 - .../gallery/js/imagesloaded.pkgd.min.js | 7 - .../static/gallery/js/jq/cbpgridgallery.js | 364 - .../resources/static/gallery/js/jq/classie.js | 80 - .../gallery/js/jq/imagesloaded.pkgd.min.js | 7 - .../static/gallery/js/jq/masonry.pkgd.min.js | 9 - .../static/gallery/js/jq/modernizr.custom.js | 4 - src/main/resources/static/gallery/js/main.js | 347 - .../static/gallery/js/masonry.pkgd.min.js | 9 - .../static/gallery/js/modernizr-custom.js | 3 - src/main/resources/static/img/baner.jpg | Bin 107766 -> 0 bytes src/main/resources/static/img/ds.jpg | Bin 116049 -> 0 bytes src/main/resources/static/img/img404.jpg | Bin 2464 -> 0 bytes src/main/resources/static/img/ld.gif | Bin 5241 -> 0 bytes src/main/resources/static/img/logo_dark.png | Bin 3320 -> 0 bytes src/main/resources/static/img/logo_white.png | Bin 21731 -> 0 bytes src/main/resources/static/img/marker.png | Bin 672 -> 0 bytes src/main/resources/static/img/signin.png | Bin 12111 -> 0 bytes src/main/resources/static/img/sx.png | Bin 1633 -> 0 bytes src/main/resources/static/img/triangle.png | Bin 2163 -> 0 bytes .../resources/static/img/triangle_dark.png | Bin 1654 -> 0 bytes src/main/resources/static/img/yx.png | Bin 1748 -> 0 bytes .../static/js/background-blur.min.js | 1 - src/main/resources/static/js/base64.min.js | 18 - src/main/resources/static/js/bootstrap.jj.js | 7 - src/main/resources/static/js/feather.min.js | 13 - src/main/resources/static/js/hellohao.js | 367 - src/main/resources/static/js/html5shiv.js | 8 - src/main/resources/static/js/jquery.js | 4 - .../resources/static/js/jquery.qrcode.min.js | 1 - src/main/resources/static/js/js.cookie.min.js | 3 - .../resources/static/js/main_constellation.js | 853 -- src/main/resources/static/js/plugins.min.js | 225 - src/main/resources/static/js/respond.min.js | 5 - src/main/resources/static/js/verify.js | 739 -- src/main/resources/static/js/verify.min.js | 2 - src/main/resources/static/js/viewer.min.js | 10 - src/main/resources/static/layui/css/admin.css | 599 -- .../resources/static/layui/css/public.css | 57 - .../resources/static/layui/home/index.html | 80 - .../resources/static/layui/images/avatar.png | Bin 7722 -> 0 bytes .../resources/static/layui/images/clear.png | Bin 6219 -> 0 bytes .../resources/static/layui/images/loading.gif | Bin 13999 -> 0 bytes .../resources/static/layui/images/main.png | Bin 6732 -> 0 bytes .../static/layui/images/security.png | Bin 15698 -> 0 bytes src/main/resources/static/layui/js/common.js | 7 - src/main/resources/static/layui/js/jquery.js | 4432 --------- src/main/resources/static/layui/js/zadmin.js | 289 - .../static/layui/layui/css/layui.css | 5336 ----------- .../static/layui/layui/css/layui.mobile.css | 2 - .../static/layui/layui/css/modules/code.css | 2 - .../css/modules/laydate/default/laydate.css | 2 - .../css/modules/layer/default/icon-ext.png | Bin 5911 -> 0 bytes .../layui/css/modules/layer/default/icon.png | Bin 11493 -> 0 bytes .../layui/css/modules/layer/default/layer.css | 2 - .../css/modules/layer/default/loading-0.gif | Bin 5793 -> 0 bytes .../css/modules/layer/default/loading-1.gif | Bin 701 -> 0 bytes .../css/modules/layer/default/loading-2.gif | Bin 1787 -> 0 bytes .../modules/layui-icon-extend/iconfont.css | 40 - .../modules/layui-icon-extend/iconfont.eot | Bin 4344 -> 0 bytes .../css/modules/layui-icon-extend/iconfont.js | 1 - .../modules/layui-icon-extend/iconfont.svg | 55 - .../modules/layui-icon-extend/iconfont.ttf | Bin 4176 -> 0 bytes .../modules/layui-icon-extend/iconfont.woff | Bin 2848 -> 0 bytes .../modules/layui-icon-extend/iconfont.woff2 | Bin 2360 -> 0 bytes .../static/layui/layui/font/iconfont.eot | Bin 40844 -> 0 bytes .../static/layui/layui/font/iconfont.svg | 769 -- .../static/layui/layui/font/iconfont.ttf | Bin 40668 -> 0 bytes .../static/layui/layui/font/iconfont.woff | Bin 26744 -> 0 bytes .../static/layui/layui/images/face/0.gif | Bin 2689 -> 0 bytes .../static/layui/layui/images/face/1.gif | Bin 5514 -> 0 bytes .../static/layui/layui/images/face/10.gif | Bin 2797 -> 0 bytes .../static/layui/layui/images/face/11.gif | Bin 4121 -> 0 bytes .../static/layui/layui/images/face/12.gif | Bin 3361 -> 0 bytes .../static/layui/layui/images/face/13.gif | Bin 7425 -> 0 bytes .../static/layui/layui/images/face/14.gif | Bin 2375 -> 0 bytes .../static/layui/layui/images/face/15.gif | Bin 1793 -> 0 bytes .../static/layui/layui/images/face/16.gif | Bin 6721 -> 0 bytes .../static/layui/layui/images/face/17.gif | Bin 4439 -> 0 bytes .../static/layui/layui/images/face/18.gif | Bin 3017 -> 0 bytes .../static/layui/layui/images/face/19.gif | Bin 3040 -> 0 bytes .../static/layui/layui/images/face/2.gif | Bin 3222 -> 0 bytes .../static/layui/layui/images/face/20.gif | Bin 5144 -> 0 bytes .../static/layui/layui/images/face/21.gif | Bin 5191 -> 0 bytes .../static/layui/layui/images/face/22.gif | Bin 9823 -> 0 bytes .../static/layui/layui/images/face/23.gif | Bin 3792 -> 0 bytes .../static/layui/layui/images/face/24.gif | Bin 8096 -> 0 bytes .../static/layui/layui/images/face/25.gif | Bin 3127 -> 0 bytes .../static/layui/layui/images/face/26.gif | Bin 3291 -> 0 bytes .../static/layui/layui/images/face/27.gif | Bin 4377 -> 0 bytes .../static/layui/layui/images/face/28.gif | Bin 2793 -> 0 bytes .../static/layui/layui/images/face/29.gif | Bin 4854 -> 0 bytes .../static/layui/layui/images/face/3.gif | Bin 4017 -> 0 bytes .../static/layui/layui/images/face/30.gif | Bin 2555 -> 0 bytes .../static/layui/layui/images/face/31.gif | Bin 2002 -> 0 bytes .../static/layui/layui/images/face/32.gif | Bin 3481 -> 0 bytes .../static/layui/layui/images/face/33.gif | Bin 2454 -> 0 bytes .../static/layui/layui/images/face/34.gif | Bin 3700 -> 0 bytes .../static/layui/layui/images/face/35.gif | Bin 1800 -> 0 bytes .../static/layui/layui/images/face/36.gif | Bin 2331 -> 0 bytes .../static/layui/layui/images/face/37.gif | Bin 1513 -> 0 bytes .../static/layui/layui/images/face/38.gif | Bin 3615 -> 0 bytes .../static/layui/layui/images/face/39.gif | Bin 6495 -> 0 bytes .../static/layui/layui/images/face/4.gif | Bin 5689 -> 0 bytes .../static/layui/layui/images/face/40.gif | Bin 3154 -> 0 bytes .../static/layui/layui/images/face/41.gif | Bin 3644 -> 0 bytes .../static/layui/layui/images/face/42.gif | Bin 5305 -> 0 bytes .../static/layui/layui/images/face/43.gif | Bin 2674 -> 0 bytes .../static/layui/layui/images/face/44.gif | Bin 4126 -> 0 bytes .../static/layui/layui/images/face/45.gif | Bin 3417 -> 0 bytes .../static/layui/layui/images/face/46.gif | Bin 3007 -> 0 bytes .../static/layui/layui/images/face/47.gif | Bin 2333 -> 0 bytes .../static/layui/layui/images/face/48.gif | Bin 2689 -> 0 bytes .../static/layui/layui/images/face/49.gif | Bin 2315 -> 0 bytes .../static/layui/layui/images/face/5.gif | Bin 4567 -> 0 bytes .../static/layui/layui/images/face/50.gif | Bin 5866 -> 0 bytes .../static/layui/layui/images/face/51.gif | Bin 2785 -> 0 bytes .../static/layui/layui/images/face/52.gif | Bin 777 -> 0 bytes .../static/layui/layui/images/face/53.gif | Bin 2127 -> 0 bytes .../static/layui/layui/images/face/54.gif | Bin 2196 -> 0 bytes .../static/layui/layui/images/face/55.gif | Bin 1971 -> 0 bytes .../static/layui/layui/images/face/56.gif | Bin 2034 -> 0 bytes .../static/layui/layui/images/face/57.gif | Bin 2705 -> 0 bytes .../static/layui/layui/images/face/58.gif | Bin 2258 -> 0 bytes .../static/layui/layui/images/face/59.gif | Bin 10311 -> 0 bytes .../static/layui/layui/images/face/6.gif | Bin 2213 -> 0 bytes .../static/layui/layui/images/face/60.gif | Bin 3245 -> 0 bytes .../static/layui/layui/images/face/61.gif | Bin 2495 -> 0 bytes .../static/layui/layui/images/face/62.gif | Bin 2017 -> 0 bytes .../static/layui/layui/images/face/63.gif | Bin 5871 -> 0 bytes .../static/layui/layui/images/face/64.gif | Bin 6448 -> 0 bytes .../static/layui/layui/images/face/65.gif | Bin 3576 -> 0 bytes .../static/layui/layui/images/face/66.gif | Bin 3029 -> 0 bytes .../static/layui/layui/images/face/67.gif | Bin 2701 -> 0 bytes .../static/layui/layui/images/face/68.gif | Bin 1424 -> 0 bytes .../static/layui/layui/images/face/69.gif | Bin 2431 -> 0 bytes .../static/layui/layui/images/face/7.gif | Bin 3398 -> 0 bytes .../static/layui/layui/images/face/70.gif | Bin 4590 -> 0 bytes .../static/layui/layui/images/face/71.gif | Bin 5304 -> 0 bytes .../static/layui/layui/images/face/8.gif | Bin 4050 -> 0 bytes .../static/layui/layui/images/face/9.gif | Bin 4221 -> 0 bytes .../layui/layui/lay/modules/carousel.js | 2 - .../static/layui/layui/lay/modules/code.js | 2 - .../layui/layui/lay/modules/colorpicker.js | 2 - .../static/layui/layui/lay/modules/element.js | 2 - .../static/layui/layui/lay/modules/flow.js | 2 - .../static/layui/layui/lay/modules/form.js | 2 - .../static/layui/layui/lay/modules/jquery.js | 5 - .../static/layui/layui/lay/modules/laydate.js | 2 - .../static/layui/layui/lay/modules/layedit.js | 2 - .../static/layui/layui/lay/modules/layer.js | 2 - .../static/layui/layui/lay/modules/laypage.js | 2 - .../static/layui/layui/lay/modules/laytpl.js | 2 - .../static/layui/layui/lay/modules/mobile.js | 2 - .../static/layui/layui/lay/modules/rate.js | 2 - .../static/layui/layui/lay/modules/slider.js | 2 - .../static/layui/layui/lay/modules/table.js | 2 - .../static/layui/layui/lay/modules/tree.js | 2 - .../static/layui/layui/lay/modules/upload.js | 2 - .../static/layui/layui/lay/modules/util.js | 2 - .../resources/static/layui/layui/layui.all.js | 5 - .../resources/static/layui/layui/layui.js | 2 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 543 -- .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../js/bootstrap-table-hellohao1.13.1.js | 3783 -------- .../bootstrap-3.3.4-dist/js/bootstrap.min.js | 7 - .../resources/static/static/clipboard.min.js | 778 -- .../static/static/css/animate.min.css | 11 - .../static/static/css/bootstrap-table.css | 321 - .../static/static/css/bootstrap.min.css | 9 - .../resources/static/static/css/custom.css | 59 - .../static/static/css/daterangepicker-bs3.css | 281 - .../resources/static/static/css/fileinput.css | 232 - .../static/static/css/fileinput.min.css | 11 - .../static/static/css/font-awesome.min.css | 4 - .../static/static/css/login-register.css | 281 - .../resources/static/static/css/popover.css | 330 - .../resources/static/static/css/style.css | 7938 ---------------- .../static/static/css/sweetalert.min.css | 5 - .../static/static/fixTable/fixTable.css | 49 - .../static/static/fixTable/fixTable.js | 183 - .../static/static/fonts/FontAwesome.otf | Bin 106260 -> 0 bytes .../static/fonts/fontawesome-webfont.eot | Bin 68875 -> 0 bytes .../static/fonts/fontawesome-webfont.svg | 640 -- .../static/fonts/fontawesome-webfont.ttf | Bin 138204 -> 0 bytes .../static/fonts/fontawesome-webfont.woff | Bin 81284 -> 0 bytes .../static/fonts/fontawesome-webfont.woff2 | Bin 64464 -> 0 bytes .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../static/static/js/ZeroClipboard.swf | Bin 1071 -> 0 bytes .../resources/static/static/js/bootbox.min.js | 6 - .../static/static/js/bootstrap.min.js | 7 - .../static/static/js/clipboard.min.js | 7 - .../static/static/js/daterangepicker.js | 1019 --- .../resources/static/static/js/fileinput.js | 2121 ----- .../static/static/js/fileinput.min.js | 18 - .../static/js/fileinput_locale_zh.min.js | 12 - .../static/js/jqBootstrapValidation.min.js | 4 - .../static/static/js/jquery-3.4.1.min.js | 9 - .../static/static/js/login-register.js | 195 - src/main/resources/static/static/js/moment.js | 2400 ----- .../static/static/js/mustache.min.js | 1 - .../resources/static/static/js/popover.min.js | 9 - .../static/static/js/sweetalert.min.js | 1 - .../static/static/js/sweetalert2.min.js | 1 - .../resources/static/webuploade/Uploader.swf | Bin 143099 -> 0 bytes .../static/webuploade/css/component.css | 740 -- .../resources/static/webuploade/css/style.css | 433 - .../static/webuploade/css/webuploader.css | 31 - .../static/webuploade/expressInstall.swf | Bin 756 -> 0 bytes .../static/webuploade/images/ajax-loader.gif | Bin 1569 -> 0 bytes .../resources/static/webuploade/images/bg.png | Bin 2851 -> 0 bytes .../static/webuploade/images/icons.png | Bin 2678 -> 0 bytes .../static/webuploade/images/image.png | Bin 2245 -> 0 bytes .../static/webuploade/images/image2.png | Bin 1856 -> 0 bytes .../static/webuploade/images/progress.png | Bin 1269 -> 0 bytes .../static/webuploade/images/success.png | Bin 1621 -> 0 bytes .../static/webuploade/images/warning.png | Bin 661 -> 0 bytes .../resources/static/webuploade/js/classie.js | 80 - .../resources/static/webuploade/js/jquery.js | 4 - .../static/webuploade/js/modalEffects.js | 48 - .../resources/static/webuploade/js/upload.js | 743 -- .../static/webuploade/js/webuploader.js | 8109 ----------------- .../static/xcc/css/font-awesome.min.css | 4 - src/main/resources/static/xcc/css/ie8.css | 47 - src/main/resources/static/xcc/css/ie9.css | 41 - .../resources/static/xcc/css/images/arrow.svg | 11 - .../resources/static/xcc/css/images/close.svg | 10 - .../static/xcc/css/images/spinner.svg | 17 - src/main/resources/static/xcc/css/main.css | 1987 ---- .../resources/static/xcc/js/ie/html5shiv.js | 8 - .../resources/static/xcc/js/ie/respond.min.js | 6 - .../static/xcc/js/jquery.poptrox.min.js | 2 - src/main/resources/static/xcc/js/main.js | 299 - src/main/resources/static/xcc/js/skel.min.js | 2 - src/main/resources/static/xcc/js/util.js | 587 -- .../resources/static/xcc/sass/base/_page.scss | 47 - .../static/xcc/sass/base/_typography.scss | 172 - .../static/xcc/sass/components/_button.scss | 89 - .../static/xcc/sass/components/_form.scss | 203 - .../static/xcc/sass/components/_icon.scss | 17 - .../static/xcc/sass/components/_list.scss | 188 - .../static/xcc/sass/components/_panel.scss | 106 - .../xcc/sass/components/_poptrox-popup.scss | 167 - .../static/xcc/sass/components/_table.scss | 81 - src/main/resources/static/xcc/sass/ie8.scss | 54 - src/main/resources/static/xcc/sass/ie9.scss | 56 - .../static/xcc/sass/layout/_footer.scss | 18 - .../static/xcc/sass/layout/_header.scss | 127 - .../static/xcc/sass/layout/_main.scss | 177 - .../static/xcc/sass/layout/_wrapper.scss | 88 - .../static/xcc/sass/libs/_functions.scss | 34 - .../static/xcc/sass/libs/_mixins.scss | 56 - .../resources/static/xcc/sass/libs/_skel.scss | 584 -- .../resources/static/xcc/sass/libs/_vars.scss | 81 - src/main/resources/static/xcc/sass/main.scss | 57 - src/main/resources/templates/404.html | 62 - src/main/resources/templates/msg.html | 10 +- 320 files changed, 53 insertions(+), 65797 deletions(-) delete mode 100644 src/main/java/cn/hellohao/dao/NoticeMapper.java delete mode 100644 src/main/java/cn/hellohao/service/NoticeService.java delete mode 100644 src/main/java/cn/hellohao/service/impl/NoticeServiceImpl.java delete mode 100644 src/main/resources/db/doc.txt delete mode 100644 src/main/resources/db/img.ini delete mode 100644 src/main/resources/static/css/Mini/reset.css delete mode 100644 src/main/resources/static/css/Mini/style.css delete mode 100644 src/main/resources/static/css/animate.min.css delete mode 100644 src/main/resources/static/css/default.css delete mode 100644 src/main/resources/static/css/font-awesome.min.css delete mode 100644 src/main/resources/static/css/intro.css delete mode 100644 src/main/resources/static/css/jquery.kenburnsy.css delete mode 100644 src/main/resources/static/css/jquery.mCustomScrollbar.css delete mode 100644 src/main/resources/static/css/jquery.wordrotator.min.css delete mode 100644 src/main/resources/static/css/owl.carousel.css delete mode 100644 src/main/resources/static/css/owl.theme.css delete mode 100644 src/main/resources/static/css/style.css delete mode 100644 src/main/resources/static/css/urllist/all.min.css delete mode 100644 src/main/resources/static/css/urllist/style.css delete mode 100644 src/main/resources/static/css/verify.css delete mode 100644 src/main/resources/static/css/viewer.css delete mode 100644 src/main/resources/static/css/webfonts/fa-brands-400.eot delete mode 100644 src/main/resources/static/css/webfonts/fa-brands-400.ttf delete mode 100644 src/main/resources/static/css/webfonts/fa-brands-400.woff delete mode 100644 src/main/resources/static/css/webfonts/fa-brands-400.woff2 delete mode 100644 src/main/resources/static/css/webfonts/fa-regular-400.eot delete mode 100644 src/main/resources/static/css/webfonts/fa-regular-400.ttf delete mode 100644 src/main/resources/static/css/webfonts/fa-regular-400.woff delete mode 100644 src/main/resources/static/css/webfonts/fa-regular-400.woff2 delete mode 100644 src/main/resources/static/css/webfonts/fa-solid-900.eot delete mode 100644 src/main/resources/static/css/webfonts/fa-solid-900.ttf delete mode 100644 src/main/resources/static/css/webfonts/fa-solid-900.woff delete mode 100644 src/main/resources/static/css/webfonts/fa-solid-900.woff2 delete mode 100644 src/main/resources/static/gallery/css/style1.css delete mode 100644 src/main/resources/static/gallery/css/style_login.css delete mode 100644 src/main/resources/static/gallery/js/classie.js delete mode 100644 src/main/resources/static/gallery/js/html5shiv.min.js delete mode 100644 src/main/resources/static/gallery/js/imagesloaded.pkgd.min.js delete mode 100644 src/main/resources/static/gallery/js/jq/cbpgridgallery.js delete mode 100644 src/main/resources/static/gallery/js/jq/classie.js delete mode 100644 src/main/resources/static/gallery/js/jq/imagesloaded.pkgd.min.js delete mode 100644 src/main/resources/static/gallery/js/jq/masonry.pkgd.min.js delete mode 100644 src/main/resources/static/gallery/js/jq/modernizr.custom.js delete mode 100644 src/main/resources/static/gallery/js/main.js delete mode 100644 src/main/resources/static/gallery/js/masonry.pkgd.min.js delete mode 100644 src/main/resources/static/gallery/js/modernizr-custom.js delete mode 100644 src/main/resources/static/img/baner.jpg delete mode 100644 src/main/resources/static/img/ds.jpg delete mode 100644 src/main/resources/static/img/img404.jpg delete mode 100644 src/main/resources/static/img/ld.gif delete mode 100644 src/main/resources/static/img/logo_dark.png delete mode 100644 src/main/resources/static/img/logo_white.png delete mode 100644 src/main/resources/static/img/marker.png delete mode 100644 src/main/resources/static/img/signin.png delete mode 100644 src/main/resources/static/img/sx.png delete mode 100644 src/main/resources/static/img/triangle.png delete mode 100644 src/main/resources/static/img/triangle_dark.png delete mode 100644 src/main/resources/static/img/yx.png delete mode 100644 src/main/resources/static/js/background-blur.min.js delete mode 100644 src/main/resources/static/js/base64.min.js delete mode 100644 src/main/resources/static/js/bootstrap.jj.js delete mode 100644 src/main/resources/static/js/feather.min.js delete mode 100644 src/main/resources/static/js/hellohao.js delete mode 100644 src/main/resources/static/js/html5shiv.js delete mode 100644 src/main/resources/static/js/jquery.js delete mode 100644 src/main/resources/static/js/jquery.qrcode.min.js delete mode 100644 src/main/resources/static/js/js.cookie.min.js delete mode 100644 src/main/resources/static/js/main_constellation.js delete mode 100644 src/main/resources/static/js/plugins.min.js delete mode 100644 src/main/resources/static/js/respond.min.js delete mode 100644 src/main/resources/static/js/verify.js delete mode 100644 src/main/resources/static/js/verify.min.js delete mode 100644 src/main/resources/static/js/viewer.min.js delete mode 100644 src/main/resources/static/layui/css/admin.css delete mode 100644 src/main/resources/static/layui/css/public.css delete mode 100644 src/main/resources/static/layui/home/index.html delete mode 100644 src/main/resources/static/layui/images/avatar.png delete mode 100644 src/main/resources/static/layui/images/clear.png delete mode 100644 src/main/resources/static/layui/images/loading.gif delete mode 100644 src/main/resources/static/layui/images/main.png delete mode 100644 src/main/resources/static/layui/images/security.png delete mode 100644 src/main/resources/static/layui/js/common.js delete mode 100644 src/main/resources/static/layui/js/jquery.js delete mode 100644 src/main/resources/static/layui/js/zadmin.js delete mode 100644 src/main/resources/static/layui/layui/css/layui.css delete mode 100644 src/main/resources/static/layui/layui/css/layui.mobile.css delete mode 100644 src/main/resources/static/layui/layui/css/modules/code.css delete mode 100644 src/main/resources/static/layui/layui/css/modules/laydate/default/laydate.css delete mode 100644 src/main/resources/static/layui/layui/css/modules/layer/default/icon-ext.png delete mode 100644 src/main/resources/static/layui/layui/css/modules/layer/default/icon.png delete mode 100644 src/main/resources/static/layui/layui/css/modules/layer/default/layer.css delete mode 100644 src/main/resources/static/layui/layui/css/modules/layer/default/loading-0.gif delete mode 100644 src/main/resources/static/layui/layui/css/modules/layer/default/loading-1.gif delete mode 100644 src/main/resources/static/layui/layui/css/modules/layer/default/loading-2.gif delete mode 100644 src/main/resources/static/layui/layui/css/modules/layui-icon-extend/iconfont.css delete mode 100644 src/main/resources/static/layui/layui/css/modules/layui-icon-extend/iconfont.eot delete mode 100644 src/main/resources/static/layui/layui/css/modules/layui-icon-extend/iconfont.js delete mode 100644 src/main/resources/static/layui/layui/css/modules/layui-icon-extend/iconfont.svg delete mode 100644 src/main/resources/static/layui/layui/css/modules/layui-icon-extend/iconfont.ttf delete mode 100644 src/main/resources/static/layui/layui/css/modules/layui-icon-extend/iconfont.woff delete mode 100644 src/main/resources/static/layui/layui/css/modules/layui-icon-extend/iconfont.woff2 delete mode 100644 src/main/resources/static/layui/layui/font/iconfont.eot delete mode 100644 src/main/resources/static/layui/layui/font/iconfont.svg delete mode 100644 src/main/resources/static/layui/layui/font/iconfont.ttf delete mode 100644 src/main/resources/static/layui/layui/font/iconfont.woff delete mode 100644 src/main/resources/static/layui/layui/images/face/0.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/1.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/10.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/11.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/12.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/13.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/14.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/15.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/16.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/17.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/18.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/19.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/2.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/20.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/21.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/22.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/23.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/24.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/25.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/26.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/27.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/28.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/29.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/3.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/30.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/31.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/32.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/33.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/34.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/35.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/36.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/37.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/38.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/39.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/4.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/40.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/41.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/42.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/43.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/44.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/45.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/46.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/47.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/48.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/49.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/5.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/50.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/51.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/52.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/53.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/54.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/55.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/56.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/57.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/58.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/59.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/6.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/60.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/61.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/62.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/63.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/64.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/65.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/66.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/67.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/68.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/69.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/7.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/70.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/71.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/8.gif delete mode 100644 src/main/resources/static/layui/layui/images/face/9.gif delete mode 100644 src/main/resources/static/layui/layui/lay/modules/carousel.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/code.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/colorpicker.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/element.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/flow.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/form.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/jquery.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/laydate.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/layedit.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/layer.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/laypage.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/laytpl.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/mobile.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/rate.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/slider.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/table.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/tree.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/upload.js delete mode 100644 src/main/resources/static/layui/layui/lay/modules/util.js delete mode 100644 src/main/resources/static/layui/layui/layui.all.js delete mode 100644 src/main/resources/static/layui/layui/layui.js delete mode 100644 src/main/resources/static/static/bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.eot delete mode 100644 src/main/resources/static/static/bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.svg delete mode 100644 src/main/resources/static/static/bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.ttf delete mode 100644 src/main/resources/static/static/bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.woff delete mode 100644 src/main/resources/static/static/bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 src/main/resources/static/static/bootstrap-3.3.4-dist/js/bootstrap-table-hellohao1.13.1.js delete mode 100644 src/main/resources/static/static/bootstrap-3.3.4-dist/js/bootstrap.min.js delete mode 100644 src/main/resources/static/static/clipboard.min.js delete mode 100644 src/main/resources/static/static/css/animate.min.css delete mode 100644 src/main/resources/static/static/css/bootstrap-table.css delete mode 100644 src/main/resources/static/static/css/bootstrap.min.css delete mode 100644 src/main/resources/static/static/css/custom.css delete mode 100644 src/main/resources/static/static/css/daterangepicker-bs3.css delete mode 100644 src/main/resources/static/static/css/fileinput.css delete mode 100644 src/main/resources/static/static/css/fileinput.min.css delete mode 100644 src/main/resources/static/static/css/font-awesome.min.css delete mode 100644 src/main/resources/static/static/css/login-register.css delete mode 100644 src/main/resources/static/static/css/popover.css delete mode 100644 src/main/resources/static/static/css/style.css delete mode 100644 src/main/resources/static/static/css/sweetalert.min.css delete mode 100644 src/main/resources/static/static/fixTable/fixTable.css delete mode 100644 src/main/resources/static/static/fixTable/fixTable.js delete mode 100644 src/main/resources/static/static/fonts/FontAwesome.otf delete mode 100644 src/main/resources/static/static/fonts/fontawesome-webfont.eot delete mode 100644 src/main/resources/static/static/fonts/fontawesome-webfont.svg delete mode 100644 src/main/resources/static/static/fonts/fontawesome-webfont.ttf delete mode 100644 src/main/resources/static/static/fonts/fontawesome-webfont.woff delete mode 100644 src/main/resources/static/static/fonts/fontawesome-webfont.woff2 delete mode 100644 src/main/resources/static/static/fonts/glyphicons-halflings-regular.eot delete mode 100644 src/main/resources/static/static/fonts/glyphicons-halflings-regular.svg delete mode 100644 src/main/resources/static/static/fonts/glyphicons-halflings-regular.ttf delete mode 100644 src/main/resources/static/static/fonts/glyphicons-halflings-regular.woff delete mode 100644 src/main/resources/static/static/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 src/main/resources/static/static/js/ZeroClipboard.swf delete mode 100644 src/main/resources/static/static/js/bootbox.min.js delete mode 100644 src/main/resources/static/static/js/bootstrap.min.js delete mode 100644 src/main/resources/static/static/js/clipboard.min.js delete mode 100644 src/main/resources/static/static/js/daterangepicker.js delete mode 100644 src/main/resources/static/static/js/fileinput.js delete mode 100644 src/main/resources/static/static/js/fileinput.min.js delete mode 100644 src/main/resources/static/static/js/fileinput_locale_zh.min.js delete mode 100644 src/main/resources/static/static/js/jqBootstrapValidation.min.js delete mode 100644 src/main/resources/static/static/js/jquery-3.4.1.min.js delete mode 100644 src/main/resources/static/static/js/login-register.js delete mode 100644 src/main/resources/static/static/js/moment.js delete mode 100644 src/main/resources/static/static/js/mustache.min.js delete mode 100644 src/main/resources/static/static/js/popover.min.js delete mode 100644 src/main/resources/static/static/js/sweetalert.min.js delete mode 100644 src/main/resources/static/static/js/sweetalert2.min.js delete mode 100644 src/main/resources/static/webuploade/Uploader.swf delete mode 100644 src/main/resources/static/webuploade/css/component.css delete mode 100644 src/main/resources/static/webuploade/css/style.css delete mode 100644 src/main/resources/static/webuploade/css/webuploader.css delete mode 100644 src/main/resources/static/webuploade/expressInstall.swf delete mode 100644 src/main/resources/static/webuploade/images/ajax-loader.gif delete mode 100644 src/main/resources/static/webuploade/images/bg.png delete mode 100644 src/main/resources/static/webuploade/images/icons.png delete mode 100644 src/main/resources/static/webuploade/images/image.png delete mode 100644 src/main/resources/static/webuploade/images/image2.png delete mode 100644 src/main/resources/static/webuploade/images/progress.png delete mode 100644 src/main/resources/static/webuploade/images/success.png delete mode 100644 src/main/resources/static/webuploade/images/warning.png delete mode 100644 src/main/resources/static/webuploade/js/classie.js delete mode 100644 src/main/resources/static/webuploade/js/jquery.js delete mode 100644 src/main/resources/static/webuploade/js/modalEffects.js delete mode 100644 src/main/resources/static/webuploade/js/upload.js delete mode 100644 src/main/resources/static/webuploade/js/webuploader.js delete mode 100644 src/main/resources/static/xcc/css/font-awesome.min.css delete mode 100644 src/main/resources/static/xcc/css/ie8.css delete mode 100644 src/main/resources/static/xcc/css/ie9.css delete mode 100644 src/main/resources/static/xcc/css/images/arrow.svg delete mode 100644 src/main/resources/static/xcc/css/images/close.svg delete mode 100644 src/main/resources/static/xcc/css/images/spinner.svg delete mode 100644 src/main/resources/static/xcc/css/main.css delete mode 100644 src/main/resources/static/xcc/js/ie/html5shiv.js delete mode 100644 src/main/resources/static/xcc/js/ie/respond.min.js delete mode 100644 src/main/resources/static/xcc/js/jquery.poptrox.min.js delete mode 100644 src/main/resources/static/xcc/js/main.js delete mode 100644 src/main/resources/static/xcc/js/skel.min.js delete mode 100644 src/main/resources/static/xcc/js/util.js delete mode 100644 src/main/resources/static/xcc/sass/base/_page.scss delete mode 100644 src/main/resources/static/xcc/sass/base/_typography.scss delete mode 100644 src/main/resources/static/xcc/sass/components/_button.scss delete mode 100644 src/main/resources/static/xcc/sass/components/_form.scss delete mode 100644 src/main/resources/static/xcc/sass/components/_icon.scss delete mode 100644 src/main/resources/static/xcc/sass/components/_list.scss delete mode 100644 src/main/resources/static/xcc/sass/components/_panel.scss delete mode 100644 src/main/resources/static/xcc/sass/components/_poptrox-popup.scss delete mode 100644 src/main/resources/static/xcc/sass/components/_table.scss delete mode 100644 src/main/resources/static/xcc/sass/ie8.scss delete mode 100644 src/main/resources/static/xcc/sass/ie9.scss delete mode 100644 src/main/resources/static/xcc/sass/layout/_footer.scss delete mode 100644 src/main/resources/static/xcc/sass/layout/_header.scss delete mode 100644 src/main/resources/static/xcc/sass/layout/_main.scss delete mode 100644 src/main/resources/static/xcc/sass/layout/_wrapper.scss delete mode 100644 src/main/resources/static/xcc/sass/libs/_functions.scss delete mode 100644 src/main/resources/static/xcc/sass/libs/_mixins.scss delete mode 100644 src/main/resources/static/xcc/sass/libs/_skel.scss delete mode 100644 src/main/resources/static/xcc/sass/libs/_vars.scss delete mode 100644 src/main/resources/static/xcc/sass/main.scss delete mode 100644 src/main/resources/templates/404.html diff --git a/src/main/java/cn/hellohao/auth/filter/OriginFilter.java b/src/main/java/cn/hellohao/auth/filter/OriginFilter.java index ed7a99e..cdc7bf7 100644 --- a/src/main/java/cn/hellohao/auth/filter/OriginFilter.java +++ b/src/main/java/cn/hellohao/auth/filter/OriginFilter.java @@ -29,7 +29,6 @@ public class OriginFilter { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.setAllowCredentials(true); -// corsConfiguration.setAllowedOriginPatterns(Collections.singletonList(allowedOrigins.replace(" ", ""))); corsConfiguration.setAllowedOriginPatterns(Collections.singletonList(CorsConfiguration.ALL)); corsConfiguration.setAllowedHeaders(Collections.singletonList(CorsConfiguration.ALL)); corsConfiguration.setAllowedMethods(Collections.singletonList(CorsConfiguration.ALL)); @@ -42,28 +41,3 @@ public class OriginFilter { } - - -//@Configuration -//public class OriginFilter implements WebMvcConfigurer { -// -// @Value("${CROS_ALLOWED_ORIGINS}") -// private String allowedOrigins; -// -// @Override -// public void addCorsMappings(CorsRegistry registry) { -// // 允许跨域访问的路径 -// registry.addMapping("/**") -// // 允许跨域访问的源 -// .allowedOrigins("http://服务器Ip:9528","http://服务器Ip:9001") -// // 允许请求方法 -// .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") -// // 预检间隔时间 -// .maxAge(168000) -// // 允许头部设置 -// .allowedHeaders("*") -// // 是否发送cookie -// .allowCredentials(true); -// } -// -//} \ No newline at end of file diff --git a/src/main/java/cn/hellohao/auth/shiro/ShiroConfig.java b/src/main/java/cn/hellohao/auth/shiro/ShiroConfig.java index eaa8de8..69ce6a2 100644 --- a/src/main/java/cn/hellohao/auth/shiro/ShiroConfig.java +++ b/src/main/java/cn/hellohao/auth/shiro/ShiroConfig.java @@ -43,17 +43,14 @@ public class ShiroConfig { } - //安全对象 @Bean public DefaultWebSecurityManager defaultWebSecurityManager(@Qualifier("userRealm") UserRealm userRealm){ DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager(); - //关联UserRealm defaultWebSecurityManager.setRealm(userRealm); defaultWebSecurityManager.setRememberMeManager(null); return defaultWebSecurityManager; } - //创建 realm 对象 @Bean(name = "userRealm") public UserRealm userRealm(){ return new UserRealm(); diff --git a/src/main/java/cn/hellohao/auth/shiro/UserRealm.java b/src/main/java/cn/hellohao/auth/shiro/UserRealm.java index c7e1874..5bfb3e4 100644 --- a/src/main/java/cn/hellohao/auth/shiro/UserRealm.java +++ b/src/main/java/cn/hellohao/auth/shiro/UserRealm.java @@ -25,7 +25,6 @@ public class UserRealm extends AuthorizingRealm { @Autowired private UserService userService; - //授权 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); diff --git a/src/main/java/cn/hellohao/auth/token/JWTUtil.java b/src/main/java/cn/hellohao/auth/token/JWTUtil.java index e49dc07..7c6b254 100644 --- a/src/main/java/cn/hellohao/auth/token/JWTUtil.java +++ b/src/main/java/cn/hellohao/auth/token/JWTUtil.java @@ -22,9 +22,7 @@ public class JWTUtil { private static String EXPIRE_TIME = ""; private static String SECRET = "www.hellohao.cn"; - //生成Token public static String createToken(User user){ -// Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.SECOND,604800 );//单位秒,604800 为7天 Algorithm algorithm = Algorithm.HMAC256(SECRET); @@ -33,14 +31,11 @@ public class JWTUtil { .withClaim("username", user.getUsername()) .withClaim("uid", user.getUid()) .withClaim("password", user.getPassword()) - //到期时间 .withExpiresAt(calendar.getTime()) - //创建一个新的JWT,并使用给定的算法进行标记 .sign(algorithm); return token; } - //验证Token public static JSONObject checkToken(String token){ JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(SECRET)).build();//验证对象 JSONObject jsonObject = new JSONObject(); @@ -68,13 +63,5 @@ public class JWTUtil { } - public static void main(String[] args) { - User user = new User(); - user.setEmail("Hellohao@qq.com"); - user.setUsername("Hellohao"); - String token = createToken(user); - System.out.println(token); - checkToken(token); -// checkToken("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MjM3NDYwOTUsImVtYWlsIjoiSGVsbG9oYW9AcXEuY29tIiwidXNlcm5hbWUiOiJIZWxsb2hhbyJ9.sFnAq1VU0wuiowaTtgJNNkMzRHPmRg4leNguhh0OMCA"); - } + } diff --git a/src/main/java/cn/hellohao/controller/AdminController.java b/src/main/java/cn/hellohao/controller/AdminController.java index 5f5e2b6..12113bf 100644 --- a/src/main/java/cn/hellohao/controller/AdminController.java +++ b/src/main/java/cn/hellohao/controller/AdminController.java @@ -14,10 +14,8 @@ import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpSession; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -38,8 +36,6 @@ public class AdminController { @Autowired private UserServiceImpl userService; @Autowired - private UserServiceImpl userServiceImpl; - @Autowired private ImgreviewService imgreviewService; @Autowired private ImgTempService imgTempService; @@ -81,11 +77,9 @@ public class AdminController { UploadConfig uploadConfig = uploadConfigService.getUpdateConfig(); Imgreview imgreview = imgreviewService.selectByPrimaryKey(1);//查询非法个数 Imgreview isImgreviewOK = imgreviewService.selectByusing(1);//查询有没有启动鉴别功能 - //普通用户 String ok = "false"; jsonObject.put("myImgTotal", imgService.countimg(user.getId())); //我的图片数 jsonObject.put("myAlbumTitle", albumService.selectAlbumCount(user.getId()));//我的画廊数量 - //计算自己的百分比 已用量/分配量 long memory = Long.valueOf(user.getMemory());//分配量 Long usermemory = imgService.getusermemory(user.getId())==null?0L:imgService.getusermemory(user.getId()); if(memory==0){ @@ -174,7 +168,7 @@ public class AdminController { } - @PostMapping("/getRecently")//new 获取榜单和最近上传 + @PostMapping("/getRecently")//new @ResponseBody public Msg getRecently(@RequestParam(value = "data", defaultValue = "") String data) { Msg msg = new Msg(); @@ -184,11 +178,9 @@ public class AdminController { User user = (User) subject.getPrincipal(); user = userService.getUsers(user); if(user.getLevel()>1){ - //管理员 可以看榜单数据 和最近上传 jsonObject.put("RecentlyUser",imgService.RecentlyUser()); jsonObject.put("RecentlyUploaded",imgService.RecentlyUploaded(user.getId())); }else{ - //普通用户只能看最近上传 jsonObject.put("RecentlyUploaded",imgService.RecentlyUploaded(user.getId())); } }catch (Exception e){ @@ -325,7 +317,6 @@ public class AdminController { img.setClassifuidlist(calssif); } if(subject.hasRole("admin")){ - //管理员 sql根据userid是否等于空做的判断, img.setUserid(null); }else{ //普通用户 @@ -389,7 +380,6 @@ public class AdminController { userOld.setId(u.getId()); User userInfo = userService.getUsers(userOld); if(!userInfo.getUsername().equals(username)){ - //要修改用户名 Integer countusername = userService.countusername(username); if(countusername == 1 || !SysName.CheckSysName(username)){ msg.setCode("110406"); @@ -400,7 +390,6 @@ public class AdminController { } } if(!userInfo.getEmail().equals(email)){ - //要修改邮箱 Integer countmail = userService.countmail(email); if(countmail == 1){ msg.setCode("110407"); @@ -458,7 +447,6 @@ public class AdminController { break; } } - //删除图片 boolean isDele = false; try{ if (key.getStorageType() == 1) { @@ -483,11 +471,8 @@ public class AdminController { }catch (Exception e){ e.printStackTrace(); } - - //删除库 if(isDele){ try { - //删除图像表之前先删除临时数据表,图像表也会删除 imgTempService.delImgAndExp(image.getImguid()); imgService.deleimg(imgid); imgAndAlbumService.deleteImgAndAlbum(imgname); @@ -505,7 +490,6 @@ public class AdminController { msg.setInfo("图片记录已删除,但是图片源删除失败"); } } - System.out.println("返回的值:"+msg.toString()); return msg; } diff --git a/src/main/java/cn/hellohao/controller/AdminRootController.java b/src/main/java/cn/hellohao/controller/AdminRootController.java index 00d6582..a7af2db 100644 --- a/src/main/java/cn/hellohao/controller/AdminRootController.java +++ b/src/main/java/cn/hellohao/controller/AdminRootController.java @@ -30,8 +30,6 @@ import java.util.Map; @Controller @RequestMapping("/admin/root") public class AdminRootController { - @Autowired - private NOSImageupload nOSImageupload; @Autowired private ConfigService configService; @Autowired @@ -43,12 +41,8 @@ public class AdminRootController { @Autowired private UploadConfigService uploadConfigService; @Autowired - private NoticeService noticeService; - @Autowired private SysConfigService sysConfigService; @Autowired - private GroupService groupService; - @Autowired private ImgService imgService; @Autowired private ImgreviewService imgreviewService; diff --git a/src/main/java/cn/hellohao/controller/AlbumController.java b/src/main/java/cn/hellohao/controller/AlbumController.java index 1aee07c..1bc6327 100644 --- a/src/main/java/cn/hellohao/controller/AlbumController.java +++ b/src/main/java/cn/hellohao/controller/AlbumController.java @@ -2,7 +2,8 @@ package cn.hellohao.controller; import cn.hellohao.pojo.*; import cn.hellohao.pojo.vo.PageResultBean; -import cn.hellohao.service.*; +import cn.hellohao.service.ImgAndAlbumService; +import cn.hellohao.service.UserService; import cn.hellohao.service.impl.AlbumServiceImpl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -13,10 +14,10 @@ import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; -import javax.servlet.http.HttpSession; import java.text.SimpleDateFormat; import java.util.*; @@ -30,14 +31,8 @@ public class AlbumController { @Autowired AlbumServiceImpl albumServiceImpl; @Autowired - private ConfigService configService; - @Autowired - private ImgService imgService; - @Autowired ImgAndAlbumService imgAndAlbumService; @Autowired - private UploadConfigService uploadConfigService; - @Autowired private UserService userService; @PostMapping("/admin/getGalleryList") //new diff --git a/src/main/java/cn/hellohao/controller/ClientController.java b/src/main/java/cn/hellohao/controller/ClientController.java index 5a24ff2..da6e6ac 100644 --- a/src/main/java/cn/hellohao/controller/ClientController.java +++ b/src/main/java/cn/hellohao/controller/ClientController.java @@ -1,26 +1,15 @@ package cn.hellohao.controller; -import cn.hellohao.pojo.*; -import cn.hellohao.service.*; -import cn.hellohao.service.impl.*; -import cn.hellohao.utils.*; -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import cn.hellohao.pojo.Msg; +import cn.hellohao.service.impl.ClientService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import java.io.*; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; -import java.text.SimpleDateFormat; -import java.util.*; /** * @author Hellohao diff --git a/src/main/java/cn/hellohao/controller/CodeController.java b/src/main/java/cn/hellohao/controller/CodeController.java index 9f28b0f..6d422f1 100644 --- a/src/main/java/cn/hellohao/controller/CodeController.java +++ b/src/main/java/cn/hellohao/controller/CodeController.java @@ -26,7 +26,6 @@ public class CodeController { @Autowired private CodeService codeService; - @RequestMapping(value = "/selectCodeList")//new @ResponseBody public Map selectCodeList(@RequestParam(value = "data", defaultValue = "") String data) { diff --git a/src/main/java/cn/hellohao/controller/ExceptionHandling.java b/src/main/java/cn/hellohao/controller/ExceptionHandling.java index c0cd040..eec709f 100644 --- a/src/main/java/cn/hellohao/controller/ExceptionHandling.java +++ b/src/main/java/cn/hellohao/controller/ExceptionHandling.java @@ -3,16 +3,12 @@ package cn.hellohao.controller; import cn.hellohao.exception.StorageSourceInitException; import cn.hellohao.utils.Print; import org.springframework.ui.Model; -import org.springframework.validation.BindException; -import org.springframework.validation.ObjectError; import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.servlet.ModelAndView; import java.net.SocketException; -import java.util.Date; -import java.util.List; /** * @author Hellohao @@ -24,7 +20,6 @@ import java.util.List; public class ExceptionHandling { @ExceptionHandler - //@ResponseBody public ModelAndView test(StorageSourceInitException ssie){ ModelAndView modelAndView = new ModelAndView("index"); Print.Normal("异常拦截成功:"+ ssie.getMessage()); @@ -39,7 +34,6 @@ public class ExceptionHandling { Print.Normal("存储源配置不正确,初始化失败"+ e.getMessage()); e.printStackTrace(); modelAndView.addObject("error",e.getMessage()); - //返回错误信息,并显示给用户 return e.getMessage(); } @ExceptionHandler @@ -48,7 +42,6 @@ public class ExceptionHandling { Print.Normal("系统内部错误:"+ e.getMessage()); e.printStackTrace(); modelAndView.addObject("error",e.getMessage()); - //返回错误信息,并显示给用户 return e.getMessage(); } @@ -57,11 +50,8 @@ public class ExceptionHandling { ModelAndView modelAndView = new ModelAndView("/index"); Print.Normal("URL访问类型不正确:"+ e.getMessage()); - //e.printStackTrace(); modelAndView.addObject("error","URL访问类型不正确。"); model.addAttribute("error","URL访问类型不正确。"); - //返回错误信息,并显示给用户 - //return e.getMessage(); return "exception"; } diff --git a/src/main/java/cn/hellohao/controller/GroupController.java b/src/main/java/cn/hellohao/controller/GroupController.java index b1cd731..ca5e5db 100644 --- a/src/main/java/cn/hellohao/controller/GroupController.java +++ b/src/main/java/cn/hellohao/controller/GroupController.java @@ -3,8 +3,6 @@ package cn.hellohao.controller; import cn.hellohao.pojo.Group; import cn.hellohao.pojo.Msg; import cn.hellohao.service.GroupService; -import cn.hellohao.service.KeysService; -import cn.hellohao.service.UserService; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -28,18 +26,12 @@ import java.util.Map; public class GroupController { @Autowired private GroupService groupService; - @Autowired - private KeysService keysService; - @Autowired - private UserService userService; - @PostMapping("/getGrouplistForUsers") //new @ResponseBody public Msg getGrouplistForUsers() { Msg msg = new Msg(); - //只获取用户组type为0的,只有是0的才是未分配用户组的,才能给指定用户设置 List groupList = groupService.grouplist(0); msg.setData(groupList); return msg; diff --git a/src/main/java/cn/hellohao/controller/IndexController.java b/src/main/java/cn/hellohao/controller/IndexController.java index d17bb89..f70816a 100644 --- a/src/main/java/cn/hellohao/controller/IndexController.java +++ b/src/main/java/cn/hellohao/controller/IndexController.java @@ -100,6 +100,24 @@ public class IndexController { return uploadServicel.uploadForLoc(request,multipartFile,day,null,jsonArray); } + //根据网络图片url上传 + @PostMapping(value = "/uploadForUrl") //new + @ResponseBody + public Msg upurlimg(HttpServletRequest request,@RequestParam(value = "data", defaultValue = "") String data) { + JSONObject jsonObj = JSONObject.parseObject(data); + final JSONArray jsonArray = new JSONArray(); + Integer setday = jsonObj.getInteger("day"); + String imgUrl = jsonObj.getString("imgUrl"); + String selectTreeListStr = jsonObj.getString("classifications"); + if(null != selectTreeListStr){ + String[] calssif = selectTreeListStr.split(","); + for (int i = 0; i < calssif.length; i++) { + jsonArray.add(calssif[i]); + } + } + return uploadServicel.uploadForLoc(request,null,setday,imgUrl,jsonArray); + } + @RequestMapping(value = "/getUploadInfo")//new @ResponseBody public Msg getUploadInfo() { diff --git a/src/main/java/cn/hellohao/controller/UserController.java b/src/main/java/cn/hellohao/controller/UserController.java index 6600650..49981d4 100644 --- a/src/main/java/cn/hellohao/controller/UserController.java +++ b/src/main/java/cn/hellohao/controller/UserController.java @@ -2,7 +2,6 @@ package cn.hellohao.controller; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.Random; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -22,8 +21,8 @@ import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.*; import com.alibaba.fastjson.JSONObject; +import org.springframework.web.bind.annotation.*; @Controller @@ -46,7 +45,7 @@ public class UserController { @PostMapping("/register") @ResponseBody - public Msg Register(HttpServletRequest request,@RequestParam(value = "data", defaultValue = "") String data) {//Validated + public Msg Register(HttpServletRequest request, @RequestParam(value = "data", defaultValue = "") String data) {//Validated Msg msg = new Msg(); JSONObject jsonObj = JSONObject.parseObject(data); String username = jsonObj.getString("username"); @@ -112,7 +111,6 @@ public class UserController { Integer type = 0; if(emailConfig.getUsing()==1){ user.setIsok(0); - //注册完发激活链接 Thread thread = new Thread() { public void run() { Integer a = NewSendEmail.sendEmail(emailConfig,user.getUsername(), uid, user.getEmail(),config); @@ -121,7 +119,6 @@ public class UserController { thread.start(); msg.setInfo("注册成功,请注意查收邮箱尽快激活账户"); }else{ - //直接注册 user.setIsok(1); msg.setInfo("注册成功,快去登陆吧"); } @@ -208,8 +205,6 @@ public class UserController { } - - //邮箱激活 @RequestMapping(value = "/activation", method = RequestMethod.GET) public String activation(Model model, HttpServletRequest request, HttpSession session, String activation, String username) { Config config = configService.getSourceype(); @@ -232,7 +227,6 @@ public class UserController { } } - //退出 @PostMapping(value = "/logout")//new @ResponseBody public Msg exit(Model model, HttpServletRequest request, HttpServletResponse response, HttpSession session) { @@ -244,7 +238,6 @@ public class UserController { return msg; } - //retrievepass @PostMapping("/retrievePass") //new @ResponseBody public Msg retrievePass(HttpServletRequest request, @RequestParam(value = "data", defaultValue = "") String data) { @@ -307,7 +300,6 @@ public class UserController { return msg; } - //邮箱激活 @RequestMapping(value = "/retrieve", method = RequestMethod.GET) //new public String retrieve(Model model, String activation,String cip) { Integer ret = 0; @@ -341,10 +333,5 @@ public class UserController { } - private Integer number1; - private Integer istmp1; - private Integer number2; - private Integer istmp2; - } diff --git a/src/main/java/cn/hellohao/dao/ImgMapper.java b/src/main/java/cn/hellohao/dao/ImgMapper.java index 498dd22..214e9e6 100644 --- a/src/main/java/cn/hellohao/dao/ImgMapper.java +++ b/src/main/java/cn/hellohao/dao/ImgMapper.java @@ -40,8 +40,6 @@ public interface ImgMapper { List RecentlyUser(); - Integer addGreat(@Param("id") Integer id); - List getyyyy(@Param("userid") Integer userid); List countByM(Images images); diff --git a/src/main/java/cn/hellohao/dao/NoticeMapper.java b/src/main/java/cn/hellohao/dao/NoticeMapper.java deleted file mode 100644 index 33a99e3..0000000 --- a/src/main/java/cn/hellohao/dao/NoticeMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package cn.hellohao.dao; - -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface NoticeMapper { - - String getNotice(); -} diff --git a/src/main/java/cn/hellohao/pojo/User.java b/src/main/java/cn/hellohao/pojo/User.java index 7a036a9..477b267 100644 --- a/src/main/java/cn/hellohao/pojo/User.java +++ b/src/main/java/cn/hellohao/pojo/User.java @@ -7,10 +7,7 @@ public class User { //@NotBlank(message = "用户名不能为空") // @Length(min = 6, max = 20, message = "用户名需要为 6 - 20 个字符") private String username; - //@NotBlank(message = "密码不能为空") private String password; - // @NotBlank(message = "邮箱不能为空") - //@Email(message = "邮箱格式不正确") private String email; private String birthder; private Integer level; @@ -20,13 +17,15 @@ public class User { private Integer groupid; private String groupname; + private Long counts;//用户img counts + public User() { super(); } public User(Integer id, String username, String password, String email, String birthder, Integer level, String uid, - Integer isok, String memory, Integer groupid,String groupname) { + Integer isok, String memory, Integer groupid,String groupname,Long counts) { this.id = id; this.username = username; this.password = password; @@ -38,6 +37,7 @@ public class User { this.memory = memory; this.groupid = groupid; this.groupname = groupname; + this.counts = counts; } public Integer getId() { @@ -127,4 +127,12 @@ public class User { public void setGroupname(String groupname) { this.groupname = groupname; } + + public Long getCounts() { + return counts; + } + + public void setCounts(Long counts) { + this.counts = counts; + } } diff --git a/src/main/java/cn/hellohao/service/ImgService.java b/src/main/java/cn/hellohao/service/ImgService.java index 3acc00d..4693f47 100644 --- a/src/main/java/cn/hellohao/service/ImgService.java +++ b/src/main/java/cn/hellohao/service/ImgService.java @@ -41,8 +41,6 @@ public interface ImgService { List RecentlyUser(); - Integer addGreat(Integer id); - List getyyyy(Integer userid); List countByM(Images images); diff --git a/src/main/java/cn/hellohao/service/NoticeService.java b/src/main/java/cn/hellohao/service/NoticeService.java deleted file mode 100644 index 1fe01c4..0000000 --- a/src/main/java/cn/hellohao/service/NoticeService.java +++ /dev/null @@ -1,9 +0,0 @@ -package cn.hellohao.service; - -import org.springframework.stereotype.Service; - -@Service -public interface NoticeService { - - String getNotice(); -} diff --git a/src/main/java/cn/hellohao/service/impl/ClientService.java b/src/main/java/cn/hellohao/service/impl/ClientService.java index 8479a78..98de830 100644 --- a/src/main/java/cn/hellohao/service/impl/ClientService.java +++ b/src/main/java/cn/hellohao/service/impl/ClientService.java @@ -61,8 +61,6 @@ public class ClientService { @Autowired private UploadConfigMapper uploadConfigMapper; @Autowired - private NoticeMapper noticeMapper; - @Autowired private ImgMapper imgMapper; @Autowired ImgreviewMapper imgreviewMapper; diff --git a/src/main/java/cn/hellohao/service/impl/ImgServiceImpl.java b/src/main/java/cn/hellohao/service/impl/ImgServiceImpl.java index f794714..6ea6390 100644 --- a/src/main/java/cn/hellohao/service/impl/ImgServiceImpl.java +++ b/src/main/java/cn/hellohao/service/impl/ImgServiceImpl.java @@ -230,10 +230,6 @@ public class ImgServiceImpl implements ImgService { return imgMapper.RecentlyUser(); } - @Override - public Integer addGreat(Integer id) { - return imgMapper.addGreat(id); - } public List getyyyy(Integer userid){ return imgMapper.getyyyy(userid); diff --git a/src/main/java/cn/hellohao/service/impl/NoticeServiceImpl.java b/src/main/java/cn/hellohao/service/impl/NoticeServiceImpl.java deleted file mode 100644 index 86e4841..0000000 --- a/src/main/java/cn/hellohao/service/impl/NoticeServiceImpl.java +++ /dev/null @@ -1,18 +0,0 @@ -package cn.hellohao.service.impl; - -import cn.hellohao.dao.NoticeMapper; -import cn.hellohao.service.NoticeService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -@Service -public class NoticeServiceImpl implements NoticeService { - - @Autowired - private NoticeMapper noticeMapper; - - @Override - public String getNotice() { - return noticeMapper.getNotice(); - } -} diff --git a/src/main/resources/db/doc.txt b/src/main/resources/db/doc.txt deleted file mode 100644 index 3ddc008..0000000 --- a/src/main/resources/db/doc.txt +++ /dev/null @@ -1 +0,0 @@ -存储源删除 \ No newline at end of file diff --git a/src/main/resources/db/img.ini b/src/main/resources/db/img.ini deleted file mode 100644 index 492d11a..0000000 --- a/src/main/resources/db/img.ini +++ /dev/null @@ -1,3 +0,0 @@ -aaaaaaaaaaa -vbbbbbbbbbbbbbb -cccccccccccc \ No newline at end of file diff --git a/src/main/resources/mapper/ImgMapper.xml b/src/main/resources/mapper/ImgMapper.xml index 2c79835..0438c41 100644 --- a/src/main/resources/mapper/ImgMapper.xml +++ b/src/main/resources/mapper/ImgMapper.xml @@ -19,7 +19,6 @@ a.imguid, a.format, a.about, - a.great, a.violation FROM imgdata a @@ -128,15 +127,11 @@ - - - update imgdata set great = (great+1) where id = #{id} - ';this.$element.append(panelHtml);this.isEnd=false;this.htmlDoms={code_btn:$('#'+this.options.btnId),code:this.$element.find('.verify-code'),code_area:this.$element.find('.verify-code-area'),code_input:this.$element.find('.varify-input-code'),};this.htmlDoms.code.css({'width':this.options.width,'height':this.options.height,'line-height':this.options.height,'font-size':this.options.fontSize});this.htmlDoms.code_area.css({'width':this.options.width})},setCode:function(){if(this.isEnd==false){var color1Num=Math.floor(Math.random()*3);var color2Num=Math.floor(Math.random()*5);this.htmlDoms.code.css({'background-color':_code_color1[color1Num],'color':_code_color2[color2Num]});this.htmlDoms.code_input.val('');var code='';this.code_chose='';if(this.options.type==1){for(var i=0;i'+_code_chars[charNum]+''}}else{var num1=Math.floor(Math.random()*this.options.figure);var num2=Math.floor(Math.random()*this.options.figure);if(this.options.arith==0){var tmparith=Math.floor(Math.random()*3)}switch(tmparith){case 1:this.code_chose=parseInt(num1)+parseInt(num2);code=num1+' + '+num2+' = ?';break;case 2:if(parseInt(num1)
';this.plusWidth=parseInt(this.setSize.block_width)+parseInt(this.setSize.circle_radius)*2-parseInt(this.setSize.circle_radius)*0.2;this.plusHeight=parseInt(this.setSize.block_height)+parseInt(this.setSize.circle_radius)*2-parseInt(this.setSize.circle_radius)*0.2;tmpHtml=''}panelHtml+=tmpHtml+'
'+this.options.explain+'
';this.$element.append(panelHtml);this.htmlDoms={sub_block:this.$element.find('.verify-sub-block'),out_panel:this.$element.find('.verify-img-out'),img_panel:this.$element.find('.verify-img-panel'),img_canvas:this.$element.find('.verify-img-canvas'),bar_area:this.$element.find('.verify-bar-area'),move_block:this.$element.find('.verify-move-block'),left_bar:this.$element.find('.verify-left-bar'),msg:this.$element.find('.verify-msg'),icon:this.$element.find('.verify-icon'),refresh:this.$element.find('.verify-refresh')};this.$element.css('position','relative');if(this.options.mode=='pop'){this.htmlDoms.out_panel.css({'display':'none','position':'absolute','bottom':'42px'});this.htmlDoms.sub_block.css({'display':'none'})}else{this.htmlDoms.out_panel.css({'position':'relative'})}this.htmlDoms.out_panel.css('height',parseInt(this.setSize.img_height)+this.options.vSpace+'px');this.htmlDoms.img_panel.css({'width':this.setSize.img_width,'height':this.setSize.img_height});this.htmlDoms.bar_area.css({'width':this.setSize.bar_width,'height':this.setSize.bar_height,'line-height':this.setSize.bar_height});this.htmlDoms.move_block.css({'width':this.setSize.bar_height,'height':this.setSize.bar_height});this.htmlDoms.left_bar.css({'width':this.setSize.bar_height,'height':this.setSize.bar_height});this.randSet()},drawImg:function(obj,img){var canvas=this.htmlDoms.img_canvas[0];if(canvas){var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0,parseInt(this.setSize.img_width),parseInt(this.setSize.img_height));graphParameter={x:this.x,y:this.y,r:parseInt(this.setSize.circle_radius),w:(parseInt(this.setSize.block_width)-2*parseInt(this.setSize.circle_radius))/2,h:(parseInt(this.setSize.block_height)-2*parseInt(this.setSize.circle_radius))/2};obj.drawRule(ctx,graphParameter)}var canvas2=this.htmlDoms.sub_block[0];if(canvas2){var proportionX=img.width/parseInt(this.setSize.img_width);var proportionY=img.height/parseInt(this.setSize.img_height);var ctx2=canvas2.getContext("2d");ctx2.restore();ctx2.drawImage(img,this.x*proportionX,(this.y-parseInt(this.setSize.circle_radius)-parseInt(this.setSize.circle_radius)*0.8)*proportionY,this.plusWidth*proportionX,this.plusHeight*proportionY,0,0,this.plusWidth,this.plusHeight);ctx2.save();ctx2.globalCompositeOperation="destination-atop";graphParameter.x=0;graphParameter.y=parseInt(this.setSize.circle_radius)+parseInt(this.setSize.circle_radius)*0.8;obj.drawRule(ctx2,graphParameter)}},drawRule:function(ctx,graphParameter){var x=graphParameter.x;var y=graphParameter.y;var r=graphParameter.r;var w=graphParameter.w;var h=graphParameter.h;ctx.beginPath();ctx.moveTo(x,y);ctx.lineTo((x+w)+r*0.4,y);ctx.arc((x+w)+r,y-r*0.8,r,0.7*Math.PI,0.3*Math.PI);ctx.lineTo((x+(2*w)+(2*r)),y);ctx.lineTo((x+(2*w)+(2*r)),y+h);ctx.arc((x+(2*w)+(2*r))+(r*0.8),y+h+r,r,1.2*Math.PI,0.8*Math.PI);ctx.lineTo((x+(2*w)+(2*r)),y+(2*h)+(2*r));ctx.lineTo(x,y+(2*h)+(2*r));ctx.lineTo(x,y+h+2*r-r*0.4);ctx.arc(x+(r*0.8),y+h+r,r,0.8*Math.PI,1.2*Math.PI,true);ctx.lineTo(x,y);ctx.fillStyle="#fff";ctx.fill();ctx.closePath()},start:function(e){if(this.isEnd==false){this.htmlDoms.msg.text('');this.htmlDoms.move_block.css('background-color','#337ab7');this.htmlDoms.left_bar.css('border-color','#337AB7');this.htmlDoms.icon.css('color','#fff');e.stopPropagation();this.status=true}},move:function(e){if(this.status&&this.isEnd==false){if(this.options.mode=='pop'){this.showImg()}if(!e.touches){var x=e.clientX}else{var x=e.touches[0].pageX}var bar_area_left=Slide.prototype.getLeft(this.htmlDoms.bar_area[0]);var move_block_left=x-bar_area_left;if(this.options.type!=1){if(move_block_left>=(this.htmlDoms.bar_area[0].offsetWidth-parseInt(this.setSize.bar_height)+parseInt(parseInt(this.setSize.block_width)/2)-2)){move_block_left=(this.htmlDoms.bar_area[0].offsetWidth-parseInt(this.setSize.bar_height)+parseInt(parseInt(this.setSize.block_width)/2)-2)}}else{if(move_block_left>=this.htmlDoms.bar_area[0].offsetWidth-parseInt(parseInt(this.setSize.bar_height)/2)+3){this.$element.find('.verify-msg:eq(1)').text('松开验证');move_block_left=this.htmlDoms.bar_area[0].offsetWidth-parseInt(parseInt(this.setSize.bar_height)/2)+3}else{this.$element.find('.verify-msg:eq(1)').text('')}}if(move_block_left<=parseInt(parseInt(this.setSize.block_width)/2)){move_block_left=parseInt(parseInt(this.setSize.block_width)/2)}this.htmlDoms.move_block.css('left',move_block_left-parseInt(parseInt(this.setSize.block_width)/2)+"px");this.htmlDoms.left_bar.css('width',move_block_left-parseInt(parseInt(this.setSize.block_width)/2)+"px");this.htmlDoms.sub_block.css('left',(move_block_left-parseInt(parseInt(this.setSize.block_width)/2))*this.lengthPercent+"px")}},end:function(){var _this=this;if(this.status&&this.isEnd==false){if(this.options.type!=1){var vOffset=parseInt(this.options.vOffset);if(parseInt(this.x)>=(parseInt(this.htmlDoms.sub_block.css('left'))-vOffset)&&parseInt(this.x)<=(parseInt(this.htmlDoms.sub_block.css('left'))+vOffset)){this.htmlDoms.move_block.css('background-color','#5cb85c');this.htmlDoms.left_bar.css({'border-color':'#5cb85c','background-color':'#fff'});this.htmlDoms.icon.css('color','#fff');this.htmlDoms.icon.removeClass('icon-right');this.htmlDoms.icon.addClass('icon-check');this.htmlDoms.refresh.hide();this.isEnd=true;this.options.success(this)}else{this.htmlDoms.move_block.css('background-color','#d9534f');this.htmlDoms.left_bar.css('border-color','#d9534f');this.htmlDoms.icon.css('color','#fff');this.htmlDoms.icon.removeClass('icon-right');this.htmlDoms.icon.addClass('icon-close');setTimeout(function(){_this.refresh()},400);this.options.error(this)}}else{if(parseInt(this.htmlDoms.move_block.css('left'))>=(parseInt(this.setSize.bar_width)-parseInt(this.setSize.bar_height)-parseInt(this.options.vOffset))){this.htmlDoms.move_block.css('background-color','#5cb85c');this.htmlDoms.left_bar.css({'color':'#4cae4c','border-color':'#5cb85c','background-color':'#fff'});this.htmlDoms.icon.css('color','#fff');this.htmlDoms.icon.removeClass('icon-right');this.htmlDoms.icon.addClass('icon-check');this.htmlDoms.refresh.hide();this.$element.find('.verify-msg:eq(1)').text('验证成功');this.isEnd=true;this.options.success(this)}else{this.$element.find('.verify-msg:eq(1)').text('');this.htmlDoms.move_block.css('background-color','#d9534f');this.htmlDoms.left_bar.css('border-color','#d9534f');this.htmlDoms.icon.css('color','#fff');this.htmlDoms.icon.removeClass('icon-right');this.htmlDoms.icon.addClass('icon-close');this.isEnd=true;setTimeout(function(){_this.$element.find('.verify-msg:eq(1)').text('');_this.refresh();_this.isEnd=false},400);this.options.error(this)}}this.status=false}},showImg:function(){this.htmlDoms.out_panel.css({'display':'block'});this.htmlDoms.sub_block.css({'display':'block'})},hideImg:function(){this.htmlDoms.out_panel.css({'display':'none'});this.htmlDoms.sub_block.css({'display':'none'})},resetSize:function(obj){var img_width,img_height,bar_width,bar_height,block_width,block_height,circle_radius;var parentWidth=obj.$element.parent().width()||$(window).width();var parentHeight=obj.$element.parent().height()||$(window).height();if(obj.options.imgSize.width.indexOf('%')!=-1){img_width=parseInt(obj.options.imgSize.width)/100*parentWidth+'px'}else{img_width=obj.options.imgSize.width}if(obj.options.imgSize.height.indexOf('%')!=-1){img_height=parseInt(obj.options.imgSize.height)/100*parentHeight+'px'}else{img_height=obj.options.imgSize.height}if(obj.options.barSize.width.indexOf('%')!=-1){bar_width=parseInt(obj.options.barSize.width)/100*parentWidth+'px'}else{bar_width=obj.options.barSize.width}if(obj.options.barSize.height.indexOf('%')!=-1){bar_height=parseInt(obj.options.barSize.height)/100*parentHeight+'px'}else{bar_height=obj.options.barSize.height}if(obj.options.blockSize){if(obj.options.blockSize.width.indexOf('%')!=-1){block_width=parseInt(obj.options.blockSize.width)/100*parentWidth+'px'}else{block_width=obj.options.blockSize.width}if(obj.options.blockSize.height.indexOf('%')!=-1){block_height=parseInt(obj.options.blockSize.height)/100*parentHeight+'px'}else{block_height=obj.options.blockSize.height}}if(obj.options.circleRadius){if(obj.options.circleRadius.indexOf('%')!=-1){circle_radius=parseInt(obj.options.circleRadius)/100*parentHeight+'px'}else{circle_radius=obj.options.circleRadius}}return{img_width:img_width,img_height:img_height,bar_width:bar_width,bar_height:bar_height,block_width:block_width,block_height:block_height,circle_radius:circle_radius}},randSet:function(){var rand1=Math.floor(Math.random()*9+1);var rand2=Math.floor(Math.random()*9+1);var top=rand1*parseInt(this.setSize.img_height)/15+parseInt(this.setSize.img_height)*0.1;var left=rand2*parseInt(this.setSize.img_width)/15+parseInt(this.setSize.img_width)*0.1;this.x=left;this.y=top;if(this.options.mode=='pop'){this.htmlDoms.sub_block.css({'top':'-'+(parseInt(this.setSize.img_height)+this.options.vSpace+parseInt(this.setSize.circle_radius)+parseInt(this.setSize.circle_radius)*0.8-this.y-2)+'px'})}else{this.htmlDoms.sub_block.css({'top':this.y-(parseInt(this.setSize.circle_radius)+parseInt(this.setSize.circle_radius)*0.8)+2+'px'})}},refresh:function(){var _this=this;this.htmlDoms.refresh.show();this.$element.find('.verify-msg:eq(1)').text('');this.$element.find('.verify-msg:eq(1)').css('color','#000');this.htmlDoms.move_block.animate({'left':'0px'},'fast');this.htmlDoms.left_bar.animate({'width':parseInt(this.setSize.bar_height)},'fast');this.htmlDoms.left_bar.css({'border-color':'#ddd'});this.htmlDoms.move_block.css('background-color','#fff');this.htmlDoms.icon.css('color','#000');this.htmlDoms.icon.removeClass('icon-close');this.htmlDoms.icon.addClass('icon-right');this.$element.find('.verify-msg:eq(0)').text(this.options.explain);this.randSet();this.img_rand=Math.floor(Math.random()*this.options.imgName.length);var img=new Image();img.src=this.options.imgUrl+this.options.imgName[this.img_rand];$(img).on('load',function(e){_this.drawImg(_this,this)});this.isEnd=false;this.htmlDoms.sub_block.css('left',"0px")},getLeft:function(node){var left=$(node).offset().left;return left}};var Points=function(ele,opt){this.$element=ele,this.defaults={mode:'fixed',defaultNum:4,checkNum:3,vSpace:5,imgUrl:'images/',imgName:['1.jpg','2.jpg'],imgSize:{width:'400px',height:'200px',},barSize:{width:'400px',height:'40px',},ready:function(){},success:function(){},error:function(){}},this.options=$.extend({},this.defaults,opt)};Points.prototype={init:function(){var _this=this;_this.loadDom();_this.refresh();_this.options.ready();this.$element[0].onselectstart=document.body.ondrag=function(){return false};if(this.options.mode=='pop'){this.$element.on('mouseover',function(e){_this.showImg()});this.$element.on('mouseout',function(e){_this.hideImg()});this.htmlDoms.out_panel.on('mouseover',function(e){_this.showImg()});this.htmlDoms.out_panel.on('mouseout',function(e){_this.hideImg()})}_this.$element.find('.verify-img-panel canvas').on('click',function(e){_this.checkPosArr.push(_this.getMousePos(this,e));if(_this.num==_this.options.checkNum){_this.num=_this.createPoint(_this.getMousePos(this,e));setTimeout(function(){var flag=_this.comparePos(_this.fontPos,_this.checkPosArr);if(flag==false){_this.options.error(_this);_this.$element.find('.verify-bar-area').css({'color':'#d9534f','border-color':'#d9534f'});_this.$element.find('.verify-msg').text('验证失败');setTimeout(function(){_this.$element.find('.verify-bar-area').css({'color':'#000','border-color':'#ddd'});_this.refresh()},400)}else{_this.$element.find('.verify-bar-area').css({'color':'#4cae4c','border-color':'#5cb85c'});_this.$element.find('.verify-msg').text('验证成功');_this.$element.find('.verify-refresh').hide();_this.$element.find('.verify-img-panel').unbind('click');_this.options.success(_this)}},400)}if(_this.num<_this.options.checkNum){_this.num=_this.createPoint(_this.getMousePos(this,e))}});_this.$element.find('.verify-refresh').on('click',function(){_this.refresh()})},loadDom:function(){this.fontPos=[];this.checkPosArr=[];this.num=1;this.img_rand=Math.floor(Math.random()*this.options.imgName.length);var panelHtml='';var tmpHtml='';this.setSize=Slide.prototype.resetSize(this);panelHtml+='
';this.$element.append(panelHtml);this.htmlDoms={out_panel:this.$element.find('.verify-img-out'),img_panel:this.$element.find('.verify-img-panel'),bar_area:this.$element.find('.verify-bar-area'),msg:this.$element.find('.verify-msg'),};this.$element.css('position','relative');if(this.options.mode=='pop'){this.htmlDoms.out_panel.css({'display':'none','position':'absolute','bottom':'42px'})}else{this.htmlDoms.out_panel.css({'position':'relative'})}this.htmlDoms.out_panel.css('height',parseInt(this.setSize.img_height)+this.options.vSpace+'px');this.htmlDoms.img_panel.css({'width':this.setSize.img_width,'height':this.setSize.img_height,'background-size':this.setSize.img_width+' '+this.setSize.img_height,'margin-bottom':this.options.vSpace+'px'});this.htmlDoms.bar_area.css({'width':this.options.barSize.width,'height':this.setSize.bar_height,'line-height':this.setSize.bar_height})},drawImg:function(obj,img){var canvas=this.$element.find('canvas')[0];var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0,parseInt(this.setSize.img_width),parseInt(this.setSize.img_height));var fontSizeArr=['italic small-caps bold 20px microsoft yahei','small-caps normal 25px arial','34px microsoft yahei'];var fontStr='天地玄黄宇宙洪荒日月盈昃辰宿列张寒来暑往秋收冬藏闰余成岁律吕调阳云腾致雨露结为霜金生丽水玉出昆冈剑号巨阙珠称夜光果珍李柰菜重芥姜海咸河淡鳞潜羽翔龙师火帝鸟官人皇始制文字乃服衣裳推位让国有虞陶唐吊民伐罪周发殷汤坐朝问道垂拱平章爱育黎首臣伏戎羌遐迩体率宾归王';var fontChars=[];var avg=Math.floor(parseInt(this.setSize.img_width)/(parseInt(this.options.defaultNum)+1));var tmp_index='';var color2Num=Math.floor(Math.random()*5);for(var i=1;i<=this.options.defaultNum;i++){fontChars[i-1]=this.getChars(fontStr,fontChars);tmp_index=Math.floor(Math.random()*3);ctx.font=fontSizeArr[tmp_index];ctx.fillStyle=_code_color2[color2Num];if(Math.floor(Math.random()*2)==1){var tmp_y=Math.floor(parseInt(this.setSize.img_height)/2)+tmp_index*20+20}else{var tmp_y=Math.floor(parseInt(this.setSize.img_height)/2)-tmp_index*20}ctx.fillText(fontChars[i-1],avg*i,tmp_y);this.fontPos[i-1]={'char':fontChars[i-1],'x':avg*i,'y':tmp_y}}for(var i=0;i<(this.options.defaultNum-this.options.checkNum);i++){this.shuffle(this.fontPos).pop()}var msgStr='';for(var i=0;i0){tmp_rand=tmp_rand-1}tmp_char=fontStr.charAt(tmp_rand);if($.inArray(tmp_char,fontChars)==-1){return tmp_char}else{return Points.prototype.getChars(fontStr,fontChars)}},shuffle:function(arr){var m=arr.length,i;var tmpF;while(m){i=(Math.random()*m--)>>>0;tmpF=arr[m];arr[m]=arr[i];arr[i]=tmpF}return arr},createPoint:function(pos){this.htmlDoms.img_panel.append('
'+this.num+'
');return++this.num},comparePos:function(fontPos,checkPosArr){var flag=true;for(var i=0;ifontPos[i].x&&parseInt(checkPosArr[i].x)-40fontPos[i].y&&parseInt(checkPosArr[i].y)-40/g,">"):t}function ht(t,i){return t.classList?t.classList.contains(i):-1=this.length||this.viewed&&i===this.index)return this;this.viewing&&this.viewing.abort();var n=this.element,s=this.options,o=this.title,a=this.canvas,r=this.items[i],h=r.querySelector("img"),l=ft(h,"originalUrl"),c=rt(h.getAttribute("alt")),u=document.createElement("img");if(u.src=l,u.alt=c,et(s.view)&&wt(n,j,s.view,{once:!0}),!1===bt(n,j,{originalImage:this.images[i],index:i,image:u})||!this.isShown||this.hiding||this.played)return this;this.image=u,ct(this.items[this.index],f),lt(r,f),this.viewed=!1,this.index=i,this.imageData={},lt(u,z),s.loading&<(a,v),a.innerHTML="",a.appendChild(u),this.renderList(),o.innerHTML="";function d(){var t=e.imageData,i=Array.isArray(s.title)?s.title[1]:s.title;o.innerHTML=rt(et(i)?i.call(e,u,t):"".concat(c," (").concat(t.naturalWidth," × ").concat(t.naturalHeight,")"))}var m;return wt(n,V,d,{once:!0}),this.viewing={abort:function(){pt(n,V,d),u.complete?this.imageRendering?this.imageRendering.abort():this.imageInitializing&&this.imageInitializing.abort():(u.src="",pt(u,Y,m),this.timeout&&clearTimeout(this.timeout))}},u.complete?this.load():(wt(u,Y,m=this.load.bind(this),{once:!0}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(function(){ct(u,z),e.timeout=!1},1e3)),this},prev:function(t){var i=0Math.abs(o)&&(this.pointers={},1
';var n=e.querySelector(".".concat(p,"-container")),s=n.querySelector(".".concat(p,"-title")),o=n.querySelector(".".concat(p,"-toolbar")),a=n.querySelector(".".concat(p,"-navbar")),r=n.querySelector(".".concat(p,"-button")),l=n.querySelector(".".concat(p,"-canvas"));if(this.parent=i,this.viewer=n,this.title=s,this.toolbar=o,this.navbar=a,this.button=r,this.canvas=l,this.footer=n.querySelector(".".concat(p,"-footer")),this.tooltipBox=n.querySelector(".".concat(p,"-tooltip")),this.player=n.querySelector(".".concat(p,"-player")),this.list=n.querySelector(".".concat(p,"-list")),lt(s,h.title?zt(Array.isArray(h.title)?h.title[0]:h.title):k),lt(a,h.navbar?zt(h.navbar):k),ut(r,k,!h.button),h.backdrop&&(lt(n,"".concat(p,"-backdrop")),h.inline||"static"===h.backdrop||gt(l,K,"hide")),$(h.className)&&h.className&&h.className.split(U).forEach(function(t){lt(n,t)}),h.toolbar){var c=document.createElement("ul"),u=it(h.toolbar),d=Z.slice(0,3),m=Z.slice(7,9),f=Z.slice(9);u||lt(o,zt(h.toolbar)),nt(u?h.toolbar:Z,function(t,i){var e=u&&it(t),n=u?mt(i):t,s=e&&!J(t.show)?t.show:t;if(s&&(h.zoomable||-1===d.indexOf(n))&&(h.rotatable||-1===m.indexOf(n))&&(h.scalable||-1===f.indexOf(n))){var o=e&&!J(t.size)?t.size:t,a=e&&!J(t.click)?t.click:t,r=document.createElement("li");r.setAttribute("role","button"),lt(r,"".concat(p,"-").concat(n)),et(a)||gt(r,K,n),G(s)&<(r,zt(s)),-1!==["small","large"].indexOf(o)?lt(r,"".concat(p,"-").concat(o)):"play"===n&<(r,"".concat(p,"-large")),et(a)&&wt(r,S,a),c.appendChild(r)}}),o.appendChild(c)}else lt(o,k);if(!h.rotatable){var g=o.querySelectorAll('li[class*="rotate"]');lt(g,z),nt(g,function(t){o.appendChild(t)})}if(h.inline)lt(r,x),at(n,{zIndex:h.zIndexInline}),"static"===window.getComputedStyle(i).position&&at(i,{position:"relative"}),i.insertBefore(n,t.nextSibling);else{lt(r,w),lt(n,y),lt(n,b),lt(n,k),at(n,{zIndex:h.zIndex});var v=h.container;$(v)&&(v=t.ownerDocument.querySelector(v)),(v=v||this.body).appendChild(n)}h.inline&&(this.render(),this.bind(),this.isShown=!0),this.ready=!0,et(h.ready)&&wt(t,O,h.ready,{once:!0}),!1!==bt(t,O)?this.ready&&h.inline&&this.view(this.index):this.ready=!1}}}],[{key:"noConflict",value:function(){return window.Viewer=Lt,e}},{key:"setDefaults",value:function(t){st(s,it(t)&&t)}}]),e}();return st(Nt.prototype,Tt,Et,It,St,Ct),Nt}); \ No newline at end of file diff --git a/src/main/resources/static/layui/css/admin.css b/src/main/resources/static/layui/css/admin.css deleted file mode 100644 index 1fefae4..0000000 --- a/src/main/resources/static/layui/css/admin.css +++ /dev/null @@ -1,599 +0,0 @@ -/* ----- 头部样式 ----- */ - -/* 背景颜色、高度、底部阴影线 */ -.layui-layout-admin .layui-header { - background-color: #fff; - height: 50px; - box-shadow: 0 1px 0 0 rgba(0, 0, 0, .05); -} - -.layui-layout-admin .layui-header .layui-nav .layui-this:after, -.layui-layout-admin .layui-header .layui-nav-bar { - height: 2px; - background-color: #03152a; - top: 0 !important; -} - -/* 按钮颜色、间距、悬浮小手 */ -.layui-layout-admin .layui-header .layui-nav-item a { - color: #333333; - padding: 0 15px; - cursor: pointer; -} - -/* 按钮悬浮时的颜色 */ -.layui-layout-admin .layui-header .layui-nav-item a:hover { - color: #333333; -} - -/* 顶部导航 logo 样式 */ -.layui-layout-admin .layui-header .layui-logo { - width: 200px; - background-color: #324157; - color: #f2f2f2; - font-size: 18px; - font-family: Myriad Pro, Helvetica Neue, Arial, Helvetica, sans-serif; - font-weight: bold; - overflow: hidden; - line-height: 50px; - transition: all .3s; - white-space: nowrap; - box-shadow: 1px 0 2px 0 rgba(0, 0, 0, .05); -} - -/* 头部水平居中 */ -.layui-layout-admin .layui-header .layui-nav .layui-nav-item { - line-height: 50px; - vertical-align: unset; -} - -.layui-layout-admin .layui-header .layui-nav-item .layui-icon { - font-size: 16px; -} - -.layui-layout-admin .layui-header .layui-logo img { - height: 35px; -} - -/* 面包屑样式 */ -.layui-layout-admin .layui-header .layui-nav .layui-breadcrumb { - margin-left: 10px; -} - -.layui-nav-child { - top: 55px; -} - -.layui-layout-admin .layui-header .layui-nav { - padding: 0 10px; -} - -/* ----- 头部样式 ----- */ - - -/* ----- tab 样式 ----- */ - -/* tab 底色 */ -.layui-layout-admin .layui-tab .layui-tab-title li.layui-this, -.layui-layout-admin .layui-tab .layui-tab-title li:hover { - background-color: #f6f6f6; -} - -/* tab 下划线 */ -.layui-tab-title { - border-bottom-width: 0; -} - -/* 导航最小宽度 */ -.layui-layout-admin .layui-tab .layui-tab-title li { - min-width: 0; - line-height: 40px; - max-width: 160px; - text-overflow: ellipsis; - padding-right: 30px; - overflow: hidden; - border-right: 1px solid #f6f6f6; - vertical-align: top; -} - -/* 关闭按钮样式 */ -.layui-layout-admin .layui-tab > .layui-tab-title li .layui-tab-close { - width: 16px; - height: 16px; - line-height: 16px; - border-radius: 50%; - font-size: 12px; - position: absolute; - top: 12px; - right: 8px; -} - -/* tab 顶部颜色 */ -.layui-layout-admin .layui-tab-title li.layui-this:after { - width: 100%; - border: none; - height: 2px; - background-color: #292B34; -} - -/* tab 顶部切换动画 */ -.layui-layout-admin .layui-tab-title li:after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 0; - height: 2px; - border-radius: 0; - background-color: #292B34; - transition: all .3s; - transition-property: all; - transition-duration: 0.3s; - transition-timing-function: ease; - transition-delay: 0s; - -webkit-transition: all .3s; -} - -/* 隐藏第一个 tab 的关闭按钮 */ -.layui-layout-admin .layui-tab > .layui-tab-title li:first-child .layui-tab-close { - display: none; -} - -/* 标签卡第一个的标签没有关闭按钮, 所以距离右侧的宽度 15px */ -.layui-layout-admin .layui-tab > .layui-tab-title li:first-child { - padding: 0 15px; -} - -/* tab 页距离顶部距离为 0 */ -.layui-layout-admin .layui-tab { - margin-top: 0; -} - -/* 距离顶部的距离和左侧导航的距离 */ -.layui-layout-admin .layui-body { - left: 200px; - top: 50px; -} - -/* tab 行的高度, 背景色等 */ -.layui-pagetabs { - height: 40px; - line-height: 40px; - padding: 0 80px 0 0; - background-color: #fff; - box-sizing: border-box; - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .1); -} - -/* ----- tab 样式 ----- */ - - -/* ----- tab 左右按钮样式 ----- */ - -.layui-layout-admin .layui-body .admin-tabs-control { - position: absolute; - top: 0; - width: 40px; - height: 40px; - line-height: 40px; - text-align: center; - cursor: pointer; - transition: all .3s; - border-left: 1px solid #eee; - z-index: 1000; - background-color: white -} - -.layui-layout-admin .layui-body .admin-tabs-control:hover { - background-color: #eee -} - -.layui-layout-admin .layui-body .layui-icon-shrink-right { - left: 0; - border-left: none; - border-right: 1px solid #eee -} - -.layui-layout-admin .layui-body .layui-icon-refresh-3 { - right: 0 -} - -/* ----- tab 左右按钮样式 ----- */ - - -/* ----- 导航样式 ----- */ - - -/* 导航背景颜色 */ -.layui-layout-admin .layui-side { - position: absolute; - top: 50px; - width: 200px; - background-color: #324157; - transition: all .3s; - -webkit-transition: all .3s; - box-shadow: 1px 0 2px 0 rgba(0, 0, 0, .05); - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none -} - -.layui-layout-admin .layui-side .layui-nav { - width: 200px; - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-icon { - position: absolute; - top: 50%; - left: 20px; - margin-top: -25px; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item a { - height: 50px; - line-height: 50px; - padding-left: 30px; - padding-right: 30px; -} - -/* 一级导航悬浮字体颜色和背景颜色 */ -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - color: #BFCBD9; - background: #263445; -} - -/* 一级导航被选中时背景颜色和字体颜色 */ -.layui-nav-tree .layui-this, -.layui-nav-tree .layui-this > a, -.layui-nav-tree .layui-this > a:hover { - background-color: #324157; - color: rgb(64, 158, 255) -} - -/* 二级导航基础颜色 */ -.layui-nav-itemed > .layui-nav-child { - display: block; - padding: 0; - background-color: #1f2d3d !important; -} - -/* 二级导航悬浮字体背景颜色 */ -.layui-layout-admin .layui-side .layui-nav .layui-nav-item dl dd > a:hover { - background-color: #01101f; -} - -/* 二级导航被选中时背景颜色和字体颜色 */ -.layui-nav-tree .layui-nav-child dd.layui-this a, -.layui-nav-tree dd.layui-this { - background-color: #1f2d3d !important; - color: rgb(64, 158, 255) -} - -/* this 导航选中时, 颜色不变 */ -.layui-layout-admin .layui-side .layui-nav .layui-nav-item.layui-this > a:hover { - color: rgb(64, 158, 255) -} - - -/* 去除悬浮时左侧的绿条 */ -.layui-nav-tree .layui-nav-bar { - width: 0; -} - -/* 导航菜单展开时颜色 */ -.layui-nav-itemed > a { - color: #BFCBD9 !important; -} - -.layui-nav-tree .layui-nav-child, .layui-nav-tree .layui-nav-child a:hover { - color: #BFCBD9; - background: #001528 0 0; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-more { - right: 15px -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child a { - padding-left: 70px; - cursor: pointer -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child a { - padding-left: 70px -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child a { - padding-left: 90px -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a { - padding-left: 110px -} - -/* 一级目录额外的高度 */ -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a { - padding-top: 3px; - padding-bottom: 3px; - cursor: pointer -} - -/* ----- 导航样式 ----- */ - - -/* ----- 导航收起样式 ----- */ - -.layui-layout-admin.admin-nav-mini .layui-header .layui-logo { - width: 60px -} - -.layui-layout-admin.admin-nav-mini .layui-header .layui-logo cite { - display: none -} - -.layui-layout-admin.admin-nav-mini .layui-header .layui-layout-left { - left: 60px -} - -.layui-layout-admin.admin-nav-mini .layui-side { - width: 60px -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav { - width: 60px -} - -.layui-layout-admin.admin-nav-mini .layui-side-scroll { - width: 80px -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a > cite { - display: none -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a .layui-nav-more { - display: none -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a { - overflow: visible -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed .layui-nav-child { - display: none -} - -.layui-layout-admin.admin-nav-mini .layui-body { - left: 60px -} - -.layui-layout-admin.admin-nav-mini .layui-footer { - left: 60px -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed > a { - background: rgba(0, 0, 0, .3) -} - -.layui-layout-admin.admin-nav-mini .layui-header .layui-icon-shrink-right:before { - content: "\e66b" -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - display: inline-block; - position: fixed; - top: 105px; - left: 65px; - background: #24262f !important; - min-width: 200px; - z-index: 1001 -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover .layui-nav-itemed > .layui-nav-child { - display: block -} - -/* ----- 导航收起样式 ----- */ - - -/* ----- 导航小屏幕样式 -----*/ - -@media screen and (max-width: 750px) { - .layui-layout-admin .layui-side { - position: fixed; - left: -260px; - z-index: 10000 - } - - .layui-layout-admin .layui-body { - left: 0 - } - - .layui-layout-admin .layui-footer { - left: 0 - } - - .layui-layout-admin .layui-header .layui-logo { - left: -260px - } - - .layui-layout-admin .layui-header .layui-layout-left { - left: 0 - } - - .layui-layout-admin .layui-header .layui-icon-shrink-right:before { - content: "\e66b" - } - - .layui-layout-admin.admin-nav-mini .layui-header .layui-logo { - width: 220px; - left: 0; - z-index: 10001 - } - - .layui-layout-admin.admin-nav-mini .layui-header { - z-index: auto - } - - .layui-layout-admin.admin-nav-mini .layui-header .layui-logo cite { - display: inline-block - } - - .layui-layout-admin.admin-nav-mini .layui-header .layui-layout-left { - left: 0 - } - - .layui-layout-admin.admin-nav-mini .layui-side { - width: 220px; - left: 0 - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav { - width: 220px - } - - .layui-layout-admin.admin-nav-mini .layui-side-scroll { - width: 240px - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a > cite { - display: inline-block - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a .layui-nav-more { - display: inline-block - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a { - overflow: hidden - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed > a { - background: transparent - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03) - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed > .layui-nav-child { - display: block - } - - .layui-layout-admin.admin-nav-mini .layui-body { - left: 0 - } - - .layui-layout-admin.admin-nav-mini .layui-footer { - left: 0 - } - - .layui-layout-admin.admin-nav-mini .site-mobile-shade { - content: ''; - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - background-color: rgba(0, 0, 0, .1); - z-index: 9999; - cursor: pointer - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed > a { - background: transparent - } - - .layui-layout-admin.admin-nav-mini .layui-header .layui-icon-shrink-right:before { - content: "\e668" - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - display: none; - position: static; - background-color: rgba(0, 0, 0, .3) !important; - min-width: 100% - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed.admin-nav-hover > .layui-nav-child { - display: block - } - - .layui-layout-admin .layui-nav .layui-breadcrumb span, - .layui-layout-admin .layui-nav .layui-breadcrumb a:not(:last-child) { - display: none; - } -} - - -/* ----- 导航小屏幕样式 ----- */ - - -/* ----- 底部样式 ----- */ - -.layui-layout-admin .layui-footer { - left: 200px; - background: #fff; - transition: all .3s; - color: #666; - border-top: 1px solid #eee; - height: 43px; -} - -/* ----- 底部样式 ----- */ - - -/* ----- iframe 样式 ----- */ - -.layui-iframe { - position: absolute; - width: 100%; - height: calc(100% - 40px) !important; - left: 0; - top: 40px; - right: 0; - bottom: 0; - border: none; -} - -/* ----- iframe 样式 ----- */ - - -/* ----- 右键菜单样式 ----- */ - -.rightmenu { - position: absolute; - width: 100px; - z-index: 9999; - display: none; - background-color: #fff; - padding: 2px; - color: #333; - border: 1px solid #eee; - border-radius: 2px; - cursor: pointer; -} - -.rightmenu li { - text-align: center; - display: block; - height: 30px; - line-height: 30px; - margin: 8px 0 8px 0; - -} - -.rightmenu li:hover { - background-color: #f2f2f2; - color: #000000; -} - - -/* ----- 右键菜单样式 ----- */ - -html { - font-style: normal; -} \ No newline at end of file diff --git a/src/main/resources/static/layui/css/public.css b/src/main/resources/static/layui/css/public.css deleted file mode 100644 index 0776e96..0000000 --- a/src/main/resources/static/layui/css/public.css +++ /dev/null @@ -1,57 +0,0 @@ -/* ----- 滚动条样式 ----- */ - -::-webkit-scrollbar { - width: 8px; - height: 8px; - background: transparent; -} - -::-webkit-scrollbar-button:vertical { - display: none; -} - -::-webkit-scrollbar-track, ::-webkit-scrollbar-corner { - background-color: #e2e2e2; -} - -::-webkit-scrollbar-thumb { - border-radius: 8px; - background-color: #a6a6a6; -} - -::-webkit-scrollbar-thumb:vertical:hover { - background-color: #7f7f7f; -} - -::-webkit-scrollbar-thumb:vertical:active { - background-color: rgba(0, 0, 0, .38); -} - -/* ----- 滚动条样式 ----- */ - - -* { - box-sizing: border-box; -} - -.page-loading { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #fff; -} - -.rubik-loader { - width: 64px; - height: 64px; - position: absolute; - left: 50%; - top: 50%; - -webkit-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); - background-image: url(/images/loading.gif); - background-repeat: no-repeat; - background-position: center; -} diff --git a/src/main/resources/static/layui/home/index.html b/src/main/resources/static/layui/home/index.html deleted file mode 100644 index da2ae7e..0000000 --- a/src/main/resources/static/layui/home/index.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - 222 - - - - -
-
-
- -

Hello World

-

Hello World

-

Hello World

- -

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

-

Hello World

- - - - - - - \ No newline at end of file diff --git a/src/main/resources/static/layui/images/avatar.png b/src/main/resources/static/layui/images/avatar.png deleted file mode 100644 index 25e992d0cc5e816a79341007e242c55241c7ee1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7722 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 PTP@% z)cU^wr&;{_%e^MePW^wjg>%`}f6Q&4NOXSb6V zEJQm;=gf9fo;7nJNd0~ZyZn8DUN{>2+>em;g;B$1Cop#z1-LFis-OyAX4do~_DGxz znzloseM%On-scohyu!dSaxFG(&k<~XfhbeVm%as6y$6Jpha8@UHdLTifCRF#^(lNb zy(ep;O5u=GhPc}E?KyL%BUQR={WZ!P(E}4z!dng_MW-zs}YORTqGM>IJk8=#2gmT)((`A@q_|C z`@UU5DG5{G#h26aD<_})tC-6=*wPC7^7F-s`e4N~_LBb@nx2383y2dX+7>PUZ(i~Y zNJ8iB7S`Zp(YXiAO2o-wJdsnh$`Q|t|BiBmwOh4?O`=&fDZ=^)LhA*>L0UkH;2VN@*6s;zHpLqglaIx<}L-nVEdYBhVrLWEdhKPfM^+E z_EO@1kc{pEaFaU^05lh8>tx~=r%&)n{sgLqna0~DY5Jigh=utNZM781647~bys^rg zQgatLd1}B1=hNOEfVCmJ_-iit>j5Co0GO>jxIvD+v9fKrB?uO$owrZ!iRS9)I48(u z-8ZAdeBY#{v{~$hS_Bz#g9$5@I-ECC=RE#l%hb^L zhIcOpV%viqh};f0=Z7}h1>P#TXhl8?YRDK%#2z|DjrG*vd%eQ-EMH#v84NaKmjT37 z=AY;F>Hx|nP`i~`!*dRQPYZNlwNc9FSqJ~A=^%QaoMVC2C1bogHok@rjINXmH{wArH)`=4OX<2OB=FH$M`d( zx-z4!`ldH@yTi#H;)sgB%K^`x(!Iy7x!Vk?Xu2w3e0WpBh{8d!yH{i83u`Xk#J4vm z21|VQCoIjM?EkXJmqr9~uiF`Kd^8hZ1UaFu>UDZ{=B9Gw!0!`>4W&~Xb%C^QXvX)9 z-e1p&a;%|^l3yjk3nNg9wdzw>LC(Zp;UHiXMOYuXr&Qsyfu|~Ky9hLC9;<^%!bv*3 zqTq+6bh_~qjgacU1AyOC^V7Uaph0n6AmTF|=`-kA?vlzx2k5AyyiiFOrxFm-g* zArY(OmJm=S^<0xiNcUHFUteE7nr(p+(DV9j+l9Xi+72j(d3bv6MUQ_pTFC5Vp0~XM zWpT?Xo(QbI=9o+xe!&pkK#QO)9e2(#oAy1WvSz1>ShVHpX35kIG=ad|raiwwwVQj) zzyFyioE5?=8|>PB)?=SJMlz@o@KbjgNY)l1;b&{_(i-_RDRH&p8{}UViJd00HScp~ z_`gj%jb_r^p0Knh)-Yj{*_9^Ut3SW@)Z+Cg`Kkfox+Jrb8v8sR58kC}=npadem$`~qfkPv z4rHG%LK`$P^}ni@igq@x1K~68-@Vhl&dO?&j$W3WG{ijN&lG+t`R{2+f(oe{)xADU z#GrSD#A<{tIOmH|KosdaOSCTsSWn6J$g5;=RE1E(M`;1e28rkpms_QE?DSZl;Qx83 zf`ET{VQQ}C$?mbM_%kYmnQa0(;5hx-Q+3kH!d|V?6~OX~WP4oq^S$AAM&Jp1FQMPJ zHF5+rwkO$(EUYbXYA~(kS5$|i;lN~UjKh`r%a$^M!J6>uNgct}i4PWITUSHCTn zB8S=3egG$tx!kExrN~jkD9C2E7oY7eW?_)kw+8xG{;b<{;kzd3#Tdpy?#QT3z2n&h;O za3+f9(zL&C{A214Wg$h>(15upK;!7&&Z(l;7Pp=FZd(@2!a`k4_b;>u3}`~$YniHL G#Qy_d6^NYx diff --git a/src/main/resources/static/layui/images/clear.png b/src/main/resources/static/layui/images/clear.png deleted file mode 100644 index 78529677da40dda5cf59d42b8367b0e3e8d562cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6219 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 diff --git a/src/main/resources/static/layui/images/loading.gif b/src/main/resources/static/layui/images/loading.gif deleted file mode 100644 index 071ecd65ad5be0414dd952d84d0ba298e76dc59e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13999 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 diff --git a/src/main/resources/static/layui/images/main.png b/src/main/resources/static/layui/images/main.png deleted file mode 100644 index 7a548a6150893d79e9b7e1468614d3823f8182fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6732 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 diff --git a/src/main/resources/static/layui/images/security.png b/src/main/resources/static/layui/images/security.png deleted file mode 100644 index 250c4cb68fbe414c0c999ae9ae14dcac93e496df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15698 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 Eg5Q7B5&!@I diff --git a/src/main/resources/static/layui/js/common.js b/src/main/resources/static/layui/js/common.js deleted file mode 100644 index 468d71e..0000000 --- a/src/main/resources/static/layui/js/common.js +++ /dev/null @@ -1,7 +0,0 @@ -$(document).ready(function () { - - // 加载完成后关闭加载动画. - setTimeout(function () { - $(".page-loading").hide(); - }, 500); -}); \ No newline at end of file diff --git a/src/main/resources/static/layui/js/jquery.js b/src/main/resources/static/layui/js/jquery.js deleted file mode 100644 index eb7c331..0000000 --- a/src/main/resources/static/layui/js/jquery.js +++ /dev/null @@ -1,4432 +0,0 @@ -/*! - * jQuery JavaScript Library v1.3.2 - * http://jquery.com/ - * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License - * - * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) - * Revision: 6246 - */ -(function () { - - var - // Will speed up references to window, and allows munging its name. - window = this, - // Will speed up references to undefined, and allows munging its name. - undefined, - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - // Map over the $ in case of overwrite - _$ = window.$, - - jQuery = window.jQuery = window.$ = function (selector, context) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init(selector, context); - }, - - // A simple way to check for HTML strings or ID strings - // (both of which we optimize for) - quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, - // Is it a simple selector - isSimple = /^.[^:#\[\.,]*$/; - - jQuery.fn = jQuery.prototype = { - init: function (selector, context) { - // Make sure that a selection was provided - selector = selector || document; - - // Handle $(DOMElement) - if (selector.nodeType) { - this[0] = selector; - this.length = 1; - this.context = selector; - return this; - } - // Handle HTML strings - if (typeof selector === "string") { - // Are we dealing with HTML string or an ID? - var match = quickExpr.exec(selector); - - // Verify a match, and that no context was specified for #id - if (match && (match[1] || !context)) { - - // HANDLE: $(html) -> $(array) - if (match[1]) - selector = jQuery.clean([match[1]], context); - - // HANDLE: $("#id") - else { - var elem = document.getElementById(match[3]); - - // Handle the case where IE and Opera return items - // by name instead of ID - if (elem && elem.id != match[3]) - return jQuery().find(selector); - - // Otherwise, we inject the element directly into the jQuery object - var ret = jQuery(elem || []); - ret.context = document; - ret.selector = selector; - return ret; - } - - // HANDLE: $(expr, [context]) - // (which is just equivalent to: $(content).find(expr) - } else - return jQuery(context).find(selector); - - // HANDLE: $(function) - // Shortcut for document ready - } else if (jQuery.isFunction(selector)) - return jQuery(document).ready(selector); - - // Make sure that old selector state is passed along - if (selector.selector && selector.context) { - this.selector = selector.selector; - this.context = selector.context; - } - - return this.setArray(jQuery.isArray(selector) ? - selector : - jQuery.makeArray(selector)); - }, - - // Start with an empty selector - selector: "", - - // The current version of jQuery being used - jquery: "1.3.2", - - // The number of elements contained in the matched element set - size: function () { - return this.length; - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function (num) { - return num === undefined ? - - // Return a 'clean' array - Array.prototype.slice.call(this) : - - // Return just the object - this[num]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function (elems, name, selector) { - // Build a new jQuery matched element set - var ret = jQuery(elems); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - ret.context = this.context; - - if (name === "find") - ret.selector = this.selector + (this.selector ? " " : "") + selector; - else if (name) - ret.selector = this.selector + "." + name + "(" + selector + ")"; - - // Return the newly-formed element set - return ret; - }, - - // Force the current matched set of elements to become - // the specified array of elements (destroying the stack in the process) - // You should use pushStack() in order to do this, but maintain the stack - setArray: function (elems) { - // Resetting the length to 0, then using the native Array push - // is a super-fast way to populate an object with array-like properties - this.length = 0; - Array.prototype.push.apply(this, elems); - - return this; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function (callback, args) { - return jQuery.each(this, callback, args); - }, - - // Determine the position of an element within - // the matched set of elements - index: function (elem) { - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem && elem.jquery ? elem[0] : elem - , this); - }, - - attr: function (name, value, type) { - var options = name; - - // Look for the case where we're accessing a style value - if (typeof name === "string") - if (value === undefined) - return this[0] && jQuery[type || "attr"](this[0], name); - - else { - options = {}; - options[name] = value; - } - - // Check to see if we're setting style values - return this.each(function (i) { - // Set all the styles - for (name in options) - jQuery.attr( - type ? - this.style : - this, - name, jQuery.prop(this, options[name], type, i, name) - ); - }); - }, - - css: function (key, value) { - // ignore negative width and height values - if ((key == 'width' || key == 'height') && parseFloat(value) < 0) - value = undefined; - return this.attr(key, value, "curCSS"); - }, - - text: function (text) { - if (typeof text !== "object" && text != null) - return this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(text)); - - var ret = ""; - - jQuery.each(text || this, function () { - jQuery.each(this.childNodes, function () { - if (this.nodeType != 8) - ret += this.nodeType != 1 ? - this.nodeValue : - jQuery.fn.text([this]); - }); - }); - - return ret; - }, - - wrapAll: function (html) { - if (this[0]) { - // The elements to wrap the target around - var wrap = jQuery(html, this[0].ownerDocument).clone(); - - if (this[0].parentNode) - wrap.insertBefore(this[0]); - - wrap.map(function () { - var elem = this; - - while (elem.firstChild) - elem = elem.firstChild; - - return elem; - }).append(this); - } - - return this; - }, - - wrapInner: function (html) { - return this.each(function () { - jQuery(this).contents().wrapAll(html); - }); - }, - - wrap: function (html) { - return this.each(function () { - jQuery(this).wrapAll(html); - }); - }, - - append: function () { - return this.domManip(arguments, true, function (elem) { - if (this.nodeType == 1) - this.appendChild(elem); - }); - }, - - prepend: function () { - return this.domManip(arguments, true, function (elem) { - if (this.nodeType == 1) - this.insertBefore(elem, this.firstChild); - }); - }, - - before: function () { - return this.domManip(arguments, false, function (elem) { - this.parentNode.insertBefore(elem, this); - }); - }, - - after: function () { - return this.domManip(arguments, false, function (elem) { - this.parentNode.insertBefore(elem, this.nextSibling); - }); - }, - - end: function () { - return this.prevObject || jQuery([]); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: [].push, - sort: [].sort, - splice: [].splice, - - find: function (selector) { - if (this.length === 1) { - var ret = this.pushStack([], "find", selector); - ret.length = 0; - jQuery.find(selector, this[0], ret); - return ret; - } else { - return this.pushStack(jQuery.unique(jQuery.map(this, function (elem) { - return jQuery.find(selector, elem); - })), "find", selector); - } - }, - - clone: function (events) { - // Do the clone - var ret = this.map(function () { - if (!jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this)) { - // IE copies events bound via attachEvent when - // using cloneNode. Calling detachEvent on the - // clone will also remove the events from the orignal - // In order to get around this, we use innerHTML. - // Unfortunately, this means some modifications to - // attributes in IE that are actually only stored - // as properties will not be copied (such as the - // the name attribute on an input). - var html = this.outerHTML; - if (!html) { - var div = this.ownerDocument.createElement("div"); - div.appendChild(this.cloneNode(true)); - html = div.innerHTML; - } - - return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; - } else - return this.cloneNode(true); - }); - - // Copy the events from the original to the clone - if (events === true) { - var orig = this.find("*").andSelf(), i = 0; - - ret.find("*").andSelf().each(function () { - if (this.nodeName !== orig[i].nodeName) - return; - - var events = jQuery.data(orig[i], "events"); - - for (var type in events) { - for (var handler in events[type]) { - jQuery.event.add(this, type, events[type][handler], events[type][handler].data); - } - } - - i++; - }); - } - - // Return the cloned set - return ret; - }, - - filter: function (selector) { - return this.pushStack( - jQuery.isFunction(selector) && - jQuery.grep(this, function (elem, i) { - return selector.call(elem, i); - }) || - - jQuery.multiFilter(selector, jQuery.grep(this, function (elem) { - return elem.nodeType === 1; - })), "filter", selector); - }, - - closest: function (selector) { - var pos = jQuery.expr.match.POS.test(selector) ? jQuery(selector) : null, - closer = 0; - - return this.map(function () { - var cur = this; - while (cur && cur.ownerDocument) { - if (pos ? pos.index(cur) > -1 : jQuery(cur).is(selector)) { - jQuery.data(cur, "closest", closer); - return cur; - } - cur = cur.parentNode; - closer++; - } - }); - }, - - not: function (selector) { - if (typeof selector === "string") - // test special case where just one selector is passed in - if (isSimple.test(selector)) - return this.pushStack(jQuery.multiFilter(selector, this, true), "not", selector); - else - selector = jQuery.multiFilter(selector, this); - - var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; - return this.filter(function () { - return isArrayLike ? jQuery.inArray(this, selector) < 0 : this != selector; - }); - }, - - add: function (selector) { - return this.pushStack(jQuery.unique(jQuery.merge( - this.get(), - typeof selector === "string" ? - jQuery(selector) : - jQuery.makeArray(selector) - ))); - }, - - is: function (selector) { - return !!selector && jQuery.multiFilter(selector, this).length > 0; - }, - - hasClass: function (selector) { - return !!selector && this.is("." + selector); - }, - - val: function (value) { - if (value === undefined) { - var elem = this[0]; - - if (elem) { - if (jQuery.nodeName(elem, 'option')) - return (elem.attributes.value || {}).specified ? elem.value : elem.text; - - // We need to handle select boxes special - if (jQuery.nodeName(elem, "select")) { - var index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type == "select-one"; - - // Nothing was selected - if (index < 0) - return null; - - // Loop through all the selected options - for (var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++) { - var option = options[i]; - - if (option.selected) { - // Get the specifc value for the option - value = jQuery(option).val(); - - // We don't need an array for one selects - if (one) - return value; - - // Multi-Selects return an array - values.push(value); - } - } - - return values; - } - - // Everything else, we just grab the value - return (elem.value || "").replace(/\r/g, ""); - - } - - return undefined; - } - - if (typeof value === "number") - value += ''; - - return this.each(function () { - if (this.nodeType != 1) - return; - - if (jQuery.isArray(value) && /radio|checkbox/.test(this.type)) - this.checked = (jQuery.inArray(this.value, value) >= 0 || - jQuery.inArray(this.name, value) >= 0); - - else if (jQuery.nodeName(this, "select")) { - var values = jQuery.makeArray(value); - - jQuery("option", this).each(function () { - this.selected = (jQuery.inArray(this.value, values) >= 0 || - jQuery.inArray(this.text, values) >= 0); - }); - - if (!values.length) - this.selectedIndex = -1; - - } else - this.value = value; - }); - }, - - html: function (value) { - return value === undefined ? - (this[0] ? - this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : - null) : - this.empty().append(value); - }, - - replaceWith: function (value) { - return this.after(value).remove(); - }, - - eq: function (i) { - return this.slice(i, +i + 1); - }, - - slice: function () { - return this.pushStack(Array.prototype.slice.apply(this, arguments), - "slice", Array.prototype.slice.call(arguments).join(",")); - }, - - map: function (callback) { - return this.pushStack(jQuery.map(this, function (elem, i) { - return callback.call(elem, i, elem); - })); - }, - - andSelf: function () { - return this.add(this.prevObject); - }, - - domManip: function (args, table, callback) { - if (this[0]) { - var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), - scripts = jQuery.clean(args, (this[0].ownerDocument || this[0]), fragment), - first = fragment.firstChild; - - if (first) - for (var i = 0, l = this.length; i < l; i++) - callback.call(root(this[i], first), this.length > 1 || i > 0 ? - fragment.cloneNode(true) : fragment); - - if (scripts) - jQuery.each(scripts, evalScript); - } - - return this; - - function root(elem, cur) { - return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? - (elem.getElementsByTagName("tbody")[0] || - elem.appendChild(elem.ownerDocument.createElement("tbody"))) : - elem; - } - } - }; - -// Give the init function the jQuery prototype for later instantiation - jQuery.fn.init.prototype = jQuery.fn; - - function evalScript(i, elem) { - if (elem.src) - jQuery.ajax({ - url: elem.src, - async: false, - dataType: "script" - }); - - else - jQuery.globalEval(elem.text || elem.textContent || elem.innerHTML || ""); - - if (elem.parentNode) - elem.parentNode.removeChild(elem); - } - - function now() { - return +new Date; - } - - jQuery.extend = jQuery.fn.extend = function () { - // copy reference to target object - var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; - - // Handle a deep copy situation - if (typeof target === "boolean") { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if (typeof target !== "object" && !jQuery.isFunction(target)) - target = {}; - - // extend jQuery itself if only one argument is passed - if (length == i) { - target = this; - --i; - } - - for (; i < length; i++) - // Only deal with non-null/undefined values - if ((options = arguments[i]) != null) - // Extend the base object - for (var name in options) { - var src = target[name], copy = options[name]; - - // Prevent never-ending loop - if (target === copy) - continue; - - // Recurse if we're merging object values - if (deep && copy && typeof copy === "object" && !copy.nodeType) - target[name] = jQuery.extend(deep, - // Never move original objects, clone them - src || (copy.length != null ? [] : {}) - , copy); - - // Don't bring in undefined values - else if (copy !== undefined) - target[name] = copy; - - } - - // Return the modified object - return target; - }; - -// exclude the following css properties to add px - var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, - // cache defaultView - defaultView = document.defaultView || {}, - toString = Object.prototype.toString; - - jQuery.extend({ - noConflict: function (deep) { - window.$ = _$; - - if (deep) - window.jQuery = _jQuery; - - return jQuery; - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function (obj) { - return toString.call(obj) === "[object Function]"; - }, - - isArray: function (obj) { - return toString.call(obj) === "[object Array]"; - }, - - // check if an element is in a (or is an) XML document - isXMLDoc: function (elem) { - return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || - !!elem.ownerDocument && jQuery.isXMLDoc(elem.ownerDocument); - }, - - // Evalulates a script in a global context - globalEval: function (data) { - if (data && /\S/.test(data)) { - // Inspired by code by Andrea Giammarchi - // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html - var head = document.getElementsByTagName("head")[0] || document.documentElement, - script = document.createElement("script"); - - script.type = "text/javascript"; - if (jQuery.support.scriptEval) - script.appendChild(document.createTextNode(data)); - else - script.text = data; - - // Use insertBefore instead of appendChild to circumvent an IE6 bug. - // This arises when a base node is used (#2709). - head.insertBefore(script, head.firstChild); - head.removeChild(script); - } - }, - - nodeName: function (elem, name) { - return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); - }, - - // args is for internal usage only - each: function (object, callback, args) { - var name, i = 0, length = object.length; - - if (args) { - if (length === undefined) { - for (name in object) - if (callback.apply(object[name], args) === false) - break; - } else - for (; i < length;) - if (callback.apply(object[i++], args) === false) - break; - - // A special, fast, case for the most common use of each - } else { - if (length === undefined) { - for (name in object) - if (callback.call(object[name], name, object[name]) === false) - break; - } else - for (var value = object[0]; - i < length && callback.call(value, i, value) !== false; value = object[++i]) { - } - } - - return object; - }, - - prop: function (elem, value, type, i, name) { - // Handle executable functions - if (jQuery.isFunction(value)) - value = value.call(elem, i); - - // Handle passing in a number to a CSS property - return typeof value === "number" && type == "curCSS" && !exclude.test(name) ? - value + "px" : - value; - }, - - className: { - // internal only, use addClass("class") - add: function (elem, classNames) { - jQuery.each((classNames || "").split(/\s+/), function (i, className) { - if (elem.nodeType == 1 && !jQuery.className.has(elem.className, className)) - elem.className += (elem.className ? " " : "") + className; - }); - }, - - // internal only, use removeClass("class") - remove: function (elem, classNames) { - if (elem.nodeType == 1) - elem.className = classNames !== undefined ? - jQuery.grep(elem.className.split(/\s+/), function (className) { - return !jQuery.className.has(classNames, className); - }).join(" ") : - ""; - }, - - // internal only, use hasClass("class") - has: function (elem, className) { - return elem && jQuery.inArray(className, (elem.className || elem).toString().split(/\s+/)) > -1; - } - }, - - // A method for quickly swapping in/out CSS properties to get correct calculations - swap: function (elem, options, callback) { - var old = {}; - // Remember the old values, and insert the new ones - for (var name in options) { - old[name] = elem.style[name]; - elem.style[name] = options[name]; - } - - callback.call(elem); - - // Revert the old values - for (var name in options) - elem.style[name] = old[name]; - }, - - css: function (elem, name, force, extra) { - if (name == "width" || name == "height") { - var val, props = {position: "absolute", visibility: "hidden", display: "block"}, - which = name == "width" ? ["Left", "Right"] : ["Top", "Bottom"]; - - function getWH() { - val = name == "width" ? elem.offsetWidth : elem.offsetHeight; - - if (extra === "border") - return; - - jQuery.each(which, function () { - if (!extra) - val -= parseFloat(jQuery.curCSS(elem, "padding" + this, true)) || 0; - if (extra === "margin") - val += parseFloat(jQuery.curCSS(elem, "margin" + this, true)) || 0; - else - val -= parseFloat(jQuery.curCSS(elem, "border" + this + "Width", true)) || 0; - }); - } - - if (elem.offsetWidth !== 0) - getWH(); - else - jQuery.swap(elem, props, getWH); - - return Math.max(0, Math.round(val)); - } - - return jQuery.curCSS(elem, name, force); - }, - - curCSS: function (elem, name, force) { - var ret, style = elem.style; - - // We need to handle opacity special in IE - if (name == "opacity" && !jQuery.support.opacity) { - ret = jQuery.attr(style, "opacity"); - - return ret == "" ? - "1" : - ret; - } - - // Make sure we're using the right name for getting the float value - if (name.match(/float/i)) - name = styleFloat; - - if (!force && style && style[name]) - ret = style[name]; - - else if (defaultView.getComputedStyle) { - - // Only "float" is needed here - if (name.match(/float/i)) - name = "float"; - - name = name.replace(/([A-Z])/g, "-$1").toLowerCase(); - - var computedStyle = defaultView.getComputedStyle(elem, null); - - if (computedStyle) - ret = computedStyle.getPropertyValue(name); - - // We should always get a number back from opacity - if (name == "opacity" && ret == "") - ret = "1"; - - } else if (elem.currentStyle) { - var camelCase = name.replace(/\-(\w)/g, function (all, letter) { - return letter.toUpperCase(); - }); - - ret = elem.currentStyle[name] || elem.currentStyle[camelCase]; - - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - if (!/^\d+(px)?$/i.test(ret) && /^\d/.test(ret)) { - // Remember the original values - var left = style.left, rsLeft = elem.runtimeStyle.left; - - // Put in the new values to get a computed value out - elem.runtimeStyle.left = elem.currentStyle.left; - style.left = ret || 0; - ret = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - elem.runtimeStyle.left = rsLeft; - } - } - - return ret; - }, - - clean: function (elems, context, fragment) { - context = context || document; - - // !context.createElement fails in IE with an error but returns typeof 'object' - if (typeof context.createElement === "undefined") - context = context.ownerDocument || context[0] && context[0].ownerDocument || document; - - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - if (!fragment && elems.length === 1 && typeof elems[0] === "string") { - var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); - if (match) - return [context.createElement(match[1])]; - } - - var ret = [], scripts = [], div = context.createElement("div"); - - jQuery.each(elems, function (i, elem) { - if (typeof elem === "number") - elem += ''; - - if (!elem) - return; - - // Convert html string into DOM nodes - if (typeof elem === "string") { - // Fix "XHTML"-style tags in all browsers - elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function (all, front, tag) { - return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? - all : - front + ">"; - }); - - // Trim whitespace, otherwise indexOf won't work as expected - var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); - - var wrap = - // option or optgroup - !tags.indexOf("", ""] || - - !tags.indexOf("", ""] || - - tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && - [1, "", "
"] || - - !tags.indexOf("", ""] || - - // matched above - (!tags.indexOf("", ""] || - - !tags.indexOf("", ""] || - - // IE can't serialize and