Bläddra i källkod

Merge branch 'developerB' of http://git.caimei365.com/caimei365/caimei365-www into developer

xiebaomin 1 år sedan
förälder
incheckning
9503e11844
25 ändrade filer med 1725 tillägg och 1476 borttagningar
  1. 8 0
      src/main/java/com/caimei/www/controller/authorized/AccountController.java
  2. 1 1
      src/main/resources/static/css/article/article.css
  3. 118 116
      src/main/resources/static/css/encyclopedia/common.css
  4. 1 1
      src/main/resources/static/css/index/index_new.pc.css
  5. 73 64
      src/main/resources/static/css/user-center/message.css
  6. 1 1
      src/main/resources/static/js/article/common.js
  7. 9 0
      src/main/resources/static/js/article/list.js
  8. 6 0
      src/main/resources/static/js/base.js
  9. 88 0
      src/main/resources/static/js/ceshi/index.js
  10. 58 47
      src/main/resources/static/js/common/serviceapi/beautyArchive.service.js
  11. 66 60
      src/main/resources/static/js/encyclopedia/search.js
  12. 13 1
      src/main/resources/static/js/index.js
  13. 26 2
      src/main/resources/static/js/mixins/cmsMixins.js
  14. 237 236
      src/main/resources/static/js/supplier-center/message.js
  15. 63 63
      src/main/resources/static/js/supplier-center/mixins/noticeMixin.js
  16. 246 242
      src/main/resources/static/js/user-center/message.js
  17. 183 160
      src/main/resources/static/js/user-center/mixins/noticeMixin.js
  18. 2 1
      src/main/resources/templates/article/list.html
  19. 30 0
      src/main/resources/templates/ceshi/demo.html
  20. 26 25
      src/main/resources/templates/encyclopedia/components/footer.html
  21. 56 45
      src/main/resources/templates/encyclopedia/components/header.html
  22. 8 7
      src/main/resources/templates/index.html
  23. 248 247
      src/main/resources/templates/product/list.html
  24. 53 52
      src/main/resources/templates/single-page/promotions.html
  25. 105 105
      src/main/resources/templates/user-center/message/list.html

+ 8 - 0
src/main/java/com/caimei/www/controller/authorized/AccountController.java

@@ -32,6 +32,7 @@ public class AccountController extends BaseController {
     private static final String BIND_PATH = "account/bind";
     /** 供应商编辑资料 */
     private static final String SUPPLIER_INFORMATION = "account/supplier-information";
+    private static final String CESHI_DEMO = "ceshi/demo";
 
 
     /**
@@ -138,4 +139,11 @@ public class AccountController extends BaseController {
         return SUPPLIER_INFORMATION;
     }
 
+    /**
+     * 测试demo
+     */
+    @GetMapping("/ceshi/demo.html")
+    public String ceshiDemo() {
+        return CESHI_DEMO;
+    }
 }

+ 1 - 1
src/main/resources/static/css/article/article.css

@@ -341,7 +341,7 @@ dl,dd,dt{zoom:1}
 	.article-right-ross.none{display: none;}
 	.article-right-ross.show{display: block;}
 	.article-right-ross a{width: 100%;height: 100%;display: block;border-radius: 2px;}
-	.article-right-ross a img{width: 100%;height: 100%;display: block;border-radius: 2px;}
+	.article-right-ross a img{width: 100%;height: 100%;display: block;border-radius: 2px;cursor: pointer}
 
 	/*ross宣传弹窗*/
 	.ross-banner-fiexd{width: 100%;height: 260px;position: fixed;z-index: 999;background: linear-gradient(90deg, #FF5B00, #FFA86E);left: 0;right: 0;bottom: -260px;box-sizing: border-box;opacity: 0;}

+ 118 - 116
src/main/resources/static/css/encyclopedia/common.css

@@ -1,116 +1,118 @@
-html{font-size:16px;font-family:'Microsoft YaHei',SimSun,Arial,Helvetica,sans-serif;color:#333333}
-h1,h2,h3,h4,h5,h6{margin:0}
-p{margin:0}
-ul{margin:0;padding:0}
-ul li{margin:0;list-style-type:none}
-a{text-decoration:none}
-input{outline:none}
-.bk-mask{position:fixed;width:100vw;height:100vh;left:0;top:0;background:rgba(0,0,0,.6);z-index:90}
-.hidden{width:100vw;overflow:hidden}
-.jconfirm-content{overflow: hidden !important;}
-
-@media screen and (min-width:768px){.only-mobile{display:none !important}
-    ::-webkit-scrollbar{width:8px;height:8px;background-color:#f5f5f5}
-    ::-webkit-scrollbar-thumb{background-color:#aaa;border-radius:4px}
-    body{min-width:1200px}
-    header{position:sticky;top:0;z-index:99;background:#fff}
-    main{min-height:calc(100vh - 144px - 140px)}
-    .bk-container{width:1200px;margin:0 auto}
-    .bk-header{padding:26px 0 16px}
-    .bk-header .bk-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
-    .bk-header .bk-logo{-webkit-transform:translateY(-8px);-ms-transform:translateY(-8px);transform:translateY(-8px)}
-    .bk-header .bk-logo h1{font-size:0;text-indent:-99999px}
-    .bk-header .bk-logo img{display:block;width:200px;height:56px}
-    .bk-header .bk-search-container{width:640px}
-    .bk-header .bk-search-container .bk-search-control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
-    .bk-header .bk-search-container .bk-search-control input{display:block;width:560px;height:36px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #F57C40;border-right:0;border-radius:2px 0 0 2px;font-size:14px;padding-left:16px}
-    .bk-header .bk-search-container .bk-search-control input::-webkit-input-placeholder{font-size:14px;color:#B2B2B2}
-    .bk-header .bk-search-container .bk-search-control input::-moz-placeholder{font-size:14px;color:#B2B2B2}
-    .bk-header .bk-search-container .bk-search-control input:-ms-input-placeholder{font-size:14px;color:#B2B2B2}
-    .bk-header .bk-search-container .bk-search-control input::-ms-input-placeholder{font-size:14px;color:#B2B2B2}
-    .bk-header .bk-search-container .bk-search-control input::placeholder{font-size:14px;color:#B2B2B2}
-    .bk-header .bk-search-container .bk-search-control button{display:block;width:80px;height:36px;line-height:36px;background:#FF5B00;border:0;border-radius:0 2px 2px 0;font-size:14px;color:#fff;text-align:center;cursor:pointer}
-    .bk-header .bk-search-container .bk-hot-keyword{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:6px}
-    .bk-header .bk-search-container .bk-hot-keyword li{font-size:12px;color:#B2B2B2}
-    .bk-header .bk-search-container .bk-hot-keyword li a{color:#B2B2B2;-webkit-transition:color .4s;-o-transition:color .4s;transition:color .4s}
-    .bk-header .bk-search-container .bk-hot-keyword li::after{content:"/";display:inline;margin:0 6px}
-    .bk-header .bk-search-container .bk-hot-keyword li:last-child::after{display:none}
-    .bk-header .bk-search-container .bk-hot-keyword li a:hover{color:#FF5B00}
-    .bk-nav{background:#F57C40}
-    .bk-nav .bk-navbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
-    .bk-nav .bk-navbar li.active a{background:#FF5B00;color:#fff}
-    .bk-nav .bk-navbar li a{display:block;line-height:46px;padding:0 32px;color:#fff;font-size:16px;-webkit-transition:background .4s;-o-transition:background .4s;transition:background .4s}
-    .bk-nav .bk-navbar li a:hover{background:#FF5B00}
-    .bk-footer{background:#2C3038;height:140px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
-    .bk-footer h2{font-size:14px;color:#FFFFFF;font-weight:normal}
-    .bk-footer h2 a{color:#FFFFFF}
-    .bk-footer .beian{font-size:12px;color:#eee;margin-top:25px;font-weight:lighter}
-    .bk-footer .beian a{color:#eee}
-    .bk-footer .beian span{margin:0 4px}
-    .bk-footer .beian i{display:inline-block;width:16px;height:16px;vertical-align:-3px;font-size:0;background:url("/img/base/icon-icp@2x.png") no-repeat center;background-size:16px}
-    .bk-footer .copyright{font-size:12px;color:#eee;margin-top:16px;font-weight:lighter}
-    .bk-publish{position:fixed;width:86px;height:190px;background:url("/img/encyclopedia/assets/pc-icon-publish.png") no-repeat center;background-size:86px;right:80px;bottom:120px;cursor:pointer;z-index:30}
-    .bk-login{position:fixed;z-index:120;left:0;top:0;width:100vw;height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
-    .bk-login .mask{position:absolute;left:0;top:0;width:100vw;height:100vh;background:rgba(0,0,0,.6);z-index:10}
-    .bk-login .bk-login-container{position:relative;z-index:20;width:540px;height:470px;background:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 70px}
-    .bk-login .bk-login-container .bk-tip{font-size:14px;color:#22272E;margin:56px 0 9px}
-    .bk-login .bk-login-container .bk-name{font-size:24px;color:#F57C40;margin-bottom:40px}
-    .bk-login .bk-login-container .bk-input{margin:20px 0}
-    .bk-login .bk-login-container .bk-input input{display:block;border:1px solid #E2E2E2;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:44px;line-height:42px;padding-left:16px;font-size:14px}
-    .bk-login .bk-login-container button{background:#F57C40;display:block;width:100%;height:44px;line-height:44px;text-align:center;border:0;color:#fff;font-size:14px;cursor:pointer;border-radius:2px}
-    .bk-login .bk-login-container .bk-tools{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px}
-    .bk-login .bk-login-container .bk-tools a{font-size:14px}
-    .bk-login .bk-login-container .bk-tools a:first-child{color:#F57C40}
-    .bk-login .bk-login-container .bk-tools a:last-child{color:#4A4F58}
-    .bk-login .bk-login-container .bk-agreement{position:absolute;bottom:44px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
-    .bk-login .bk-login-container .bk-agreement span{font-size:14px;color:#F57C40;margin-left:4px}
-    .bk-login .bk-login-container .bk-agreement span a{color:#F57C40}
-    .bk-login .bk-login-container .bk-agreement input{display:none}
-    .bk-login .bk-login-container .bk-agreement input:checked ~ label::before{display:block}
-    .bk-login .bk-login-container .bk-agreement label{position:relative;display:block;width:16px;height:16px;border:1px solid #F57C40;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:50%;cursor:pointer}
-    .bk-login .bk-login-container .bk-agreement label::before{position:absolute;content:"";display:none;width:8px;height:8px;background:#F57C40;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:50%}
-    .bk-login .bk-login-container .verify-wrap{margin:32px 0 16px}
-    .bk-login button.bk-disabled{background: #999;}
-}
-
-@media screen and (max-width:768px){.only-pc{display:none !important}
-    html{font-size:100px}
-    body{font-size:0.26rem}
-    ::-webkit-scrollbar{width:0.08rem;height:0.08rem;background-color:#f5f5f5}
-    ::-webkit-scrollbar-thumb{background-color:#aaa;border-radius:0.04rem}
-    header{position:sticky;top:0;z-index:99}
-    main{min-height:calc(100vh - 1.04rem - 4rem)}
-    .bk-header{position:relative;height:1.04rem;background:#fff}
-    .bk-header .bk-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-right:0.32rem}
-    .bk-header .bk-logo{width:2rem;height:1.04rem;background:#F57C40;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
-    .bk-header .bk-logo h1{font-size:0;text-indent:-99999px}
-    .bk-header .bk-logo img{display:block;width:1.6rem;height:0.64rem}
-    .bk-header .bk-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:0.16rem;-moz-column-gap:0.16rem;column-gap:0.16rem}
-    .bk-header .bk-menu .bk-search-btn{display:block;width:0.56rem;height:0.56rem;background:#FFF1EB url("/img/encyclopedia/assets/h5-icon-search.png") no-repeat center;border-radius:50%;background-size:0.32rem}
-    .bk-header .bk-menu .bk-menu-name{font-size:0.32rem;color:#F57C40}
-    .bk-header .bk-menu .bk-collapse-btn{display:block;width:0.48rem;height:0.48rem;background:url("/img/encyclopedia/assets/h5-icon-collapse.png") no-repeat center;background-size:0.48rem}
-    .bk-header .bk-menu.active .bk-collapse-btn{background-image:url("/img/encyclopedia/assets/h5-icon-close-hover.png")}
-    .bk-header .bk-search-container{position:absolute;left:0;top:1.04rem;background:#fff;width:100%;display:none}
-    .bk-header .bk-search-container .bk-search-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0.68rem 0.32rem 0.4rem;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.15)),color-stop(46%,#fff));background:-o-linear-gradient(top,rgba(0,0,0,.15) 0%,#fff 46%);background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,#fff 46%)}
-    .bk-header .bk-search-container .bk-search-menu .bk-name{font-size:0.36rem;color:#333333;font-weight:bold}
-    .bk-header .bk-search-container .bk-search-menu .bk-search-close{display:block;width:0.48rem;height:0.48rem;background:url("/img/encyclopedia/assets/h5-icon-close.png") no-repeat center;background-size:0.48rem}
-    .bk-header .bk-search-container .bk-search-menu .bk-search-close:hover{background-image:url("/img/encyclopedia/assets/h5-icon-close-hover.png")}
-    .bk-header .bk-search-container .bk-search-control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 0.32rem}
-    .bk-header .bk-search-container .bk-search-control input{display:block;width:5.56rem;height:0.8rem;background:#F7F7F7;line-height:0.8rem;font-size:0.24rem;padding:0 0.24rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:0.08rem 0 0 0.08rem}
-    .bk-header .bk-search-container .bk-search-control button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:1.3rem;height:0.8rem;background:#F57C40;color:#fff;font-size:0.28rem;border:0;border-radius:0 0.08rem 0.08rem 0}
-    .bk-header .bk-search-container .bk-search-control button::before{content:"";width:0.32rem;height:0.32rem;display:block;background:url("/img/encyclopedia/assets/h5-icon-search2.png") no-repeat center;background-size:0.32rem;margin-right:0.08rem}
-    .bk-header .bk-search-container .bk-hot-keyword{display:-webkit-box;display:-ms-flexbox;display:flex;gap:0.16rem;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0.4rem 0.32rem 0.64rem}
-    .bk-header .bk-search-container .bk-hot-keyword li a{display:block;line-height:0.48rem;height:0.48rem;padding:0 0.18rem;background:#F7F7F7;color:#999999;font-size:0.24rem;border-radius:0.08rem}
-    .bk-nav{position:absolute;width:100vw;right:0;top:1.04rem;display:none}
-    .bk-nav .bk-navbar{padding-top:0.48rem;background:#fff;margin-left:1.34rem;-webkit-box-sizing:border-box;box-sizing:border-box;height:calc(100vh - 1.04rem)}
-    .bk-nav .bk-navbar li{border-bottom:0.01rem solid #D8D8D8}
-    .bk-nav .bk-navbar li a{display:block;color:#333;font-size:0.28rem;line-height:1rem;padding-left:0.48rem}
-    .bk-footer{background:#2C3038;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 0.5rem 0.4rem;text-align:center;height:4rem;-webkit-box-sizing:border-box;box-sizing:border-box}
-    .bk-footer h2{font-size:0.26rem;color:#FFFFFF;font-weight:normal;padding:0.56rem 0 0.4rem}
-    .bk-footer h2 a{color:#FFFFFF}
-    .bk-footer .beian{font-size:0.24rem;color:#e1e1e1;font-weight:lighter;line-height:0.48rem}
-    .bk-footer .beian a{color:#e1e1e1}
-    .bk-footer .beian span{margin:0 4px}
-    .bk-footer .beian i{display:inline-block;width:16px;height:16px;vertical-align:-3px;font-size:0;background:url("/img/base/icon-icp@2x.png") no-repeat center;background-size:16px}
-    .bk-footer .copyright{font-size:12px;color:#e1e1e1;font-weight:lighter;line-height:0.48rem}
-}
+html{font-size:16px;font-family:'Microsoft YaHei',SimSun,Arial,Helvetica,sans-serif;color:#333333}
+h1,h2,h3,h4,h5,h6{margin:0}
+p{margin:0}
+ul{margin:0;padding:0}
+ul li{margin:0;list-style-type:none}
+a{text-decoration:none}
+input{outline:none}
+.bk-mask{position:fixed;width:100vw;height:100vh;left:0;top:0;background:rgba(0,0,0,.6);z-index:90}
+.hidden{width:100vw;overflow:hidden}
+.jconfirm-content{overflow: hidden !important;}
+
+@media screen and (min-width:768px){.only-mobile{display:none !important}
+    ::-webkit-scrollbar{width:8px;height:8px;background-color:#f5f5f5}
+    ::-webkit-scrollbar-thumb{background-color:#aaa;border-radius:4px}
+    body{min-width:1200px}
+    header{position:sticky;top:0;z-index:99;background:#fff}
+    main{min-height:calc(100vh - 144px - 140px)}
+    .bk-container{width:1200px;margin:0 auto}
+    .bk-header{padding:26px 0 16px}
+    .bk-header .bk-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
+    .bk-header .bk-logo{-webkit-transform:translateY(-8px);-ms-transform:translateY(-8px);transform:translateY(-8px)}
+    .bk-header .bk-logo h1{font-size:0;text-indent:-99999px}
+    .bk-header .bk-logo img{display:block;width:200px;height:56px}
+    .bk-header .bk-search-container{width:640px}
+    .bk-header .bk-search-container .bk-search-control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
+    .bk-header .bk-search-container .bk-search-control input{display:block;width:560px;height:36px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #F57C40;border-right:0;border-radius:2px 0 0 2px;font-size:14px;padding-left:16px}
+    .bk-header .bk-search-container .bk-search-control input::-webkit-input-placeholder{font-size:14px;color:#B2B2B2}
+    .bk-header .bk-search-container .bk-search-control input::-moz-placeholder{font-size:14px;color:#B2B2B2}
+    .bk-header .bk-search-container .bk-search-control input:-ms-input-placeholder{font-size:14px;color:#B2B2B2}
+    .bk-header .bk-search-container .bk-search-control input::-ms-input-placeholder{font-size:14px;color:#B2B2B2}
+    .bk-header .bk-search-container .bk-search-control input::placeholder{font-size:14px;color:#B2B2B2}
+    .bk-header .bk-search-container .bk-search-control button{display:block;width:80px;height:36px;line-height:36px;background:#FF5B00;border:0;border-radius:0 2px 2px 0;font-size:14px;color:#fff;text-align:center;cursor:pointer}
+    .bk-header .bk-search-container .bk-hot-keyword{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:6px}
+    .bk-header .bk-search-container .bk-hot-keyword li{font-size:12px;color:#B2B2B2}
+    .bk-header .bk-search-container .bk-hot-keyword li a{color:#B2B2B2;-webkit-transition:color .4s;-o-transition:color .4s;transition:color .4s}
+    .bk-header .bk-search-container .bk-hot-keyword li::after{content:"/";display:inline;margin:0 6px}
+    .bk-header .bk-search-container .bk-hot-keyword li:last-child::after{display:none}
+    .bk-header .bk-search-container .bk-hot-keyword li a:hover{color:#FF5B00}
+    .bk-nav{background:#F57C40}
+    .bk-nav .bk-navbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
+    .bk-nav .bk-navbar li.active a{background:#FF5B00;color:#fff}
+    .bk-nav .bk-navbar li a{display:block;line-height:46px;padding:0 32px;color:#fff;font-size:16px;-webkit-transition:background .4s;-o-transition:background .4s;transition:background .4s}
+    .bk-nav .bk-navbar li a:hover{background:#FF5B00}
+    .bk-footer{background:#2C3038;height:140px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
+    .bk-footer h2{font-size:14px;color:#FFFFFF;font-weight:normal}
+    .bk-footer h2 a{color:#FFFFFF}
+    .bk-footer .beian{font-size:12px;color:#eee;margin-top:25px;font-weight:lighter}
+    .bk-footer .beian a{color:#eee}
+    .bk-footer .beian span{margin:0 4px}
+    .bk-footer .beian i{display:inline-block;width:16px;height:16px;vertical-align:-3px;font-size:0;background:url("/img/base/icon-icp@2x.png") no-repeat center;background-size:16px}
+    .bk-footer .copyright{font-size:12px;color:#eee;margin-top:16px;font-weight:lighter}
+    .bk-publish{position:fixed;width:86px;height:190px;background:url("/img/encyclopedia/assets/pc-icon-publish.png") no-repeat center;background-size:86px;right:80px;bottom:120px;cursor:pointer;z-index:30}
+    .bk-login{position:fixed;z-index:120;left:0;top:0;width:100vw;height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
+    .bk-login .mask{position:absolute;left:0;top:0;width:100vw;height:100vh;background:rgba(0,0,0,.6);z-index:10}
+    .bk-login .bk-login-container{position:relative;z-index:20;width:540px;height:470px;background:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 70px}
+    .bk-login .bk-login-container .bk-tip{font-size:14px;color:#22272E;margin:56px 0 9px}
+    .bk-login .bk-login-container .bk-name{font-size:24px;color:#F57C40;margin-bottom:40px}
+    .bk-login .bk-login-container .bk-input{margin:20px 0}
+    .bk-login .bk-login-container .bk-input input{display:block;border:1px solid #E2E2E2;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:44px;line-height:42px;padding-left:16px;font-size:14px}
+    .bk-login .bk-login-container button{background:#F57C40;display:block;width:100%;height:44px;line-height:44px;text-align:center;border:0;color:#fff;font-size:14px;cursor:pointer;border-radius:2px}
+    .bk-login .bk-login-container .bk-tools{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px}
+    .bk-login .bk-login-container .bk-tools a{font-size:14px}
+    .bk-login .bk-login-container .bk-tools a:first-child{color:#F57C40}
+    .bk-login .bk-login-container .bk-tools a:last-child{color:#4A4F58}
+    .bk-login .bk-login-container .bk-agreement{position:absolute;bottom:44px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
+    .bk-login .bk-login-container .bk-agreement span{font-size:14px;color:#F57C40;margin-left:4px}
+    .bk-login .bk-login-container .bk-agreement span a{color:#F57C40}
+    .bk-login .bk-login-container .bk-agreement input{display:none}
+    .bk-login .bk-login-container .bk-agreement input:checked ~ label::before{display:block}
+    .bk-login .bk-login-container .bk-agreement label{position:relative;display:block;width:16px;height:16px;border:1px solid #F57C40;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:50%;cursor:pointer}
+    .bk-login .bk-login-container .bk-agreement label::before{position:absolute;content:"";display:none;width:8px;height:8px;background:#F57C40;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:50%}
+    .bk-login .bk-login-container .verify-wrap{margin:32px 0 16px}
+    .bk-login button.bk-disabled{background: #999;}
+    .nav-link {width: 1200px;position: absolute;left: 50%;transform: translateX(-50%); font-size: 14px;padding: 10px;}
+}
+
+@media screen and (max-width:768px){.only-pc{display:none !important}
+    html{font-size:100px}
+    body{font-size:0.26rem}
+    ::-webkit-scrollbar{width:0.08rem;height:0.08rem;background-color:#f5f5f5}
+    ::-webkit-scrollbar-thumb{background-color:#aaa;border-radius:0.04rem}
+    header{position:sticky;top:0;z-index:99}
+    main{min-height:calc(100vh - 1.04rem - 4rem)}
+    .bk-header{position:relative;height:1.04rem;background:#fff}
+    .bk-header .bk-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-right:0.32rem}
+    .bk-header .bk-logo{width:2rem;height:1.04rem;background:#F57C40;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
+    .bk-header .bk-logo h1{font-size:0;text-indent:-99999px}
+    .bk-header .bk-logo img{display:block;width:1.6rem;height:0.64rem}
+    .bk-header .bk-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:0.16rem;-moz-column-gap:0.16rem;column-gap:0.16rem}
+    .bk-header .bk-menu .bk-search-btn{display:block;width:0.56rem;height:0.56rem;background:#FFF1EB url("/img/encyclopedia/assets/h5-icon-search.png") no-repeat center;border-radius:50%;background-size:0.32rem}
+    .bk-header .bk-menu .bk-menu-name{font-size:0.32rem;color:#F57C40}
+    .bk-header .bk-menu .bk-collapse-btn{display:block;width:0.48rem;height:0.48rem;background:url("/img/encyclopedia/assets/h5-icon-collapse.png") no-repeat center;background-size:0.48rem}
+    .bk-header .bk-menu.active .bk-collapse-btn{background-image:url("/img/encyclopedia/assets/h5-icon-close-hover.png")}
+    .bk-header .bk-search-container{position:absolute;left:0;top:1.04rem;background:#fff;width:100%;display:none}
+    .bk-header .bk-search-container .bk-search-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0.68rem 0.32rem 0.4rem;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.15)),color-stop(46%,#fff));background:-o-linear-gradient(top,rgba(0,0,0,.15) 0%,#fff 46%);background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,#fff 46%)}
+    .bk-header .bk-search-container .bk-search-menu .bk-name{font-size:0.36rem;color:#333333;font-weight:bold}
+    .bk-header .bk-search-container .bk-search-menu .bk-search-close{display:block;width:0.48rem;height:0.48rem;background:url("/img/encyclopedia/assets/h5-icon-close.png") no-repeat center;background-size:0.48rem}
+    .bk-header .bk-search-container .bk-search-menu .bk-search-close:hover{background-image:url("/img/encyclopedia/assets/h5-icon-close-hover.png")}
+    .bk-header .bk-search-container .bk-search-control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 0.32rem}
+    .bk-header .bk-search-container .bk-search-control input{display:block;width:5.56rem;height:0.8rem;background:#F7F7F7;line-height:0.8rem;font-size:0.24rem;padding:0 0.24rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:0.08rem 0 0 0.08rem}
+    .bk-header .bk-search-container .bk-search-control button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:1.3rem;height:0.8rem;background:#F57C40;color:#fff;font-size:0.28rem;border:0;border-radius:0 0.08rem 0.08rem 0}
+    .bk-header .bk-search-container .bk-search-control button::before{content:"";width:0.32rem;height:0.32rem;display:block;background:url("/img/encyclopedia/assets/h5-icon-search2.png") no-repeat center;background-size:0.32rem;margin-right:0.08rem}
+    .bk-header .bk-search-container .bk-hot-keyword{display:-webkit-box;display:-ms-flexbox;display:flex;gap:0.16rem;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0.4rem 0.32rem 0.64rem}
+    .bk-header .bk-search-container .bk-hot-keyword li a{display:block;line-height:0.48rem;height:0.48rem;padding:0 0.18rem;background:#F7F7F7;color:#999999;font-size:0.24rem;border-radius:0.08rem}
+    .bk-nav{position:absolute;width:100vw;right:0;top:1.04rem;display:none}
+    .bk-nav .bk-navbar{padding-top:0.48rem;background:#fff;margin-left:1.34rem;-webkit-box-sizing:border-box;box-sizing:border-box;height:calc(100vh - 1.04rem)}
+    .bk-nav .bk-navbar li{border-bottom:0.01rem solid #D8D8D8}
+    .bk-nav .bk-navbar li a{display:block;color:#333;font-size:0.28rem;line-height:1rem;padding-left:0.48rem}
+    .bk-footer{background:#2C3038;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 0.5rem 0.4rem;text-align:center;height:4rem;-webkit-box-sizing:border-box;box-sizing:border-box}
+    .bk-footer h2{font-size:0.26rem;color:#FFFFFF;font-weight:normal;padding:0.56rem 0 0.4rem}
+    .bk-footer h2 a{color:#FFFFFF}
+    .bk-footer .beian{font-size:0.24rem;color:#e1e1e1;font-weight:lighter;line-height:0.48rem}
+    .bk-footer .beian a{color:#e1e1e1}
+    .bk-footer .beian span{margin:0 4px}
+    .bk-footer .beian i{display:inline-block;width:16px;height:16px;vertical-align:-3px;font-size:0;background:url("/img/base/icon-icp@2x.png") no-repeat center;background-size:16px}
+    .bk-footer .copyright{font-size:12px;color:#e1e1e1;font-weight:lighter;line-height:0.48rem}
+    .nav-link {width: 95vw;position: absolute;left: 50%;transform: translateX(-50%); font-size: 3vw; padding: 2vw;}
+}

+ 1 - 1
src/main/resources/static/css/index/index_new.pc.css

@@ -167,7 +167,7 @@ li{list-style:none;}
 /*右边区域*/
 .section_right{width:284px;float:right;box-sizing:border-box;padding-top:40px}
 .section_right .section_right_item{width:284px;height:auto;background-color:#FFFFFF;float:left;margin-bottom:16px;padding:16px;box-sizing:border-box;border-radius:2px}
-.section_right .section_right_item.ross{width:284px;height:343px;color: #FFFFFF;padding:0;}
+.section_right .section_right_item.ross{width:284px;height:343px;color: #FFFFFF;padding:0;cursor: pointer}
 .section_right .section_right_item.ross.none{display: none;}
 .section_right .section_right_item.ross.show{display: block;}
 .section_right .section_right_item.ross>a{width: 100%;height: 100%;display: block;border-radius: 2px;}

+ 73 - 64
src/main/resources/static/css/user-center/message.css

@@ -1,64 +1,73 @@
-@charset "utf-8";
-li{list-style:none}
-/**
- * PC端
- */
-@media screen and (min-width:768px){
-    .navLayout{min-height: 500px;}
-    .content .empty{background-color:#FFF;}
-    .content{width: 100%;min-height: 370px;background-color: #FFFFFF;box-sizing: border-box;padding:0 20px 20px 20px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);margin:0 0 10px 0;}
-    .content .title{width: 100%;height: 56px;border-bottom: solid 1px #e2e7ef;box-sizing: border-box;padding:9px 0;}
-    .content .title .tabs-item{width:18%;height: 38px;float: left;}
-    .content .title .tabs-item a{width:100%;height: 100%;display: block;font-size: 16px;line-height: 38px;text-align: left;color: #9aa5b5;}
-    .content .title .tabs-item.active a{color: #FF5B00;}
-    .content .section .section-top{width: 100%;height: 54px;float: left;box-sizing: border-box;padding: 9px 0;border-bottom: solid 1px #e2e7ef;}
-    .content .section .section-top .cheacked{width: 100px;height: 36px;float: left;cursor: pointer;}
-    .content .section .section-top .cheacked .check{margin: 8px 15px;}
-    .content .section .section-top .cheacked .icon{width: 16px;height: 16px;display: block;float: left;padding: 10px 15px}
-    .content .section .section-top .cheacked span{display: inline-block;line-height: 36px;font-size: 16px;color: #22272e;}
-    .content .section .section-top .button{width: 250px;height: 36px;float: right;}
-    .content .section .section-top .button .btn{width: 90px;height: 34px;float: right;margin-left: 16px;border-radius: 2px;background-color: #ffe6dc;line-height: 34px;text-align: center;font-size: 14px;color: #FF5B00;border: solid 1px #FF5B00;}
-    .content .section .section-content{width: 100%;height: auto;float: left;box-sizing: border-box;padding: 10px 0;}
-    .content .section .section-content .new-list{width: 100%;height:80px;float: left;box-sizing: border-box;padding: 15px 0;}
-    .content .section .section-content .new-list .text{line-height: 36px;float: left;}
-    .content .section .section-content .new-list .icon{width: 16px;height: 16px;display: block;float: left;padding: 10px 15px;line-height: 16px;cursor: pointer;}
-    .content .section .section-content .new-list .text p{width: 700px;height: 48px;line-height: 24px;font-size: 14px;color: #627386;float: left;text-overflow: ellipsis;display: -webkit-box;word-break: break-all;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;}
-    .content .section .section-content .new-list .text p .link{color: #E15621;cursor: pointer;text-decoration: underline;}
-    .content .section .section-content .new-list .text p .link:hover{text-decoration: underline;}
-    .content .section .section-content .new-list .time{line-height: 36px;font-size: 14px;color: #b8bfca;float: right;}
-    .check{float: left;margin: 4px 15px;}
-    .notclick{opacity: .6}
-}
-
-/**
-* 移动端
-*/
-@media screen and (max-width:768px){
-    footer{display: none;}
-    .content{width: 100%;height: auto;background-color: #FFFFFF;box-sizing: border-box;padding:3.3vw;box-shadow: 0px .8vw 1.6vw 0px rgba(0, 0, 0, 0.07);margin:0 0 2.7vw 0;padding-bottom:10px;}
-    .content .title{width: 100%;height: auto;line-height: 8.4vw;color: #22272e;font-size: 3.4vw;}
-    .content .title .tabs-item.active a{color: #FF5B00;}
-    .content .title .tabs-item{display:inline-block;height:8.4vw;border:1px solid #b8bfca;line-height:8.4vw;padding:0 3vw;border-radius:4.2vw;margin-right:4vw;margin-bottom: 2vw;}
-    .content .title .tabs-item a{color:#627386}
-    .content .title .tabs-item a span{color:#FF5B00}
-    .content .title .tabs-item.active{background-color:#ffe6dc;border-color:#FF5B00;color:#FF5B00}
-    .header-tabs .tabs-item.active a{color:#FF5B00}
-    .section-top{width: 100%;height: 54px;box-sizing: border-box;padding: 10px;background: #fff;position: fixed;bottom: 0;left: 0;z-index: 999;box-shadow: 0px .8vw 1.6vw 0px rgba(0, 0, 0, 0.07);}
-    .section-top .cheacked{width: 100px;height: 36px;float: left;cursor: pointer;}
-    .section-top .cheacked .icon{width: 16px;height: 16px;display: block;float: left;padding: 10px 15px}
-    .section-top .cheacked span{display: inline-block;line-height: 36px;font-size: 16px;color: #22272e;}
-    .section-top .button{height: 36px;float: right;}
-    .section-top .button .btn{width: 90px;height: 34px;float: right;margin-left: 16px;border-radius: 2px;background-color: #ffd8d8;line-height: 34px;text-align: center;font-size: 14px;color: #f94b4b;border: solid 1px #f94b4b;border-radius: 6.4vw}
-    .section-top .button .btn.Read{border: .27vw solid #1890f9;color: #1890f9;background: #e0f1ff}
-    .content .section .section-content{width: 100%;height: auto;float: left;box-sizing: border-box;padding: 10px 0;}
-    .content .section .section-content .new-list{width: 100%;box-sizing: border-box;float: left;margin-bottom: 4vw;}
-    .content .section .section-content .new-list .text{line-height: 36px;}
-    .content .section .section-content .new-list .icon{width: 16px;height: 16px;display: block;float: left;padding: 10px;line-height: 16px;cursor: pointer;}
-    .content .section .section-content .new-list .text p{line-height: 6vw;font-size: 3.4vw;color: #627386;float: left;width: 77.6vw;}
-    .content .section .section-content .new-list .text p .link{color: #E15621;cursor: pointer;text-decoration: underline;}
-    .content .section .section-content .new-list .time{font-size: 3.1vw;color: #b8bfca;float: left;padding-left: 37px}
-    input.check {width: 3.5vw;height: 3.5vw;line-height: 3.5vw;vertical-align: top;margin: 3vw 3vw 1.3vw 3.3vw;float: left;}
-    .notclick{pointer-events: none;opacity: .6}
-    .empty{padding: 50vw 0}
-}
-
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+    .navLayout{min-height: 500px;}
+    .content .empty{background-color:#FFF;}
+    .content{width: 100%;min-height: 370px;background-color: #FFFFFF;box-sizing: border-box;padding:0 20px 20px 20px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);margin:0 0 10px 0;}
+    .content .title{width: 100%;height: 56px;border-bottom: solid 1px #e2e7ef;box-sizing: border-box;padding:9px 0;}
+    .content .title .tabs-item{width:14%;height: 38px;float: left;}
+    .content .title .tabs-item a{width:100%;height: 100%;display: block;font-size: 16px;line-height: 38px;text-align: left;color: #9aa5b5;}
+    .content .title .tabs-item.active a{color: #FF5B00;}
+    .content .section .section-top{width: 100%;height: 54px;float: left;box-sizing: border-box;padding: 9px 0;border-bottom: solid 1px #e2e7ef;}
+    .content .section .section-top .cheacked{width: 100px;height: 36px;float: left;cursor: pointer;}
+    .content .section .section-top .cheacked .check{margin: 8px 15px;}
+    .content .section .section-top .cheacked .icon{width: 16px;height: 16px;display: block;float: left;padding: 10px 15px}
+    .content .section .section-top .cheacked span{display: inline-block;line-height: 36px;font-size: 16px;color: #22272e;}
+    .content .section .section-top .button{width: 250px;height: 36px;float: right;}
+    .content .section .section-top .button .btn{width: 90px;height: 34px;float: right;margin-left: 16px;border-radius: 2px;background-color: #ffe6dc;line-height: 34px;text-align: center;font-size: 14px;color: #FF5B00;border: solid 1px #FF5B00;}
+    .content .section .section-content{width: 100%;height: auto;float: left;box-sizing: border-box;padding: 10px 0;}
+    .content .section .section-content .new-list{width: 100%;height:80px;float: left;box-sizing: border-box;padding: 15px 0;}
+    .content .section .section-content .new-list .text{line-height: 36px;float: left;}
+    .content .section .section-content .new-list .text .msg-content {display: flex;flex-direction: column;}
+    .content .section .section-content .new-list .icon{width: 16px;height: 16px;display: block;float: left;padding: 10px 15px;line-height: 16px;cursor: pointer;}
+    .content .section .section-content .new-list .text p{width: 700px;height: auto;line-height: 24px;font-size: 14px;color: #627386;float: left;text-overflow: ellipsis;display: -webkit-box;word-break: break-all;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;}
+    .content .section .section-content .new-list .text p .right-number {margin-left: 100px;}
+    .content .section .section-content .new-list .text p .link{color: #E15621;cursor: pointer;text-decoration: underline;}
+    .content .section .section-content .new-list .text p .link:hover{text-decoration: underline;}
+    .content .section .section-content .new-list .time{line-height: 36px;font-size: 14px;color: #b8bfca;float: right;}
+    .check{float: left;margin: 4px 15px;}
+    .notclick{opacity: .6}
+    .content .section .section-content .new-list .text .msg-content .msg-article-p::before{content: "";float: right;height: 24px;}
+    .content .section .section-content .new-list .text .msg-content .msg-article-p span {float: right;clear: both}
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+    footer{display: none;}
+    .content{width: 100%;height: auto;background-color: #FFFFFF;box-sizing: border-box;padding:3.3vw;box-shadow: 0px .8vw 1.6vw 0px rgba(0, 0, 0, 0.07);margin:0 0 2.7vw 0;padding-bottom:10px;}
+    .content .title{width: 100%;height: auto;line-height: 8.4vw;color: #22272e;font-size: 3.4vw;}
+    .content .title .tabs-item.active a{color: #FF5B00;}
+    .content .title .tabs-item{display:inline-block;height:8.4vw;border:1px solid #b8bfca;line-height:8.4vw;padding:0 3vw;border-radius:4.2vw;margin-right:4vw;margin-bottom: 2vw;}
+    .content .title .tabs-item a{color:#627386}
+    .content .title .tabs-item a span{color:#FF5B00}
+    .content .title .tabs-item.active{background-color:#ffe6dc;border-color:#FF5B00;color:#FF5B00}
+    .header-tabs .tabs-item.active a{color:#FF5B00}
+    .section-top{width: 100%;height: 54px;box-sizing: border-box;padding: 10px;background: #fff;position: fixed;bottom: 0;left: 0;z-index: 999;box-shadow: 0px .8vw 1.6vw 0px rgba(0, 0, 0, 0.07);}
+    .section-top .cheacked{width: 100px;height: 36px;float: left;cursor: pointer;}
+    .section-top .cheacked .icon{width: 16px;height: 16px;display: block;float: left;padding: 10px 15px}
+    .section-top .cheacked span{display: inline-block;line-height: 36px;font-size: 16px;color: #22272e;}
+    .section-top .button{height: 36px;float: right;}
+    .section-top .button .btn{width: 90px;height: 34px;float: right;margin-left: 16px;border-radius: 2px;background-color: #ffd8d8;line-height: 34px;text-align: center;font-size: 14px;color: #f94b4b;border: solid 1px #f94b4b;border-radius: 6.4vw}
+    .section-top .button .btn.Read{border: .27vw solid #1890f9;color: #1890f9;background: #e0f1ff}
+    .content .section .section-content{width: 100%;height: auto;float: left;box-sizing: border-box;padding: 10px 0;}
+    .content .section .section-content .new-list{width: 100%;box-sizing: border-box;float: left;margin-bottom: 4vw;}
+    .content .section .section-content .new-list .text{line-height: 36px;}
+    .content .section .section-content .new-list .text .msg-content {display: flex;flex-direction: column;}
+    .content .section .section-content .new-list .icon{width: 16px;height: 16px;display: block;float: left;padding: 10px;line-height: 16px;cursor: pointer;}
+    .content .section .section-content .new-list .text p{line-height: 6vw;font-size: 3.4vw;color: #627386;float: left;width: 77.6vw;}
+    .content .section .section-content .new-list .text p .right-number {margin-left: 5vw;}
+    .content .section .section-content .new-list .text p .link{color: #E15621;cursor: pointer;text-decoration: underline;}
+    .content .section .section-content .new-list .time{font-size: 3.1vw;color: #b8bfca;float: left;padding-left: 37px}
+    input.check {width: 3.5vw;height: 3.5vw;line-height: 3.5vw;vertical-align: top;margin: 3vw 3vw 1.3vw 3.3vw;float: left;}
+    .notclick{pointer-events: none;opacity: .6}
+    .empty{padding: 50vw 0}
+    .content .section .section-content .new-list .text .msg-content .msg-article-p {text-overflow: ellipsis;display: -webkit-box;word-break: break-all;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;}
+    .content .section .section-content .new-list .text .msg-content .msg-article-p::before{content: "";float: right;height: 6vw;}
+    .content .section .section-content .new-list .text .msg-content .msg-article-p span {float: right;clear: both}
+}
+

+ 1 - 1
src/main/resources/static/js/article/common.js

@@ -12,7 +12,7 @@ const handleFileUrl = (id) => {
 }
 // 轮播点击量统计
 const handleSwiperHits = ($event) => {
-    ProductApi.userSwiperHits({ id: $event.id, type: 2 }, (res) => {
+    ProductApi.userSwiperHits({ authorId: $event.id, type: 2 }, (res) => {
         console.log(res)
     })
 }

+ 9 - 0
src/main/resources/static/js/article/list.js

@@ -399,6 +399,15 @@ const articleList = new Vue({
                     this.newsList = data.annlist.slice(0, 1)
                 }
             });
+        },
+        // 供应商广告图统计
+        setAdvStatistics ($event) {
+            BeautyArchiveApi.GetStatisticsAddPv({type: 5, authorId: $event.id}, () => {
+                console.log("供应商广告图点击统计成功")
+            })
+            if ($event.jumpLink) {
+                window.open($event.jumpLink)
+            }
         }
     }
 });

+ 6 - 0
src/main/resources/static/js/base.js

@@ -547,6 +547,12 @@ $(function(){
             // 文章
             window.location.href = '/info/search-1.html?keyword=' + encodeURIComponent(keyword);
         }
+        // 搜索词统计
+        BeautyArchiveApi.setSearchKeywords({keyword}, (res) => {
+            if (res.code === 0) {
+                console.log('搜索词统计成功')
+            }
+        })
     }).on('keyup', '.keyword', function (event) {
         // 搜索输入框 按回车键搜索
         var keyCode = event.keyCode || event.which;

+ 88 - 0
src/main/resources/static/js/ceshi/index.js

@@ -0,0 +1,88 @@
+new Vue({
+    el: '#pdf5',
+    data: {
+        pdfUrl: 'https://caimei-oss.oss-cn-shenzhen.aliyuncs.com/beta/archiveFile/d99a0fa229524d1496925e2328a77b70.pdf',
+        wordUrl: 'https://caimei-oss.oss-cn-shenzhen.aliyuncs.com/beta/archiveFile/f1a9288cf05c4b4b9de49bf51c065c23.docx',
+        wordText: ''
+    },
+    mounted() {
+        console.log('================================')
+        // this.getWordText()
+        this.pdfToHtml()
+    },
+    methods:{
+        getWordText() {
+            const xhr = new XMLHttpRequest();
+            xhr.open("get", this.wordUrl, true);
+            xhr.responseType = "arraybuffer";
+            xhr.onload = () => {
+                if (xhr.status == 200) {
+                    console.log(xhr.response)
+                    mammoth.convertToHtml({ arrayBuffer: new Uint8Array(xhr.response) }).then((resultObject) => {
+                        this.wordText = resultObject.value
+                        this.getToPdf()
+                    });
+                }
+            };
+            xhr.send()
+        },
+        htmlToPdf() {
+            const element = document.getElementById('wordView');
+            const options = {
+                filename: 'wordView.pdf',
+                image: { type: 'jpeg', quality: 0.98 },
+                html2canvas: { scale: 2 },
+                jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' },
+            };
+
+            const pdf = html2pdf().set(options).from(element).save();
+            const blobUrl = URL.createObjectURL(new Blob([pdf], { type: 'application/pdf' }));
+            const iframe = document.createElement('iframe');
+            iframe.src = blobUrl;
+            document.body.appendChild(iframe);
+            console.log(pdf);
+        },
+        async getToPdf() {
+            const pdfDoc = await PDFLib.PDFDocument.create()
+            const pages = pdfDoc.getPages();
+            const firstPage = pages[0];
+            console.log(pdfDoc)
+            firstPage.drawText(this.wordText, {
+                x: 50,
+                y: firstPage.getHeight() - 50,
+                size: 12,
+            });
+            const pdfBytes = await pdfDoc.save();
+            const blobUrl = URL.createObjectURL(new Blob([pdfBytes], { type: 'application/pdf' }));
+            const iframe = document.createElement('iframe');
+            iframe.src = blobUrl;
+            document.body.appendChild(iframe);
+        },
+        async pdfToHtml () {
+            const response = await fetch(this.pdfUrl);
+            const pdfData = await response.arrayBuffer();
+            console.log(pdfData)
+            const pdf = await pdfjsLib.getDocument({ data: pdfData })
+            const numPages = pdf.numPages;
+            console.log(pdf)
+            for (let pageNumber = 1; pageNumber <= numPages; pageNumber++) {
+                const page = await pdf.getPage(pageNumber);
+                const scale = 1.5;
+                const viewport = page.getViewport({ scale });
+
+                const canvas = document.createElement('canvas');
+                const context = canvas.getContext('2d');
+                canvas.height = viewport.height;
+                canvas.width = viewport.width;
+
+                const renderContext = {
+                    canvasContext: context,
+                    viewport,
+                };
+
+                await page.render(renderContext);
+                document.body.appendChild(canvas);
+            }
+        },
+    }
+})

+ 58 - 47
src/main/resources/static/js/common/serviceapi/beautyArchive.service.js

@@ -1,47 +1,58 @@
-// 美业资料库列表
-var BeautyArchiveApi = {
-    //获取资料库商品列表
-    GetArchiveProduct: function (params, callback) {
-        Http.AjaxService({
-            url: '/commodity/product/archive',
-            type: 'GET',
-            data: params,
-            json: false,
-        }).then(function (res) {
-            callback(res);
-        });
-    },
-    //资料库获取详情
-    GetProdcutArchiveDetails: function (params, callback) {
-        Http.AjaxService({
-            url: '/commodity/product/archive/detail',
-            type: 'GET',
-            data: params,
-            json: false,
-        }).then(function (res) {
-            callback(res);
-        });
-    },
-    //采美豆抵扣
-    SearchArchiveByBeans: function (params, callback) {
-        Http.AjaxService({
-            url: '/user/club/archive/deduction',
-            type: 'POST',
-            data: params,
-            json: false,
-        }).then(function (res) {
-            callback(res);
-        });
-    },
-    //用户浏览资料记录
-    GetStatisticsAddPv: function (params, callback) {
-        Http.AjaxService({
-            url: '/commodity/statistics/addPv',
-            type: 'GET',
-            data: params,
-            json: false,
-        }).then(function (res) {
-            callback(res);
-        });
-    }
-};
+// 美业资料库列表
+var BeautyArchiveApi = {
+    //获取资料库商品列表
+    GetArchiveProduct: function (params, callback) {
+        Http.AjaxService({
+            url: '/commodity/product/archive',
+            type: 'GET',
+            data: params,
+            json: false,
+        }).then(function (res) {
+            callback(res);
+        });
+    },
+    //资料库获取详情
+    GetProdcutArchiveDetails: function (params, callback) {
+        Http.AjaxService({
+            url: '/commodity/product/archive/detail',
+            type: 'GET',
+            data: params,
+            json: false,
+        }).then(function (res) {
+            callback(res);
+        });
+    },
+    //采美豆抵扣
+    SearchArchiveByBeans: function (params, callback) {
+        Http.AjaxService({
+            url: '/user/club/archive/deduction',
+            type: 'POST',
+            data: params,
+            json: false,
+        }).then(function (res) {
+            callback(res);
+        });
+    },
+    //用户浏览资料记录
+    GetStatisticsAddPv: function (params, callback) {
+        Http.AjaxService({
+            url: '/commodity/statistics/addPv',
+            type: 'GET',
+            data: params,
+            json: false,
+        }).then(function (res) {
+            callback(res);
+        });
+    },
+    // 用户搜索词统计
+    setSearchKeywords: function (params, callback) {
+        Http.AjaxService({
+            url: '/commodity/search/query/con/keyword',
+            type: 'GET',
+            data: params,
+            json: false,
+        }).then(function (res) {
+            callback(res);
+        })
+    }
+};

+ 66 - 60
src/main/resources/static/js/encyclopedia/search.js

@@ -1,60 +1,66 @@
-const searchList = new Vue({
-    el: '#searchList',
-    data: {
-        listQuery: {
-            shopId: '',
-            id: '', //词条id,
-            name: '', //词条名称
-            typeId: '', //分类id
-            auditStatus: 2, //百科审核状态:1待审核,2审核通过,3审核失败
-            onlineStatus: 2, //百科上线状态:1待上线,2已上线,3已下线
-            status: '', //状态:0保存草稿箱,1已发布
-            pageNum: 1, //页数
-            pageSize: 10 //条数
-        },
-        totalPage: 0,
-        totalRecord: 0,
-        hasNextPage: false,
-        list: [],
-    },
-    created() {
-        this.listQuery.name = decodeURIComponent(CAIMEI.getUrlParam('keyword'))
-        this.$nextTick(() => {
-            $('#searchInput').val(this.listQuery.name)
-        })
-        this.getList()
-    },
-    mounted() {
-        const self = this
-        window.addEventListener('scroll', debounce(function () {
-            const scrollTop = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset
-            if (document.body.scrollHeight <= window.screen.height + scrollTop) {
-                console.log('已经滚动到底部了')
-                if (!self.hasNextPage) return
-                self.getList()
-            }
-        }))
-    },
-    methods: {
-        filterList() {
-            this.listQuery.pageNum = 1
-            this.getList()
-        },
-        getList() {
-            const self = this
-            if (this.listQuery.pageNum > this.totalPage) {
-                this.listQuery.pageNum = this.totalPage
-            }
-            if (this.listQuery.pageNum < 1) {
-                this.listQuery.pageNum = 1
-            }
-            shopBikeApi.FetchEntryList(this.listQuery, function (res) {
-                self.list = [...self.list, ...res.data.results]
-                self.totalPage = res.data.totalPage
-                self.hasNextPage = res.data.hasNextPage
-                self.totalRecord = res.data.totalRecord
-                self.listQuery.pageNum++
-            })
-        }
-    }
-})
+const searchList = new Vue({
+    el: '#searchList',
+    data: {
+        listQuery: {
+            shopId: '',
+            id: '', //词条id,
+            name: '', //词条名称
+            typeId: '', //分类id
+            auditStatus: 2, //百科审核状态:1待审核,2审核通过,3审核失败
+            onlineStatus: 2, //百科上线状态:1待上线,2已上线,3已下线
+            status: '', //状态:0保存草稿箱,1已发布
+            pageNum: 1, //页数
+            pageSize: 10 //条数
+        },
+        totalPage: 0,
+        totalRecord: 0,
+        hasNextPage: false,
+        list: [],
+    },
+    created() {
+        this.listQuery.name = decodeURIComponent(CAIMEI.getUrlParam('keyword'))
+        this.$nextTick(() => {
+            $('#searchInput').val(this.listQuery.name)
+            // 搜索词统计
+            BeautyArchiveApi.setSearchKeywords({keyword: this.listQuery.name}, (res) => {
+                if (res.code === 0) {
+                    console.log('搜索词统计成功')
+                }
+            })
+        })
+        this.getList()
+    },
+    mounted() {
+        const self = this
+        window.addEventListener('scroll', debounce(function () {
+            const scrollTop = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset
+            if (document.body.scrollHeight <= window.screen.height + scrollTop) {
+                console.log('已经滚动到底部了')
+                if (!self.hasNextPage) return
+                self.getList()
+            }
+        }))
+    },
+    methods: {
+        filterList() {
+            this.listQuery.pageNum = 1
+            this.getList()
+        },
+        getList() {
+            const self = this
+            if (this.listQuery.pageNum > this.totalPage) {
+                this.listQuery.pageNum = this.totalPage
+            }
+            if (this.listQuery.pageNum < 1) {
+                this.listQuery.pageNum = 1
+            }
+            shopBikeApi.FetchEntryList(this.listQuery, function (res) {
+                self.list = [...self.list, ...res.data.results]
+                self.totalPage = res.data.totalPage
+                self.hasNextPage = res.data.hasNextPage
+                self.totalRecord = res.data.totalRecord
+                self.listQuery.pageNum++
+            })
+        }
+    }
+})

+ 13 - 1
src/main/resources/static/js/index.js

@@ -382,8 +382,20 @@ var homeData = new Vue({
         goQuickOpera($event) {
             // 链接跳转
             if ($event.link) window.location.href = $event.link
+            // 文件浏览记录
+            BeautyArchiveApi.GetStatisticsAddPv({type: 4, authorId: $event.id}, () => {
+                console.log("浏览记录成功")
+            })
         },
-
+        // 供应商广告图统计
+        setAdvStatistics ($event) {
+            BeautyArchiveApi.GetStatisticsAddPv({type: 5, authorId: $event.id}, () => {
+                console.log("供应商广告图点击统计成功")
+            })
+            if ($event.jumpLink) {
+                window.open($event.jumpLink)
+            }
+        }
     },
     created: function() {
         if(GLOBAL_TOKEN){

+ 26 - 2
src/main/resources/static/js/mixins/cmsMixins.js

@@ -16,7 +16,9 @@ var cmsMixins = function () {
                 window.open($eventHref)
             },
             handleRightStatistics:function($event,type){// 右侧模块
-                const $eventHref  = $event[0].attributes[3].value;
+                const $eventHref  = $event[0].attributes[4].value;
+                const $eventId = $event[0].attributes[0].value;
+                this.cmsActiveStatistics($eventId, type)
                 this.cmsSysStatistics(type)
                 window.open($eventHref)
             },
@@ -27,7 +29,8 @@ var cmsMixins = function () {
             },
             handleActivityStatistics:function($eventHref){// 活动列表
                 this.cmsSysStatistics(6)
-                window.open($eventHref)
+                this.cmsSetActivityStatistics($eventHref)
+                window.open($eventHref.link)
             },
             cmsSysStatistics :function (cmsSysType,bannerId) {
                 ProductApi.getCommodityStatisticsType({typeId:cmsSysType,bannerId:bannerId},function (response) {
@@ -46,6 +49,27 @@ var cmsMixins = function () {
                         console.log('<-------统计数据异常------>')
                     }
                 })
+            },
+            cmsActiveStatistics ($eventId, type) {
+                if (type === 3) {
+                    BeautyArchiveApi.GetStatisticsAddPv({type, authorId: $eventId}, (response) => {
+                        if(response.code === 0){
+                            console.log(`<-------活动专区首页点击量统计数据成功------>`)
+                        } else {
+                            console.log('<-------统计数据异常------>')
+                        }
+                    })
+                }
+            },
+            // 活动专区首页点击量统计
+            cmsSetActivityStatistics($eventHref) {
+                BeautyArchiveApi.GetStatisticsAddPv({type: 3, authorId: $eventHref.id}, (response) => {
+                    if(response.code === 0){
+                        console.log(`<-------活动专区首页点击量统计数据成功------>`)
+                    } else {
+                        console.log('<-------统计数据异常------>')
+                    }
+                })
             }
         }
     }

+ 237 - 236
src/main/resources/static/js/supplier-center/message.js

@@ -1,236 +1,237 @@
-;var helpSuggestion = new Vue({
-    el: "#dashboard",
-    mixins: [noticeMixin,cmSysVitaMixins],
-    data: {
-        btnLoading: false,
-        isRequset:false,
-        mssageTabBarIndex:0,
-        mssageTabBar: [
-            {messageType: '',text: '全部消息',bages:0},
-            {messageType: 2,text: '账户通知',bages:0},
-            {messageType: 3,text: '服务通知',bages:0},
-        ],
-        allCount:0,
-        listQuery: {
-            source: 1,
-            commonId: 0,
-            messageType: '',
-            pageNum: 1,
-            pageSize: 10
-        },
-        noMore:false,
-        listRecord: 0,
-        pageInput: '1',
-        degree:'',
-        isCheckedAll:false,
-        messagesList:[],//新闻动态
-        check:false,
-        checklist:[],
-        msgId:'',
-    },
-    filters: {
-        NumBadge: function (n) {//处理
-            var num = '';
-            if (n > 100) {
-                num = 99
-            } else {
-                num = n;
-            }
-            return num;
-        }
-    },
-    computed: {
-        pageTotal: function () {
-            var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
-            return total > 0 ? total : 1;
-        },
-        showPageBtn: function () {
-            var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
-            total = total > 0 ? total : 1;
-            var index = this.listQuery.pageNum, arr = [];
-            if (total <= 6) {
-                for (var i = 1; i <= total; i++) {
-                    arr.push(i);
-                }
-                return arr;
-            }
-            if (index <= 3) return [1, 2, 3, 4, 5, 0, total];
-            if (index >= total - 2) return [1, 0, total - 4, total - 3, total - 2, total - 1, total];
-            return [1, 0, index - 2, index - 1, index, index + 1, index + 2, 0, total];
-        }
-    },
-    methods: {
-        toPagination: function (pageNum) {//点击切换分页
-            if (pageNum <= this.pageTotal) {
-                this.listQuery.pageNum = pageNum;
-                this. getAuthShopMessageList();
-            }
-        },
-        checkNum: function () {//输入跳转分页
-            if (this.pageInput > this.pageTotal) {
-                this.pageInput = this.pageTotal;
-            } else if (this.pageInput < 1) {
-                this.pageInput = 1;
-            }
-        },
-        changeTabsFn:function(index,messageType){//点击Tab切换消息通知
-            this.mssageTabBarIndex = index;
-            this.listQuery.messageType = messageType;
-            this.listQuery.pageNum = 1;
-            this.messagesList =[];
-            this. getAuthShopMessageList();
-        },
-        getAuthShopMessageCount:function(){//查询tabs数量
-            var _self = this;
-            SupplierApi.getAuthShopMessageCount({commonId:_self.listQuery.commonId},function (response) {
-                var data = response.data;
-                _self.mssageTabBar[0].bages = _self.allCount = data.count;
-                _self.mssageTabBar[1].bages = data.accountCount;
-                _self.mssageTabBar[2].bages = data.notificationCount;
-            })
-        },
-        getAuthShopMessageList:function(){
-            var _self = this;
-            SupplierApi.getAuthShopMessageList(_self.listQuery,function (response) {
-                if(response.code == 0){
-                    _self.isRequset = false;
-                    _self.isCheckedAll = false;
-                    var data = response.data;
-                    if (data.list.length>0){
-                        if(isPC){
-                            _self.messagesList = data.list.map(function (el) {
-                                el.check = false
-                                return el;
-                            });
-                        }else{
-                            var list = data.list.map(function (el) {
-                                el.check = false
-                                return el;
-                            });
-                            _self.messagesList = _self.messagesList.concat(list);
-                        }
-                        _self.listRecord =  data.total;
-                        _self.requestFlag = true;
-                    }else {
-                        _self.requestFlag = false;
-                        _self.listRecord =  data.total;
-                    }
-                }else{
-                    CAIMEI.Alert(response.msg, '确定', false);
-                    _self.requestFlag = false;
-                }
-            })
-        },
-        checkedContains(arr, val) {// 校验
-            return arr.some(item => item === val)
-        },
-        checkedItemFn:function(item){ //单选
-            var _self = this;
-            if(event.target.checked){
-                if(!_self.checkedContains(_self.checklist,item.id)){
-                    _self.checklist.push(item.id);
-                }
-            }else {
-                _self.checklist.splice(_self.checklist.indexOf(item.id), 1);
-            }
-            _self.msgId = _self.checklist.toString()+','
-            if(_self.checklist.length==_self.messagesList.length){
-                _self.isCheckedAll=true;
-            }else {
-                _self.isCheckedAll=false;
-            }
-        },
-        checkedAllFn: function () { //全選
-            var _self = this;
-            _self.isCheckedAll = !_self.isCheckedAll;
-            if (_self.isCheckedAll) {
-                _self.checklist = [];
-                _self.messagesList.forEach(function (item) {
-                    item.check = true;
-                    _self.checklist.push(item.id);
-                    _self.msgId = _self.checklist.toString()+','
-                })
-            }else{
-                _self.messagesList.forEach(function(item){
-                    item.check = false;
-                });
-                _self.checklist = [];
-                _self.msgId = ''
-            }
-        },
-        deleteMessageFn: function(){//删除消息
-            var _this =this;
-            if(this.allCount === 0){
-                CAIMEI.dialog('暂无消息');
-            }else if(_this.checklist.length==0){
-                CAIMEI.dialog('请勾选未读消息');
-            }else{
-                SupplierApi.authDeleteMessage({id:_this.msgId},function (res) {
-                    if (res.code==0){
-                        CAIMEI.dialog('刪除成功');
-                        setTimeout(function (){
-                            _this.getAuthShopMessageList();
-                        },500)
-                    }else {
-                        CAIMEI.Alert(res.msg, '确定', false);
-                    }
-                })
-            }
-        },
-        signMessageFn: function(){//标记为已读
-            var _this =this;
-            console.log(_this.checklist);
-            console.log(_this.msgId);
-            if(this.allCount === 0){
-                CAIMEI.dialog('暂无未读消息');
-            }else if(_this.checklist.length==0){
-                CAIMEI.dialog('请勾选未读消息');
-            }else {
-                SupplierApi.authUpdateRead({userType:2,Id:_this.msgId},function (res) {
-                    if(res.code==0){
-                        CAIMEI.dialog('标记已读成功');
-                        setTimeout(function (){
-                            _this.getAuthShopMessageCount();
-                            _this.getAuthShopMessageList();
-                        },500)
-                    }else {
-                        CAIMEI.Alert(res.msg, '确定', false);
-                    }
-                })
-            }
-        }
-    },
-    mounted: function () {
-        if(globalUserData){
-            this.listQuery.commonId = globalUserData.shopId;
-            this.getAuthShopMessageCount();
-            this.getAuthShopMessageList();
-        }
-         if(!isPC){
-            $('footer').addClass("noneImportant");
-            //移动端上垃加载更多
-            $(window).on('scroll', function(){
-                var scrollTop = $(this).scrollTop();
-                var scrollHeight = $(document).height();
-                var windowHeight = window.innerHeight;
-                if (scrollTop + windowHeight >= scrollHeight) {
-                    //此处是滚动条到底部时候触发的事件,在这里写要加载的数据,或者是拉动滚动条的操作
-                    var totalPage = Math.ceil(_self.listRecord / _self.listQuery.pageSize)?Math.ceil(_self.listRecord / _self.listQuery.pageSize):1;
-                    var next = _self.listQuery.pageNum+1;
-                    if(next <= totalPage){
-                        if (_self.requestFlag){
-                            _self.listQuery.pageNum = next;
-                            // 获取列表数据
-                            _self.getAuthShopMessageList();
-                        }
-                        _self.requestFlag = false;
-                    }else{
-                        //到底了
-                        _self.noMore = true;
-                        $('footer').removeClass("noneImportant");
-                    }
-                }
-            });
-        }
-    }
-});
+;var helpSuggestion = new Vue({
+    el: "#dashboard",
+    mixins: [noticeMixin,cmSysVitaMixins],
+    data: {
+        btnLoading: false,
+        isRequset:false,
+        mssageTabBarIndex:0,
+        mssageTabBar: [
+            {messageType: '',text: '全部消息',bages:0},
+            {messageType: 2,text: '账户通知',bages:0},
+            {messageType: 3,text: '服务通知',bages:0},
+        ],
+        allCount:0,
+        listQuery: {
+            source: 1,
+            commonId: 0,
+            messageType: '',
+            pageNum: 1,
+            pageSize: 10
+        },
+        noMore:false,
+        listRecord: 0,
+        pageInput: '1',
+        degree:'',
+        isCheckedAll:false,
+        messagesList:[],//新闻动态
+        check:false,
+        checklist:[],
+        msgId:'',
+    },
+    filters: {
+        NumBadge: function (n) {//处理
+            var num = '';
+            if (n > 100) {
+                num = 99
+            } else {
+                num = n;
+            }
+            return num;
+        }
+    },
+    computed: {
+        pageTotal: function () {
+            var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
+            return total > 0 ? total : 1;
+        },
+        showPageBtn: function () {
+            var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
+            total = total > 0 ? total : 1;
+            var index = this.listQuery.pageNum, arr = [];
+            if (total <= 6) {
+                for (var i = 1; i <= total; i++) {
+                    arr.push(i);
+                }
+                return arr;
+            }
+            if (index <= 3) return [1, 2, 3, 4, 5, 0, total];
+            if (index >= total - 2) return [1, 0, total - 4, total - 3, total - 2, total - 1, total];
+            return [1, 0, index - 2, index - 1, index, index + 1, index + 2, 0, total];
+        }
+    },
+    methods: {
+        toPagination: function (pageNum) {//点击切换分页
+            if (pageNum <= this.pageTotal) {
+                this.listQuery.pageNum = pageNum;
+                this. getAuthShopMessageList();
+            }
+        },
+        checkNum: function () {//输入跳转分页
+            if (this.pageInput > this.pageTotal) {
+                this.pageInput = this.pageTotal;
+            } else if (this.pageInput < 1) {
+                this.pageInput = 1;
+            }
+        },
+        changeTabsFn:function(index,messageType){//点击Tab切换消息通知
+            this.mssageTabBarIndex = index;
+            this.listQuery.messageType = messageType;
+            this.listQuery.pageNum = 1;
+            this.messagesList =[];
+            this. getAuthShopMessageList();
+        },
+        getAuthShopMessageCount:function(){//查询tabs数量
+            var _self = this;
+            SupplierApi.getAuthShopMessageCount({commonId:_self.listQuery.commonId},function (response) {
+                var data = response.data;
+                _self.mssageTabBar[0].bages = _self.allCount = data.count;
+                _self.mssageTabBar[1].bages = data.accountCount;
+                _self.mssageTabBar[2].bages = data.notificationCount;
+            })
+        },
+        getAuthShopMessageList:function(){
+            var _self = this;
+            SupplierApi.getAuthShopMessageList(_self.listQuery,function (response) {
+                if(response.code == 0){
+                    _self.isRequset = false;
+                    _self.isCheckedAll = false;
+                    var data = response.data;
+                    if (data.list.length>0){
+                        if(isPC){
+                            _self.messagesList = data.list.map(function (el) {
+                                el.check = false
+                                return el;
+                            });
+                        }else{
+                            var list = data.list.map(function (el) {
+                                el.check = false
+                                return el;
+                            });
+                            _self.messagesList = _self.messagesList.concat(list);
+                        }
+                        _self.listRecord =  data.total;
+                        _self.requestFlag = true;
+                    }else {
+                        _self.requestFlag = false;
+                        _self.listRecord =  data.total;
+                    }
+                }else{
+                    CAIMEI.Alert(response.msg, '确定', false);
+                    _self.requestFlag = false;
+                }
+            })
+        },
+        checkedContains(arr, val) {// 校验
+            return arr.some(item => item === val)
+        },
+        checkedItemFn:function(item){ //单选
+            var _self = this;
+            if(event.target.checked){
+                if(!_self.checkedContains(_self.checklist,item.id)){
+                    _self.checklist.push(item.id);
+                }
+            }else {
+                _self.checklist.splice(_self.checklist.indexOf(item.id), 1);
+            }
+            _self.msgId = _self.checklist.toString()+','
+            if(_self.checklist.length==_self.messagesList.length){
+                _self.isCheckedAll=true;
+            }else {
+                _self.isCheckedAll=false;
+            }
+        },
+        checkedAllFn: function () { //全選
+            var _self = this;
+            _self.isCheckedAll = !_self.isCheckedAll;
+            if (_self.isCheckedAll) {
+                _self.checklist = [];
+                _self.messagesList.forEach(function (item) {
+                    item.check = true;
+                    _self.checklist.push(item.id);
+                    _self.msgId = _self.checklist.toString()+','
+                })
+            }else{
+                _self.messagesList.forEach(function(item){
+                    item.check = false;
+                });
+                _self.checklist = [];
+                _self.msgId = ''
+            }
+        },
+        deleteMessageFn: function(){//删除消息
+            var _this =this;
+            if(this.allCount === 0){
+                CAIMEI.dialog('暂无消息');
+            }else if(_this.checklist.length==0){
+                CAIMEI.dialog('请勾选未读消息');
+            }else{
+                SupplierApi.authDeleteMessage({id:_this.msgId},function (res) {
+                    if (res.code==0){
+                        CAIMEI.dialog('刪除成功');
+                        setTimeout(function (){
+                            _this.getAuthShopMessageList();
+                        },500)
+                    }else {
+                        CAIMEI.Alert(res.msg, '确定', false);
+                    }
+                })
+            }
+        },
+        signMessageFn: function(){//标记为已读
+            var _this =this;
+            console.log(_this.checklist);
+            console.log(_this.msgId);
+            if(this.allCount === 0){
+                CAIMEI.dialog('暂无未读消息');
+            }else if(_this.checklist.length==0){
+                CAIMEI.dialog('请勾选未读消息');
+            }else {
+                SupplierApi.authUpdateRead({userType:2,Id:_this.msgId},function (res) {
+                    if(res.code==0){
+                        CAIMEI.dialog('标记已读成功');
+                        setTimeout(function (){
+                            _this.getAuthShopMessageCount();
+                            _this.getAuthShopMessageList();
+                        },500)
+                    }else {
+                        CAIMEI.Alert(res.msg, '确定', false);
+                    }
+                })
+            }
+        }
+    },
+    mounted: function () {
+        const _self = this;
+        if(globalUserData){
+            this.listQuery.commonId = globalUserData.shopId;
+            this.getAuthShopMessageCount();
+            this.getAuthShopMessageList();
+        }
+         if(!isPC){
+            $('footer').addClass("noneImportant");
+            //移动端上垃加载更多
+            $(window).on('scroll', function(){
+                var scrollTop = $(this).scrollTop();
+                var scrollHeight = $(document).height();
+                var windowHeight = window.innerHeight;
+                if (scrollTop + windowHeight >= scrollHeight) {
+                    //此处是滚动条到底部时候触发的事件,在这里写要加载的数据,或者是拉动滚动条的操作
+                    var totalPage = Math.ceil(_self.listRecord / _self.listQuery.pageSize)?Math.ceil(_self.listRecord / _self.listQuery.pageSize):1;
+                    var next = _self.listQuery.pageNum+1;
+                    if(next <= totalPage){
+                        if (_self.requestFlag){
+                            _self.listQuery.pageNum = next;
+                            // 获取列表数据
+                            _self.getAuthShopMessageList();
+                        }
+                        _self.requestFlag = false;
+                    }else{
+                        //到底了
+                        _self.noMore = true;
+                        $('footer').removeClass("noneImportant");
+                    }
+                }
+            });
+        }
+    }
+});

+ 63 - 63
src/main/resources/static/js/supplier-center/mixins/noticeMixin.js

@@ -1,63 +1,63 @@
-'use strict';
-var noticeMixin = function () {// 通知消息
-    return {
-        data(){
-            return{}
-        },
-        computed: {
-
-        },
-        mounted() {
-            var _this = this;
-            window.handleUsersClick  = this.handleUsersClick;
-        },
-        methods: {
-            hanldeNoticeText(cell){ // 根据tab计算返回显示文案
-                const $EventFunction = {
-                    2:this.noticeUsersText(cell),
-                    3:this.noticeServeText(cell),
-                }
-                return $EventFunction[cell.messageType]
-            },
-            noticeUsersText(cell) { // 账户通知文案
-                const linkMap = {
-                    3:`<span data-type="${cell.shopMessType}" data-id="${cell.productId}" class="link" onclick="handleUsersClick($(this))" class="link">编辑商品</span>`,
-                    5:`<span data-type="${cell.shopMessType}" data-id="${cell.productId}" class="link" onclick="handleUsersClick($(this))" class="link">上传</span>`
-                }
-                const map = {
-                    1: '您的注册信息已审核通过,恭喜您成为采美平台供应商用户。您可以上架商品到采美商城进行出售了。',
-                    2: `恭喜您(微信昵称:${cell.content})成功成为【${cell.shopName}】的运营人员。`,
-                    3: `商品”${cell.productName}“,上架审核未通过,暂时不能上架采美商城,请重新${linkMap[cell.shopMessType]}进行提交。`,
-                    4: `商品”${cell.productName}“,新品展示审核未通过,未能展示在采美商城新品橱窗。`,
-                    5: `商品”${cell.productName}“,该商品的资质证书将于${cell.content}后失效,请及时${linkMap[cell.shopMessType]}新证书。`,
-                    6: `恭喜您发布的采美百科词条“${cell.content}”审核已通过。`,
-                    7: `很遗憾!您发布的采美百科词条“${cell.content}”审核未通过,原因是“${cell.reasonContent}”,可前往电脑端“我的词条”进行修改后,重新提交审核。`,
-                    8: `恭喜您发布的采美文章“${cell.content}”审核已通过。`,
-                    9: `很遗憾!您发布的采美文章“${cell.content}”审核未通过,原因是“${cell.reasonContent}”,可前往电脑端“文章管理”进行修改后,重新提交审核。`
-                }
-                return map[cell.shopMessType]
-            },
-            noticeServeText(cell){//服务通知文案处理
-                const map = {
-                    1: `您的供应商账号上架费将于${cell.content},到期后将无法发布和编辑商品,同时也会影响到其他采美提供的支持服务。请联系采美工作人员进行续费请联系采美工作人员进行续费请联系采美工作人员进行续费,联系电话0755-22907771 或15338851365`
-                }
-                return map[cell.shopTieredType]
-            },
-            handleUsersClick($event){
-                let shopMessType  = Number($event[0].attributes[0].value);
-                let productId  = Number($event[0].attributes[1].value);
-                if(shopMessType === 1 || shopMessType === 2 || shopMessType === 4){
-                    return;
-                }
-                const linkJumpMap = {
-                    3:`/supplier/release.html?productId=${productId}&type=edit`,
-                    5:`/supplier/release.html?productId=${productId}&type=edit`,
-                }
-                window.open(linkJumpMap[shopMessType]);
-            },
-            handleServeClick($event){
-                console.log('服务通知跳转');
-            }
-        }
-    };
-}();
+'use strict';
+var noticeMixin = function () {// 通知消息
+    return {
+        data(){
+            return{}
+        },
+        computed: {
+
+        },
+        mounted() {
+            var _this = this;
+            window.handleUsersClick  = this.handleUsersClick;
+        },
+        methods: {
+            hanldeNoticeText(cell){ // 根据tab计算返回显示文案
+                const $EventFunction = {
+                    2:this.noticeUsersText(cell),
+                    3:this.noticeServeText(cell),
+                }
+                return $EventFunction[cell.messageType]
+            },
+            noticeUsersText(cell) { // 账户通知文案
+                const linkMap = {
+                    3:`<span data-type="${cell.shopMessType}" data-id="${cell.productId}" class="link" onclick="handleUsersClick($(this))" class="link">编辑商品</span>`,
+                    5:`<span data-type="${cell.shopMessType}" data-id="${cell.productId}" class="link" onclick="handleUsersClick($(this))" class="link">上传</span>`
+                }
+                const map = {
+                    1: '您的注册信息已审核通过,恭喜您成为采美平台供应商用户。您可以上架商品到采美商城进行出售了。',
+                    2: `恭喜您(微信昵称:${cell.content})成功成为【${cell.shopName}】的运营人员。`,
+                    3: `商品”${cell.productName}“,上架审核未通过,暂时不能上架采美商城,请重新${linkMap[cell.shopMessType]}进行提交。`,
+                    4: `商品”${cell.productName}“,新品展示审核未通过,未能展示在采美商城新品橱窗。`,
+                    5: `商品”${cell.productName}“,该商品的资质证书将于${cell.content}后失效,请及时${linkMap[cell.shopMessType]}新证书。`,
+                    6: `恭喜您发布的采美百科词条“${cell.content}”审核已通过。`,
+                    7: `很遗憾!您发布的采美百科词条“${cell.content}”审核未通过,原因是“${cell.reasonContent}”,可前往电脑端“我的词条”进行修改后,重新提交审核。`,
+                    8: `恭喜您发布的采美文章“${cell.content}”审核已通过。`,
+                    9: `很遗憾!您发布的采美文章“${cell.content}”审核未通过,原因是“${cell.reasonContent}”,可前往电脑端“文章管理”进行修改后,重新提交审核。`
+                }
+                return map[cell.shopMessType]
+            },
+            noticeServeText(cell){//服务通知文案处理
+                const map = {
+                    1: `您的供应商账号上架费将于${cell.content},到期后将无法发布和编辑商品,同时也会影响到其他采美提供的支持服务。请联系采美工作人员进行续费请联系采美工作人员进行续费请联系采美工作人员进行续费,联系电话0755-22907771 或15338851365`
+                }
+                return map[cell.shopTieredType]
+            },
+            handleUsersClick($event){
+                let shopMessType  = Number($event[0].attributes[0].value);
+                let productId  = Number($event[0].attributes[1].value);
+                if(shopMessType === 1 || shopMessType === 2 || shopMessType === 4){
+                    return;
+                }
+                const linkJumpMap = {
+                    3:`/supplier/release.html?productId=${productId}&type=edit`,
+                    5:`/supplier/release.html?productId=${productId}&type=edit`,
+                }
+                window.open(linkJumpMap[shopMessType]);
+            },
+            handleServeClick($event){
+                console.log('服务通知跳转');
+            }
+        }
+    };
+}();

+ 246 - 242
src/main/resources/static/js/user-center/message.js

@@ -1,242 +1,246 @@
-;
-var helpSuggestion = new Vue({
-    el: "#dashboard",
-    mixins: [noticeMixin,cmSysVitaMixins],
-    data: {
-        btnLoading: false,
-        isRequset:true,
-        mssageTabBarIndex:0,
-        mssageTabBar: [
-            {messageType: '',text: '全部消息',bages:0},
-            {messageType: 1,text: '交易物流',bages:0},
-            {messageType: 2,text: '账户通知',bages:0},
-            {messageType: 3,text: '服务通知',bages:0},
-            {messageType: 4,text: '优惠促销',bages:0},
-        ],
-        allCount:0,
-        listQuery: {
-            source: 1,
-            commonId: 0,
-            messageType: '',
-            pageNum: 1,
-            pageSize: 10
-        },
-        noMore:false,
-        listRecord: 0,
-        pageInput: '1',
-        degree:'',
-        isCheckedAll:false,
-        messagesList:[],//消息列表
-        check:false,
-        checklist:[],
-        msgId:'',
-    },
-    filters: {
-        NumBadge: function (n) {//处理
-            var num = '';
-            if (n > 100) {
-                num = 99
-            } else {
-                num = n;
-            }
-            return num;
-        }
-    },
-    computed: {
-        pageTotal: function () {
-            var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
-            return total > 0 ? total : 1;
-        },
-        showPageBtn: function () {
-            var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
-            total = total > 0 ? total : 1;
-            var index = this.listQuery.pageNum, arr = [];
-            if (total <= 6) {
-                for (var i = 1; i <= total; i++) {
-                    arr.push(i);
-                }
-                return arr;
-            }
-            if (index <= 3) return [1, 2, 3, 4, 5, 0, total];
-            if (index >= total - 2) return [1, 0, total - 4, total - 3, total - 2, total - 1, total];
-            return [1, 0, index - 2, index - 1, index, index + 1, index + 2, 0, total];
-        }
-    },
-    methods: {
-         toPagination: function (pageNum) {//点击切换分页
-            if (pageNum <= this.pageTotal) {
-                this.listQuery.pageNum = pageNum;
-                this. getAuthClubMessageList();
-            }
-        },
-        checkNum: function () {//输入跳转分页
-            if (this.pageInput > this.pageTotal) {
-                this.pageInput = this.pageTotal;
-            } else if (this.pageInput < 1) {
-                this.pageInput = 1;
-            }
-        },
-        changeTabsFn:function(index,messageType){//点击Tab切换消息通知
-            this.mssageTabBarIndex = index;
-            this.listQuery.messageType = messageType;
-            this.listQuery.pageNum = 1;
-            this.messagesList = [];
-            this. getAuthClubMessageList();
-        },
-        getAuthClubMessageCount:function(){//查询tabs数量
-            var _self = this;
-            UserApi.getAuthClubMessageCount({commonId:_self.listQuery.commonId},function (response) {
-                var data = response.data;
-                _self.mssageTabBar[0].bages = _self.allCount = data.count;
-                _self.mssageTabBar[1].bages = data.tradeCount;
-                _self.mssageTabBar[2].bages = data.account;
-                _self.mssageTabBar[3].bages = data.notificationCount;
-                _self.mssageTabBar[4].bages = data.promotionCount;
-            })
-        },
-        getAuthClubMessageList:function(){
-            var _self = this;
-            UserApi.getAuthClubMessageList(_self.listQuery,function (response) {
-                if(response.code == 0){
-                    _self.isRequset = false;
-                    _self.isCheckedAll = false;
-                    var data = response.data;
-                    if (data.list.length>0){
-                        if(isPC){
-                            _self.messagesList = data.list.map(function (el) {
-                                el.check = false
-                                return el;
-                            });
-                        }else{
-                            var list = data.list.map(function (el) {
-                                el.check = false
-                                return el;
-                            });
-                            _self.messagesList = _self.messagesList.concat(list);
-                        }
-                         _self.listRecord =  data.total;
-                         _self.requestFlag = true;
-                     }else {
-                        _self.requestFlag = false;
-                        _self.listRecord =  data.total;
-                     }
-                }else{
-                    CAIMEI.Alert(response.msg, '确定', false);
-                    _self.requestFlag = false;
-                }
-            })
-        },
-        checkedContains(arr, val) {// 校验
-            return arr.some(item => item === val)
-        },
-        checkedItemFn:function(item){ //单选
-            var _self = this;
-            if(event.target.checked){
-                if(!_self.checkedContains(_self.checklist,item.id)){
-                    _self.checklist.push(item.id);
-                }
-            }else {
-              _self.checklist.splice(_self.checklist.indexOf(item.id), 1);
-            }
-            _self.msgId = _self.checklist.toString()+','
-            if(_self.checklist.length==_self.messagesList.length){
-                _self.isCheckedAll=true;
-            }else {
-               _self.isCheckedAll=false;
-            }
-        },
-        checkedAllFn: function () { //全選
-            var _self = this;
-            _self.isCheckedAll = !_self.isCheckedAll;
-            if (_self.isCheckedAll) {
-                _self.checklist = [];
-                _self.messagesList.forEach(function (item) {
-                         item.check = true;
-                         _self.checklist.push(item.id);
-                         _self.msgId = _self.checklist.toString()+','
-                    })
-            }else{
-                 _self.messagesList.forEach(function(item){
-                      item.check = false;
-                });
-                _self.checklist = [];
-                _self.msgId = ''
-            }
-        },
-        deleteMessageFn: function(){//删除消息
-             var _this =this;
-            if(this.allCount === 0){
-                CAIMEI.dialog('暂无消息');
-            }else if(_this.checklist.length==0){
-                CAIMEI.dialog('请勾选未读消息');
-            }else{
-                UserApi.authDeleteMessage({id:_this.msgId},function (res) {
-                    if (res.code==0){
-                      CAIMEI.dialog('刪除成功');
-                      setTimeout(function (){
-                          _this.getAuthClubMessageList();
-                      },500)
-                    }else {
-                      CAIMEI.Alert(res.msg, '确定', false);
-                    }
-                })
-             }
-        },
-        signMessageFn: function(){//标记为已读
-          var _this =this;
-            console.log(_this.checklist);
-            console.log(_this.msgId);
-            if(this.allCount === 0){
-                CAIMEI.dialog('暂无未读消息');
-            }else if(_this.checklist.length==0){
-                CAIMEI.dialog('请勾选未读消息');
-            }else {
-                UserApi.authUpdateRead({userType:1,Id:_this.msgId},function (res) {
-                    if(res.code==0){
-                        CAIMEI.dialog('标记已读成功');
-                        setTimeout(function (){
-                            _this.getAuthClubMessageCount();
-                            _this.getAuthClubMessageList();
-                        },500)
-                    }else {
-                        CAIMEI.Alert(res.msg, '确定', false);
-                    }
-                })
-            }
-        }
-    },
-    mounted: function () {
-        var _self=this;
-        if(globalUserData){
-            this.listQuery.commonId = globalUserData.clubId;
-            this.getAuthClubMessageCount()
-            this.getAuthClubMessageList();
-        }
-        if(!isPC){
-            $('footer').addClass("noneImportant");
-            //移动端上垃加载更多
-            $(window).on('scroll', function(){
-                var scrollTop = $(this).scrollTop();
-                var scrollHeight = $(document).height();
-                var windowHeight = window.innerHeight;
-                if (scrollTop + windowHeight >= scrollHeight) {
-                    //此处是滚动条到底部时候触发的事件,在这里写要加载的数据,或者是拉动滚动条的操作
-                    var totalPage = Math.ceil(_self.listRecord / _self.listQuery.pageSize)?Math.ceil(_self.listRecord / _self.listQuery.pageSize):1;
-                    var next = _self.listQuery.pageNum+1;
-                    if(next <= totalPage){
-                        if (_self.requestFlag){
-                            _self.listQuery.pageNum = next;
-                            // 获取列表数据
-                            _self.getAuthClubMessageList();
-                        }
-                        _self.requestFlag = false;
-                    }else{
-                        //到底了
-                        _self.noMore = true;
-                        $('footer').removeClass("noneImportant");
-                    }
-                }
-            });
-        }
-    }
-});
+;
+var helpSuggestion = new Vue({
+    el: "#dashboard",
+    mixins: [noticeMixin,cmSysVitaMixins],
+    data: {
+        btnLoading: false,
+        isRequset:true,
+        mssageTabBarIndex:0,
+        mssageTabBar: [
+            {messageType: '',text: '全部消息',bages:0},
+            {messageType: 1,text: '交易物流',bages:0},
+            {messageType: 2,text: '账户通知',bages:0},
+            {messageType: 3,text: '服务通知',bages:0},
+            {messageType: 4,text: '优惠促销',bages:0},
+            {messageType: 5,text: '最新文章',bages:0},
+            {messageType: 6,text: '最新活动',bages:0},
+        ],
+        allCount:0,
+        listQuery: {
+            source: 1,
+            commonId: 0,
+            messageType: '',
+            pageNum: 1,
+            pageSize: 10
+        },
+        noMore:false,
+        listRecord: 0,
+        pageInput: '1',
+        degree:'',
+        isCheckedAll:false,
+        messagesList:[],//消息列表
+        check:false,
+        checklist:[],
+        msgId:'',
+    },
+    filters: {
+        NumBadge: function (n) {//处理
+            var num = '';
+            if (n > 100) {
+                num = 99
+            } else {
+                num = n;
+            }
+            return num;
+        }
+    },
+    computed: {
+        pageTotal: function () {
+            var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
+            return total > 0 ? total : 1;
+        },
+        showPageBtn: function () {
+            var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
+            total = total > 0 ? total : 1;
+            var index = this.listQuery.pageNum, arr = [];
+            if (total <= 6) {
+                for (var i = 1; i <= total; i++) {
+                    arr.push(i);
+                }
+                return arr;
+            }
+            if (index <= 3) return [1, 2, 3, 4, 5, 0, total];
+            if (index >= total - 2) return [1, 0, total - 4, total - 3, total - 2, total - 1, total];
+            return [1, 0, index - 2, index - 1, index, index + 1, index + 2, 0, total];
+        }
+    },
+    methods: {
+         toPagination: function (pageNum) {//点击切换分页
+            if (pageNum <= this.pageTotal) {
+                this.listQuery.pageNum = pageNum;
+                this. getAuthClubMessageList();
+            }
+        },
+        checkNum: function () {//输入跳转分页
+            if (this.pageInput > this.pageTotal) {
+                this.pageInput = this.pageTotal;
+            } else if (this.pageInput < 1) {
+                this.pageInput = 1;
+            }
+        },
+        changeTabsFn:function(index,messageType){//点击Tab切换消息通知
+            this.mssageTabBarIndex = index;
+            this.listQuery.messageType = messageType;
+            this.listQuery.pageNum = 1;
+            this.messagesList = [];
+            this. getAuthClubMessageList();
+        },
+        getAuthClubMessageCount:function(){//查询tabs数量
+            var _self = this;
+            UserApi.getAuthClubMessageCount({commonId:_self.listQuery.commonId},function (response) {
+                var data = response.data;
+                _self.mssageTabBar[0].bages = _self.allCount = data.count;
+                _self.mssageTabBar[1].bages = data.tradeCount;
+                _self.mssageTabBar[2].bages = data.account;
+                _self.mssageTabBar[3].bages = data.notificationCount;
+                _self.mssageTabBar[4].bages = data.promotionCount;
+                _self.mssageTabBar[5].bages = data.infoCount;
+                _self.mssageTabBar[6].bages = data.activityCount;
+            })
+        },
+        getAuthClubMessageList:function(){
+            var _self = this;
+            UserApi.getAuthClubMessageList(_self.listQuery,function (response) {
+                if(response.code == 0){
+                    _self.isRequset = false;
+                    _self.isCheckedAll = false;
+                    var data = response.data;
+                    if (data.list.length>0){
+                        if(isPC){
+                            _self.messagesList = data.list.map(function (el) {
+                                el.check = false
+                                return el;
+                            });
+                        }else{
+                            var list = data.list.map(function (el) {
+                                el.check = false
+                                return el;
+                            });
+                            _self.messagesList = _self.messagesList.concat(list);
+                        }
+                         _self.listRecord =  data.total;
+                         _self.requestFlag = true;
+                     }else {
+                        _self.requestFlag = false;
+                        _self.listRecord =  data.total;
+                     }
+                }else{
+                    CAIMEI.Alert(response.msg, '确定', false);
+                    _self.requestFlag = false;
+                }
+            })
+        },
+        checkedContains(arr, val) {// 校验
+            return arr.some(item => item === val)
+        },
+        checkedItemFn:function(item){ //单选
+            var _self = this;
+            if(event.target.checked){
+                if(!_self.checkedContains(_self.checklist,item.id)){
+                    _self.checklist.push(item.id);
+                }
+            }else {
+              _self.checklist.splice(_self.checklist.indexOf(item.id), 1);
+            }
+            _self.msgId = _self.checklist.toString()+','
+            if(_self.checklist.length==_self.messagesList.length){
+                _self.isCheckedAll=true;
+            }else {
+               _self.isCheckedAll=false;
+            }
+        },
+        checkedAllFn: function () { //全選
+            var _self = this;
+            _self.isCheckedAll = !_self.isCheckedAll;
+            if (_self.isCheckedAll) {
+                _self.checklist = [];
+                _self.messagesList.forEach(function (item) {
+                         item.check = true;
+                         _self.checklist.push(item.id);
+                         _self.msgId = _self.checklist.toString()+','
+                    })
+            }else{
+                 _self.messagesList.forEach(function(item){
+                      item.check = false;
+                });
+                _self.checklist = [];
+                _self.msgId = ''
+            }
+        },
+        deleteMessageFn: function(){//删除消息
+             var _this =this;
+            if(this.allCount === 0){
+                CAIMEI.dialog('暂无消息');
+            }else if(_this.checklist.length==0){
+                CAIMEI.dialog('请勾选未读消息');
+            }else{
+                UserApi.authDeleteMessage({id:_this.msgId},function (res) {
+                    if (res.code==0){
+                      CAIMEI.dialog('刪除成功');
+                      setTimeout(function (){
+                          _this.getAuthClubMessageList();
+                      },500)
+                    }else {
+                      CAIMEI.Alert(res.msg, '确定', false);
+                    }
+                })
+             }
+        },
+        signMessageFn: function(){//标记为已读
+          var _this =this;
+            console.log(_this.checklist);
+            console.log(_this.msgId);
+            if(this.allCount === 0){
+                CAIMEI.dialog('暂无未读消息');
+            }else if(_this.checklist.length==0){
+                CAIMEI.dialog('请勾选未读消息');
+            }else {
+                UserApi.authUpdateRead({userType:1,Id:_this.msgId},function (res) {
+                    if(res.code==0){
+                        CAIMEI.dialog('标记已读成功');
+                        setTimeout(function (){
+                            _this.getAuthClubMessageCount();
+                            _this.getAuthClubMessageList();
+                        },500)
+                    }else {
+                        CAIMEI.Alert(res.msg, '确定', false);
+                    }
+                })
+            }
+        }
+    },
+    mounted: function () {
+        var _self=this;
+        if(globalUserData){
+            this.listQuery.commonId = globalUserData.clubId;
+            this.getAuthClubMessageCount()
+            this.getAuthClubMessageList();
+        }
+        if(!isPC){
+            $('footer').addClass("noneImportant");
+            //移动端上垃加载更多
+            $(window).on('scroll', function(){
+                var scrollTop = $(this).scrollTop();
+                var scrollHeight = $(document).height();
+                var windowHeight = window.innerHeight;
+                if (scrollTop + windowHeight >= scrollHeight) {
+                    //此处是滚动条到底部时候触发的事件,在这里写要加载的数据,或者是拉动滚动条的操作
+                    var totalPage = Math.ceil(_self.listRecord / _self.listQuery.pageSize)?Math.ceil(_self.listRecord / _self.listQuery.pageSize):1;
+                    var next = _self.listQuery.pageNum+1;
+                    if(next <= totalPage){
+                        if (_self.requestFlag){
+                            _self.listQuery.pageNum = next;
+                            // 获取列表数据
+                            _self.getAuthClubMessageList();
+                        }
+                        _self.requestFlag = false;
+                    }else{
+                        //到底了
+                        _self.noMore = true;
+                        $('footer').removeClass("noneImportant");
+                    }
+                }
+            });
+        }
+    }
+});

+ 183 - 160
src/main/resources/static/js/user-center/mixins/noticeMixin.js

@@ -1,160 +1,183 @@
-'use strict';
-var noticeMixin = function () {// 通知消息
-    return {
-        data(){
-            return{}
-        },
-        computed: {
-
-        },
-        mounted() {
-            var _this = this;
-            window.handleOrderClick  = this.handleOrderClick;
-            window.handleUsersClick  = this.handleUsersClick;
-            window.handleCouponClick  = this.handleCouponClick;
-        },
-        methods: {
-            hanldeNoticeText(cell){ // 根据tab计算返回显示文案
-                const $EventFunction = {
-                    1:this.noticeOrderText(cell),
-                    2:this.noticeUsersText(cell),
-                    3:this.noticeServeText(cell),
-                    4:this.noticeCouponText(cell)
-                }
-                return $EventFunction[cell.messageType]
-            },
-            noticeOrderText(cell) { // 交易物流通知文案
-                const linkMap = {
-                        1:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))">立即支付</span>`,
-                        2:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))" >查看订单</span>`,
-                        3:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))">查看订单</span>`,
-                        4:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))">查看订单</span>`,
-                        5:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))">查看物流</span>`,
-                        6:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))">查看订单</span>`
-                }
-                const map = {
-                    1: `您已成功下单"${cell.productName}"等${cell.productCount}种商品,订单等待支付,点击${linkMap[cell.orderMessageType]}进行付款,支付完成后采美将尽快安排发货。`,
-                    2: `订单(${cell.productName}"等${cell.productCount}种商品)已支付完成,将立即安排发货,点击${linkMap[cell.orderMessageType]}查看订单详情`,
-                    3: `订单(${cell.productName}"等${cell.productCount}种商品)已${cell.refundType === 1 ? '部分退' : '全部退'}款/货成功,退款金额¥${cell.content},金额到账时间可能存在延迟,具体以支付方通知为准。点击${linkMap[cell.orderMessageType]}查看退款详情`,
-                    4: `订单(${cell.productName}"等${cell.productCount}种商品)${cell.content},点击${linkMap[cell.orderMessageType]}查看订单详情`,
-                    5: `订单(${cell.productName}"等${cell.productCount}种商品)已发货,点击${linkMap[cell.orderMessageType]}查看物流详情`,
-                    6: `订单(${cell.productName}"等${cell.productCount}种商品)因超时已被系统自动收货,点击${linkMap[cell.orderMessageType]}查看订单详情`,
-                }
-                return map[cell.orderMessageType]
-            },
-            noticeUsersText(cell) { // 账户通知文案
-                const linkMap = {
-                    2:`<span data-type="${cell.accountType}" class="link" onclick="handleUsersClick($(this))">会员中心</span>`,
-                    3:`<span data-type="${cell.accountType}" class="link" onclick="handleUsersClick($(this))">会员中心</span>`,
-                    4:`<span data-type="${cell.accountType}" class="link" onclick="handleUsersClick($(this))">会员中心</span>`,
-                    6:`<span data-type="${cell.accountType}" class="link" onclick="handleUsersClick($(this))">修改资料</span>`
-                }
-                const map = {
-                    1: '欢迎成为采美机构用户,祝您开启愉快的采购之旅。',
-                    2: `您已成功购买${cell.content}采美平台超级会员服务,在服务期内每月可领多张大额优惠券,还有更多超级会员专属权益等您体验,点击${linkMap[cell.accountType]}去体验吧。`,
-                    3: `您的超级会员服务将于${cell.content}到期,到期后将无法享受专属会员权益,赶快去${linkMap[cell.accountType]}续费吧 。`,
-                    4: `您已获得采美平台赠送的${cell.content}超级会员,在服务期内每月可领多张大额优惠券,还有更多超级会员专属权益等您体验,点击${linkMap[cell.accountType]}去体验吧。`,
-                    5: '恭喜您成功升级为资质机构用户!现在可以查看更多商品的信息啦,采美平台也将为您提供更多专业服务。',
-                    6: `您的账号升级资质机构失败!点击${linkMap[cell.accountType]}重新提交吧。`,
-                    7: `恭喜您(微信昵称:${cell.content})成功成为机构运营人员,祝您开启愉快的采购之旅。`
-                }
-                return map[cell.accountType]
-            },
-            noticeCouponText(cell) { // 优惠促销通知文案
-                const linkMap = {
-                    1:`<span data-type="${cell.couponMessageType}" class="link" onclick="handleCouponClick($(this))">领券中心</span>`,
-                    2:`<span data-type="${cell.couponMessageType}" class="link" onclick="handleCouponClick($(this))">优惠券中心</span>`,
-                    3:`<span data-type="${cell.couponMessageType}" class="link" onclick="handleCouponClick($(this))">领券中心</span>`,
-                }
-                const copunMap = {
-                    0: `采美平台送您${cell.couponFee}元优惠券,众多大牌正品等着您,赶快去${linkMap[cell.couponMessageType]}领取下单吧。`,
-                    1: `采美平台${cell.content}类商品大优惠,特送您${cell.couponFee}元优惠券,赶快去${linkMap[cell.couponMessageType]}领取下单吧。`,
-                    2: `为了答谢您对采美平台的支持,采美送您${cell.couponFee}元优惠券,赶快去${linkMap[cell.couponMessageType]}领取下单吧。`,
-                    3: `【${cell.content}】赠送您${cell.couponFee}元的店铺专属优惠券,众多火爆商品等您来!赶快去${linkMap[cell.couponMessageType]}领取下单吧。`,
-                    4: `恭喜成功注册采美平台,现赠送您${cell.couponFee}元新用户优惠券,赶快去${linkMap[cell.couponMessageType]}领取下单吧。`,
-                }
-                const map = {
-                    1: copunMap[cell.couponType],
-                    2: `您有${cell.couponFee}元优惠券将于${cell.content}过期,赶快去${linkMap[cell.couponMessageType]}查看使用吧。`,
-                    3: `您有${cell.couponFee}元优惠券尚未领取,优惠券将于${cell.content}后下架,赶快去${linkMap[cell.couponMessageType]}领取下单吧0`,
-
-                }
-                return map[cell.couponMessageType]
-            },
-            noticeServeText(cell){//服务通知文案处理
-                if (cell.shopTieredType > 4) {
-                    const map = {
-                        5: '采美平台已为您匹配专属客户经理,为您提供专业咨询服务。',
-                        6: '因公司内部人员调整需要,采美平台已为您更换了新客户经理。',
-                    }
-                    return map[cell.shopTieredType]
-                }
-            },
-            handleOrderClick($event){// 订单点击事件
-                let orderMessageType  = Number($event[0].attributes[0].value);
-                let orderId  = Number($event[0].attributes[1].value);
-                let status  = Number($event[0].attributes[2].value);
-                let onlinePayFlag  = Number($event[0].attributes[3].value);
-                let statusVal = [ { val: [11, 12, 13, 21, 22, 23, 111], status: true }];
-                let isOnliyPay = false;
-                statusVal.forEach(el => {
-                    el.val.forEach(value => {
-                        if (status === value) {
-                            isOnliyPay = el.status
-                        }
-                    })
-                })
-                if(orderMessageType === 1){
-                    if(!isOnliyPay){
-                        CAIMEI.dialog('订单已完成支付',false);
-                    }else{
-                        let payLinkMap = {
-                            0:'/pay/caimei-paylist.html?orderId='+orderId,
-                            1:'/pay/caimei-payunder.html?orderId='+orderId,
-                        }
-                        let linkJumpMap = {
-                            1:payLinkMap[onlinePayFlag]
-                        }
-                        window.open(linkJumpMap[orderMessageType]);
-                    }
-                }else{
-                    let linkJumpMap = {
-                        2:'/user/order/detail.html?orderId='+orderId,
-                        3:'/user/order/detail.html?orderId='+orderId,
-                        4:'/user/order/detail.html?orderId='+orderId,
-                        5:'/user/order/logistics.html?orderId='+orderId,
-                        6:'/user/order/detail.html?orderId='+orderId
-                    }
-                    window.open(linkJumpMap[orderMessageType]);
-                }
-            },
-            handleUsersClick($event){
-                console.log('账户通知跳转');
-                const accountType  = Number($event[0].attributes[0].value);
-                if(accountType === 1 || accountType === 5 || accountType === 7){
-                    return;
-                }
-                const linkJumpMap = {
-                    2:'/user/member.html',
-                    3:'/user/member.html',
-                    4:'/user/member.html',
-                    6:'/user/setting/upgrade.html',
-                }
-                window.open(linkJumpMap[accountType]);
-            },
-            handleServeClick($event){
-                console.log('服务通知跳转');
-            },
-            handleCouponClick($event){
-                console.log('优惠促销通知跳转');
-                const couponMessageType  = Number($event[0].attributes[0].value);
-                const linkJumpMap = {
-                    1:`/user/coupon-collection.html`,
-                    2:`/user/coupon-collection.html`,
-                    3:`/user/coupon.html`,
-                }
-                window.open(linkJumpMap[couponMessageType]);
-            },
-        }
-    };
-}();
+'use strict';
+var noticeMixin = function () {// 通知消息
+    return {
+        data(){
+            return{}
+        },
+        computed: {
+
+        },
+        mounted() {
+            var _this = this;
+            window.handleOrderClick  = this.handleOrderClick;
+            window.handleUsersClick  = this.handleUsersClick;
+            window.handleCouponClick  = this.handleCouponClick;
+            window.handleArticleClick = this.handleArticleClick;
+            window.handleActivityClick = this.handleActivityClick;
+        },
+        methods: {
+            hanldeNoticeText(cell){ // 根据tab计算返回显示文案
+                const $EventFunction = {
+                    1:this.noticeOrderText(cell),
+                    2:this.noticeUsersText(cell),
+                    3:this.noticeServeText(cell),
+                    4:this.noticeCouponText(cell),
+                    5: this.noticeArticleText(cell),
+                    6: this.noticeActivityText(cell)
+                }
+                return $EventFunction[cell.messageType]
+            },
+            noticeOrderText(cell) { // 交易物流通知文案
+                const linkMap = {
+                        1:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))">立即支付</span>`,
+                        2:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))" >查看订单</span>`,
+                        3:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))">查看订单</span>`,
+                        4:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))">查看订单</span>`,
+                        5:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))">查看物流</span>`,
+                        6:`<span data-type="${cell.orderMessageType}" data-orderId="${cell.orderId}" data-status="${cell.status}" data-onlinePayFlag="${cell.onlinePayFlag}" class="link" onclick="handleOrderClick($(this))">查看订单</span>`
+                }
+                const map = {
+                    1: `您已成功下单"${cell.productName}"等${cell.productCount}种商品,订单等待支付,点击${linkMap[cell.orderMessageType]}进行付款,支付完成后采美将尽快安排发货。`,
+                    2: `订单(${cell.productName}"等${cell.productCount}种商品)已支付完成,将立即安排发货,点击${linkMap[cell.orderMessageType]}查看订单详情`,
+                    3: `订单(${cell.productName}"等${cell.productCount}种商品)已${cell.refundType === 1 ? '部分退' : '全部退'}款/货成功,退款金额¥${cell.content},金额到账时间可能存在延迟,具体以支付方通知为准。点击${linkMap[cell.orderMessageType]}查看退款详情`,
+                    4: `订单(${cell.productName}"等${cell.productCount}种商品)${cell.content},点击${linkMap[cell.orderMessageType]}查看订单详情`,
+                    5: `订单(${cell.productName}"等${cell.productCount}种商品)已发货,点击${linkMap[cell.orderMessageType]}查看物流详情`,
+                    6: `订单(${cell.productName}"等${cell.productCount}种商品)因超时已被系统自动收货,点击${linkMap[cell.orderMessageType]}查看订单详情`,
+                }
+                return map[cell.orderMessageType]
+            },
+            noticeUsersText(cell) { // 账户通知文案
+                const linkMap = {
+                    2:`<span data-type="${cell.accountType}" class="link" onclick="handleUsersClick($(this))">会员中心</span>`,
+                    3:`<span data-type="${cell.accountType}" class="link" onclick="handleUsersClick($(this))">会员中心</span>`,
+                    4:`<span data-type="${cell.accountType}" class="link" onclick="handleUsersClick($(this))">会员中心</span>`,
+                    6:`<span data-type="${cell.accountType}" class="link" onclick="handleUsersClick($(this))">修改资料</span>`
+                }
+                const map = {
+                    1: '欢迎成为采美机构用户,祝您开启愉快的采购之旅。',
+                    2: `您已成功购买${cell.content}采美平台超级会员服务,在服务期内每月可领多张大额优惠券,还有更多超级会员专属权益等您体验,点击${linkMap[cell.accountType]}去体验吧。`,
+                    3: `您的超级会员服务将于${cell.content}到期,到期后将无法享受专属会员权益,赶快去${linkMap[cell.accountType]}续费吧 。`,
+                    4: `您已获得采美平台赠送的${cell.content}超级会员,在服务期内每月可领多张大额优惠券,还有更多超级会员专属权益等您体验,点击${linkMap[cell.accountType]}去体验吧。`,
+                    5: '恭喜您成功升级为资质机构用户!现在可以查看更多商品的信息啦,采美平台也将为您提供更多专业服务。',
+                    6: `您的账号升级资质机构失败!点击${linkMap[cell.accountType]}重新提交吧。`,
+                    7: `恭喜您(微信昵称:${cell.content})成功成为机构运营人员,祝您开启愉快的采购之旅。`
+                }
+                return map[cell.accountType]
+            },
+            noticeCouponText(cell) { // 优惠促销通知文案
+                const linkMap = {
+                    1:`<span data-type="${cell.couponMessageType}" class="link" onclick="handleCouponClick($(this))">领券中心</span>`,
+                    2:`<span data-type="${cell.couponMessageType}" class="link" onclick="handleCouponClick($(this))">优惠券中心</span>`,
+                    3:`<span data-type="${cell.couponMessageType}" class="link" onclick="handleCouponClick($(this))">领券中心</span>`,
+                }
+                const copunMap = {
+                    0: `采美平台送您${cell.couponFee}元优惠券,众多大牌正品等着您,赶快去${linkMap[cell.couponMessageType]}领取下单吧。`,
+                    1: `采美平台${cell.content}类商品大优惠,特送您${cell.couponFee}元优惠券,赶快去${linkMap[cell.couponMessageType]}领取下单吧。`,
+                    2: `为了答谢您对采美平台的支持,采美送您${cell.couponFee}元优惠券,赶快去${linkMap[cell.couponMessageType]}领取下单吧。`,
+                    3: `【${cell.content}】赠送您${cell.couponFee}元的店铺专属优惠券,众多火爆商品等您来!赶快去${linkMap[cell.couponMessageType]}领取下单吧。`,
+                    4: `恭喜成功注册采美平台,现赠送您${cell.couponFee}元新用户优惠券,赶快去${linkMap[cell.couponMessageType]}领取下单吧。`,
+                }
+                const map = {
+                    1: copunMap[cell.couponType],
+                    2: `您有${cell.couponFee}元优惠券将于${cell.content}过期,赶快去${linkMap[cell.couponMessageType]}查看使用吧。`,
+                    3: `您有${cell.couponFee}元优惠券尚未领取,优惠券将于${cell.content}后下架,赶快去${linkMap[cell.couponMessageType]}领取下单吧0`,
+
+                }
+                return map[cell.couponMessageType]
+            },
+            noticeServeText(cell){//服务通知文案处理
+                if (cell.shopTieredType > 4) {
+                    const map = {
+                        5: '采美平台已为您匹配专属客户经理,为您提供专业咨询服务。',
+                        6: '因公司内部人员调整需要,采美平台已为您更换了新客户经理。',
+                    }
+                    return map[cell.shopTieredType]
+                }
+            },
+            noticeArticleText(cell) { // 最新文章
+                const link = `<span data-id="${cell.thisId}" class="link" onclick="handleArticleClick($(this))">点击查看</span>`
+                return `${link}${cell.content}`
+            },
+            noticeActivityText(cell) { // 最新活动
+                const activityLink = isPC ? cell.pcLink : cell.appLink
+                const link = `<span data-link="${activityLink}" class="link" onclick="handleActivityClick($(this))">点击查看</span>`
+                return `${link}${cell.content}`
+            },
+            handleOrderClick($event){// 订单点击事件
+                let orderMessageType  = Number($event[0].attributes[0].value);
+                let orderId  = Number($event[0].attributes[1].value);
+                let status  = Number($event[0].attributes[2].value);
+                let onlinePayFlag  = Number($event[0].attributes[3].value);
+                let statusVal = [ { val: [11, 12, 13, 21, 22, 23, 111], status: true }];
+                let isOnliyPay = false;
+                statusVal.forEach(el => {
+                    el.val.forEach(value => {
+                        if (status === value) {
+                            isOnliyPay = el.status
+                        }
+                    })
+                })
+                if(orderMessageType === 1){
+                    if(!isOnliyPay){
+                        CAIMEI.dialog('订单已完成支付',false);
+                    }else{
+                        let payLinkMap = {
+                            0:'/pay/caimei-paylist.html?orderId='+orderId,
+                            1:'/pay/caimei-payunder.html?orderId='+orderId,
+                        }
+                        let linkJumpMap = {
+                            1:payLinkMap[onlinePayFlag]
+                        }
+                        window.open(linkJumpMap[orderMessageType]);
+                    }
+                }else{
+                    let linkJumpMap = {
+                        2:'/user/order/detail.html?orderId='+orderId,
+                        3:'/user/order/detail.html?orderId='+orderId,
+                        4:'/user/order/detail.html?orderId='+orderId,
+                        5:'/user/order/logistics.html?orderId='+orderId,
+                        6:'/user/order/detail.html?orderId='+orderId
+                    }
+                    window.open(linkJumpMap[orderMessageType]);
+                }
+            },
+            handleUsersClick($event){
+                console.log('账户通知跳转');
+                const accountType  = Number($event[0].attributes[0].value);
+                if(accountType === 1 || accountType === 5 || accountType === 7){
+                    return;
+                }
+                const linkJumpMap = {
+                    2:'/user/member.html',
+                    3:'/user/member.html',
+                    4:'/user/member.html',
+                    6:'/user/setting/upgrade.html',
+                }
+                window.open(linkJumpMap[accountType]);
+            },
+            handleServeClick($event){
+                console.log('服务通知跳转');
+            },
+            handleCouponClick($event){
+                console.log('优惠促销通知跳转');
+                const couponMessageType  = Number($event[0].attributes[0].value);
+                const linkJumpMap = {
+                    1:`/user/coupon-collection.html`,
+                    2:`/user/coupon-collection.html`,
+                    3:`/user/coupon.html`,
+                }
+                window.open(linkJumpMap[couponMessageType]);
+            },
+            handleArticleClick($event) {
+                const id = Number($event[0].attributes[0].value);
+                window.open(`/info/detail-${id}-1.html`);
+            },
+            handleActivityClick($event) {
+                const link = $event[0].attributes[0].value
+                if (link) {
+                    window.open(link);
+                }
+            }
+        }
+    };
+}();

+ 2 - 1
src/main/resources/templates/article/list.html

@@ -252,7 +252,7 @@
     <div v-if="isPC && shopAdvert.length > 0 " class="article-right-ross article-PC" :class="shopAdvert.length > 0 ? 'show' : 'none'" id="advertisement" v-cloak>
         <el-carousel :autoplay="true" show-indicators="false" :height="isPC ? '343px' : '61.6vw'">
             <el-carousel-item v-for="(item, index) in shopAdvert" :key="item.id">
-                <a :href="item.jumpLink" target="_blank">
+                <a @click="setAdvStatistics(item)">
                     <img :src="item.pcImage" alt="">
                 </a>
             </el-carousel-item>
@@ -279,5 +279,6 @@
 <script charset="utf-8" type="text/javascript" th:src="@{/js/article/common.js(v=${version})}"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/article/mixins/searchMixins.js(v=${version})}"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/article/list.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/beautyArchive.service.js(v=${version})}"></script>
 </body>
 </html>

+ 30 - 0
src/main/resources/templates/ceshi/demo.html

@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.thymeleaf.org " xmlns="http://www.w3.org/1999/html">
+
+<head>
+    <meta charset="UTF-8" />
+    <meta name="referrer" content="never">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=0" />
+    <meta name="format-detection" content="telephone=yes" />
+    <title>ceshi</title>
+    <link rel="canonical" href="https://www.caimei365.com/" />
+</head>
+
+<body>
+<input type="hidden" th:value="${coreServer}" id="coreServer">
+<input type="hidden" th:value="${agent}" id="userAgent">
+<div id="pdf5">
+    <div id="wordView" v-html="wordText"></div>
+</div>
+
+
+<template th:replace="components/foot-link"></template>
+<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mammoth@1.4.8/mammoth.browser.min.js"></script>
+<!--<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pdf-lib@1.17.1/dist/pdf-lib.min.js"></script>-->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
+<script type="text/javascript" src="https://unpkg.com/browse/pdfjs-dist@2.6.347/build/pdf.worker.min.js"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/ceshi/index.js(v=${version})}"></script>
+</body>
+</html>
+

+ 26 - 25
src/main/resources/templates/encyclopedia/components/footer.html

@@ -1,25 +1,26 @@
-<footer>
-    <div class="bk-footer">
-        <h2><span>友情链接:</span><a href="https://www.caimei365.com/" target="_blank">采美商城</a></h2>
-        <p class="beian"><i></i><span>粤B1-20160129</span><span>备案号</span><a href="http://www.acebelleshenzhen.com/">粤ICP备14019824号</a><br
-                class="only-mobile"><span>互联网药品信息服务资格证编号(粤)-非经营性-2021-0339</span><br
-                class="only-mobile"><span>中华人民共和国增值电信业务经营许可证</span>
-        </p>
-        <p class="copyright">Copyright © 2015-2022 CAIMEI365.com All Rights Reserved <br
-                class="only-mobile">深圳市采美信息技术有限公司</p>
-    </div>
-</footer>
-
-<div class="bk-mask" style="display: none"></div>
-
-<script type="text/javascript" src="/lib/jquery-3.6.0.min.js"></script>
-<script type="text/javascript" src="/lib/slideVerify.js"></script>
-<script charset="utf-8" type="text/javascript" src="/lib/jquery-confirm.min.js"></script>
-<script charset="utf-8" type="text/javascript" src="/lib/vue2.6.12.min.js"></script>
-<script th:src="@{/js/common/ajax.service.js(v=${version})}" xmlns:th="https://www.thymeleaf.org"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/utils.service.js(v=${version})}"></script>
-<script th:src="@{/js/common/serviceapi/user.service.js(v=${version})}" xmlns:th="https://www.thymeleaf.org"></script>
-<script th:src="@{/js/utils.js(v=${version})}" xmlns:th="https://www.thymeleaf.org"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/router.config.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/cmSysMixins.js(v=${version})}"></script>
-<script th:src="@{/js/encyclopedia/common.js(v=${version})}" xmlns:th="https://www.thymeleaf.org"></script>
+<footer>
+    <div class="bk-footer">
+        <h2><span>友情链接:</span><a href="https://www.caimei365.com/" target="_blank">采美商城</a></h2>
+        <p class="beian"><i></i><span>粤B1-20160129</span><span>备案号</span><a href="http://www.acebelleshenzhen.com/">粤ICP备14019824号</a><br
+                class="only-mobile"><span>互联网药品信息服务资格证编号(粤)-非经营性-2021-0339</span><br
+                class="only-mobile"><span>中华人民共和国增值电信业务经营许可证</span>
+        </p>
+        <p class="copyright">Copyright © 2015-2022 CAIMEI365.com All Rights Reserved <br
+                class="only-mobile">深圳市采美信息技术有限公司</p>
+    </div>
+</footer>
+
+<div class="bk-mask" style="display: none"></div>
+
+<script type="text/javascript" src="/lib/jquery-3.6.0.min.js"></script>
+<script type="text/javascript" src="/lib/slideVerify.js"></script>
+<script charset="utf-8" type="text/javascript" src="/lib/jquery-confirm.min.js"></script>
+<script charset="utf-8" type="text/javascript" src="/lib/vue2.6.12.min.js"></script>
+<script th:src="@{/js/common/ajax.service.js(v=${version})}" xmlns:th="https://www.thymeleaf.org"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/utils.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/beautyArchive.service.js(v=${version})}"></script>
+<script th:src="@{/js/common/serviceapi/user.service.js(v=${version})}" xmlns:th="https://www.thymeleaf.org"></script>
+<script th:src="@{/js/utils.js(v=${version})}" xmlns:th="https://www.thymeleaf.org"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/router.config.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/cmSysMixins.js(v=${version})}"></script>
+<script th:src="@{/js/encyclopedia/common.js(v=${version})}" xmlns:th="https://www.thymeleaf.org"></script>

+ 56 - 45
src/main/resources/templates/encyclopedia/components/header.html

@@ -1,45 +1,56 @@
-<header xmlns:th="https://www.thymeleaf.org">
-    <div class="bk-header">
-        <div class="bk-container">
-            <div class="bk-logo">
-                <a th:href="'/encyclopedia/list.html'" title="采美百科">
-                    <h1>采美百科</h1>
-                    <img src="/img/encyclopedia/assets/pc-logo.png" alt="采美百科" class="only-pc"/>
-                    <img src="/img/encyclopedia/assets/h5-logo.png" alt="采美百科" class="only-mobile"/>
-                </a>
-            </div>
-            <div class="only-mobile bk-menu">
-                <span class="bk-search-btn"></span>
-                <span class="bk-menu-name">菜单</span>
-                <span class="bk-collapse-btn"></span>
-            </div>
-            <div class="bk-search-container">
-                <div class="bk-search-menu only-mobile">
-                    <span class="bk-name">菜单</span>
-                    <span class="bk-search-close"></span>
-                </div>
-                <form method="get" id="searchForm">
-                    <div class="bk-search-control">
-                        <label><input id="searchInput" type="text" placeholder="搜索词条"/></label>
-                        <button type="submit">搜索</button>
-                    </div>
-                </form>
-                <ul class="bk-hot-keyword">
-                    <li th:each="item : ${hotSeracherWords}" th:object="${item}" th:if="${(item.jumpType eq 1) or (item.jumpType eq 4)}">
-                        <a th:href="'/encyclopedia/search.html?keyword=' + *{keyWord}" th:if="*{jumpType eq 1}" th:text="*{keyWord}"></a>
-                        <a th:href="*{jumpLink}" th:if="*{jumpType eq 4}" th:text="*{keyWord}" target="_blank"></a>
-                    </li>
-                </ul>
-            </div>
-        </div>
-    </div>
-    <div class="bk-nav">
-        <ul class="bk-navbar bk-container">
-            <li th:each="item,stat : ${TypeList}" th:object="${item}" th:if="${stat.index < 8}">
-                <a th:href="'/encyclopedia/list-' + *{typeId} + '.html'" th:text="*{name}"></a>
-            </li>
-            <li><a href="/encyclopedia/about.html">走进百科</a></li>
-        </ul>
-    </div>
-    <input type="hidden" th:value="${coreServer}" id="coreServer">
-</header>
+<header xmlns:th="https://www.thymeleaf.org">
+    <div class="bk-header">
+        <div class="bk-container">
+            <div class="bk-logo">
+                <a th:href="'/encyclopedia/list.html'" title="采美百科">
+                    <h1>采美百科</h1>
+                    <img src="/img/encyclopedia/assets/pc-logo.png" alt="采美百科" class="only-pc"/>
+                    <img src="/img/encyclopedia/assets/h5-logo.png" alt="采美百科" class="only-mobile"/>
+                </a>
+            </div>
+            <div class="only-mobile bk-menu">
+                <span class="bk-search-btn"></span>
+                <span class="bk-menu-name">菜单</span>
+                <span class="bk-collapse-btn"></span>
+            </div>
+            <div class="bk-search-container">
+                <div class="bk-search-menu only-mobile">
+                    <span class="bk-name">菜单</span>
+                    <span class="bk-search-close"></span>
+                </div>
+                <form method="get" id="searchForm">
+                    <div class="bk-search-control">
+                        <label><input id="searchInput" type="text" placeholder="搜索词条"/></label>
+                        <button type="submit">搜索</button>
+                    </div>
+                </form>
+                <ul class="bk-hot-keyword">
+                    <li th:each="item : ${hotSeracherWords}" th:object="${item}" th:if="${(item.jumpType eq 1) or (item.jumpType eq 4)}">
+                        <a th:href="'/encyclopedia/search.html?keyword=' + *{keyWord}" th:if="*{jumpType eq 1}" th:text="*{keyWord}"></a>
+                        <a th:href="*{jumpLink}" th:if="*{jumpType eq 4}" th:text="*{keyWord}" target="_blank"></a>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <div class="bk-nav">
+        <ul class="bk-navbar bk-container">
+            <li th:each="item,stat : ${TypeList}" th:object="${item}" th:if="${stat.index < 8}">
+                <a th:href="'/encyclopedia/list-' + *{typeId} + '.html'" th:text="*{name}"></a>
+            </li>
+            <li><a href="/encyclopedia/about.html">走进百科</a></li>
+        </ul>
+    </div>
+    <div class="nav-link" style="display: none;">
+        <div class="bar">
+            <a th:each="type: ${TypeList}" th:if="${typeId}==${type.typeId}" th:text="${type.name}" th:href="'/encyclopedia/list-' + ${type.typeId} + '.html'" class="title newTitle"></a>
+            <span th:each="type: ${articleType}">
+                <span th:each="childLink: ${type.linkList}" th:if="${typeId}==${childLink.id}">
+                    <a th:text="${type.name}" th:href="'/info/center-' + ${type.id} + '-1.html'" class="title newTitle"></a>
+                    <a th:if="${typeId}==${childLink.id}" th:href="'/info/center-' + ${childLink.id} + '-1.html'" class="title newTitle" th:text="'>' + ${childLink.name}"></a>
+                </span>
+            </span>
+        </div>
+    </div>
+    <input type="hidden" th:value="${coreServer}" id="coreServer">
+</header>

+ 8 - 7
src/main/resources/templates/index.html

@@ -112,7 +112,7 @@
                     <div class="section_right_item ross" v-if="shopAdvert.length > 0">
                         <el-carousel :autoplay="true" show-indicators="false" :height="isPC ? '343px' : '61.6vw'">
                             <el-carousel-item v-for="(item, index) in shopAdvert" :key="item.id">
-                                <a :href="item.jumpLink" target="_blank">
+                                <a @click="setAdvStatistics(item)">
                                     <img :src="item.pcImage" alt="">
                                 </a>
                             </el-carousel-item>
@@ -126,7 +126,7 @@
                             </a>
                         </div>
                         <div class="right_item_main" th:each="live,stat : ${sideJson.get('liveList')}" th:object="${live}">
-                            <a th:if="${stat.index}==0" th:attr="data-href=*{link}" href="javascript:void(0)" onclick="handleRightStatistics($(this),2)" th:title="*{liveTitle}" class="item_banner">
+                            <a th:if="${stat.index}==0" th:attr="data-href=*{link}" th:data-id="*{id}" href="javascript:void(0)" onclick="handleRightStatistics($(this),2)" th:title="*{liveTitle}" class="item_banner">
                                 <img src="/img/base/placeholder.png" th:attr="data-original=*{homePageImage}" th:alt="*{liveTitle}">
                                 <div class="name" th:text="*{liveTitle}"></div>
                                 <div class="statu">
@@ -135,7 +135,7 @@
                                     <template th:if="*{liveStatus}==3"><i class="mIcon icon-end"></i><p>看回放</p></template>
                                 </div>
                             </a>
-                            <a th:if="${stat.index}>0" th:attr="data-href=*{link}" href="javascript:void(0)" onclick="handleRightStatistics($(this),2)" th:title="*{liveTitle}" class="item_text">
+                            <a th:if="${stat.index}>0" th:attr="data-href=*{link}" th:data-id="*{id}" href="javascript:void(0)" onclick="handleRightStatistics($(this),2)" th:title="*{liveTitle}" class="item_text">
                                 <p class="item_text_name" th:text="*{liveTitle}"></p>
                             </a>
                         </div>
@@ -148,11 +148,11 @@
                             </a>
                         </div>
                         <div class="right_item_main" th:each="image,stat : ${sideJson.get('cmImageList')}" th:object="${image}">
-                            <a th:if="${stat.index}==0" th:attr="data-href=*{link}" onclick="handleRightStatistics($(this),3)" href="javascript:void(0)" th:title="*{title}" class="item_banner">
+                            <a th:if="${stat.index}==0" th:attr="data-href=*{link}" th:data-id="*{id}" onclick="handleRightStatistics($(this),3)" href="javascript:void(0)" th:title="*{title}" class="item_banner">
                                 <img src="/img/base/placeholder.png" th:attr="data-original=*{homePageImage}" th:alt="*{title}">
                                 <div class="name" th:text="*{title}"></div>
                             </a>
-                            <a th:if="${stat.index}>0" th:attr="data-href=*{link}" onclick="handleRightStatistics($(this),3)" href="javascript:void(0)"  th:title="*{title}" class="item_text">
+                            <a th:if="${stat.index}>0" th:attr="data-href=*{link}" th:data-id="*{id}" onclick="handleRightStatistics($(this),3)" href="javascript:void(0)"  th:title="*{title}" class="item_text">
                                 <p class="item_text_name" th:text="*{title}"></p>
                             </a>
                         </div>
@@ -165,11 +165,11 @@
                             </a>
                         </div>
                         <div class="right_item_main" th:each="info,stat : ${sideJson.get('infoList')}" th:object="${info}">
-                            <a th:if="${stat.index}==0" th:attr="data-href=*{link}" onclick="handleRightStatistics($(this),4)" href="javascript:void(0)"  th:title="*{title}" class="item_banner">
+                            <a th:if="${stat.index}==0" th:attr="data-href=*{link}" th:data-id="*{id}" onclick="handleRightStatistics($(this),4)" href="javascript:void(0)"  th:title="*{title}" class="item_banner">
                                 <img src="/img/base/placeholder.png" th:attr="data-original=*{homePageImage}" th:alt="*{title}">
                                 <div class="name" th:text="*{title}"></div>
                             </a>
-                            <a th:if="${stat.index}>0" th:attr="data-href=*{link}" onclick="handleRightStatistics($(this),4)" href="javascript:void(0)"  th:title="*{title}" class="item_text">
+                            <a th:if="${stat.index}>0" th:attr="data-href=*{link}" th:data-id="*{id}" onclick="handleRightStatistics($(this),4)" href="javascript:void(0)"  th:title="*{title}" class="item_text">
                                 <p class="item_text_name info" th:text="*{title}"></p>
                                 <p class="item_text_time" v-if="isPC" th:text="*{createDate}"></p>
                             </a>
@@ -654,6 +654,7 @@
     <script type="text/javascript" src="/lib/vant-ui/vant.min.js"></script>
     <script type="text/javascript" src="/lib/element-ui/element-ui.min.js"></script>
     <script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
+    <script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/beautyArchive.service.js(v=${version})}"></script>
     <script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/cmsMixins.js(v=${version})}"></script>
     <script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/cmSysMixins.js(v=${version})}"></script>
     <script charset="utf-8" type="text/javascript" th:src="@{/js/index.js(v=${version})}"></script>

+ 248 - 247
src/main/resources/templates/product/list.html

@@ -1,247 +1,248 @@
-<!DOCTYPE html>
-<html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xsi:schemaLocation="https://www.thymeleaf.org ">
-<head>
-    <title>采美365网-商品列表</title>
-    <template th:replace="components/head-link"></template>
-    <link th:href="@{/css/product/list.css(v=${version})}" rel="stylesheet" type="text/css">
-    <template th:replace="components/analysis"></template>
-</head>
-<body>
-<!-- 引用头部 -->
-<template th:replace="components/header"></template>
-
-<!-- 商品列表 -->
-<div id="productList" v-cloak>
-    <!-- 面包屑 -->
-    <div v-if="isPC && listData && listData.length>0" class="crumbs">
-        <div class="search-text">
-            <span>搜索结果</span>
-            <span>&gt;</span>
-            <a href="javascript:void(0);" @click="toPagination(1)" v-text="params.keyword"></a>
-        </div>
-        <div class="search-text-brand" v-if="isChoiceBrandText">
-            品牌:
-            <a href="javascript:void(0);">{{ choiceBrandText }}</a>
-            <i class="icon icon-del" @click="handleDeleteBrands"></i>
-        </div>
-    </div>
-    <div v-if="listLoading" class="loading">
-        <img src="/img/base/loading.gif">
-    </div>
-    <template v-else>
-        <!--品牌选择-->
-        <template v-if="isPC">
-            <div class="product-brand clear">
-                <div class="product-brand-name" :class="isShowAllBrands ? 'show' : ''">
-                    <p class="title">品牌</p>
-                </div>
-                <div class="product-brand-list" :class="isShowAllBrands ? 'show' : ''">
-                    <div class="brand-list" v-if="!isShowAllBrandsButton" @click="choiceBrandAllHref" :class="hrefBrandId ? '' : 'checked'"><a href="javascript:void(0)">全部</a></div>
-                    <div class="brand-list" @click="choiceBrandHref(brand, index)" v-for="(brand,index) in brandLists"
-                         :key="index" :class="brand.isChecked ? 'checked' : ''">
-                        <a href="javascript:void(0)" :title="brand.name" v-html="brand.name"></a>
-                    </div>
-                </div>
-                <div class="product-brand-oper" v-if="!isShowAllBrandsButton">
-                    <div class="product-brand-more" v-if="defaultBrandLists.length>8" :class="isShowAllBrands ? 'show' : ''"
-                         @click="showMoreItem">{{
-                        isShowAllBrands ? '收起' : '更多' }} <i class="icon mIcon"></i></div>
-                    <div class="product-brand-add" v-if="defaultBrandLists.length>2" @click="showMoreItemCheckedAll">+多选</div>
-                </div>
-                <div class="product-brand-button" v-if="isShowAllBrandsButton">
-                    <div class="brand-button">
-                        <div class="btn confirm" :class="checkedBrandList.length>0 ? '' : 'disabled'" @click="handleConfirm">确定</div>
-                        <div class="btn cancel" @click="handleCancel">取消</div>
-                    </div>
-                </div>
-            </div>
-        </template>
-        <template v-else>
-            <div class="product-brand-fiexd" v-if="isProductScreen">
-                <div class="product-brand clear">
-                    <div class="product-screen">
-                        <div class="sortBox-new" @click="hanldCheckedActivi">
-                            <span>促销商品</span>
-                            <span class="coll-checked" :class="[isActiviChecked ? 'checked': '']"></span>
-                        </div>
-                        <div class="sortBox-new" @click="hanldCheckedNews">
-                            <span>新品</span>
-                            <span class="coll-checked" :class="[isNewsChecked ? 'checked': '']"></span>
-                        </div>
-                    </div>
-                    <div class="product-brand-name" :class="isShowAllBrands ? 'show' : ''">
-                        <p class="title">品牌</p>
-                        <p v-if="!isPC" class="num">已选中<span>{{ checkedBrandLength }}</span>个品牌</p>
-                    </div>
-                    <div class="product-brand-list" :class="isShowAllBrands ? 'show' : ''">
-                        <div class="brand-list" @click="choiceBrandAll" :class="isAllcheckedBrand ? 'checked' : ''"><a href="javascript:void(0)">全部</a></div>
-                        <div class="brand-list" v-for="(brand,index) in brandLists" :key="index"
-                             @click="choiceBrand(brand, index)" :class="brand.isChecked ? 'checked' : ''">
-                            <a href="javascript:void(0)" :title="brand.name" v-html="brand.name"></a>
-                        </div>
-                    </div>
-                    <div class="product-brand-more" v-if="defaultBrandLists.length>8" :class="isShowAllBrands ? 'show' : ''" @click="showMoreItem">{{
-                        isShowAllBrands ? '收起' : '查看全部' }} <i
-                                class="icon mIcon"></i></div>
-                    <div class="product-screen-btn" @click="handleConfirmScreen">
-                        <div class="sub-button">确定</div>
-                    </div>
-                </div>
-            </div>
-        </template>
-        <!--排序-->
-        <div class="sortBox">
-            <ul class="mfc clear">
-                <li :class="{'on':params.sortField == ''}" @click="toSortList('',1)">综合</li>
-                <template>
-                    <li v-if="params.sortField == 'sales' && params.sortType == 1" class="down"
-                        @click="toSortList('sales',0)"><span>销量</span></li>
-                    <li v-else-if="params.sortField == 'sales' && params.sortType == 0" class="up"
-                        @click="toSortList('sales',1)"><span>销量</span></li>
-                    <li v-else @click="toSortList('sales',1)"><span>销量</span></li>
-                </template>
-                <template>
-                    <li v-if="params.sortField == 'favorite' && params.sortType == 1" class="down"
-                        @click="toSortList('favorite',0)"><span>人气</span></li>
-                    <li v-else-if="params.sortField == 'favorite' && params.sortType == 0" class="up"
-                        @click="toSortList('favorite',1)"><span>人气</span></li>
-                    <li v-else @click="toSortList('favorite',1)"><span>人气</span></li>
-                </template>
-                <template>
-                    <li v-if="params.sortField == 'price' && params.sortType == 1" class="down"
-                        @click="toSortList('price',0)"><span>价格</span></li>
-                    <li v-else-if="params.sortField == 'price' && params.sortType == 0" class="up"
-                        @click="toSortList('price',1)"><span>价格</span></li>
-                    <li v-else @click="toSortList('price',1)"><span>价格</span></li>
-                </template>
-                <template v-if="!isPC">
-                    <li class="screen" @click="showIsProductScreen">
-                        <span>筛选</span>
-                        <i class="mIcon"></i>
-                    </li>
-                </template>
-            </ul>
-            <div class="sortBox-checked" v-if="isPC">
-                <div class="sortBox-new" @click="hanldCheckedActiviHref">
-                    <span class="coll-checked" :class="[isActiviChecked ? 'checked': '']"></span>
-                    <span>促销商品</span>
-                </div>
-                <div class="sortBox-new" @click="hanldCheckedNewsHref">
-                    <span class="coll-checked" :class="[isNewsChecked ? 'checked': '']"></span>
-                    <span>新品</span>
-                </div>
-            </div>
-        </div>
-        <!--数据为空-->
-        <div v-if="isListEmpty" class="empty">
-            <img src="/img/common/empty.png">
-            <div class="msg">
-                <p>暂未找到你搜索的商品,去<a href="/">商城</a>,逛逛吧~</p>
-            </div>
-        </div>
-        <template v-else>
-            <!--商品列表-->
-            <ul class="productList clear mfw">
-                <li class="productItem " v-for="p in listData">
-                    <div class="page_main_type" v-if="p.productType === 2">医疗器械</div>
-                    <a class="image" :href="'/product-'+p.productId+'.html'">
-                        <img src="/img/base/placeholder.png" :data-original="p.image" :alt="p.name">
-                        <p class="name" v-html="addhtml + p.name" v-if="p.beautyActFlag==1"></p>
-                        <p class="name" v-html="p.name" v-else></p>
-                        <div class="price">
-                            <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                <div class="price_text_tag clear">
-                                    <p class="couponTag" v-if="p.couponsLogo">优惠券</p>
-                                    <template v-if="p.svipProductFlag === 1">
-                                        <div class="svip-tag">
-                                            <div class="svip-icon">SVIP</div>
-                                            <template v-if="showVipPriceTag(p)">
-                                                <div class="svip-price">
-                                                    <span v-html="p.svipPriceTag"></span>
-                                                </div>
-                                            </template>
-                                        </div>
-                                    </template>
-                                    <template v-else>
-                                        <p class="listTag" v-if="p.actStatus==1">{{p.promotions.name}}
-                                            <span v-if="p.priceFlag != 1 && PromotionsFormat(p.promotions)">:¥{{p.price | NumFormat}}</span>
-                                        </p>
-                                    </template>
-                                </div>
-                                <!--0公开价格 1不公开价格 2仅对会员机构公开-->
-                                <div class="main_price_unde" v-if="p.priceFlag==1">¥价格未公开</div>
-                                <!--机构价仅会员可见 && 用户是普通机构-->
-                                <div class="main_price_unde" v-else-if="p.priceFlag==2 && GLOBAL_USER_IDENTITY === 4 && GLOBAL_VIP_FLAG!=1">
-                                    ¥会员可见
-                                </div>
-                                <!--机构价仅会员可见 && 用户是普通机构-->
-                                <div class="main_price_unde" v-else-if="p.priceFlag==3 && (GLOBAL_CLUB_TYPE !=1)">
-                                    ¥仅医美机构可见
-                                </div>
-                                <!-- 资质机构 || (价格全部机构可见 && 普通机构) || (供应商 && 商品为供应商下的商品) || 超级会员用户 -->
-                                <template
-                                        v-else-if="GLOBAL_USER_IDENTITY === 2 || (p.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) || (GLOBAL_USER_IDENTITY === 3 && p.shopId === GLOBAL_SHOP_ID) || GLOBAL_VIP_FLAG === 1">
-                                    <div class="main_price_show"
-                                         :class="{none: PromotionsFormat(p.promotions) || (p.svipProductFlag === 1 && showVipPriceTag(p))}">
-                                        ¥{{ (PromotionsFormat(p.promotions) || showVipPriceTag(p) ? p.originalPrice :
-                                        p.price ) | NumFormat }}
-                                    </div>
-                                </template>
-                                <!--供应商除自己的商品外,也显示价格等级-->
-                                <div class="price_grade" v-else><span class="bold">¥</span><i
-                                        :class="'icon mIcon i'+p.priceGrade"></i></div>
-                            </template>
-                            <template v-else>
-                                <div class="price_text_tag">
-                                    <p class="couponTag" v-if="p.couponsLogo">优惠券</p>
-                                    <template v-if="p.svipProductFlag === 1">
-                                        <div class="svip-tag">
-                                            <div class="svip-icon">SVIP</div>
-                                        </div>
-                                    </template>
-                                    <template v-else>
-                                        <p class="listTag" v-if="p.actStatus==1">{{p.promotions.name}}</p>
-                                    </template>
-                                </div>
-                                <div class="price_grade"><span class="bold">¥</span><i
-                                        :class="'icon mIcon i'+p.priceGrade"></i></div>
-                            </template>
-                        </div>
-                    </a>
-                </li>
-            </ul>
-        </template>
-    </template>
-    <!--分页-->
-    <div v-if="(!isPC) && noMore" class="noMore">---- 没有更多了 ----</div>
-    <div v-if="isPC && pageTotal>1" class="pageWrap clear">
-        <a v-if="params.num>1" class="prev" @click="toPagination(params.num*1-1)" href="javascript:void(0);"></a>
-        <template v-for="n in showPageBtn">
-            <a v-if="n" :class="{'on':(n==params.num)}" @click="toPagination(n)" href="javascript:void(0);"
-               v-text="n"></a>
-            <span v-else>···</span>
-        </template>
-        <a v-if="params.num<pageTotal" class="next" @click="toPagination(params.num*1+1)"
-           href="javascript:void(0);"></a>
-        <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
-        <span>跳至</span>
-        <input v-model="pageInput" @blur="checkNum()"/>
-        <span>页</span>&nbsp;
-        <a class="btn" href="javascript:void(0);" @click="toPagination(pageInput)">点击跳转</a>
-    </div>
-    <!--Ross 弹窗-->
-    <template v-if="showRossHtml">
-        <template th:replace="components/ross-advert"></template>
-    </template>
-</div>
-<!-- 引入底部 -->
-<template th:replace="components/footer"></template>
-<template th:replace="components/foot-link"></template>
-<script charset="utf-8" type="text/javascript"
-        th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/cmSysMixins.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/product/list.js(v=${version})}"></script>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="https://www.thymeleaf.org ">
+<head>
+    <title>采美365网-商品列表</title>
+    <template th:replace="components/head-link"></template>
+    <link th:href="@{/css/product/list.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
+</head>
+<body>
+<!-- 引用头部 -->
+<template th:replace="components/header"></template>
+
+<!-- 商品列表 -->
+<div id="productList" v-cloak>
+    <!-- 面包屑 -->
+    <div v-if="isPC && listData && listData.length>0" class="crumbs">
+        <div class="search-text">
+            <span>搜索结果</span>
+            <span>&gt;</span>
+            <a href="javascript:void(0);" @click="toPagination(1)" v-text="params.keyword"></a>
+        </div>
+        <div class="search-text-brand" v-if="isChoiceBrandText">
+            品牌:
+            <a href="javascript:void(0);">{{ choiceBrandText }}</a>
+            <i class="icon icon-del" @click="handleDeleteBrands"></i>
+        </div>
+    </div>
+    <div v-if="listLoading" class="loading">
+        <img src="/img/base/loading.gif">
+    </div>
+    <template v-else>
+        <!--品牌选择-->
+        <template v-if="isPC">
+            <div class="product-brand clear">
+                <div class="product-brand-name" :class="isShowAllBrands ? 'show' : ''">
+                    <p class="title">品牌</p>
+                </div>
+                <div class="product-brand-list" :class="isShowAllBrands ? 'show' : ''">
+                    <div class="brand-list" v-if="!isShowAllBrandsButton" @click="choiceBrandAllHref" :class="hrefBrandId ? '' : 'checked'"><a href="javascript:void(0)">全部</a></div>
+                    <div class="brand-list" @click="choiceBrandHref(brand, index)" v-for="(brand,index) in brandLists"
+                         :key="index" :class="brand.isChecked ? 'checked' : ''">
+                        <a href="javascript:void(0)" :title="brand.name" v-html="brand.name"></a>
+                    </div>
+                </div>
+                <div class="product-brand-oper" v-if="!isShowAllBrandsButton">
+                    <div class="product-brand-more" v-if="defaultBrandLists.length>8" :class="isShowAllBrands ? 'show' : ''"
+                         @click="showMoreItem">{{
+                        isShowAllBrands ? '收起' : '更多' }} <i class="icon mIcon"></i></div>
+                    <div class="product-brand-add" v-if="defaultBrandLists.length>2" @click="showMoreItemCheckedAll">+多选</div>
+                </div>
+                <div class="product-brand-button" v-if="isShowAllBrandsButton">
+                    <div class="brand-button">
+                        <div class="btn confirm" :class="checkedBrandList.length>0 ? '' : 'disabled'" @click="handleConfirm">确定</div>
+                        <div class="btn cancel" @click="handleCancel">取消</div>
+                    </div>
+                </div>
+            </div>
+        </template>
+        <template v-else>
+            <div class="product-brand-fiexd" v-if="isProductScreen">
+                <div class="product-brand clear">
+                    <div class="product-screen">
+                        <div class="sortBox-new" @click="hanldCheckedActivi">
+                            <span>促销商品</span>
+                            <span class="coll-checked" :class="[isActiviChecked ? 'checked': '']"></span>
+                        </div>
+                        <div class="sortBox-new" @click="hanldCheckedNews">
+                            <span>新品</span>
+                            <span class="coll-checked" :class="[isNewsChecked ? 'checked': '']"></span>
+                        </div>
+                    </div>
+                    <div class="product-brand-name" :class="isShowAllBrands ? 'show' : ''">
+                        <p class="title">品牌</p>
+                        <p v-if="!isPC" class="num">已选中<span>{{ checkedBrandLength }}</span>个品牌</p>
+                    </div>
+                    <div class="product-brand-list" :class="isShowAllBrands ? 'show' : ''">
+                        <div class="brand-list" @click="choiceBrandAll" :class="isAllcheckedBrand ? 'checked' : ''"><a href="javascript:void(0)">全部</a></div>
+                        <div class="brand-list" v-for="(brand,index) in brandLists" :key="index"
+                             @click="choiceBrand(brand, index)" :class="brand.isChecked ? 'checked' : ''">
+                            <a href="javascript:void(0)" :title="brand.name" v-html="brand.name"></a>
+                        </div>
+                    </div>
+                    <div class="product-brand-more" v-if="defaultBrandLists.length>8" :class="isShowAllBrands ? 'show' : ''" @click="showMoreItem">{{
+                        isShowAllBrands ? '收起' : '查看全部' }} <i
+                                class="icon mIcon"></i></div>
+                    <div class="product-screen-btn" @click="handleConfirmScreen">
+                        <div class="sub-button">确定</div>
+                    </div>
+                </div>
+            </div>
+        </template>
+        <!--排序-->
+        <div class="sortBox">
+            <ul class="mfc clear">
+                <li :class="{'on':params.sortField == ''}" @click="toSortList('',1)">综合</li>
+                <template>
+                    <li v-if="params.sortField == 'sales' && params.sortType == 1" class="down"
+                        @click="toSortList('sales',0)"><span>销量</span></li>
+                    <li v-else-if="params.sortField == 'sales' && params.sortType == 0" class="up"
+                        @click="toSortList('sales',1)"><span>销量</span></li>
+                    <li v-else @click="toSortList('sales',1)"><span>销量</span></li>
+                </template>
+                <template>
+                    <li v-if="params.sortField == 'favorite' && params.sortType == 1" class="down"
+                        @click="toSortList('favorite',0)"><span>人气</span></li>
+                    <li v-else-if="params.sortField == 'favorite' && params.sortType == 0" class="up"
+                        @click="toSortList('favorite',1)"><span>人气</span></li>
+                    <li v-else @click="toSortList('favorite',1)"><span>人气</span></li>
+                </template>
+                <template>
+                    <li v-if="params.sortField == 'price' && params.sortType == 1" class="down"
+                        @click="toSortList('price',0)"><span>价格</span></li>
+                    <li v-else-if="params.sortField == 'price' && params.sortType == 0" class="up"
+                        @click="toSortList('price',1)"><span>价格</span></li>
+                    <li v-else @click="toSortList('price',1)"><span>价格</span></li>
+                </template>
+                <template v-if="!isPC">
+                    <li class="screen" @click="showIsProductScreen">
+                        <span>筛选</span>
+                        <i class="mIcon"></i>
+                    </li>
+                </template>
+            </ul>
+            <div class="sortBox-checked" v-if="isPC">
+                <div class="sortBox-new" @click="hanldCheckedActiviHref">
+                    <span class="coll-checked" :class="[isActiviChecked ? 'checked': '']"></span>
+                    <span>促销商品</span>
+                </div>
+                <div class="sortBox-new" @click="hanldCheckedNewsHref">
+                    <span class="coll-checked" :class="[isNewsChecked ? 'checked': '']"></span>
+                    <span>新品</span>
+                </div>
+            </div>
+        </div>
+        <!--数据为空-->
+        <div v-if="isListEmpty" class="empty">
+            <img src="/img/common/empty.png">
+            <div class="msg">
+                <p>暂未找到你搜索的商品,去<a href="/">商城</a>,逛逛吧~</p>
+            </div>
+        </div>
+        <template v-else>
+            <!--商品列表-->
+            <ul class="productList clear mfw">
+                <li class="productItem " v-for="p in listData">
+                    <div class="page_main_type" v-if="p.productType === 2">医疗器械</div>
+                    <a class="image" :href="'/product-'+p.productId+'.html'">
+                        <img src="/img/base/placeholder.png" :data-original="p.image" :alt="p.name">
+                        <p class="name" v-html="addhtml + p.name" v-if="p.beautyActFlag==1"></p>
+                        <p class="name" v-html="p.name" v-else></p>
+                        <div class="price">
+                            <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                <div class="price_text_tag clear">
+                                    <p class="couponTag" v-if="p.couponsLogo">优惠券</p>
+                                    <template v-if="p.svipProductFlag === 1">
+                                        <div class="svip-tag">
+                                            <div class="svip-icon">SVIP</div>
+                                            <template v-if="showVipPriceTag(p)">
+                                                <div class="svip-price">
+                                                    <span v-html="p.svipPriceTag"></span>
+                                                </div>
+                                            </template>
+                                        </div>
+                                    </template>
+                                    <template v-else>
+                                        <p class="listTag" v-if="p.actStatus==1">{{p.promotions.name}}
+                                            <span v-if="p.priceFlag != 1 && PromotionsFormat(p.promotions)">:¥{{p.price | NumFormat}}</span>
+                                        </p>
+                                    </template>
+                                </div>
+                                <!--0公开价格 1不公开价格 2仅对会员机构公开-->
+                                <div class="main_price_unde" v-if="p.priceFlag==1">¥价格未公开</div>
+                                <!--机构价仅会员可见 && 用户是普通机构-->
+                                <div class="main_price_unde" v-else-if="p.priceFlag==2 && GLOBAL_USER_IDENTITY === 4 && GLOBAL_VIP_FLAG!=1">
+                                    ¥会员可见
+                                </div>
+                                <!--机构价仅会员可见 && 用户是普通机构-->
+                                <div class="main_price_unde" v-else-if="p.priceFlag==3 && (GLOBAL_CLUB_TYPE !=1)">
+                                    ¥仅医美机构可见
+                                </div>
+                                <!-- 资质机构 || (价格全部机构可见 && 普通机构) || (供应商 && 商品为供应商下的商品) || 超级会员用户 -->
+                                <template
+                                        v-else-if="GLOBAL_USER_IDENTITY === 2 || (p.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) || (GLOBAL_USER_IDENTITY === 3 && p.shopId === GLOBAL_SHOP_ID) || GLOBAL_VIP_FLAG === 1">
+                                    <div class="main_price_show"
+                                         :class="{none: PromotionsFormat(p.promotions) || (p.svipProductFlag === 1 && showVipPriceTag(p))}">
+                                        ¥{{ (PromotionsFormat(p.promotions) || showVipPriceTag(p) ? p.originalPrice :
+                                        p.price ) | NumFormat }}
+                                    </div>
+                                </template>
+                                <!--供应商除自己的商品外,也显示价格等级-->
+                                <div class="price_grade" v-else><span class="bold">¥</span><i
+                                        :class="'icon mIcon i'+p.priceGrade"></i></div>
+                            </template>
+                            <template v-else>
+                                <div class="price_text_tag">
+                                    <p class="couponTag" v-if="p.couponsLogo">优惠券</p>
+                                    <template v-if="p.svipProductFlag === 1">
+                                        <div class="svip-tag">
+                                            <div class="svip-icon">SVIP</div>
+                                        </div>
+                                    </template>
+                                    <template v-else>
+                                        <p class="listTag" v-if="p.actStatus==1">{{p.promotions.name}}</p>
+                                    </template>
+                                </div>
+                                <div class="price_grade"><span class="bold">¥</span><i
+                                        :class="'icon mIcon i'+p.priceGrade"></i></div>
+                            </template>
+                        </div>
+                    </a>
+                </li>
+            </ul>
+        </template>
+    </template>
+    <!--分页-->
+    <div v-if="(!isPC) && noMore" class="noMore">---- 没有更多了 ----</div>
+    <div v-if="isPC && pageTotal>1" class="pageWrap clear">
+        <a v-if="params.num>1" class="prev" @click="toPagination(params.num*1-1)" href="javascript:void(0);"></a>
+        <template v-for="n in showPageBtn">
+            <a v-if="n" :class="{'on':(n==params.num)}" @click="toPagination(n)" href="javascript:void(0);"
+               v-text="n"></a>
+            <span v-else>···</span>
+        </template>
+        <a v-if="params.num<pageTotal" class="next" @click="toPagination(params.num*1+1)"
+           href="javascript:void(0);"></a>
+        <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
+        <span>跳至</span>
+        <input v-model="pageInput" @blur="checkNum()"/>
+        <span>页</span>&nbsp;
+        <a class="btn" href="javascript:void(0);" @click="toPagination(pageInput)">点击跳转</a>
+    </div>
+    <!--Ross 弹窗-->
+    <template v-if="showRossHtml">
+        <template th:replace="components/ross-advert"></template>
+    </template>
+</div>
+<!-- 引入底部 -->
+<template th:replace="components/footer"></template>
+<template th:replace="components/foot-link"></template>
+<script charset="utf-8" type="text/javascript"
+        th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/cmSysMixins.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/product/list.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/beautyArchive.service.js(v=${version})}"></script>
+</body>
+</html>

+ 53 - 52
src/main/resources/templates/single-page/promotions.html

@@ -1,52 +1,53 @@
-<!DOCTYPE html>
-<html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xsi:schemaLocation="https://www.thymeleaf.org ">
-<head>
-    <title>采美365网-商品专题</title>
-    <template th:replace="components/head-link"></template>
-    <link th:href="@{/css/single-page/promotions.css(v=${version})}" rel="stylesheet" type="text/css">
-    <template th:replace="components/analysis"></template>
-</head>
-<body>
-<!-- 引用头部 -->
-<template th:replace="components/header"></template>
-
-<!-- 二级页面 -->
-<div id="promotionsList">
-    <ul class="wrap">
-        <li class="promotions" v-for="item in listData" @click="handleActivityStatistics(item.link)">
-            <a href="javascript:void(0)" :class="item.status==3?'noclick':''" >
-                <img :src="item.image">
-                <p v-text="item.title"></p>
-                <span v-if="item.status==1" class="time" v-text="''+item.detail">活动时间:活动即将开始</span>
-                <span v-if="item.status==2" class="time" v-text="'活动时间:'+item.detail"></span>
-                <span v-if="item.status==3" class="finish"></span>
-            </a>
-        </li>
-    </ul>
-    <!--分页-->
-    <div v-if="(!isPC) && noMore" class="noMore">---- 没有更多了 ----</div>
-    <div v-if="isPC && pageTotal>1" class="pageWrap clear">
-        <a v-if="params.num>1" class="prev" @click="toPagination(params.num*1-1)" href="javascript:void(0);"></a>
-        <template v-for="n in showPageBtn">
-            <a v-if="n" :class="{'on':(n==params.num)}" @click="toPagination(n)" href="javascript:void(0);" v-text="n"></a>
-            <span v-else>···</span>
-        </template>
-        <a v-if="params.num<pageTotal" class="next" @click="toPagination(params.num*1+1)" href="javascript:void(0);"></a>
-        <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
-        <span>跳至</span>
-        <input v-model="pageInput" @blur="checkNum()"/>
-        <span>页</span>&nbsp;
-        <a class="btn" href="javascript:void(0);" @click="toPagination(pageInput)">点击跳转</a>
-    </div>
-</div>
-
-<!-- 引入底部 -->
-<template th:replace="components/footer"></template>
-<template th:replace="components/foot-link"></template>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/pages.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/cmsMixins.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/single-page/promotions.js(v=${version})}"></script>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="https://www.thymeleaf.org ">
+<head>
+    <title>采美365网-商品专题</title>
+    <template th:replace="components/head-link"></template>
+    <link th:href="@{/css/single-page/promotions.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
+</head>
+<body>
+<!-- 引用头部 -->
+<template th:replace="components/header"></template>
+
+<!-- 二级页面 -->
+<div id="promotionsList">
+    <ul class="wrap">
+        <li class="promotions" v-for="item in listData" @click="handleActivityStatistics(item)">
+            <a href="javascript:void(0)" :class="item.status==3?'noclick':''" >
+                <img :src="item.image">
+                <p v-text="item.title"></p>
+                <span v-if="item.status==1" class="time" v-text="''+item.detail">活动时间:活动即将开始</span>
+                <span v-if="item.status==2" class="time" v-text="'活动时间:'+item.detail"></span>
+                <span v-if="item.status==3" class="finish"></span>
+            </a>
+        </li>
+    </ul>
+    <!--分页-->
+    <div v-if="(!isPC) && noMore" class="noMore">---- 没有更多了 ----</div>
+    <div v-if="isPC && pageTotal>1" class="pageWrap clear">
+        <a v-if="params.num>1" class="prev" @click="toPagination(params.num*1-1)" href="javascript:void(0);"></a>
+        <template v-for="n in showPageBtn">
+            <a v-if="n" :class="{'on':(n==params.num)}" @click="toPagination(n)" href="javascript:void(0);" v-text="n"></a>
+            <span v-else>···</span>
+        </template>
+        <a v-if="params.num<pageTotal" class="next" @click="toPagination(params.num*1+1)" href="javascript:void(0);"></a>
+        <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
+        <span>跳至</span>
+        <input v-model="pageInput" @blur="checkNum()"/>
+        <span>页</span>&nbsp;
+        <a class="btn" href="javascript:void(0);" @click="toPagination(pageInput)">点击跳转</a>
+    </div>
+</div>
+
+<!-- 引入底部 -->
+<template th:replace="components/footer"></template>
+<template th:replace="components/foot-link"></template>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/pages.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/cmsMixins.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/single-page/promotions.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/beautyArchive.service.js(v=${version})}"></script>
+</body>
+</html>

+ 105 - 105
src/main/resources/templates/user-center/message/list.html

@@ -1,105 +1,105 @@
-<!DOCTYPE html>
-<html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xsi:schemaLocation="https://www.thymeleaf.org ">
-<head>
-    <title>采美365网-消息列表</title>
-    <template th:replace="components/head-link"></template>
-    <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
-    <link th:href="@{/css/user-center/message.css(v=${version})}" rel="stylesheet" type="text/css">
-    <template th:replace="components/analysis"></template>
-</head>
-<body>
-<!-- 引用头部 -->
-<template th:replace="components/header"></template>
-
-<!-- 我的消息 -->
-<div id="dashboard">
-    <div class="navLayout" v-cloak>
-        <div v-if="isPC" class="crumbs">
-            <span>我的采美</span>
-            <span>&gt;</span>
-            <span>我的消息</span>
-        </div>
-        <div class="wrap clear">
-            <!--左侧导航-->
-            <template th:replace="user-center/components/tableft"></template>
-            <div class="right">
-                <div v-if="isRequset" class="loading">
-                    <img src="/img/base/loading.gif">
-                </div>
-                <div class="content clear" v-else>
-                    <div class="title">
-                        <div class="tabs-item"  v-for="(item, index) in mssageTabBar" :key="index" @click="changeTabsFn(index,item.messageType)" :class="mssageTabBarIndex == index ? 'active':''">
-                            <a href="javascript: void(0);">{{item.text}}<span>({{item.bages | NumBadge}})</span></a>
-                        </div>
-                    </div>
-                    <div class="section">
-                        <div class="section-top" v-if="messagesList.length > 0 && isPC">
-                            <div class="cheacked" >
-                            <input type="checkbox" v-model="isCheckedAll" class="check" @click="checkedAllFn">
-                                <span>全选</span>
-                            </div>
-                            <div class="button">
-                                <a href="javascript:void(0);" class="btn" @click="deleteMessageFn">删除</a>
-                                <a href="javascript:void(0);" class="btn" @click="signMessageFn">标为已读</a>
-                            </div>
-                        </div>
-                        <div class="section-content" v-if="messagesList.length > 0">
-                            <div class="new-list" v-for="(item, index) in messagesList" :key="index" :class="item.saved==1?'notclick':''">
-                                <div class="text">
-                                    <input type="checkbox"  class="check" v-model="item.check" @change="checkedItemFn(item)" />
-                                    <div class="msg-content" style="display: flex;flex-direction: column;">
-                                        <p v-html="hanldeNoticeText(item)"></p>
-                                        <p v-if="item.shopTieredType > 4">客户经理:{{item.userName}}<span style="margin-left: 100px;">手机号:{{item.mobile}}</span></p>
-                                    </div>
-                                </div>
-                                <div class="time">{{item.time}}</div>
-                            </div>
-                        </div>
-                        <div v-else class="empty">
-                            <img src="/img/common/icon-notice-emptys@2x.png">
-                            <div class="msg"><p>暂无数据</p></div>
-                        </div>
-                    </div>
-                </div>
-                <div class="section-top" v-if="messagesList.length > 0 && !isPC">
-                    <div class="cheacked" >
-                     <input type="checkbox" class="check"  @change="checkedAllFn" v-model="isCheckedAll">
-                        <span>全选</span>
-                    </div>
-                    <div class="button" >
-                         <a href="javascript:void(0);" class="btn Read" @click="signMessageFn">标为已读</a>
-                         <a href="javascript:void(0);" class="btn" @click="deleteMessageFn">删除</a>
-                    </div>
-                 </div>
-                <div v-if="(!isPC) && noMore" class="noMore">---- 没有更多了 ----</div>
-                <div v-if="isPC && pageTotal>1" class="pageWrap clear">
-                    <a v-if="listQuery.pageNum>1" class="prev" @click="toPagination(listQuery.pageNum*1-1)" href="javascript:void(0);"></a>
-                    <template v-for="n in showPageBtn">
-                        <a v-if="n" :class="{'on':(n==listQuery.pageNum)}" @click="toPagination(n)" href="javascript:void(0);" v-text="n"></a>
-                        <span v-else>···</span>
-                    </template>
-                    <a v-if="listQuery.pageNum<pageTotal" class="next" @click="toPagination(listQuery.pageNum*1+1)" href="javascript:void(0);"></a>
-                    <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
-                    <span>跳至</span>
-                    <input v-model="pageInput" @blur="checkNum()"/>
-                    <span>页</span>&nbsp;
-                    <a class="btn" href="javascript:void(0);" @click="toPagination(pageInput)">点击跳转</a>
-                </div>
-            </div>
-        </div>
-    </div>
-    <!--loading-->
-    <div v-else class="loading">
-        <img src="/img/base/loading.gif">
-    </div>
-</div>
-<!-- 引入底部 -->
-<template th:replace="components/footer"></template>
-<template th:replace="components/foot-link"></template>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/center.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/user.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/mixins/noticeMixin.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/message.js(v=${version})}"></script>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="https://www.thymeleaf.org ">
+<head>
+    <title>采美365网-消息列表</title>
+    <template th:replace="components/head-link"></template>
+    <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/user-center/message.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
+</head>
+<body>
+<!-- 引用头部 -->
+<template th:replace="components/header"></template>
+
+<!-- 我的消息 -->
+<div id="dashboard">
+    <div class="navLayout" v-cloak>
+        <div v-if="isPC" class="crumbs">
+            <span>我的采美</span>
+            <span>&gt;</span>
+            <span>我的消息</span>
+        </div>
+        <div class="wrap clear">
+            <!--左侧导航-->
+            <template th:replace="user-center/components/tableft"></template>
+            <div class="right">
+                <div v-if="isRequset" class="loading">
+                    <img src="/img/base/loading.gif">
+                </div>
+                <div class="content clear" v-else>
+                    <div class="title">
+                        <div class="tabs-item"  v-for="(item, index) in mssageTabBar" :key="index" @click="changeTabsFn(index,item.messageType)" :class="mssageTabBarIndex == index ? 'active':''">
+                            <a href="javascript: void(0);">{{item.text}}<span>({{item.bages | NumBadge}})</span></a>
+                        </div>
+                    </div>
+                    <div class="section">
+                        <div class="section-top" v-if="messagesList.length > 0 && isPC">
+                            <div class="cheacked" >
+                            <input type="checkbox" v-model="isCheckedAll" class="check" @click="checkedAllFn">
+                                <span>全选</span>
+                            </div>
+                            <div class="button">
+                                <a href="javascript:void(0);" class="btn" @click="deleteMessageFn">删除</a>
+                                <a href="javascript:void(0);" class="btn" @click="signMessageFn">标为已读</a>
+                            </div>
+                        </div>
+                        <div class="section-content" v-if="messagesList.length > 0">
+                            <div class="new-list" v-for="(item, index) in messagesList" :key="index" :class="item.saved==1?'notclick':''">
+                                <div class="text">
+                                    <input type="checkbox"  class="check" v-model="item.check" @change="checkedItemFn(item)" />
+                                    <div class="msg-content">
+                                        <p :class="item.messageType > 4 && 'msg-article-p'" v-html="hanldeNoticeText(item)"></p>
+                                        <p v-if="item.shopTieredType > 4">客户经理:{{item.userName}}<span class="right-number">手机号:{{item.mobile}}</span></p>
+                                    </div>
+                                </div>
+                                <div class="time">{{item.time}}</div>
+                            </div>
+                        </div>
+                        <div v-else class="empty">
+                            <img src="/img/common/icon-notice-emptys@2x.png">
+                            <div class="msg"><p>暂无数据</p></div>
+                        </div>
+                    </div>
+                </div>
+                <div class="section-top" v-if="messagesList.length > 0 && !isPC">
+                    <div class="cheacked" >
+                     <input type="checkbox" class="check"  @change="checkedAllFn" v-model="isCheckedAll">
+                        <span>全选</span>
+                    </div>
+                    <div class="button" >
+                         <a href="javascript:void(0);" class="btn Read" @click="signMessageFn">标为已读</a>
+                         <a href="javascript:void(0);" class="btn" @click="deleteMessageFn">删除</a>
+                    </div>
+                 </div>
+                <div v-if="(!isPC) && noMore" class="noMore">---- 没有更多了 ----</div>
+                <div v-if="isPC && pageTotal>1" class="pageWrap clear">
+                    <a v-if="listQuery.pageNum>1" class="prev" @click="toPagination(listQuery.pageNum*1-1)" href="javascript:void(0);"></a>
+                    <template v-for="n in showPageBtn">
+                        <a v-if="n" :class="{'on':(n==listQuery.pageNum)}" @click="toPagination(n)" href="javascript:void(0);" v-text="n"></a>
+                        <span v-else>···</span>
+                    </template>
+                    <a v-if="listQuery.pageNum<pageTotal" class="next" @click="toPagination(listQuery.pageNum*1+1)" href="javascript:void(0);"></a>
+                    <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
+                    <span>跳至</span>
+                    <input v-model="pageInput" @blur="checkNum()"/>
+                    <span>页</span>&nbsp;
+                    <a class="btn" href="javascript:void(0);" @click="toPagination(pageInput)">点击跳转</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--loading-->
+    <div v-else class="loading">
+        <img src="/img/base/loading.gif">
+    </div>
+</div>
+<!-- 引入底部 -->
+<template th:replace="components/footer"></template>
+<template th:replace="components/foot-link"></template>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/center.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/user.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/mixins/noticeMixin.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/message.js(v=${version})}"></script>
+</body>
+</html>