浏览代码

Merge remote-tracking branch 'remotes/origin/developer' into developerA

zhengjinyi 4 年之前
父节点
当前提交
56a61ce744
共有 54 个文件被更改,包括 2062 次插入404 次删除
  1. 5 0
      src/main/java/com/caimei/www/controller/RedirectController.java
  2. 9 0
      src/main/java/com/caimei/www/controller/authorized/PayController.java
  3. 9 0
      src/main/java/com/caimei/www/controller/unlimited/ProductController.java
  4. 2 1
      src/main/resources/config/dev/application-dev.yml
  5. 2 1
      src/main/resources/static/css/base/form.css
  6. 15 3
      src/main/resources/static/css/pay/caimei-pay.css
  7. 2 2
      src/main/resources/static/css/pay/caimei-success.css
  8. 137 124
      src/main/resources/static/css/product/qualityauthorize.css
  9. 二进制
      src/main/resources/static/img/quality/aq_book_active.jpg
  10. 二进制
      src/main/resources/static/img/quality/aq_book_active.png
  11. 二进制
      src/main/resources/static/img/quality/brand-logo.png
  12. 二进制
      src/main/resources/static/img/quality/float-img.png
  13. 二进制
      src/main/resources/static/img/quality/icon-author.png
  14. 二进制
      src/main/resources/static/img/quality/icon-bao.png
  15. 二进制
      src/main/resources/static/img/quality/icon-close-hover.png
  16. 二进制
      src/main/resources/static/img/quality/icon-close.png
  17. 二进制
      src/main/resources/static/img/quality/icon-h5-author.png
  18. 二进制
      src/main/resources/static/img/quality/icon-h5-bao.png
  19. 二进制
      src/main/resources/static/img/quality/icon-logo.png
  20. 二进制
      src/main/resources/static/img/quality/icon-statement.png
  21. 二进制
      src/main/resources/static/img/quality/logo.png
  22. 二进制
      src/main/resources/static/img/quality/mb-close.png
  23. 二进制
      src/main/resources/static/img/quality/picture.jpg
  24. 二进制
      src/main/resources/static/img/quality/pro-authorization.png
  25. 二进制
      src/main/resources/static/img/quality/sm-sw.png
  26. 二进制
      src/main/resources/static/img/quality/sq_book.jpg
  27. 二进制
      src/main/resources/static/img/temporary/mt_mobile.jpg
  28. 二进制
      src/main/resources/static/img/temporary/mt_mobile1.jpg
  29. 二进制
      src/main/resources/static/img/temporary/mt_pc.jpg
  30. 二进制
      src/main/resources/static/img/temporary/mt_pc1.jpg
  31. 17 4
      src/main/resources/static/js/account/register-supplier.js
  32. 23 5
      src/main/resources/static/js/account/supplier-information.js
  33. 4 1
      src/main/resources/static/js/base.js
  34. 6 0
      src/main/resources/static/js/common/serviceapi/product.service.js
  35. 11 2
      src/main/resources/static/js/pay/caimei-pay.js
  36. 11 10
      src/main/resources/static/js/pay/caimei-success.js
  37. 311 0
      src/main/resources/static/js/pay/caimei-weisapay.js
  38. 4 1
      src/main/resources/static/js/product/instruement.js
  39. 2 0
      src/main/resources/static/js/product/produce-list.js
  40. 81 50
      src/main/resources/static/js/product/qualityauthorize.js
  41. 161 0
      src/main/resources/static/js/product/temporary.js
  42. 14 0
      src/main/resources/static/js/supplier-center/setting/information.js
  43. 2 0
      src/main/resources/static/js/supplier/list.js
  44. 30 0
      src/main/resources/templates/account/register-supplier.html
  45. 30 0
      src/main/resources/templates/account/supplier-information.html
  46. 5 0
      src/main/resources/templates/article/components/article-footer.html
  47. 95 46
      src/main/resources/templates/pay/caimei-pay.html
  48. 2 1
      src/main/resources/templates/pay/caimei-success.html
  49. 135 0
      src/main/resources/templates/pay/caimei-wisapay.html
  50. 1 1
      src/main/resources/templates/product/instruelist.html
  51. 87 152
      src/main/resources/templates/product/qualityauthorize.html
  52. 831 0
      src/main/resources/templates/product/temporary.html
  53. 18 0
      src/main/resources/templates/supplier-center/setting/information.html
  54. 二进制
      target/www-0.0.1-SNAPSHOT.jar

+ 5 - 0
src/main/java/com/caimei/www/controller/RedirectController.java

@@ -75,9 +75,14 @@ public class RedirectController {
      */
     @GetMapping("/cmpage/info-5-{id}.html")
     public String classificationDetails(@PathVariable("id") Integer id,String name) {
+        // 美体节活动页
+        if (id == 301) {
+            return "redirect:/product/temporary.html?id=" + id + "&name=" + name;
+        }
         return "redirect:/product/instrument.html?id=" + id+"&name="+name;
     }
 
+
     /**
      * 专题活动列表页【旧】
      */

+ 9 - 0
src/main/java/com/caimei/www/controller/authorized/PayController.java

@@ -24,6 +24,9 @@ public class PayController extends BaseController {
     /** 微信小程序网银支付链接页 */
     private static final String CAIMAI_WECHAT = "pay/caimei-wechatpay";
 
+    /** 维沙网银支付链接页 */
+    private static final String CAIMAI_WISAPAY = "pay/caimei-wisapay";
+
     /**
      * 微信小程序网银支付链接页
      */
@@ -61,4 +64,10 @@ public class PayController extends BaseController {
      */
     @GetMapping("/pay/wechatpay.html")
     public String wechatpay() {return CAIMAI_WECHAT; }
+
+    /**
+     * 微信H5支付页面
+     */
+    @GetMapping("/pay/caimei-wisapay.html")
+    public String wisapay() {return CAIMAI_WISAPAY; }
 }

+ 9 - 0
src/main/java/com/caimei/www/controller/unlimited/ProductController.java

@@ -23,6 +23,7 @@ public class ProductController extends BaseController {
 	private static final String PRODUCT_DETAIL_PATH = "product/detail";
 	private static final String PROMOTIONS_LIST_PATH = "product/promotions";
     private static final String INSTRUMENT_PAGE_PATH = "product/instrument";
+    private static final String TEMPORARY_PAGE_PATH = "product/temporary";
     private static final String INSTRUMENT_LIST_PATH = "product/instruelist";
     private static final String QUALITY_AUTHORRIZE_PATH = "product/qualityauthorize";
     /** 美博会专题页 */
@@ -72,6 +73,14 @@ public class ProductController extends BaseController {
         return INSTRUMENT_PAGE_PATH;
     }
 
+    /**
+     * 美体节活动页
+     */
+    @GetMapping("/product/temporary.html")
+    public String temporary(){
+        return TEMPORARY_PAGE_PATH;
+    }
+
     /**
      * 仪器列表页
      */

+ 2 - 1
src/main/resources/config/dev/application-dev.yml

@@ -54,8 +54,9 @@ logging:
 caimei:
   siteEnv: 0 #网站环境,(2:正式环境,1:测试环境,0:开发环境)
   spiServer: https://spi-b.caimei365.com
+#  spiServer: http://192.168.2.68:8008
   coreServer: https://core-b.caimei365.com
-#  coreServer: http://192.168.2.75:18002
+#  coreServer: http://192.168.2.68:18002
   imageDomain: https://img-b.caimei365.com
   wwwDomain: https://www-b.caimei365.com
 

+ 2 - 1
src/main/resources/static/css/base/form.css

@@ -7,7 +7,8 @@
 .formLine{padding-bottom:5px;font-size:14px;position:relative}
 .formLine input,.formLine select{box-sizing:border-box;width:100%;height:36px;line-height:34px;text-indent:1.2em;background-color:#FFF;border:1px solid #b8bfca;border-radius:2px}
 .formLine textarea{width:100%;height:114px;margin-top: 20px; box-sizing:border-box;border:solid 1px #b8bfca;padding:10px 16px;line-height:20px;resize: none;border-radius: 2px;outline: none;}
-.formLine select{width:154px}
+ .formLine textarea.none{margin-top: 0;}
+ .formLine select{width:154px}
 .formLine.error input,
 .formLine.error textarea,
 .formLine .address.error select,

+ 15 - 3
src/main/resources/static/css/pay/caimei-pay.css

@@ -3,7 +3,7 @@
  */
 /*@media screen and (min-width:768px){*/
     .inner{width: 1184px;margin: 0 auto;}
-    .container{width: 100%;height: auto;float: left;margin-bottom: 30px;}
+    .container{width: 100%;height: auto;}
     .head-wrap{width: 100%;height: 81px;float: left;background-color: #FFFFFF;margin-bottom: 26px;}
     .head-wrap .inner{width:1184px;height: 81px;margin: 0 auto;    background-color: #FFFFFF;}
     .head-wrap .logo{width:68px;height: 81px;float: left;}
@@ -33,6 +33,11 @@
     .pay-goods .good-top .bot-right .bot-num span{font-size: 14px;color: #333333;}
     .pay-goods .good-top .bot-right .bot-num span.p{color: #333333;}
     .pay-goods .good-top .bot-right .bot-num span.red{color: #FF2A2A;}
+    .pay-goods .good-top .ws-count-price{font-size: 24px;padding-top: 25px}
+    .pay-goods .good-top .ws-count-price span.red{color: #FF2A2A;font-weight: bold}
+    .pay-goods .good-top .ws-bot-right{padding: 20px 0;float: left}
+    .pay-goods .good-top .ws-bot-right .bot-num{float: left;margin-right: 30px;}
+    .pay-goods .good-top .good-top-inner{float: unset;height: auto}
     .pay-goods{width: 100%;height: auto;float: left;background: #ffffff;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
     .pay-goods .good-main{width: 100%;height: auto;float: left;}
     .pay-goods .good-main .list-title{width: 100%;height: 40px;padding: 0 20px;float: left;box-sizing: border-box;}
@@ -43,11 +48,12 @@
     .pay-goods .good-main .list-title .t-li:nth-child(4){width: 15%;}
     .pay-goods .good-main .list-title .t-li:nth-child(5){width: 15%;}
     .pay-goods .good-main .list-title .t-li:nth-child(6){width: 20%;}
+
     .pay-goods .good-main .list-container{width: 100%;height: auto;background: #ffffff;padding: 10px 20px;float: left;border-bottom: 1px solid #F7F7F7;opacity: 1;box-sizing: border-box;}
     .pay-goods .good-main .list-container.active{height: 0;opacity: 0;}
     .pay-goods .good-main .list-container .list-main{width: 100%;height: 48px;float: left;}
     .pay-goods .good-main .list-container .list-main.active{background-color: #F7F7F7;}
-    .pay-goods .good-main .list-container .list-main .t-li{font-size: 14px;color: #333333;line-height: 48px;float: left;text-align: center;display: flex;align-items: center;flex-direction: column;}
+    .pay-goods .good-main .list-container .list-main .t-li{position: relative; font-size: 14px;color: #333333;line-height: 48px;float: left;text-align: center;display: flex;align-items: center;flex-direction: column;}
     .pay-goods .good-main .list-container .list-main .t-li:nth-child(1){width: 8%;}
     .pay-goods .good-main .list-container .list-main .t-li:nth-child(2){width: 15%;}
     .pay-goods .good-main .list-container .list-main .t-li:nth-child(3){width: 27%;text-align: justify;text-overflow:ellipsis;display: -webkit-box;word-break: break-all;-webkit-box-orient: vertical;-webkit-line-clamp: 1;overflow: hidden;}
@@ -55,6 +61,11 @@
     .pay-goods .good-main .list-container .list-main .t-li:nth-child(5){width: 15%;}
     .pay-goods .good-main .list-container .list-main .t-li:nth-child(6){width: 20%;}
     .pay-goods .good-main .list-container .list-main .t-li img{width: 30px;height: 30px;border-radius: 5px;background-color: #f7f7f7;margin-top: 9px;}
+    .pay-goods .good-main .list-container .list-main .t-li .tag{display: block; position: absolute;z-index: 10;left: 50%;top: 33px;transform: translateX(-50%);width: 40px;font-size: 12px;background: #FF2A2A;color: #fff;line-height: 18px;text-align: center;border-radius: 0 0 4px 4px}
+    .pay-goods .good-main .ws-list-container .list-main {height: 60px !important;}
+    .pay-goods .good-main .ws-list-container .list-main .t-li img{width:40px;height: 40px;}
+    .pay-goods .good-main .list-total{text-align: right;font-size: 18px;padding: 20px 25px;float: right;margin-right: 60px}
+    .pay-goods .good-main .list-total span.red{color: #FF2A2A}
     .pay-ment{width: 100%;height: auto;float: left;margin-top: 20px;}
     .pay-ment .pay-message{width: 100%;height: 48px;box-sizing: border-box;line-height: 48px;float: left;background: #FFFFFF;padding: 0 20px;margin-bottom: 20px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
     .pay-ment .pay-message .message-num{float: left;margin-right: 80px;font-size: 14px;color: #333333;}
@@ -93,11 +104,12 @@
     .pay-alert-content .pay-alert .content p{text-align: left;font-size: 14px;color: #666666;font-weight: normal;}
     .pay-alert-content .pay-alert .button{width: 100%;height: 32px;float: left;padding: 0 14px;box-sizing: border-box;}
     .pay-alert-content .pay-alert .button a{width: 90px;height: 32px;display: block;background: #E15616;border-radius: 2px;font-size: 14px;text-align: center;line-height: 32px;color: #FFFFFF;float: right;}
-    .pay-button-main{width: 100%;height: 72px;box-sizing: border-box;padding: 11px 0;background-color: #FFFFFF;float: left;border-bottom: 1px solid #EBEBEB;}
+    .pay-button-main{margin-top:30px;width: 100%;height: 72px;box-sizing: border-box;padding: 11px 0;background-color: #FFFFFF;float: left;border-bottom: 1px solid #EBEBEB;}
     .pay-button-main .pay-button{width: 100%;height: 50px;float: left;}
     .pay-button-main .pay-button a{width: 232px;height: 50px;display: block;background:linear-gradient(135deg,rgba(242,143,49,1) 0%,rgba(225,86,22,1) 100%);border-radius: 2px;font-size: 14px;line-height: 50px;text-align: center;color: #FFF6D9;float: right;}
     .pay-button-main .pay-button a.disabled{background: #EFEFEF;color:#999999;}
     .footTop{margin-top: 0;}
+
 /*}*/
 
 /**

+ 2 - 2
src/main/resources/static/css/pay/caimei-success.css

@@ -19,7 +19,7 @@
     .pay-content .success-text .tx1{line-height: 60px;font-size: 30px;color: #FF2A2A;text-align: center;font-weight: 600;}
     .pay-content .success-text .tx2{line-height: 40px;font-size: 16px;color: #333;text-align: center;}
     .pay-content .success-text .tx2 span{color: #FF2A2A;}
-    .pay-content .success-text .tx2 a{color: #e15616;margin-left: 10px;}
-    .pay-content .success-text .tx2 a:hover{text-decoration: underline;}
+    .pay-content .success-text .tx2 a{color: #e15616;}
+    .pay-content .success-text .tx2 a:hover{text-decoration: underline;color:#FF2A2A}
 
 }

+ 137 - 124
src/main/resources/static/css/product/qualityauthorize.css

@@ -1,130 +1,143 @@
-@charset "utf-8";
-/**
-* PC端
-*/
-@media screen and (min-width:768px){
-    .inner{width: 1184px;margin: 0 auto;}
-    .container-header{width: 100%;height: auto;}
-    .header-top{width: 100%;height: 56px;line-height: 56px;text-align: center;font-size: 18px;color: #333;font-weight: bold;}
-    .header-bottom{width: 100%;height: 83px;float: left;background-color: #ffffff;}
-    .header-bottom .logo{width: 178px;height: 44px;float: left;margin-top: 20px;}
-    .header-bottom .logo a{width: 100%;height: 100%;display: block;}
-    .header-bottom .logo img{width: 100%;height: 100%;display: block;}
-    .header-bottom .header-right{width:auto ;float: right;padding: 0 16px;box-sizing: border-box;margin-top: 29px;}
-    .header-bottom .header-right .header-nav{float: left;margin-right: 24px;line-height: 54px;font-size: 15px;color: #333333;font-weight: bold;position: relative;}
-    .header-bottom .header-right .header-nav a{width: 100%;height: 54px;display: block;position: relative;padding-right: 30px;text-align: center;}
-    .header-bottom .header-right .header-nav .icon:before{background-position: -93px 7px;width: 20px;height: 32px;right: 20px;top: 10px;position: absolute;}
-    .header-bottom .header-right .header-nav-tabs{width: 144px;height: 402px;position: absolute;bottom: -402px;left: -20px;background-color: #FFFFFF;display: none;}
-    .header-bottom .header-right .header-nav:hover .header-nav-tabs{display: block;}
-    .header-bottom .header-right .header-nav-tabs .item-nav{width: 100%;height: 48px;float: left;}
-    .header-bottom .header-right .header-nav-tabs .item-nav a{width: 100%;height: 100%;display: block;font-size: 16px;text-align: center;line-height: 48px;padding-right: 0;}
-    .header-bottom .header-right .header-nav-tabs .item-nav:hover a{background-color: #fef6f3;}
-    .header-bottom .header-right .header-use{float: right;line-height: 54px;font-size: 15px;font-weight: bold;color: #333333;text-align: right;}
-    .container-content{width: 100%;height: auto;float: left;margin-top: 16px;}
-    .container-content .content-top{width: 100%;height: 120px;box-sizing: border-box;padding: 20px 16px;background-color: #ffffff;}
-    .container-content .content-top-left{width: 50%;float: left;height: 100%;}
-    .container-content .content-top-right{width: 50%;float: right;height: 100%;box-sizing: border-box;padding: 18px 0;}
-    .container-content .content-button{width: 168px;height: 44px;float: right;}
-    .container-content .content-button a{width: 100%;height: 100%;display: block;text-align: center;font-size: 16px;background-color:  #d8d8d8;border-radius: 2px;color: #FFFFFF;line-height: 44px;}
-    .container-content .content-logo{width: 112px;height: 80px;float: left;box-sizing: border-box;border: 1px solid #f5f5f5;border-radius: 2px;}
-    .container-content .content-logo img{width: 100%;height: 100%;border-radius: 2px;display: block;}
-    .container-content .content-mssg{width:300px ;float: left;margin-left: 16px;}
-    .container-content .mssg-name{width: 100%;height: 48px;line-height: 48px;font-size: 18px;color: #333333;font-weight: bold;text-align: left;}
-    .container-content .mssg-labels{width: 100%;height: 20px;float: left;}
-    .container-content .mssg-labels span{width: 88px;height: 20px;background-image: linear-gradient(270deg,#c1821a 0%, #f7cd7e 100%);border-radius: 2px 8px 2px 8px;font-size: 12px;line-height: 20px;text-align: center;color: #FFFFFF;display: inline-block;float: left;}
-    .container-content .content-bottom{width: 100%;height: auto;background-color: #FFFFFF;float: left;margin-top: 20px;box-sizing: border-box;padding: 16px;}
-    .content-bottom .preview-banner {width: 452px;height: 545px;float: left;position: relative;}
-    .content-bottom .preview-info.active {opacity: 1;}
-    .content-bottom .preview-banner-big {width: 452px;height: 452px;float: left;border: 1px solid #e4e4e4;}
-    .content-bottom .preview-banner-big .preview-img {width: 100%;height: 100%;display: block;}
-    .content-bottom .preview-banner-big span {display: none;position: absolute;left: 0;top: 0;width: 215px;height: 215px;border: 1px solid #aaa;background: rgba(255, 208, 22, 0.4);opacity: .5;filter: alpha(opacity:50);cursor: move;}
-    .content-bottom .preview-banner-small {width: 100%;height: 98px;padding: 10px;float: left;box-sizing:border-box;}
-    .content-bottom .preview-banner-small .item {width: 78px;height: 78px;margin-right: 9px;float: left;background-color: #fff;cursor: pointer;list-style: none;border: 1px solid #FFFFFF;}
-    .content-bottom .preview-banner-small .item:last-child {margin-right: 0;}
-    .content-bottom .preview-banner-small .item img {width: 100%;height: 100%;display: block;-moz-transition: .5s;-webkit-transition: .5s;transition: .5s;opacity: .5;}
-    .content-bottom .preview-banner-small .item.on {border-color: #e15616;}
-    .content-bottom .preview-banner-small .item.on img {opacity: 1;}
-    .content-bottom .preview-box {display: none;overflow: hidden;position: absolute;right: -555px;top: 0;width: 548px;height: 548px;border: 1px solid #e4e4e4;z-index: 9999;background: #FFFFFF;}
-    .content-bottom .preview-box img {width: 1096px;height: 1096px;margin-right: 10px;display: block;max-width:none;}
-    .content-bottom .preview-info {width: 650px;height: 545px;float: left;margin-left: 24px;}
-    .content-bottom .preview-info-title{width: 100%;height: 155px;border-bottom: 1px dashed #e2e7ef;}
-    .content-bottom .title-label{width: 100%;height: 47px;float: left;}
-    .content-bottom .title-label p{float: left;line-height: 47px;font-size: 14px;color: #9aa5b5;text-align: left;}
-    .content-bottom .title-label .icon-author{width: 47px;height: 47px;display: block;float: left;margin-left: 16px;}
-    .content-bottom .title-name{width: 100%;height: auto;line-height: 24px;font-size: 18px;color: #333333;font-weight: bold;text-align: left;float: left;}
-    .content-bottom .title-p{width: 100%;height: 44px;line-height: 44px;float: left;}
-    .content-bottom .title-p span{font-size: 14px;line-height: 44px;}
-    .content-bottom .title-p span.label{color: #9aa5b5;}
-    .content-bottom .title-p span.labal{color: #333333;}
-    .content-bottom .title-w{width: 100%;height: 24px;float: left;}
-    .content-bottom .title-w .title-w-bao{width: 24px;height: 24px;display: block;float: left;}
-    .content-bottom .title-w a{width: 104px;height: 24px;display: block;float: left;margin-left: 3px;background-color: #fff8e8;border-radius: 2px;text-align: center;font-size: 14px;line-height: 24px;color: #d8a245;}
-    .content-bottom .preview-info-details{width: 100%;height: auto;float: left;}
-    .content-bottom .preview-info-details .details-p{width: 100%;height: 40px;line-height: 40px;float: left;}
-    .content-bottom .preview-info-details .details-p span{font-size: 14px;line-height: 40px;}
-    .content-bottom .preview-info-details .details-p span.label{color: #9aa5b5;}
-    .content-bottom .preview-info-details .details-p span.labal{color: #333333;}
-    .content-bottom .preview-info-msg{width: 100%;height: 32px;float: left;margin-top: 25px;}
-    .content-bottom .preview-info-msg .info-msg{width: 588px;height: 32px;border-radius: 2px;background-color: #fef6f3;position: relative;font-size: 14px;line-height: 32px;text-align: center;padding-left: 16px;color: #e15616;}
-    .content-bottom .preview-info-msg .info-msg .icon:before{background-position: -93px -550px;width: 18px;height: 18px;left: 15px;top: 7px;position: absolute;}
-
+@charset "utf-8";body{margin:0}
+h1,h2,h3,p{margin:0}
+a{text-decoration:none;color:#000}
+ul{margin:0;padding:0;list-style-type:none}
+.fl-left{float:left}
+.fl-right{float:right}
+.fl-clear::after{display:block;content:'';clear:both}
+.params{border-collapse:unset;border:0;width:100%}
+.product-params .params tr td{border:0}
+.product-params .params tr td:nth-child(2n-1){color:#999999}
+@media screen and (min-width:768px){body{background-color:#F8F8F8}
+.inner{width:1184px;margin:0 auto}
+.container-header{width:100%;height:auto}
+.header-top{width:100%;height:80px;-webkit-box-sizing:border-box;box-sizing:border-box;padding:23px 0;background-image:-o-linear-gradient(right,#191919 0%,#464646 100%);background-image:-webkit-gradient(linear,right top,left top,from(#191919),to(#464646));background-image:linear-gradient(270deg,#191919 0%,#464646 100%)}
+.header-top .logo{width:98px;height:34px;float:left}
+.header-top .logo img{width:98px;height:34px;display:block}
+.container-content{width:100%;height:auto;margin-top:16px}
+.container-content .content-top{width:100%;height:120px;-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px 16px;background-color:#ffffff;-webkit-box-shadow:0 2px 10px #ebecef;box-shadow:0 2px 10px #ebecef}
+.container-content .content-top-left{width:50%;float:left;height:100%}
+.container-main{width:1184px;height:590px;margin:0 auto;padding:25px;background:#FFF;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box}
+.container-main .img-box{float:left;position:relative;width:540px;height:540px;border:1px solid #ececec;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}
+.container-main .img-box .origin-logo-box{text-align:center;width:140px;position:absolute;top:45px;left:26px;z-index:10}
+.container-main .img-box .product-brand{max-width:140px;height:auto}
+.container-main .img-box .product-img{width:100%;height:100%}
+.container-main .img-box .product-authorize{width:72px;height:72px;position:absolute;bottom:20px;right:30px;z-index:10}
+.product-desc{width:570px;line-height:30px;color:#101010;float:right}
+.product-desc h3{font-size:20px}
+.product-desc .pink-box{margin:30px 0;padding:10px 16px;background:rgb(251,241,242);color:#bc1724}
+.product-desc .pink-box a{color:#bc1724}
+.product-desc .default-box{padding:10px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}
+.product-desc .dls{color:#999}
+.product-desc .statement a{color:#bc1724}
+.product-desc .statement a .icon-wenhao{font-weight: bold;margin-left: 5px}
+/*.product-desc .statement a::after{content:'?';display:inline-block;width:14px;height:14px;text-align:center;line-height:16px;font-size:14px;border:1px solid #bc1724;border-radius:50%;margin-left:5px}*/
+.product-desc p{margin:30px 0}
+.product-params{width:1184px;margin:16px auto 0;padding:25px;background:#FFFFFF;-webkit-box-sizing:border-box;box-sizing:border-box}
+.product-params .title{position:relative;padding-bottom:10px;border-bottom:1px solid #eee;-webkit-box-sizing:border-box;box-sizing:border-box}
+.product-params .title::after{content:'';display:block;position:absolute;bottom:-2px;left:0;width:72px;height:2px;background:#101010}
+.product-params .title span{font-size:18px;font-weight:bold}
+.product-params .p-content{color:#101010}
+.product-params .pc-params{margin-top:30px}
+.product-params .pc-params li{float:left;width:50%;margin:15px 0}
+.product-params .pc-params li>div{float:left}
+.product-params .pc-params li .p-title{color:#999999}
+.footer{margin-top:60px;padding:20px 0;background-color:#eee}
+.footer p{text-align:center;font-size:14px;color:#999}
+.footer p a{color:#999}
+.product-desc a:hover{color:#F52E3E}
+.product-desc .statement a:hover::after{border-color:#F52E3E}
+.footer p a:hover{color:#F52E3E}
+.footer-mobile{display:none}
+.product-params .params.mobile{display:none}
 
+.statementModel{position:fixed;top:0;left:0;z-index:999;width:100%;height:100vh;background:rgba(0,0,0,.4)}
+.statementModel .model{position:fixed;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);width:620px;height:380px;border-radius:4px;background:#fff;overflow:hidden}
+.statementModel .title{padding:15px 20px;background:#f1f1f1;font-size:18px}
+.statementModel .close{position:absolute;right:20px;top:10px;display:block;width:30px;height:30px;background:url(/img/quality/icon-close.png) no-repeat center;cursor:pointer}
+.statementModel .close:hover{background-image:url(/img/quality/icon-close-hover.png)}
+.statementModel .content{padding:15px;height:296px;overflow-y:scroll;line-height: 1.8;text-align: justify;text-indent: 2em}
+.float-zplm{position:fixed;z-index:99;bottom:16%;right:2%;width:90px}
+.float-zplm img{width:100%}
+.close{position:absolute;display:block;width:32px;height:32px;background:url(/img/quality/mb-close.png) no-repeat center;cursor:pointer;z-index:999;background-size:32px;right:0;top:-50px}
+.container-main .sq-book{position:absolute;width:149px;height:112px;bottom:20px;left:30px;z-index:10;cursor: pointer;}
+.sq-book-modal{width:100%;height:100vh;position:fixed;z-index:997;top:0;left:0;background:rgba(0,0,0,.7);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}
+.sq-book-img{width:622px;height:467px;-webkit-box-shadow:0 10px 28px rgba(255,199,30,.26);box-shadow:0 10px 28px rgba(255,199,30,.26);position:fixed;left:0;right:0;margin:0 auto;top:20%;z-index:998}
+.sq-book-img img{width:100%;height:auto}
+}@media screen and (max-width:768px){body{background:#fff}
+.container{font-size:3.6vw;color:#101010}
+.container-header{display:none}
+.container-content{width:100%}
+.container-main{width:100vw}
+.container-main .img-box{width:100vw;position:relative}
+.container-main .product-img{width:100vw}
+.container-main .img-box .origin-logo-box{position:absolute;top:4vw;left:4vw;max-width:30vw;text-align:center;z-index:9}
+.container-main .img-box .origin-logo-box img{max-width:30vw}
+.container-main .img-box .product-authorize{width:13.8vw;height:13.8vw;position:absolute;bottom:3.2vw;right:4vw}
+.product-desc a{color:#bc1724}
+.product-desc h3{background:-o-linear-gradient(left,#101010,#404040);background:-webkit-gradient(linear,left top,right top,from(#101010),to(#404040));background:linear-gradient(to right,#101010,#404040);color:#fefefe;padding:4vw;font-size:4.4vw}
+.product-desc .pink-box{padding:3.2vw 4vw;background:rgb(251,241,242);color:#bc1724;line-height:8vw}
+.product-desc .default-box{width:92.3vw;margin:0 auto;padding:3.2vw 0;border-bottom:0.4vw solid #eee;line-height:8vw}
+.product-desc .statement a{display:block;padding-right:20px;width:23.6vw;}
+.product-desc .statement a .icon-wenhao{font-weight: bold;margin-left: 5px;}
+.product-desc p{padding:3.2vw 4vw;line-height:6vw}
+.product-desc .sn-number{padding:3.2vw 0;background:#f5f5f5}
+.product-desc .sn-number .item-row{background:rgb(251,241,242);padding:3.2vw 4vw}
+.product-params{padding:3.2vw 4vw}
+.product-params .title{padding:4vw 0;border-bottom:0.4vw solid #eee;font-size:4vw;font-weight:bold}
+.product-params .params{margin-top:3vw;border-spacing:0 4vw}
+.product-params .params tr{line-height:6.6vw}
+.product-params .footer{display:none}
+.product-params .params.mobile td{vertical-align: top}
+.footer{display:none}
+.footer-mobile{padding:8vw 0 4vw;line-height:7vw;text-align:center;background:#f5f5f5}
+.footer-mobile p{color:#b2b2b2;font-size:2.4vw}
+.footer-mobile a{color:#f52e3e;font-size:3vw;font-weight:bold}
+.product-params .pc-params.pc{display:none}
+.statementModel{position:fixed;top:0;left:0;z-index:999;width:100%;height:100vh;background:rgba(0,0,0,.4)}
+.statementModel .model{position:fixed;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);width:86vw;height:128vw;border-radius:4px;background:#fff}
+.statementModel .title{padding:4vw 5vw;background:#f1f1f1;font-size:4.6vw;text-align:center}
+.statementModel .close{position:absolute;right:0;top:-10vw;display:block;width:8.2vw;height:8.2vw;background:url(/img/quality/mb-close.png) no-repeat center;background-size:8.2vw;cursor:pointer}
+.statementModel .content{padding:4vw;height:100vw;overflow-y:scroll;line-height: 1.8;text-align: justify;text-indent: 2em;}
+.float-zplm{position:fixed;z-index:99;bottom:30vw;right:3.4vw;width:15.7vw}
+.float-zplm img{width:100%}
+.close{position:absolute;display:block;width:7.2vw;height:7.2vw;background:url(/img/quality/mb-close.png) no-repeat center;cursor:pointer;z-index:999;background-size:7.2vw;right:0;top:-11.5vw}
+.container-main .sq-book{position:absolute;width:27.2vw;height:20.6vw;bottom:4.1vw;left:4vw;z-index:10;cursor: pointer}
+.sq-book-modal{width:100%;height:100vh;position:fixed;z-index:997;top:0;left:0;background:rgba(0,0,0,.7)}
+.sq-book-img{z-index:998;display:block;width:92vw;height:69vw;position:fixed;top:41.2vw;left:0;right:0;margin:0 auto;-webkit-box-shadow:0 10px 28px rgba(255,199,30,.26);box-shadow:0 10px 28px rgba(255,199,30,.26)}
+.sq-book-img img{width:100%}
+}.myZoomIn{-webkit-animation:zoomIn 1s ease;animation:zoomIn 1s ease}
+.myZoomOut{-webkit-animation:zoomOut 1s ease;animation:zoomOut 1s ease}
+@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}
+50%{opacity:1}
+}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}
+50%{opacity:1}
+}@-webkit-keyframes zoomOut{0%{opacity:1}
+50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}
+to{opacity:0}
+}@keyframes zoomOut{0%{opacity:1}
+50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}
+to{opacity:0}
 }
 
+@font-face {font-family: "iconfont";
+  src: url('//at.alicdn.com/t/font_2466631_xct76hehlhc.eot?t=1617677320008'); /* IE9 */
+  src: url('//at.alicdn.com/t/font_2466631_xct76hehlhc.eot?t=1617677320008#iefix') format('embedded-opentype'), /* IE6-IE8 */
+  url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAANIAAsAAAAABuwAAAL6AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcAqBeIIBATYCJAMICwYABCAFhG0HMBsnBhEVlClkXyTYnD24tgJVfeZWhGDmcRfFUCmL2UvWCFQafBMPfGvpn905gqC6S0qk+iILBBJI1SGB0DGmRA6NuKHL/dz8F0hxvMbmQL70qQly1JgC8ViccPc/pwUX4fveVZiQ7PPICuh+wpd3uZKDjY2ZkFNmc6RImHbGHmq9BsCYBfY/h0ubXmDzA+Uy17KoF2C8NcAx1x3ZHcgB+C3Da12Kh7yfgKIeY4RpvkgGyYvIsICwadhvIvmCUxT1SF6QbZgbhQtI+eRk8obz0e+H/8aGPIlMiuQs2ujtIJN+F2hMeqBlqEgE1nJ66ItIMQaRsKzRuECaBMdIFd1gNIhjZQZ+g1ZLqoWj/vOELJJeBg1gPhOLsx81PQER2hdh56QLiG2wTU+9W/buMnp/nv5e+fFm/PladjpHY/rT8FXLfy7RsP48+ba8f3rlhbE2t+NN6fqxbDrsN+8OdOu84Q2Q0v3bW2t/6PnDgHRSHk5yOicne0BwOuDkPS1kFdZ3wklZW2emXu+RzaDeqN5rzGw2toxCAHgvCg3oDbhGo4Kf1awXWSqNTt+/3aTvFE/+mjeVnrRa/a9BUZMevf2tOT6wzY7upZ4fvoC++CxkEmidIrHzd/+N4WPS2VXyuPOlCL5Nr7nI3joiw8zkb8oU+LmsgWXR4xBJ8pRMbEosytklAN2waEGs7X5MlXa9iT7IF1g6JHKakMobgozYMZBR0gdZeaaJUDRaZXFJB5YXYgGj3CEI6l4hUdUPqbp3ZMT+QEa3K2TVQx6KVoSONUuGBU+byrgU3MDqCN6aYsU0osWZfXS24ZLznIgwRk49D1i6WY5UMEZeYkK6c2wRBYopgjI6DMOQIGHycS26K5KUDEM1fZO+piijmYqhJYE2wMoR8KyRmJLVhVb5+T7k2AotcUdJl3oMsZTXObDozAHIijAeVPIoj6R2HDYhFKAwEgFlpEchDRKQNPfyoTWhcyf4EyUGrqSGCvXtxdHfrYEiIksC7ZbKbsfYXVImAwAA') format('woff2'),
+  url('//at.alicdn.com/t/font_2466631_xct76hehlhc.woff?t=1617677320008') format('woff'),
+  url('//at.alicdn.com/t/font_2466631_xct76hehlhc.ttf?t=1617677320008') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
+  url('//at.alicdn.com/t/font_2466631_xct76hehlhc.svg?t=1617677320008#iconfont') format('svg'); /* iOS 4.1- */
+}
 
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
 
+.icon-wenhao:before {
+  content: "\e71d";
+}
 
-/**
-* 移动端
-*/
-@media screen and (max-width:768px){
-    .inner{width: 100%;}
-    .container-header{width: 100%;height: auto;}
-    .header-bottom{width: 100%;height: 13.4vw;}
-    .bottom_nav{width: 13.4vw;height: 13.4vw;float: left;box-sizing: border-box;padding: 3.5vw;}
-    .bottom_nav .icon_nav{display: block;}
-    .bottom_nav .icon_nav:before{content: '';display: block;width: 6.4vw;height: 6.4vw;background-position: 0 0;}
-    .bottom_nav .header-nav-tabs{display: none;}
-    .bottom_logo{width:73.2vw;height: 13.4vw;float: left; box-sizing: border-box;padding: 3.75vw 0;}
-    .bottom_logo a{width: 23.8vw;height: 5.9vw;display: block;margin: 0 auto;}
-    .bottom_logo a img{width: 23.8vw;height: 5.9vw;display: block;}
-    .bottom_use{width: 13.4vw;height: 13.4vw;float: right;box-sizing: border-box;padding: 3.5vw;}
-    .bottom_use .icon_nav{display: block;}
-    .bottom_use .icon_nav:before{content: '';display: block;width: 6.4vw;height: 6.4vw;background-position:-8.6vw  0;}
-    .header-bottom-msg{width: 100%;height: 13.4vw;background-color: #fef6f3;float: left;box-sizing: border-box;position: relative;padding-left: 8vw;}
-    .header-bottom-msg .icon-msg{width: 8vw;height: 13.4vw;display: block;position: absolute;left: 0;top: 0;}
-    .header-bottom-msg .icon-msg:before{width: 6.4vw;height: 6.4vw;display: block;background-position: -85.1vw -43.7vw;}
-    .header-bottom-msg p{display: inline-block;padding-top: 2vw;line-height:4.7vw;font-size: 3vw;color: #E15616;box-sizing: border-box;height: 100%;padding-right: 2vw;}
-    .container-content{width: 100%;height: auto;float: left;}
-    .content-top{width: 100%;height: 28vw;float: left;background-color: #ffffff;box-sizing: border-box;padding: 4vw 3.2vw;border-bottom: 1px solid #EFEFEF;}
-    .content-top .content-top-left{width:100%;height: 20vw;float: left;}
-    .content-top .content-logo{width: 26.4vw;height: 20vw;float: left;}
-    .content-top .content-logo img{width: 26.4vw;height: 20vw;display: block;}
-    .content-top .content-mssg{width: 63.6vw;height: 20vw;float: left;margin-left: 3.2vw;}
-    .content-top .content-mssg .mssg-name{width: 100%;height: 8.9vw;float: left;line-height: 8.9vw;font-size: 3.8vw;color: #333333;font-weight: bold;}
-    .content-top .content-mssg .mssg-labels{width: 100%;height: 20px;float: left;}
-    .content-top .content-mssg .mssg-labels span{width: 24.2vw;height: 5.4vw;background-image: linear-gradient(270deg,#c1821a 0%, #f7cd7e 100%);border-radius: 0.2vw 2.7vw 0.2vw 2.7vw;font-size: 3vw;line-height: 5.4vw;text-align: center;color: #FFFFFF;display: inline-block;float: left;}
-    .content-bottom{width: 100%;height: auto;float: left;box-sizing: border-box;background-color: #ffffff;padding-bottom: 8vw;}
-    .swiper-pagination{width: 10.4vw;height: 5.6vw;border-radius: 1vw;background-color: rgba(51, 51, 51, 0.24);left: 85vw;z-index: 99999;color: #FFFFFF;}
-    .content-bottom .preview-info{width: 100%;height: auto;float: left;padding: 0 3.2vw;box-sizing: border-box;}
-    .content-bottom .preview-info-title{width: 100%;height:35.4vw;border-bottom: 1px dashed #e2e7ef;box-sizing: border-box;padding: 2.5vw 0 0 0;}
-    .content-bottom .title-label{width: 100%;height:10.4vw;float: left;}
-    .content-bottom .title-label p{float: left;line-height: 10.4vw;font-size: 3vw;color: #9aa5b5;text-align: left;}
-    .content-bottom .title-label .icon-author{width:  10.4vw;height:  10.4vw;display: block;float: left;margin-left: 3.2vw;}
-    .content-bottom .title-name{width: 100%;height: auto;line-height: 5.5vw;font-size: 4.2vw;color: #333333;font-weight: bold;text-align: left;float: left;}
-    .content-bottom .title-p{width: 100%;height: 7.5vw;line-height: 7.5vw;float: left;}
-    .content-bottom .title-p span{font-size: 3.4vw;line-height: 7.5vw;}
-    .content-bottom .title-p span.label{color: #9aa5b5;}
-    .content-bottom .title-p span.labal{color: #333333;}
-    .content-bottom .title-w{width: 100%;height: 5.6vw;float: left;}
-    .content-bottom .title-w .title-w-bao{width: 5.6vw;height: 5.6vw;display: block;float: left;}
-    .content-bottom .title-w a{width: 23.2vw;height: 5.2vw;display: block;float: left;margin-left:1vw;background-color: #fff8e8;border-radius: 0.2vw;text-align: center;font-size: 3vw;line-height: 5.2vw;color: #d8a245;}
-    .content-bottom .preview-info-details{width: 100%;height: auto;float: left;padding-top: 2vw;}
-    .content-bottom .preview-info-details .details-p{width: 100%;height: 7.5vw;line-height:7.5vw;float: left;}
-    .content-bottom .preview-info-details .details-p span{font-size: 3.4vw;line-height: 7.5vw;}
-    .content-bottom .preview-info-details .details-p span.label{color: #9aa5b5;}
-    .content-bottom .preview-info-details .details-p span.labal{color: #333333;}
-    .content-bottom .preview-button{width: 100%;height: 11.2vw;float: left;margin-top: 2vw;}
-    .content-bottom .preview-button a{width: 100%;height: 11.2vw;display: block;background-color: #d8d8d8;border-radius: 0.4vw;line-height: 11.2vw;font-size: 3.4vw;color: #ffffff;text-align: center;}
-
-}

二进制
src/main/resources/static/img/quality/aq_book_active.jpg


二进制
src/main/resources/static/img/quality/aq_book_active.png


二进制
src/main/resources/static/img/quality/brand-logo.png


二进制
src/main/resources/static/img/quality/float-img.png


二进制
src/main/resources/static/img/quality/icon-author.png


二进制
src/main/resources/static/img/quality/icon-bao.png


二进制
src/main/resources/static/img/quality/icon-close-hover.png


二进制
src/main/resources/static/img/quality/icon-close.png


二进制
src/main/resources/static/img/quality/icon-h5-author.png


二进制
src/main/resources/static/img/quality/icon-h5-bao.png


二进制
src/main/resources/static/img/quality/icon-logo.png


二进制
src/main/resources/static/img/quality/icon-statement.png


二进制
src/main/resources/static/img/quality/logo.png


二进制
src/main/resources/static/img/quality/mb-close.png


二进制
src/main/resources/static/img/quality/picture.jpg


二进制
src/main/resources/static/img/quality/pro-authorization.png


二进制
src/main/resources/static/img/quality/sm-sw.png


二进制
src/main/resources/static/img/quality/sq_book.jpg


二进制
src/main/resources/static/img/temporary/mt_mobile.jpg


二进制
src/main/resources/static/img/temporary/mt_mobile1.jpg


二进制
src/main/resources/static/img/temporary/mt_pc.jpg


二进制
src/main/resources/static/img/temporary/mt_pc1.jpg


+ 17 - 4
src/main/resources/static/js/account/register-supplier.js

@@ -33,6 +33,11 @@ var registerPage = new Vue({
             secondShopType: '',
             mainProduct:'',
             isAgreed:0,
+            website:'',     //公司网址
+            wxOfficialAccount:'',//微信公众号
+            wxApplets:'',//微信小程序
+            mainProductDesc:'',
+            shopDesc:'',
             whichStep:0
         },
         isAgree:false,
@@ -72,10 +77,6 @@ var registerPage = new Vue({
             if (_self.loginLoading) { return false; }
             this.$nextTick(function() {
                 if (!pass) {return false;}
-                if (!_self.isAgree){
-                    _self.isShowAgree = true;
-                    return;
-                }
                 if(_self.supplierUser.passWordConfirm!=_self.supplierUser.password){
                     CAIMEI.dialog('两次密码输入不一致',false,function () {});
                     return;
@@ -94,6 +95,18 @@ var registerPage = new Vue({
                     $('#secondShopType').siblings('.errTips').text('请选择主营内容').addClass("show");
                     return  false;
                 }
+                if(_self.supplierUser.website!=''){
+                    var WebRegExp = new RegExp(/^((http|ftp|https):\/\/[a-zA-Z0-9]|[a-zA-Z0-9])[-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?$/);
+                    if (!WebRegExp.test(_self.supplierUser.website)) {
+                        $('#website').parent().addClass("error");
+                        $('#website').siblings('.errTips').text('请填写正确的网址').addClass("show");
+                        return false;
+                    }
+                }
+                if (!_self.isAgree){
+                    _self.isShowAgree = true;
+                    return;
+                }
                 _self.loginLoading = true;
                 _self.supplierUser.mainProduct = _self.userMainPros.join("/");
                 UserApi.SupplierRgister(_self.supplierUser,function (response) {

+ 23 - 5
src/main/resources/static/js/account/supplier-information.js

@@ -20,7 +20,12 @@ var registerPage = new Vue({
             firstShopType:'',
             secondShopType: '',
             mainProduct:'',
-            isAgreed:1
+            isAgreed:1,
+            website:'',     //公司网址
+            wxOfficialAccount:'',//微信公众号
+            wxApplets:'',//微信小程序
+            mainProductDesc:'',
+            shopDesc:'',
         },
         isAgree:true,
         isShowAgree:false,
@@ -69,6 +74,11 @@ var registerPage = new Vue({
                     _this.supplierUser.cityId = shop.cityId;
                     _this.supplierUser.townId= shop.townId;
                     _this.supplierUser.address = shop.address;
+                    _this.supplierUser.website = shop.website;
+                    _this.supplierUser.wxOfficialAccount = shop.wxOfficialAccount;
+                    _this.supplierUser.wxApplets = shop.wxApplets;
+                    _this.supplierUser.mainProductDesc = shop.mainProductDesc;
+                    _this.supplierUser.shopDesc = shop.shopDesc;
                     _this.supplierUser.socialCreditCode = shop.socialCreditCode;
                     _this.supplierUser.businessLicense =  shop.businessLicense;
                     _this.supplierUser.firstShopType =  shop.firstShopType;
@@ -99,10 +109,6 @@ var registerPage = new Vue({
             if (_self.loginLoading) { return false; }
             this.$nextTick(function() {
                 if (!pass) {return false;}
-                if (!_self.isAgree){
-                    _self.isShowAgree = true;
-                    return;
-                }
                 if(_self.supplierUser.townId == 0 || _self.supplierUser.address==''){
                     _self.flagshow = true;
                     setTimeout(function () {
@@ -125,6 +131,18 @@ var registerPage = new Vue({
                     $('#secondShopType').siblings('.errTips').text('请选择主营内容').addClass("show");
                     return  false;
                 }
+                if(_self.supplierUser.website!=''){
+                    var WebRegExp = new RegExp(/^((http|ftp|https):\/\/[a-zA-Z0-9]|[a-zA-Z0-9])[-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?$/);
+                    if (!WebRegExp.test(_self.supplierUser.website)) {
+                        $('#website').parent().addClass("error");
+                        $('#website').siblings('.errTips').text('请填写正确的网址').addClass("show");
+                        return false;
+                    }
+                }
+                if (!_self.isAgree){
+                    _self.isShowAgree = true;
+                    return;
+                }
                 _self.loginLoading = true;
                 _self.supplierUser.mainProduct = _self.shopMainPros.join("/");
                 UserApi.UpdateCompanyInfo(_self.supplierUser,function (response) {

+ 4 - 1
src/main/resources/static/js/base.js

@@ -16,8 +16,9 @@ if(localStorage.getItem('userInfo')){
         GLOBAL_USER_IDENTITY = 1;
     }
 } else {
+    var pathname = window.location.pathname;
     var weChatLoginFlag = (Number(getBaseCookie("weChatAutoLogin"))===1 || Number(getBaseCookie("weChatAutoLogin"))===2);
-    if(!weChatLoginFlag){
+    if(pathname.indexOf('/product/auth/') === -1 && !weChatLoginFlag ){
         var userAgent = navigator.userAgent.toLowerCase();
         if (userAgent.match(/MicroMessenger/i)) {
             // 微信浏览器自动授权登录
@@ -217,7 +218,9 @@ var globalHead = new Vue({
                 }
             })
         }
+        console.log('hello')
         _self.nav_linkName = decodeURI(CAIMEI.getUrlParam('name'));
+        // _self.nav_linkName = window.localStorage.getItem('name');
         setTimeout(function(){
             $('.navBox li').each(function () {
                 var _thisName = $(this).find('a').text();

+ 6 - 0
src/main/resources/static/js/common/serviceapi/product.service.js

@@ -34,4 +34,10 @@ var ProductApi = {
                 callback(res);
             });
         },
+        GetAuthProductDeatil:function (params, callback) {//产品仪器商品列表查询
+             Http.AjaxService({ url:'/product/auth/details', type:'get', data:params, json:true})
+            .then(function(res){
+                callback(res);
+            });
+        }
 };

+ 11 - 2
src/main/resources/static/js/pay/caimei-pay.js

@@ -89,8 +89,11 @@ var payContainer = new Vue({
         isErrorShow:false,
         iconErrorClass:'',
         iconErrorText:'',
-        iconErrorMsgnone:''
-
+        iconErrorMsgnone:'',
+        organizeID:'',  //组织机构id
+        orderNo:'',      //订单号
+        orderTotalFee:'',
+        unpaidAmount:''  //真正的付款金额
     },
     filters: {
         NumFormat :function(value) {
@@ -117,12 +120,14 @@ var payContainer = new Vue({
             PayApi.PayOrderLinkData({linkLogo:linkLogo},function(response){
                 if(response.code == 0){
                     var _data = response.data;
+                    console.log(_data);
                     _self.payInfo.PAY_ORDERID = _data.orderPayLink.orderId;
                     _self.payInfo.PAY_UNPAIDAMOUNT = _data.orderPayLink.unpaidAmount;
                     _self.payInfo.PAY_TIME = decodeURI(_data.time);
                     _self.payInfo.PAY_PAYLINKTYPE = _data.orderPayLink.payType;
                     _self.payInfo.PAY_PAYLINKTYPETEXT =  _self.payInfo.PAY_PAYLINKTYPE == '1' ? '企业网银' : '个人网银';
                     _self.payInfo.PAY_USERTYPE =  _self.payInfo.PAY_PAYLINKTYPE == '1' ? 'ENTERPRISE' : 'USER';
+                    _self.unpaidAmount = _data.orderPayLink.unpaidAmount;
                     if(_data.code == 0){
                         setTimeout(function () {  //支付倒计时
                             _self.countTime(_self.payInfo.PAY_TIME)
@@ -163,6 +168,7 @@ var payContainer = new Vue({
         infoPayOrderCheckoutCounter:function(){//初始化订单数据
             var _self = this;
             PayApi.PayOrderCheckoutCounter({orderId:_self.payInfo.PAY_ORDERID},function(response){
+                console.log(response);
                 if(response.code == 0){
                     var data = response.data;
                     _self.discernReceiptList = data.discernReceipt;
@@ -174,6 +180,9 @@ var payContainer = new Vue({
                     _self.payTotalFee =  data.order.payTotalFee;
                     _self.receiptAmount=  data.order.receiptAmount;
                     _self.payableAmount =  _self.payInfo.PAY_UNPAIDAMOUNT;
+                    _self.organizeID = data.order.organizeID;
+                    _self.orderNo = data.order.orderNo;
+                    _self.orderTotalFee = data.order.orderTotalFee;
                     if(data.order.status == '7'){
                         _self.payment = _self.toFixedFn(_self.payTotalFee - _self.payableAmount);
                     }else{

+ 11 - 10
src/main/resources/static/js/pay/caimei-success.js

@@ -64,19 +64,20 @@ var payContainer = new Vue({
                     }
                     break;
                 default:
-                    _self.linkText = '回到首页';
+                    _self.linkText = '采美商城首页';
                     _self.openLink = '/index.html';
             }
             _self.isRequest = true;
-            var timeClock = setInterval(function(){
-                _self.maxtime--;
-                if (_self.maxtime == 0) {
-                    window.location.href = _self.openLink;
-                    clearInterval(timeClock);
-                    _self.maxtime = 10;
-                    _self.isRefresh = true;
-                }
-            },1000);
+            //自动跳转
+            // var timeClock = setInterval(function(){
+            //     _self.maxtime--;
+            //     if (_self.maxtime == 0) {
+            //         window.location.href = _self.openLink;
+            //         clearInterval(timeClock);
+            //         _self.maxtime = 10;
+            //         _self.isRefresh = true;
+            //     }
+            // },1000);
         },
         toFixedFn:function(text){//处理小数点后两位数
             return Number(text).toFixed(2);

+ 311 - 0
src/main/resources/static/js/pay/caimei-weisapay.js

@@ -0,0 +1,311 @@
+/**
+ *Created by ZHJY on 2020/7/14.
+ */
+var payContainer = new Vue({
+    el:"#payContainer",
+    data: {
+        isSubMitStatus:false,
+        payInfo:{
+            PAY_BANK_NUM:'ICBC_B2B',//银行网管信息
+            PAY_CODE:'',//链接状态
+            PAY_ORDERID:'',//主订单ID
+            PAY_UNPAIDAMOUNT:0,//本次支付金额
+            PAY_TIME:'',//链接失效时间
+            PAY_LINKLOGO:'',
+            PAY_PAYLINKTYPE:'',
+            PAY_USERTYPE:'',//网银支付类型
+            PAY_PAYLINKTYPETEXT:''//文案
+        },
+        B2BbankData:[
+            {imgUrl:'/img/pay/iconbank-01@2x.png',bankName:'中国工商银行',B2bNum:'ICBC_B2B',B2cNum:'ICBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-02@2x.png',bankName:'招商银行',B2bNum:'CMBCHINA_B2B',B2cNum:'CMBCHINA_B2C'},
+            {imgUrl:'/img/pay/iconbank-03@2x.png',bankName:'中国建设银行',B2bNum:'CCB_B2B',B2cNum:'CCB_B2C'},
+            {imgUrl:'/img/pay/iconbank-05@2x.png',bankName:'兴业银行',B2bNum:'CIB_B2B',B2cNum:'CIB_B2C'},
+            {imgUrl:'/img/pay/iconbank-06@2x.png',bankName:'中国民生银行',B2bNum:'CMBC_B2B',B2cNum:'CMBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-07@2x.png',bankName:'中国光大银行',B2bNum:'CEB_B2B',B2cNum:'CEB_B2C'},
+            {imgUrl:'/img/pay/iconbank-08@2x.png',bankName:'中国银行',B2bNum:'BOC_B2B',B2cNum:'BOC_B2C'},
+            {imgUrl:'/img/pay/iconbank-09@2x.png',bankName:'平安银行',B2bNum:'SZPA_B2B',B2cNum:'SZPA_B2C'},
+            {imgUrl:'/img/pay/iconbank-10@2x.png',bankName:'中信银行',B2bNum:'ECITIC_B2B',B2cNum:'ECITIC_B2C'},
+            {imgUrl:'/img/pay/iconbank-11@2x.png',bankName:'上海浦东发展银行',B2bNum:'SPDB_B2B',B2cNum:'SPDB_B2C'},
+            {imgUrl:'/img/pay/iconbank-12@2x.png',bankName:'华夏银行',B2bNum:'HXB_B2B',B2cNum:'HXB_B2C'},
+            {imgUrl:'/img/pay/iconbank-13@2x.png',bankName:'北京银行',B2bNum:'BCCB_B2B',B2cNum:'BCCB_B2C'},
+            {imgUrl:'/img/pay/iconbank-14@2x.png',bankName:'中国农业银行',B2bNum:'ABC_B2B',B2cNum:'ABC_B2C'},
+            {imgUrl:'/img/pay/iconbank-15@2x.png',bankName:'中国邮政储蓄银行',B2bNum:'PSBC_B2B',B2cNum:'PSBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-16@2x.png',bankName:'徽商银行',B2bNum:'HSB_B2B',B2cNum:'HSB_B2C'},
+            {imgUrl:'/img/pay/iconbank-17@2x.png',bankName:'青岛银行',B2bNum:'QDYH_B2B',B2cNum:'QDYH_B2C'},
+            {imgUrl:'/img/pay/iconbank-18@2x.png',bankName:'浙商银行',B2bNum:'CZ_B2B',B2cNum:'CZ_B2C'},
+            {imgUrl:'/img/pay/iconbank-19@2x.png',bankName:'齐鲁银行',B2bNum:'QLYH_B2B',B2cNum:'QLYH_B2C'},
+            {imgUrl:'/img/pay/iconbank-20@2x.png',bankName:'上海银行',B2bNum:'SHB_B2B',B2cNum:'SHB_B2C'},
+            {imgUrl:'/img/pay/iconbank-21@2x.png',bankName:'莱商银行',B2bNum:'ISBC_B2B',B2cNum:null},
+            {imgUrl:'/img/pay/iconbank-22@2x.png',bankName:'厦门银行',B2bNum:'XMCCB_B2B',B2cNum:null},
+            {imgUrl:'/img/pay/iconbank-23@2x.png',bankName:'晋商银行',B2bNum:null,B2cNum:'JSHB_B2C'}
+
+        ],
+        B2CbankData:[
+            {imgUrl:'/img/pay/iconbank-01@2x.png',bankName:'中国工商银行',B2bNum:'ICBC_B2B',B2cNum:'ICBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-02@2x.png',bankName:'招商银行',B2bNum:'CMBCHINA_B2B',B2cNum:'CMBCHINA_B2C'},
+            {imgUrl:'/img/pay/iconbank-03@2x.png',bankName:'中国建设银行',B2bNum:'CCB_B2B',B2cNum:'CCB_B2C'},
+            {imgUrl:'/img/pay/iconbank-05@2x.png',bankName:'兴业银行',B2bNum:'CIB_B2B',B2cNum:'CIB_B2C'},
+            {imgUrl:'/img/pay/iconbank-06@2x.png',bankName:'中国民生银行',B2bNum:'CMBC_B2B',B2cNum:'CMBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-07@2x.png',bankName:'中国光大银行',B2bNum:'CEB_B2B',B2cNum:'CEB_B2C'},
+            {imgUrl:'/img/pay/iconbank-08@2x.png',bankName:'中国银行',B2bNum:'BOC_B2B',B2cNum:'BOC_B2C'},
+            {imgUrl:'/img/pay/iconbank-09@2x.png',bankName:'平安银行',B2bNum:'SZPA_B2B',B2cNum:'SZPA_B2C'},
+            {imgUrl:'/img/pay/iconbank-10@2x.png',bankName:'中信银行',B2bNum:'ECITIC_B2B',B2cNum:'ECITIC_B2C'},
+            {imgUrl:'/img/pay/iconbank-11@2x.png',bankName:'上海浦东发展银行',B2bNum:'SPDB_B2B',B2cNum:'SPDB_B2C'},
+            {imgUrl:'/img/pay/iconbank-12@2x.png',bankName:'华夏银行',B2bNum:'HXB_B2B',B2cNum:'HXB_B2C'},
+            {imgUrl:'/img/pay/iconbank-13@2x.png',bankName:'北京银行',B2bNum:'BCCB_B2B',B2cNum:'BCCB_B2C'},
+            {imgUrl:'/img/pay/iconbank-14@2x.png',bankName:'中国农业银行',B2bNum:'ABC_B2B',B2cNum:'ABC_B2C'},
+            {imgUrl:'/img/pay/iconbank-15@2x.png',bankName:'中国邮政储蓄银行',B2bNum:'PSBC_B2B',B2cNum:'PSBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-16@2x.png',bankName:'徽商银行',B2bNum:'HSB_B2B',B2cNum:'HSB_B2C'},
+            {imgUrl:'/img/pay/iconbank-17@2x.png',bankName:'青岛银行',B2bNum:'QDYH_B2B',B2cNum:'QDYH_B2C'},
+            {imgUrl:'/img/pay/iconbank-18@2x.png',bankName:'浙商银行',B2bNum:'CZ_B2B',B2cNum:'CZ_B2C'},
+            {imgUrl:'/img/pay/iconbank-19@2x.png',bankName:'齐鲁银行',B2bNum:'QLYH_B2B',B2cNum:'QLYH_B2C'},
+            {imgUrl:'/img/pay/iconbank-20@2x.png',bankName:'上海银行',B2bNum:'SHB_B2B',B2cNum:'SHB_B2C'},
+            {imgUrl:'/img/pay/iconbank-21@2x.png',bankName:'莱商银行',B2bNum:'ISBC_B2B',B2cNum:null},
+            {imgUrl:'/img/pay/iconbank-22@2x.png',bankName:'厦门银行',B2bNum:'XMCCB_B2B',B2cNum:null},
+            {imgUrl:'/img/pay/iconbank-23@2x.png',bankName:'晋商银行',B2bNum:null,B2cNum:'JSHB_B2C'}
+        ],
+        userName :'',
+        goodList:'',
+        freight :'',       //运费
+        discountFee:'',//经理折扣
+        balancePayFee:'',//余额抵扣
+        payTotalFee: '',   //合计
+        payableAmount:'',//本次支付金额
+        payment:'', //剩余支付金额
+        receiptAmount:'',//已支付金额
+        discernReceipt:'',//支付记录
+        discernReceiptList:[],//支付记录列表
+        orderProductList:[],//商品列表
+        paySuccessCounter:0,
+        tabIndex:0,
+        downHour:'00',//倒计时
+        downMinute:'00',//倒计分
+        downSecond:'00',//倒计秒
+        isSiled:false,
+        mbOrderId:'',
+        isRequest:false,
+        isPayAlert:false,
+        isErrorShow:false,
+        iconErrorClass:'',
+        iconErrorText:'',
+        iconErrorMsgnone:''
+
+    },
+    filters: {
+        NumFormat :function(value) {
+            if(!value) return '0.00';
+            var intPart = Number(value) - Number(value)%1; //获取整数部分(这里是windy93的方法)
+            var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); //将整数部分逢三一断
+            var floatPart = ".00"; //预定义小数部分
+            var value2Array = value.toString().split(".");
+            if(value2Array.length == 2) {  //=2表示数据有小数位
+                floatPart = value2Array[1].toString(); //拿到小数部分
+                if(floatPart.length == 1) { //补0,实际上用不着
+                    return intPartFormat + "." + floatPart + '0';
+                } else {
+                    return intPartFormat + "." + floatPart;
+                }
+            } else {
+                return intPartFormat + floatPart;
+            }
+        }
+    },
+    methods: {
+        LinkInfoOrderBank:function(linkLogo){//初始化支付订单加密数据
+            var _self = this;
+            PayApi.PayOrderLinkData({linkLogo:linkLogo},function(response){
+                console.log(response);
+                if(response.code === 0){
+                    var _data = response.data;
+                    _self.payInfo.PAY_ORDERID = _data.orderPayLink.orderId;
+                    _self.payInfo.PAY_UNPAIDAMOUNT = _data.orderPayLink.unpaidAmount;
+                    _self.payInfo.PAY_TIME = decodeURI(_data.time);
+                    _self.payInfo.PAY_PAYLINKTYPE = _data.orderPayLink.payType;
+                    _self.payInfo.PAY_PAYLINKTYPETEXT =  _self.payInfo.PAY_PAYLINKTYPE == '1' ? '企业网银' : '个人网银';
+                    _self.payInfo.PAY_USERTYPE =  _self.payInfo.PAY_PAYLINKTYPE == '1' ? 'ENTERPRISE' : 'USER';
+                    if(_data.code === 0){
+                        setTimeout(function () {  //支付倒计时
+                            _self.countTime(_self.payInfo.PAY_TIME)
+                        }, 1000);
+                        _self.infoPayOrderCheckoutCounter();
+                    }else{
+                        _self.isErrorShow = true;
+                        _self.isRequest = true;
+                        switch (_self.payInfo.PAY_CODE) {
+                            case '-2':
+                                _self.iconErrorClass = 'offline';
+                                _self.iconErrorText = '订单已通过线下转账方式付款';
+                                _self.iconErrorMsgnone = '不能再使用企业网银支付';
+                                break;
+                            case '-3':
+                                _self.iconErrorClass = 'fail';
+                                _self.iconErrorText = '链接超过24小时未完成支付,已失效';
+                                _self.iconErrorMsgnone = '请重新生成支付链接,继续支付';
+                                break;
+                            case '5':
+                                _self.iconErrorClass = 'paid';
+                                _self.iconErrorText = '款项已支付完成,无需重复支付';
+                                _self.iconErrorMsgnone = '';
+                                break;
+                        }
+                    }
+                }else if(response.code === -1){
+                    _self.isErrorShow = true;
+                    _self.isRequest = true;
+                    _self.iconErrorClass = 'again';
+                    _self.iconErrorText = '链接已更新,请联系业务人员获取最新链接再进行支付';
+                    _self.iconErrorMsgnone = '';
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            });
+        },
+        infoPayOrderCheckoutCounter:function(){//初始化订单数据
+            var _self = this;
+            PayApi.PayOrderCheckoutCounter({orderId:_self.payInfo.PAY_ORDERID},function(response){
+                if(response.code === 0){
+                    var data = response.data;
+                    _self.discernReceiptList = data.discernReceipt;
+                    _self.orderProductList = data.orderProductList;
+                    _self.userName =  data.userName;
+                    _self.freight =  _self.freightText(data.order.freight);
+                    _self.discountFee =  data.order.discountFee;
+                    _self.balancePayFee =  data.order.balancePayFee;
+                    _self.payTotalFee =  data.order.payTotalFee;
+                    _self.receiptAmount=  data.order.receiptAmount;
+                    _self.payableAmount =  _self.payInfo.PAY_UNPAIDAMOUNT;
+                    if(data.order.status === '7'){
+                        _self.payment = _self.toFixedFn(_self.payTotalFee - _self.payableAmount);
+                    }else{
+                        _self.payment = _self.toFixedFn(_self.payTotalFee - _self.receiptAmount - _self.payableAmount);
+                    }
+                    _self.paySuccessCounter = data.order.paySuccessCounter;
+                    _self.isRequest = true;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        PaySubmitFn:function(){//立即支付
+            var _self = this;
+            if(_self.payInfo.PAY_BANK_NUM == ''){
+                layer.msg('请选择银行!');
+                return;
+            }
+            var params = {
+                    payWay:'UNIONPAY',
+                    payAmount: _self.payInfo.PAY_UNPAIDAMOUNT*100,
+                    bankCode:_self.payInfo.PAY_BANK_NUM,
+                    returnUrl:'https://www.caimei365.com/',
+                    orderId:_self.payInfo.PAY_ORDERID,
+                    userType:_self.payInfo.PAY_USERTYPE
+                };
+            _self.PayOrderPcMallPay(params);
+        },
+        PayOrderPcMallPay:function(params){//网银支付请求
+            var _self = this;
+            _self.isSubMitStatus=true;
+            PayApi.PayOrderPcMallPay(params,function(response){
+                if(response.code == 0){
+                    _self.isPayAlert = true;
+                    _self.mbOrderId = response.data.data.mbOrderId;
+                    window.open(response.data.data.payUrl);
+                    _self.isSubMitStatus=false;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                    _self.isSubMitStatus=false;
+                }
+            })
+        },
+        RefreshBody:function(){//刷新弹窗
+            var _self = this;
+            _self.isPayAlert = false;
+            PayApi.PayOrderFindOrderStatus({mbOrderId:_self.mbOrderId},function(response){
+                _self.isPayAlert = false;
+                var data = response.data.data;
+                if(data.status === '1'){
+                    window.location.href = '/pay/success.html?pageType=wechat&type=success&payAmount='+ _self.payInfo.PAY_UNPAIDAMOUNT;
+                }else{
+                    window.location.href = '/pay/success.html?pageType=wechat&type=error&payAmount='+ _self.payInfo.PAY_UNPAIDAMOUNT;
+                }
+            });
+        },
+        changeTab:function(index,item){// 选择银行
+            this.tabIndex = index;
+            if( this.payInfo.PAY_PAYLINKTYPE == '1'){
+                this.payInfo.PAY_BANK_NUM = item.B2bNum;
+            }else{
+                this.payInfo.PAY_BANK_NUM = item.B2cNum;
+            }
+        },
+        slideToggleContent:function(){
+            this.isSiled = !this.isSiled;
+        },
+        countTime:function(value){//支付链接倒计时
+            var _self = this;
+            //获取当前时间
+            var date = new Date();
+            var now = date.getTime();
+            //设置截止时间
+            var endDate = new Date(value);
+            var end = endDate.getTime();
+            //时间差
+            var differTime = end - now;
+            //定义变量,h,m,s保存倒计时的时间
+            var h, m, s;
+            if (differTime >= 0) {
+                h = Math.floor(differTime / 1000 / 60 / 60);
+                m = Math.floor(differTime / 1000 / 60 % 60);
+                s = Math.floor(differTime / 1000 % 60);
+                _self.downHour = h < 10 ? ("0" + h) : h;
+                _self.downMinute = m < 10 ? ("0" + m) : m;
+                _self.downSecond = s < 10 ? ("0" + s) : s;
+                //递归调用函数所以是延时器不是定时器
+                setTimeout(function () {
+                    _self.countTime(value)
+                }, 1000);
+            } else {
+                _self.downHour = '00';
+                _self.downMinute = '00';
+                _self.downSecond = '00';
+            }
+        },
+        freightText:function (type) {//处理邮费显示
+            var text ="";
+            if(type > 0){
+                text = '¥'+type.toFixed(2);
+            }else if(type == -1){
+                text = '到付';
+            }else{
+                text = '包邮';
+            }
+            return text
+        },
+        payTypeText:function(state){//处理支付记录文字
+            var stateText = '',
+                stateTextObject={
+                    12:'企业网银',
+                    13:'微信支付',
+                    14:'支付宝',
+                    15:'微信支付',
+                    16:'余额抵扣'
+                };
+            Object.keys(stateTextObject).forEach(function(key) {
+                if(key == state){
+                    stateText = stateTextObject[key]
+                }
+            });
+            return stateText;
+        },
+        toFixedFn:function(text){
+            return Number(text).toFixed(2);
+        },
+    },
+    mounted: function () {
+        var _self = this;
+        _self.payInfo.PAY_LINKLOGO= CAIMEI.getUrlParam('linkLogo');
+        _self.LinkInfoOrderBank(_self.payInfo.PAY_LINKLOGO);
+
+    }
+});

+ 4 - 1
src/main/resources/static/js/product/instruement.js

@@ -14,6 +14,7 @@
             userId:'',
             source:1
          },
+         nav_linkName:''
     },
     filters:{
          NumFormat:function(value) {//处理金额
@@ -48,7 +49,7 @@
             }
         },
         toserch:function(item){
-            window.location.href='/product/instruelist.html?bigTypeID='+item.bigTypeID+'&typeSort='+this.typeSort
+            window.location.href='/product/instruelist.html?bigTypeID='+item.bigTypeID+'&typeSort='+this.typeSort+'&name='+this.nav_linkName
         },
         seeMore:function(page){
              page.isPageMore = !page.isPageMore;
@@ -148,6 +149,8 @@
     },
     mounted: function(){
         var _self = this;
+         _self.nav_linkName = decodeURI(CAIMEI.getUrlParam('name'));
+         console.log(_self.nav_linkName);
          var userInfo = localStorage.getItem('userInfo');
          if(userInfo){
              this.params.userId = JSON.parse(userInfo).userId;

+ 2 - 0
src/main/resources/static/js/product/produce-list.js

@@ -28,6 +28,7 @@ var productList = new Vue({
             pageNum: 1,
             idType:1
         },
+        nav_linkName:'',
         addhtml:'<span class="tag">美博会</span>'
     },
      filters:{
@@ -173,6 +174,7 @@ var productList = new Vue({
     },
     mounted:function () {
         var _self = this;
+        this.nav_linkName = decodeURI(CAIMEI.getUrlParam('name'));
         this.bigTypeID = getUrlParam('bigTypeID');
         this.bigTypeID = getUrlParam('bigTypeID');
         this.smallTypeID = getUrlParam('smallTypeID');

+ 81 - 50
src/main/resources/static/js/product/qualityauthorize.js

@@ -4,59 +4,90 @@
 var qualityAuthorize = new Vue({
     el:"#qualityAuthorize",
     data: {
-        previewBigimage:'',
-        previewThumb:[
-            '/img/quality/product-01.png',
-            '/img/quality/product-02.png',
-            '/img/quality/product-03.png',
-            '/img/quality/product-04.png'
-        ],
-        previewParams:[],
-        current:0,
-        tabsList:[
-            {text:'产品',link:'/product/instrument.html?id=287&name=产品'},
-            {text:'仪器',link:'/product/instrument.html?id=286&name=仪器'},
-            {text:'信息平台',link:'/info/center-3-1.html?name=信息平台'},
-            {text:'直播',link:'https://wx.vzan.com/plug-ins/?v=637429463853329710#/FixupIndex/399803126?shareuid=0&name=%E9%87%87%E7%BE%8ELIVE'},
-            {text:'二手市场',link:'/flea-market/list.html?name=二手市场'},
-            {text:'正品联盟',link:'/topic.html?type=6&name=正品联盟'},
-            {text:'品牌招商',link:'/investment.html?name=品牌招商'},
-            {text:'维修',link:'/flea-market/list.html?name=二手市场'}
-        ]
+        //是否显示声明对话框
+        showStatement:false,
+        //是否为手机屏幕
+        isMobile:false,
+        //产品id
+        productId:'5',
+        //产品参数对象
+        parameters:null,
+        //声明内容
+        statementContent:'',
+        //控制授权证书是否弹出
+        isShowSqBookModal:false,
+        sqBookModal:'',
+        cmContent:'',
+        isCmComtent:false
     },
-    filters: {
-
-
+    filters:{
+        snCode:function (code) {
+            return code.replace(/^(\w{2})\w+(\w{4})$/,"$1******$2");
+        }
     },
     methods: {
-
-
-    },
-    mounted: function () {
-        this.previewBigimage = this.previewThumb[0];
-        setTimeout(function(){
-            if (isPC) {
-                var magnifier = new ImageMagnifier(
-                    '#imgShown #CM____pic_thumb li'
-                    ,'#imgShown .bigImage'
-                    ,'#imgShown .preview-box'
-                    ,'#imgShown .mask'
-                    ,'#imgShown .bigitem'
-                    ,"on"
-                ).init();
-            } else {
-                var swiper = new Swiper('#swiperImage', {
-                    loop : true,
-                    autoplay: {
-                        delay: 2000,
-                        disableOnInteraction: false
-                    },
-                    pagination: {
-                        el: '.swiper-pagination',
-                        type: 'fraction'
-                    }
-                });
+        //弹窗声明框
+        showStatementModel:function(){
+            this.showStatement = true
+        },
+        //关闭声明框
+        closeStatementModel:function(){
+            this.showStatement = false
+        },
+        //获取商品参数对象
+        initParams:function(){
+           var _that = this;
+           ProductApi.GetAuthProductDeatil({productId:_that.productId},function(res){
+                if(res.code === 0){
+                    _that.parameters = res.data;
+                    console.log(_that.parameters)
+                }
+           });
+        },
+        // 代理声明弹出框
+        openStatementDialog:function(flag){
+            if(flag === 1){
+            //代理声明
+                this.isCmComtent = false;
+                this.statementContent = this.parameters.statementContent
+            }else{
+            //采美声明
+                this.isCmComtent = true;
+                this.cmContent = `
+                <p>目前,在市面上经常发现不少伪劣医疗美容产品/仪器,让众多的消费者无法辨别产品/仪器的真假,并且给品牌方及品牌代理商造成不少困扰</p>
+                <p>为了提高消费者对产品/仪器的可信度。由彩美信息技术有限公司发起并提供技术支持,且得到各品牌与代理商的认可及授权后,共同打造正品
+                联盟平台。将产品/仪器的品牌授牌信息纳入到正品联盟平台。消费者可通过授权牌上二维码扫码得知该产品/仪器的品牌授权信息。通过这些信
+                息即可得知产品/仪器的真假,是否为品牌以及品牌代理商授权过的正品,从而解决消费者与品牌/品牌代理商的困扰。</p>
+                `;
             }
-        },500);
+            this.showStatement = true;
+        },
+        //授权证书弹出
+        showSqBookModal:function(){
+            this.isShowSqBookModal = true
+        },
+        //授权证书影藏
+        hideSqBookModal:function(){
+           this.isShowSqBookModal = false;
+        }
+    },
+    // created:function() {
+    //     var _that = this;
+    //     Vue.nextTick(function () {
+    //         _that.initParams()
+    //     })
+    // }
+    mounted:function () {
+        setBaseCookie("weChatAutoLogin", 2);
+        this.sqBookModal = $('#sq-book-modal');
+        console.log(1);
+        //根据地址获取产品id
+        var _that = this;
+        var pathname = window.location.pathname;
+        this.productId = pathname.split('-')[1].split('.')[0];
+        this.initParams();
+        setTimeout(function () {
+            _that.isShowSqBookModal = true;
+        }, 500);
     }
 });

+ 161 - 0
src/main/resources/static/js/product/temporary.js

@@ -0,0 +1,161 @@
+ var instrueMent = new Vue({
+    el:'#instrueMent',
+    data:{
+         listLoading:true,
+         categorylist:[],
+         hotlist:[],
+         recommendPage: 1,
+         floorList: [],
+         userId:0,
+         typeSort:'',
+         showflag:false,
+         params:{
+            pageId:'',
+            userId:'',
+            source:1
+         },
+         nav_linkName:''
+    },
+    filters:{
+         NumFormat:function(value) {//处理金额
+            return Number(value).toFixed(2);
+        },
+    },
+     created: function() {
+
+     },
+     methods:{
+         PromotionsFormat:function(promo){//促销活动类型数据处理
+            if(promo!=null){
+                if(promo.type == 1 && promo.mode == 1){
+                    return true
+                }else{
+                    return false
+                }
+            }
+            return false
+        },
+        closeup:function(){
+            this.showflag = false;
+            document.body.style.overflow='';
+        },
+        showNav:function(){
+        var _this = this;
+        _this.showflag = !_this.showflag;
+            if (_this.showflag){
+                 document.body.style.overflow='hidden';
+            }else {
+                document.body.style.overflow='';
+            }
+        },
+        toserch:function(item){
+            window.location.href='/product/instruelist.html?bigTypeID='+item.bigTypeID+'&typeSort='+this.typeSort+'&name='+this.nav_linkName
+        },
+        seeMore:function(page){
+             page.isPageMore = !page.isPageMore;
+        },
+        GetHomeFloorData: function(){
+            var _self = this;
+            ProductApi.GethomeData(_self.params,function (res) {
+                 if (res.code == 0 ) {
+                     _self.hotlist = res.data.hotSearchList;
+                     _self.floorList = res.data.floorList;
+                     _self.typeSort = res.data.page.typeSort;
+                     _self.listLoading =false;
+                     _self.floorList.forEach(function(page){
+                         if(page.floorContent) {
+                             if(isPC){
+                                 if(page.floorContent.templateType == '1' || page.floorContent.templateType == '3'){
+                                     if (page.floorImageList.length>7){
+                                         page.isPageMore = true;
+                                     }
+                                 }else if(page.floorContent.templateType == '2' || page.floorContent.templateType == '4' || page.floorContent.templateType == '7'){
+                                     if (page.floorImageList.length>5){
+                                         page.isPageMore = true;
+                                     }
+                                 }else if(page.floorContent.templateType == '5'){
+                                     if (page.floorImageList.length>10){
+                                         page.isPageMore = true;
+                                     }
+                                 }
+                             }else {
+                                 if(page.floorContent.templateType == '1' || page.floorContent.templateType == '3'){
+                                     if (page.floorImageList.length>3){
+                                         page.isPageMore = true;
+                                     }
+                                 }else if(page.floorContent.templateType == '2' || page.floorContent.templateType == '4'){
+                                     if (page.floorImageList.length>2){
+                                         page.isPageMore = true;
+                                     }
+                                 }else if(page.floorContent.templateType == '5'){
+                                     if (page.floorImageList.length>4){
+                                         page.isPageMore = true;
+                                     }
+                                 }
+                             }
+                         }
+                    });
+                     _self.SwiperNanner();
+                     _self.getClassify();
+                 }else {
+                     CAIMEI.Alert(res.msg, '确定');
+                 }
+           })
+        },
+         getClassify: function() {
+            var _self = this;
+            PublicApi.GetProductClassify({typeSort:_self.typeSort, source: 'www'}, function (res) {
+                if (res.code == 0) {
+                    _self.categorylist = res.data;
+                } else {
+                    CAIMEI.Alert(res.msg, '确定', false);
+                }
+            })
+        },
+          SwiperNanner: function(){
+           setTimeout(function(){
+                // 图片懒加载
+                $("img[data-original]").lazyload();
+            },500);
+            setTimeout(function(){
+                if (isPC) {
+                    $('.swiper-container').slide({
+                        mainCell:".swiper-wrapper"
+                        ,titCell:".swiper-pagination span"
+                        ,effect: "leftLoop"
+                        ,interTime: 3000
+                        ,autoPlay: true
+                        ,scroll:5
+                        ,vis:5
+                    });
+                } else {
+                     var swiper = new Swiper('.swiper-container', {
+                                slidesPerView: 2,
+                                slidesPerColumn: 2,
+                                spaceBetween:0,
+                                slidesPerGroup: 2,
+                                autoplay: {
+                                    delay: 3000,
+                                    disableOnInteraction: false
+                                },
+                                pagination: {
+                                    el: '.swiper-pagination'
+                                }
+                            });
+
+                }
+            },500);
+        }
+    },
+    mounted: function(){
+        var _self = this;
+         _self.nav_linkName = decodeURI(CAIMEI.getUrlParam('name'));
+         console.log(_self.nav_linkName);
+         var userInfo = localStorage.getItem('userInfo');
+         if(userInfo){
+             this.params.userId = JSON.parse(userInfo).userId;
+         }
+         this.params.pageId = getUrlParam('id');
+         this.GetHomeFloorData();
+    }
+ })

+ 14 - 0
src/main/resources/static/js/supplier-center/setting/information.js

@@ -36,6 +36,9 @@
             medicalPracticeLicense:'',//资质
             mainProduct:'',//主营产品
             businessScope:'',//经营内容
+            website:'',     //公司网址
+            wxOfficialAccount:'',//微信公众号
+            wxApplets:'',//微信小程序
             shopDesc:'',//公司介绍
             mainProductDesc:'',//主打说明
         },
@@ -143,6 +146,9 @@
                     _this.params2.firstShopType = shop.firstShopType;
                     _this.params2.secondShopType = shop.secondShopType;
                     _this.params2.medicalPracticeLicense = shop.medicalPracticeLicense;
+                    _this.params2.website = shop.website;
+                    _this.params2.wxOfficialAccount = shop.wxOfficialAccount;
+                    _this.params2.wxApplets = shop.wxApplets;
                     _this.params2.shopDesc = shop.shopDesc;
                     _this.params2.mainProductDesc = shop.mainProductDesc;
                     _this.params3.socialCreditCode = shop.socialCreditCode;
@@ -214,6 +220,14 @@
                 }else if(_self.tabCurrentIndex==3){
                     params = _self.params3
                 }
+                if(_self.params2.website!=''){
+                    var WebRegExp = new RegExp(/^((http|ftp|https):\/\/[a-zA-Z0-9]|[a-zA-Z0-9])[-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?$/);
+                    if (!WebRegExp.test(_self.params2.website)) {
+                        $('#website').parent().addClass("error");
+                        $('#website').siblings('.errTips').text('请填写正确的网址').addClass("show");
+                        return false;
+                    }
+                }
               SupplierApi.modifiedData(params,function (res) {
                      console.log(res)
                       if(res.code === 0){

+ 2 - 0
src/main/resources/static/js/supplier/list.js

@@ -17,6 +17,7 @@ var supplierList = new Vue({
     computed: {
         pageTotal: function () {
             var total = Math.ceil(this.listRecord / this.params.size);
+            console.log(total)
             return total > 0 ? total : 1;
         },
         showPageBtn: function () {
@@ -57,6 +58,7 @@ var supplierList = new Vue({
             }, function (r) {
                 if (r.code === 0 && r.data) {
                     var result = JSON.parse(r.data);
+                    console.log(result);
                     _self.listRecord = result.total;
                     var resultData = [];
                     result.items.map(function (su) {

+ 30 - 0
src/main/resources/templates/account/register-supplier.html

@@ -151,6 +151,36 @@
                         </p>
                         <span class="errTips icon mIcon" tips="请选择或添加主营产品"></span>
                     </div>
+                    <div class="formLine">
+                        <p>官网地址:</p>
+                        <input type="text" v-model="supplierUser.website" placeholder="请输入网址" maxlength="100" id="website"  @blur="blurHandle($event)">
+                        <i class="checked icon mIcon"></i>
+                        <span class="errTips icon mIcon" tips="请输入正确的公司名称"></span>
+                    </div>
+                    <div class="formLine">
+                        <p>微信公众号:</p>
+                        <input type="text" v-model="supplierUser.wxOfficialAccount" placeholder="请输入微信公众号名称"  maxlength="20" >
+                        <i class="checked icon mIcon"></i>
+                        <span class="errTips icon mIcon" tips="请输入微信公众号名称"></span>
+                    </div>
+                    <div class="formLine">
+                        <p>微信小程序:</p>
+                        <input type="text" v-model="supplierUser.wxApplets" placeholder="请输入微信小程序名称" maxlength="20">
+                        <i class="checked icon mIcon"></i>
+                        <span class="errTips icon mIcon" tips="请输入微信小程序名称"></span>
+                    </div>
+                    <div class="formLine">
+                        <p>主打系列商品说明:</p>
+                        <textarea class="none" placeholder="请输入公司主打系列商品说明"  v-model="supplierUser.mainProductDesc" maxlength="5000"></textarea>
+                        <i class="checked icon mIcon"></i>
+                        <span class="errTips icon mIcon" tips="请输入公司主打系列商品说明"></span>
+                    </div>
+                    <div class="formLine">
+                        <p>公司介绍:</p>
+                        <textarea class="none" placeholder="请输入公司介绍"  v-model="supplierUser.shopDesc" maxlength="5000"></textarea>
+                        <i class="checked icon mIcon"></i>
+                        <span class="errTips icon mIcon" tips="请输入公司介绍"></span>
+                    </div>
                     <div class="subLine">
                         <p>
                             <span class="iconfont icon-weigouxuan" :class="isAgree ? 'icon-gouxuan' : 'icon-weigouxuan' " @click="checkedIsAgreeFn"></span>

+ 30 - 0
src/main/resources/templates/account/supplier-information.html

@@ -107,6 +107,36 @@
                         </p>
                         <span class="errTips icon mIcon" tips="请选择或添加主营产品"></span>
                     </div>
+                    <div class="formLine">
+                        <p>官网地址:</p>
+                        <input type="text" v-model="supplierUser.website" placeholder="请输入网址" maxlength="100" id="website" @blur="blurHandle($event)">
+                        <i class="checked icon mIcon"></i>
+                        <span class="errTips icon mIcon" tips="请输入网址"></span>
+                    </div>
+                    <div class="formLine">
+                        <p>微信公众号:</p>
+                        <input type="text" v-model="supplierUser.wxOfficialAccount" placeholder="请输入微信公众号名称"  maxlength="20" >
+                        <i class="checked icon mIcon"></i>
+                        <span class="errTips icon mIcon" tips="请输入微信公众号名称"></span>
+                    </div>
+                    <div class="formLine">
+                        <p>微信小程序:</p>
+                        <input type="text" v-model="supplierUser.wxApplets" placeholder="请输入微信小程序名称" maxlength="20">
+                        <i class="checked icon mIcon"></i>
+                        <span class="errTips icon mIcon" tips="请输入微信小程序名称"></span>
+                    </div>
+                    <div class="formLine">
+                        <p>主打系列商品说明:</p>
+                        <textarea class="none" placeholder="请输入公司主打系列商品说明"  v-model="supplierUser.mainProductDesc" maxlength="5000"></textarea>
+                        <i class="checked icon mIcon"></i>
+                        <span class="errTips icon mIcon" tips="请输入公司主打系列商品说明"></span>
+                    </div>
+                    <div class="formLine">
+                        <p>公司介绍:</p>
+                        <textarea class="none" placeholder="请输入公司介绍"  v-model="supplierUser.shopDesc" maxlength="5000"></textarea>
+                        <i class="checked icon mIcon"></i>
+                        <span class="errTips icon mIcon" tips="请输入公司介绍"></span>
+                    </div>
                     <div class="subLine">
                         <p>
                             <span class="iconfont icon-weigouxuan" :class="isAgree ? 'icon-gouxuan' : 'icon-weigouxuan' " @click="checkedIsAgreeFn"></span>

+ 5 - 0
src/main/resources/templates/article/components/article-footer.html

@@ -5,6 +5,11 @@
         <div class="dizhi">
             <p>Copyright©2015-2021 CAIMEI365.com All Rights Reserved.</p>
             <p>深圳市采美信息技术有限公司版权所有<a href="https://beian.miit.gov.cn" target="_blank" style="color:#FFF;text-decoration:underline;">粤ICP备14019824号</a></p>
+            <span>
+                <!-- CNZZ统计 start -->
+                <script type="text/javascript">document.write(unescape("%3Cspan id='cnzz_stat_icon_1279558759'%3E%3C/span%3E%3Cscript src='https://s9.cnzz.com/z_stat.php%3Fid%3D1279558759%26show%3Dpic' type='text/javascript'%3E%3C/script%3E"));</script>
+                <!-- CNZZ统计 start -->
+            </span>
         </div>
     </div>
 </div>

+ 95 - 46
src/main/resources/templates/pay/caimei-pay.html

@@ -27,63 +27,112 @@
                     </div>
                 </div>
             </div>
-            <div class="pay-goods">
-                <div class="good-top">
-                    <div class="good-top-inner">
-                        <div class="bot-right">
-                            <div class="bot-num"><span>运费:</span><span class="p" id="freight">{{freight}}</span></div>
-                            <div class="bot-num"><span>经理折扣:</span><span class="p" id="discountFee">¥{{discountFee | NumFormat}}</span></div>
-                            <div class="bot-num"><span>余额抵扣:</span><span class="p" id="balancePayFee">¥{{balancePayFee | NumFormat}}</span></div>
-                            <div class="bot-num"><span>合计:</span><span class="red" id="payTotalFee">¥{{payTotalFee | NumFormat}}</span></div>
+            <!-- 维沙 -->
+             <template v-if="organizeID === 3">
+                <div class="pay-goods">
+                    <div class="good-top">
+                        <div class="good-top-inner ws">
+                            <div class="ws-count-price"><span>支付总额:</span><span class="red">¥{{unpaidAmount | NumFormat}}</span></div>
+                            <div>
+                                <div class="ws-bot-right">
+                                    <div class="bot-num"><span>订单号:</span><span class="p">{{orderNo}}</span></div>
+                                    <div class="bot-num"><span>运费:</span><span class="p" id="freight">{{freight}}</span></div>
+                                    <div class="bot-num"><span>经理折扣:</span><span class="p" id="discountFee">¥{{discountFee | NumFormat}}</span></div>
+                                    <div class="bot-num"><span>订单金额:</span><span class="red" id="payTotalFee">¥{{unpaidAmount | NumFormat}}</span></div>
+                                    <div style="clear:both"></div>
+                                </div>
+                                <div class="bot-left" id="goodSlideToggle"@click="slideToggleContent">
+                                    <i class="icon-down" :class="isSiled ? 'roter' : '' "></i>
+                                    <p id="iconText">{{isSiled ? '点击箭头收起订单商品' :'点击箭头展开订单商品'}}</p>
+                                </div>
+                                <div style="clear:both"></div>
+                            </div>
                         </div>
-                        <div class="bot-left" id="goodSlideToggle"@click="slideToggleContent">
-                            <i class="icon-down" :class="isSiled ? 'roter' : '' "></i>
-                            <p id="iconText">{{isSiled ? '点击箭头收起订单商品' :'点击箭头展开订单商品'}}</p>
+                    </div>
+                    <div class="good-main" v-if="isSiled">
+                        <div class="list-title">
+                            <div class="t-li"><p>序号</p></div>
+                            <div class="t-li"><p>商品图片</p></div>
+                            <div class="t-li"><p>商品名称</p></div>
+                            <div class="t-li"><p>单价</p></div>
+                            <div class="t-li"><p>数量</p></div>
+                            <div class="t-li"><p>总价</p></div>
+                        </div>
+                        <div class="list-container ws-list-container" id="goodsContainer">
+                            <div class="list-main" v-for="(item, index) in orderProductList" :key="index" :class="{'active':index%2 != 1}">
+                                <div class="t-li"><p>{{index+1}}</p></div>
+                                <div class="t-li"><span class="tag" v-if="item.productType === '1' || item.productType === '2'">赠品</span> <img :src="item.productImage" :alt="item.name"></div>
+                                <div class="t-li"><p>{{item.name}}</p></div>
+                                <div class="t-li"><p>¥{{item.price | NumFormat}}</p></div>
+                                <div class="t-li"><p>{{item.num}}</p></div>
+                                <div class="t-li"><p>¥{{item.totalFee | NumFormat}}</p></div>
+                            </div>
                         </div>
+                        <div class="list-total"> <span>合计:</span><span class="red">¥{{orderTotalFee | NumFormat}}</span></div>
+                        <div style="clear: both"></div>
                     </div>
                 </div>
-                <div class="good-main" v-if="isSiled">
-                    <div class="list-title">
-                        <div class="t-li"><p>序号</p></div>
-                        <div class="t-li"><p>商品图片</p></div>
-                        <div class="t-li"><p>商品名称</p></div>
-                        <div class="t-li"><p>单价</p></div>
-                        <div class="t-li"><p>数量</p></div>
-                        <div class="t-li"><p>总价</p></div>
+            </template>
+            <!-- 采美 -->
+            <template v-else>
+                <div class="pay-goods">
+                    <div class="good-top">
+                        <div class="good-top-inner">
+                            <div class="bot-right">
+                                <div class="bot-num"><span>运费:</span><span class="p" id="freight">{{freight}}</span></div>
+                                <div class="bot-num"><span>经理折扣:</span><span class="p" id="discountFee">¥{{discountFee | NumFormat}}</span></div>
+                                <div class="bot-num"><span>余额抵扣:</span><span class="p" id="balancePayFee">¥{{balancePayFee | NumFormat}}</span></div>
+                                <div class="bot-num"><span>合计:</span><span class="red" id="payTotalFee">¥{{payTotalFee | NumFormat}}</span></div>
+                            </div>
+                            <div class="bot-left" id="goodSlideToggle"@click="slideToggleContent">
+                                <i class="icon-down" :class="isSiled ? 'roter' : '' "></i>
+                                <p id="iconText">{{isSiled ? '点击箭头收起订单商品' :'点击箭头展开订单商品'}}</p>
+                            </div>
+                        </div>
                     </div>
-                    <div class="list-container" id="goodsContainer">
-                        <div class="list-main" v-for="(item, index) in orderProductList" :key="index" :class="{'active':index%2 != 1}">
-                            <div class="t-li"><p>{{index+1}}</p></div>
-                            <div class="t-li"><img :src="item.productImage" :alt="item.name"></div>
-                            <div class="t-li"><p>{{item.name}}</p></div>
-                            <div class="t-li"><p>¥{{item.price | NumFormat}}</p></div>
-                            <div class="t-li"><p>{{item.num}}</p></div>
-                            <div class="t-li"><p>¥{{item.totalFee | NumFormat}}</p></div>
+                    <div class="good-main" v-if="isSiled">
+                        <div class="list-title">
+                            <div class="t-li"><p>序号</p></div>
+                            <div class="t-li"><p>商品图片</p></div>
+                            <div class="t-li"><p>商品名称</p></div>
+                            <div class="t-li"><p>单价</p></div>
+                            <div class="t-li"><p>数量</p></div>
+                            <div class="t-li"><p>总价</p></div>
+                        </div>
+                        <div class="list-container" id="goodsContainer">
+                            <div class="list-main" v-for="(item, index) in orderProductList" :key="index" :class="{'active':index%2 != 1}">
+                                <div class="t-li"><p>{{index+1}}</p></div>
+                                <div class="t-li"><img :src="item.productImage" :alt="item.name"></div>
+                                <div class="t-li"><p>{{item.name}}</p></div>
+                                <div class="t-li"><p>¥{{item.price | NumFormat}}</p></div>
+                                <div class="t-li"><p>{{item.num}}</p></div>
+                                <div class="t-li"><p>¥{{item.totalFee | NumFormat}}</p></div>
+                            </div>
                         </div>
                     </div>
                 </div>
-            </div>
-            <div class="pay-ment">
-                <div class="pay-message">
-                    <div class="message-num"><span>本次支付金额:</span><span class="red" id="payableAmount">¥{{payableAmount | NumFormat}}</span></div>
-                    <div class="message-num"><span>剩余支付金额:</span><span class="red" id="payment">¥{{payment | NumFormat}}</span></div>
-                    <div class="message-num"><span>已支付:</span><span class="red" id="receiptAmount">¥{{receiptAmount | NumFormat}}</span></div>
-                </div>
-                <div class="pay-record">
-                    <div class="record-title">支付记录</div>
-                    <div class="record-content clear" id="discernReceipt">
-                        <div class="record-li none" v-if="discernReceiptList.length== 0">暂无支付记录</div>
-                        <div class="record-li" v-for="(item, index) in discernReceiptList" :key="index" v-else>
-                            <div class="record-tb">¥{{item.receiptAmount | NumFormat}}</div>
-                            <div class="record-tb">{{payTypeText(item.payType)}}</div>
-                            <div class="record-tb">{{item.receiptDate}}</div>
-                            <div class="record-tb"></div>
-                            <div class="record-tb"></div>
-                            <div class="record-tb"></div>
+                <div class="pay-ment">
+                    <div class="pay-message">
+                        <div class="message-num"><span>本次支付金额:</span><span class="red" id="payableAmount">¥{{payableAmount | NumFormat}}</span></div>
+                        <div class="message-num"><span>剩余支付金额:</span><span class="red" id="payment">¥{{payment | NumFormat}}</span></div>
+                        <div class="message-num"><span>已支付:</span><span class="red" id="receiptAmount">¥{{receiptAmount | NumFormat}}</span></div>
+                    </div>
+                    <div class="pay-record">
+                        <div class="record-title">支付记录</div>
+                        <div class="record-content clear" id="discernReceipt">
+                            <div class="record-li none" v-if="discernReceiptList.length== 0">暂无支付记录</div>
+                            <div class="record-li" v-for="(item, index) in discernReceiptList" :key="index" v-else>
+                                <div class="record-tb">¥{{item.receiptAmount | NumFormat}}</div>
+                                <div class="record-tb">{{payTypeText(item.payType)}}</div>
+                                <div class="record-tb">{{item.receiptDate}}</div>
+                                <div class="record-tb"></div>
+                                <div class="record-tb"></div>
+                                <div class="record-tb"></div>
+                            </div>
                         </div>
                     </div>
                 </div>
-            </div>
+            </template>
             <div class="pay-bank">
                 <div class="bank-title">请选择以下一家银行进行付款<span class="color">(请在倒计时时间内使用<span class="big"> {{ payInfo.PAY_PAYLINKTYPETEXT }} </span>完成本次支付)</span></div>
                 <div class="bank-list" id="bankContent" v-if="payInfo.PAY_PAYLINKTYPE == '1'">

+ 2 - 1
src/main/resources/templates/pay/caimei-success.html

@@ -23,7 +23,8 @@
             </div>
             <div class="success-text"><p class="tx1">{{isSuccessText}}</p></div>
             <div class="success-text"><p class="tx2">付款金额: <span>¥{{payAmount | NumFormat}}</span> </p></div>
-            <div class="success-text"><p class="tx2"><span>{{maxtime}}s</span>后自动跳转到{{linkText}}<a :href="openLink">立即跳转</a></p></div>
+            <!-- <div class="success-text"><p class="tx2"><span>{{maxtime}}s</span>后自动跳转到{{linkText}}<a :href="openLink">立即跳转</a></p></div>-->
+            <div class="success-text"><p class="tx2">点击<a :href="openLink">立即跳转</a>到{{linkText}}</p></div>
     </div>
 </div>
 <!-- 引入底部 -->

+ 135 - 0
src/main/resources/templates/pay/caimei-wisapay.html

@@ -0,0 +1,135 @@
+<!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>
+    <template th:replace="pay/components/pay-link"></template>
+    <link th:href="@{/css/pay/caimei-pay.css(v=${version})}" rel="stylesheet" type="text/css">
+</head>
+<body>
+<div class="head-wrap">
+    <div class="inner clear">
+        <div class="logo"><a href="/index.html"><img src="/img/base/index_logo.png" alt=""></a></div>
+        <div class="text">生美/医美采购服务平台</div>
+        <input type="hidden" th:value="${spiServer}" id="spiServer">
+        <input type="hidden" th:value="${agent}" id="userAgent">
+    </div>
+</div>
+<div class="pay-container clear" id="payContainer" :class="isRequest ? 'active' : ''">
+    <div class="container" v-if="!isErrorShow">
+        <div class="pay-content clear">
+            <div class="pay-title">
+                <div class="title-left"><p><span id="userName">{{userName}}</span></p></div>
+                <div class="title-right">
+                    <div class="time">
+                        <span id="downHour">{{downHour}}</span>
+                        <span id="downMinute">{{downMinute}}</span>
+                        <span id="downSecond">{{downSecond}}</span>
+                    </div>
+                </div>
+            </div>
+            <div class="pay-goods">
+                <div class="good-top">
+                    <div class="good-top-inner">
+                        <div class="bot-right">
+                            <div class="bot-num"><span>运费:</span><span class="p" id="freight">{{freight}}</span></div>
+                            <div class="bot-num"><span>经理折扣:</span><span class="p" id="discountFee">¥{{discountFee | NumFormat}}</span></div>
+                            <div class="bot-num"><span>余额抵扣:</span><span class="p" id="balancePayFee">¥{{balancePayFee | NumFormat}}</span></div>
+                            <div class="bot-num"><span>合计:</span><span class="red" id="payTotalFee">¥{{payTotalFee | NumFormat}}</span></div>
+                        </div>
+                        <div class="bot-left" id="goodSlideToggle"@click="slideToggleContent">
+                            <i class="icon-down" :class="isSiled ? 'roter' : '' "></i>
+                            <p id="iconText">{{isSiled ? '点击箭头收起订单商品' :'点击箭头展开订单商品'}}</p>
+                        </div>
+                    </div>
+                </div>
+                <div class="good-main" v-if="isSiled">
+                    <div class="list-title">
+                        <div class="t-li"><p>序号</p></div>
+                        <div class="t-li"><p>商品图片</p></div>
+                        <div class="t-li"><p>商品名称</p></div>
+                        <div class="t-li"><p>单价</p></div>
+                        <div class="t-li"><p>数量</p></div>
+                        <div class="t-li"><p>总价</p></div>
+                    </div>
+                    <div class="list-container" id="goodsContainer">
+                        <div class="list-main" v-for="(item, index) in orderProductList" :key="index" :class="{'active':index%2 != 1}">
+                            <div class="t-li"><p>{{index+1}}</p></div>
+                            <div class="t-li"><img :src="item.productImage" :alt="item.name"></div>
+                            <div class="t-li"><p>{{item.name}}</p></div>
+                            <div class="t-li"><p>¥{{item.price | NumFormat}}</p></div>
+                            <div class="t-li"><p>{{item.num}}</p></div>
+                            <div class="t-li"><p>¥{{item.totalFee | NumFormat}}</p></div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="pay-ment">
+                <div class="pay-message">
+                    <div class="message-num"><span>本次支付金额:</span><span class="red" id="payableAmount">¥{{payableAmount | NumFormat}}</span></div>
+                    <div class="message-num"><span>剩余支付金额:</span><span class="red" id="payment">¥{{payment | NumFormat}}</span></div>
+                    <div class="message-num"><span>已支付:</span><span class="red" id="receiptAmount">¥{{receiptAmount | NumFormat}}</span></div>
+                </div>
+                <div class="pay-record">
+                    <div class="record-title">支付记录</div>
+                    <div class="record-content clear" id="discernReceipt">
+                        <div class="record-li none" v-if="discernReceiptList.length== 0">暂无支付记录</div>
+                        <div class="record-li" v-for="(item, index) in discernReceiptList" :key="index" v-else>
+                            <div class="record-tb">¥{{item.receiptAmount | NumFormat}}</div>
+                            <div class="record-tb">{{payTypeText(item.payType)}}</div>
+                            <div class="record-tb">{{item.receiptDate}}</div>
+                            <div class="record-tb"></div>
+                            <div class="record-tb"></div>
+                            <div class="record-tb"></div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="pay-bank">
+                <div class="bank-title">请选择以下一家银行进行付款<span class="color">(请在倒计时时间内使用<span class="big"> {{ payInfo.PAY_PAYLINKTYPETEXT }} </span>完成本次支付)</span></div>
+                <div class="bank-list" id="bankContent" v-if="payInfo.PAY_PAYLINKTYPE == '1'">
+                    <a href="javascript:void(0);" v-if="item.B2bNum" v-for="(item, index) in B2BbankData" :key="index" :class="{ active: tabIndex === index }"  @click="changeTab(index,item)">
+                        <img :src="item.imgUrl" :alt="item.bankName">
+                    </a>
+                </div>
+                <div class="bank-list" id="bankContentC" v-if="payInfo.PAY_PAYLINKTYPE == '2'">
+                    <a href="javascript:void(0);" v-if="item.B2cNum" v-for="(item, index) in B2CbankData" :key="index" :class="{ active: tabIndex === index }"  @click="changeTab(index,item)">
+                        <img :src="item.imgUrl" :alt="item.bankName">
+                    </a>
+                </div>
+            </div>
+        </div>
+        <div class="pay-button-main">
+            <div class="inner">
+                <div class="pay-button">
+                    <a href="javascript:void(0);" id="paySubmit" @click="PaySubmitFn" :class="isSubMitStatus ? 'disabled' : ''">立即支付</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="pay-error-content" v-else>
+        <div class="pay-error clear">
+            <div class="icon-error" id="iconError" :class="iconErrorClass"></div>
+            <div class="error-msg" id="errorMsg">{{iconErrorText}}</div>
+            <div class="error-msgnone">{{iconErrorMsgnone}}</div>
+        </div>
+    </div>
+    <div class="pay-alert-content" v-if="isPayAlert">
+        <div class="pay-alert">
+            <div class="title"><p>确认提示</p><i class="icon-close" @click.stop="hidePayAlert"></i></div>
+            <div class="content">
+                <h1>请在您新打开的页面上完成付款</h1>
+                <p>完成付款后请点击下面的按钮</p>
+            </div>
+            <div class="button" id="payButton"><a href="javascript:void(0);" @click="RefreshBody">已完成支付</a></div>
+        </div>
+    </div>
+</div>
+<!-- 引入底部 -->
+<template th:replace="components/footer"></template>
+<template th:replace="components/foot-link"></template>
+<script src="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/pay.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/lib/qrcode.min.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/pay/caimei-weisapay.js(v=${version})}"></script>
+</body>
+</html>

+ 1 - 1
src/main/resources/templates/product/instruelist.html

@@ -79,7 +79,7 @@
             <div class="list-container">
                 <ul class="clear mfw">
                     <li class="productItem " v-for="p in listData">
-                        <a class="image" :href="'/product-'+p.id+'.html'">
+                        <a class="image" :href="'/product-'+p.id+'.html'+'?name='+ nav_linkName">
                             <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>

+ 87 - 152
src/main/resources/templates/product/qualityauthorize.html

@@ -1,175 +1,110 @@
 <!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>
+<head><title>正品联盟</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/product/qualityauthorize.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
-<!--美博会专题-->
-<div class="container" id="qualityAuthorize" v-cloak>
-    <input type="hidden" th:value="${spiServer}" id="spiServer"><input type="hidden" th:value="${coreServer}" id="coreServer">
-    <input type="hidden" th:value="${agent}" id="userAgent">
-    <div class="container-header clear">
-        <div class="header-top" v-if="isPC">采美正品联盟</div>
-        <div class="header-bottom" v-if="isPC">
-            <div class="inner">
-                <div class="logo">
-                    <a href="/index.html">
-                        <img src="/img/base/logo.png" alt="">
-                    </a>
-                </div>
-                <div class="header-right">
-                    <div class="header-nav">
-                        <a href="javascript:void(0)">
-                            <i class="icon icon-nav"></i>
-                            采美商城
-                        </a>
-                        <div class="header-nav-tabs">
-                            <div class="item-nav" v-for="(item, index) in tabsList"  :class="current==index?'addImg':''" :key="index">
-                                <a href="javascript:void(0)">{{ item.text }}</a>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="header-use">
-                        <a href="javascript:void(0)">个人中心</a>
-                    </div>
+<input type="hidden" th:value="${spiServer}" id="spiServer">
+<input type="hidden" th:value="${agent}" id="userAgent">
+<div class="container" id="qualityAuthorize">
+    <template v-if="parameters">
+        <!-- 顶部logo区域 -->
+        <div class="container-header clear">
+            <div class="header-top">
+                <div class="inner">
+                    <div class="logo"><img src="/img/quality/icon-logo.png" alt=""></div>
                 </div>
             </div>
         </div>
-        <div class="header-bottom" v-if="!isPC">
-            <div class="bottom_nav">
-                <i class="mIcon icon_nav"></i>
-                <div class="header-nav-tabs">
-                    <div class="item-nav" v-for="(item, index) in tabsList"  :class="current==index?'addImg':''" :key="index">
-                        <a href="javascript:void(0)">{{ item.text }}</a>
-                    </div>
+        <!-- 顶部logo区域end-->
+        <!-- 主体内容区域 -->
+        <div class="container-content">
+            <div class="container-main fl-clear">
+                <!-- 图片区域 -->
+                <div class="img-box">
+                    <img class="product-img" :src="parameters.image">
+                    <div class="origin-logo-box"><img class="product-brand" :src="parameters.authLogo"></div>
+                    <img class="product-authorize" src="/img/quality/pro-authorization.png">
+                    <img class="sq-book" @click="showSqBookModal" v-show="!isShowSqBookModal" :src="parameters.certificateImage">
                 </div>
-            </div>
-            <div class="bottom_logo">
-                <a href="/index.html">
-                    <img src="/img/base/logo.png" alt="">
-                </a>
-            </div>
-            <div class="bottom_use">
-                <i class="mIcon icon_nav"></i>
-            </div>
-        </div>
-        <div class="header-bottom-msg" v-if="!isPC">
-            <i class="mIcon icon-msg"></i>
-            <p>请仔细比对仪器上的序列号与SN码是否一致,您也可前往官方防伪网站查看更多信息。</p>
-        </div>
-    </div>
-    <div class="container-content clear">
-        <div class="inner">
-            <div class="content-top">
-                <div class="content-top-left">
-                    <div class="content-logo">
-                        <img src="/img/quality/logo.png" alt="">
+                <!-- 商品介绍区域 -->
+                <div class="product-desc">
+                    <!-- 商品介绍区域 -->
+                    <h3>{{parameters.name}}</h3>
+                    <div class="pink-box">
+                        <div class="item-row"><span>品牌:{{parameters.brandName}}</span></div>
+                        <div class="fl-clear">
+                            <span class="fl-left">产地:{{parameters.productionPlace}}</span>
+                            <a class="fl-right" target="_blank" :href="parameters.securityLink" v-if="parameters.securityLink">防伪官网>></a></div>
                     </div>
-                    <div class="content-mssg">
-                        <div class="mssg-name">上海品辉医疗正品授权</div>
-                        <div class="mssg-labels">
-                            <span>正品联盟成员</span>
-                        </div>
+                    <!-- 代理声明区域-->
+                    <div class="default-box" v-if="parameters.agentFlag === 1">
+                        <div class="item-row"><span class="dls">代理商:</span><span>{{parameters.agentName}}</span></div>
+                        <div class="item-row statement">
+                            <!-- 链接 -->
+                            <a :href="parameters.statementLink" v-if="parameters.statementType === 2">代理声明<i class="iconfont icon-wenhao"></i></a>
+                            <!-- 弹窗 -->
+                            <a href="#" @click.prevent="openStatementDialog(1)" v-else>代理声明<i class="iconfont icon-wenhao"></i></a></div>
                     </div>
-                </div>
-                <div class="content-top-right" v-if="isPC">
-                    <div class="content-button">
-                        <a href="javascript:void(0)">查看下一个(0)</a>
+                    <p>该仪器由{{parameters.agentFlag !== 0 ? parameters.agentName : parameters.brandName}}授予{{parameters.authParty}}正品拥有</p>
+                    <div class="pink-box sn-number">
+                        <div class="item-row"><span>SN码:{{parameters.snCode | snCode}}</span></div>
                     </div>
                 </div>
             </div>
-            <div class="content-bottom">
-                <div class="preview-banner clearfix" id="imgShown" >
-                    <div class="preview-banner-big bigImage" v-if="isPC">
-                        <img class="preview-img" :src="previewBigimage" >
-                        <span class="mask"></span>
-                    </div>
-                    <div class="preview-banner-small" id="CM____pic_thumb" v-if="isPC">
-                        <ul class="preview-thumb-ul">
-                            <li class="item" v-for="(item, index) in previewThumb"  :class="current==index?'addImg':''" :key="index" :data-src="item" @click="ImgList(item,index)">
-                                <img :src="item">
-                            </li>
-                        </ul>
-                    </div>
-                    <div class="CM____pic_thumb swiper-container" id="swiperImage"  v-else>
-                        <ul class="swiper-wrapper clear preview-thumb-ul">
-                            <li class="swiper-slide mfc"v-for="(item, index) in previewThumb" :class="current==index?'addImg':''" :key="index" :data-src="item" @click="ImgList(item,index)">
-                                <img :src="item">
-                            </li>
-                        </ul>
-                        <div class="swiper-pagination mfc"></div>
-                    </div>
-                    <div class="preview-box" id="mag" v-if="isPC">
-                        <div class="bigitem">
-                            <img id="magnifierImg" :src="previewBigimage"/>
-                        </div>
-                    </div>
-                </div>
-                <div class="preview-info">
-                    <div class="preview-info-title">
-                        <div class="title-label">
-                            <p>该仪器由西安柏恩美业有限公司购买</p>
-                            <img class="icon-author" src="/img/quality/icon-author.png" alt="" v-if="isPC">
-                            <img class="icon-author" src="/img/quality/icon-h5-author.png" alt="" v-if="!isPC">
-                        </div>
-                        <div class="title-name">M22 AOPT超光子王者之冠</div>
-                        <div class="title-p">
-                            <span class="label">SN码:</span>
-                            <span class="labal">V2**********9678</span>
-                        </div>
-                        <div class="title-w">
-                            <img class="title-w-bao" src="/img/quality/icon-bao.png" alt="" v-if="isPC">
-                            <img class="title-w-bao" src="/img/quality/icon-h5-bao.png" alt="" v-if="!isPC">
-                            <a href="javascript:void(0)">官方防伪网站</a>
-                        </div>
-                    </div>
-                    <div class="preview-info-details">
-                        <div class="details-p">
-                            <span class="label">型号:</span>
-                            <span class="labal">R100E</span>
-                        </div>
-                        <div class="details-p">
-                            <span class="label">品牌:</span>
-                            <span class="labal">上海品辉</span>
-                        </div>
-                        <div class="details-p">
-                            <span class="label">出厂年月:</span>
-                            <span class="labal">2017年12月6日</span>
-                        </div>
-                        <div class="details-p">
-                            <span class="label">产品尺寸:</span>
-                            <span class="labal">长*宽*高 30*29.5*12.5</span>
-                        </div>
-                        <div class="details-p">
-                            <span class="label">能量源:</span>
-                            <span class="labal">激光</span>
-                        </div>
-                        <div class="details-p">
-                            <span class="label">波长:</span>
-                            <span class="labal">515-1565nm</span>
-                        </div>
-                    </div>
-                    <div class="preview-info-msg" v-if="isPC">
-                        <div class="info-msg">
-                            <i class="icon icon-msg"></i>
-                            请仔细比对仪器上的序列号与SN码是否一致,您也可前往官方防伪网站查看更多信息。
-                        </div>
-                    </div>
-                    <div class="preview-button" v-if="!isPC">
-                        <a href="javascript:void(0)">查看下一个(0)</a>
-                    </div>
-                </div>
+            <div class="product-params">
+                <div class="title"><span>产品参数</span></div>
+                <!-- 手机端布局 -->
+                <table class="params mobile">
+                    <tbody>
+                    <tr v-for="(item , index) in parameters.paramList" :key="index">
+                        <td style="width: 80px;">{{item.name}}</td>
+                        <td>{{item.content}}</td>
+                    </tr>
+                    </tbody>
+                </table>
+                <!-- 电脑端布局 -->
+                <ul class="pc-params pc fl-clear">
+                    <li class="fl-clear" v-for="(item,index) in parameters.paramList" :key="index">
+                        <div class="p-title">{{item.name}}:</div>
+                        <div class="p-content">{{item.content}}</div>
+                    </li>
+                </ul>
+            </div>
+        </div>
+        <!-- 底部声明 -->
+        <div class="footer">
+            <p><a href="#" @click.prevent="openStatementDialog">采美声明</a>&nbsp;|&nbsp;由采美信息技术提供技术支持</p>
+        </div>
+        <div class="footer-mobile">
+            <p><a href="#" @click.prevent="openStatementDialog">采美声明</a></p>
+            <p>— 由采美信息技术提供技术支持 —</p>
+        </div>
+        <!--声明对话框-->
+        <div class="statementModel" v-show="showStatement" style="display: none">
+            <div class="model"><i class="close" @click="closeStatementModel"></i>
+                <!-- 标题 -->
+                <div class="title">{{isCmComtent?'采美声明':'代理声明'}}</div>
+                <!-- 内容 -->
+                <div class="content" v-if="!isCmComtent">{{statementContent}}</div>
+                <div class="content" v-html="cmContent" else></div>
             </div>
         </div>
-    </div>
-</div>
+        <div class="float-zplm"><a target="_blank" href="https://www-b.caimei365.com/topic.html?type=6&name=%E6%AD%A3%E5%93%81%E8%81%94%E7%9B%9F"><img src="/img/quality/float-img.png"></a></div>
 
-<!-- 引入底部 -->
+        <!--授权图模态框-->
+        <div class="sq-book-modal" @click="hideSqBookModal" v-show="isShowSqBookModal" id="sq-book-modal"></div>
+        <transition enter-active-class="myZoomIn" leave-active-class="myZoomOut">
+            <div class="sq-book-img myZoomIn"  v-show="isShowSqBookModal">
+                    <i class="close" @click="hideSqBookModal"></i>
+                    <img :src="parameters.certificateImage">
+            </div>
+        </transition>
+    </template>
+</div><!-- 引入底部 -->
 <template th:replace="components/foot-link"></template>
-<script charset="utf-8" type="text/javascript" src="/lib/magnifier.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/product/qualityauthorize.js(v=${version})}"></script>
 </body>

+ 831 - 0
src/main/resources/templates/product/temporary.html

@@ -0,0 +1,831 @@
+<!--美博会临时创建页面-->
+<!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/instruement.css(v=${version})}" rel="stylesheet" type="text/css">
+    <style>
+        .swiper{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}
+        .swiper img{display:block;width:1920px}
+        .instrue-right{display:none}
+        .instrue-left{float:unset;margin:0 auto}
+        .pc-banner{width:100%;height:510px;background:url(https://static.caimei365.com/www/mt_pc.jpg) no-repeat center}
+    </style>
+</head>
+<body>
+<!-- 引用头部 -->
+<template th:replace="components/header"></template>
+    <!--loading-->
+    <div id="instrueMent">
+        <div v-if="listLoading" class="loading">
+            <img src="/img/base/loading.gif">
+        </div>
+        <template v-else>
+            <div class="swiper">
+                <div class="pc-banner" v-if="isPC"></div>
+                <img src="https://static.caimei365.com/www/mt_mobile.jpg" v-else>
+            </div>
+            <div id="container">
+            <div class="instrue-right">
+                <div class="wrap_tittle"> 大家都在搜<span class="line"></span></div>
+                <template v-if="isPC">
+                    <div class="hot-search">
+                        <a class="hot-list" v-for="(item,index) in hotlist" :href="item.link"><i class="icon"
+                                                                                                 :class="item.isHot==1?'hot':''"></i>{{item.name}}</a>
+                    </div>
+                </template>
+                <template v-else>
+                    <div class="hot-search" :style="showflag?'height:auto':''">
+                        <div class="left-box">
+                            <a class="hot-list" v-for="(item,index) in hotlist" :href="item.link"><i class="mIcon"
+                                                                                                     :class="item.isHot==1?'hot':''"></i>{{item.name}}</a>
+                        </div>
+                        <div class="right-box" @click="showNav">
+                            <span class="mIcon" :class="showflag?'close':'open'"></span>
+                        </div>
+                    </div>
+                </template>
+                <div :class="showflag?'bg':''" @click="closeup"></div>
+            </div>
+            <div class="instrue-left">
+                <div class="page-list" v-for="(page,index) in floorList">
+                    <div class="floorTit" v-if="page.floorContent">
+                        <h2 :data-id="index+1" v-text="page.title"></h2>
+                        <h5 v-text="page.detail"></h5>
+                    </div>
+                    <template v-if="page.floorContent && page.floorContent.templateType == '1'">
+                        <div class="floorCon">
+                            <div class="hotList recommend">
+                                <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
+                                    <a class="img01 page_main_item"
+                                       :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
+                                       :class="page.floorContent.adsLink1!='' ? '' : 'default' ">
+                                        <img :src="page.floorContent.pcAdsImage1"/></a>
+                                    <a class="productItem" :href="pros.link"
+                                       v-for="(pros,index) in page.floorImageList">
+                                        <img :src="pros.image ? pros.image : '/img/base/placeholder.png'"
+                                             :data-original="pros.image" :alt="pros.name">
+                                        <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
+                                        <div class="name" target="_blank">
+                                            <sapn class="tag"
+                                                  v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会
+                                            </sapn>
+                                            {{pros.name}}
+                                        </div>
+                                        <div class="price" v-if="pros.listType == 1">
+                                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                                <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                                                <template v-if="pros.product.productCategory==1">
+                                                    <template v-if="pros.product.price1TextFlag==1">
+                                                        <div class="price_text_tag">
+                                                            <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                {{pros.product.promotions.name}}</p>
+                                                        </div>
+                                                        <div class="main_price_unde">¥价格未公开</div>
+                                                    </template>
+                                                    <template v-else>
+                                                        <template
+                                                                v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}
+                                                                    <span v-if="pros.priceFlag != 1">:¥{{pros.product.retailPrice | NumFormat}}</span>
+                                                                </p>
+                                                            </div>
+                                                            <div class="main_price_show"
+                                                                 :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
+                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ?
+                                                                pros.product.price1 : pros.product.retailPrice ) |
+                                                                NumFormat }}
+                                                            </div>
+                                                        </template>
+                                                        <template
+                                                                v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class="main_price_unde">¥会员可见</div>
+                                                        </template>
+                                                        <template v-else>
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class=" price_grade"><span class="bold">¥</span><i
+                                                                    :class="'icon mIcon i'+pros.product.price1Grade"></i>
+                                                            </div>
+                                                        </template>
+                                                    </template>
+                                                </template>
+                                                <template v-else>
+                                                    <div class="price_text_tag"></div>
+                                                    <div class="main_price_show"
+                                                         v-if="pros.product.detailTalkFlag == '2'">¥价格详聊
+                                                    </div>
+                                                    <div class="main_price_show" v-else>¥{{ pros.product.retailPrice |
+                                                        NumFormat }}
+                                                    </div>
+                                                </template>
+                                            </template>
+                                            <template v-else>
+                                                <template v-if="pros.product.productCategory == 1">
+                                                    <div class="price_text_tag">
+                                                        <p class="listTag" v-if="pros.product.actStatus==1">
+                                                            {{pros.product.promotions.name}}</p>
+                                                    </div>
+                                                    <div class=" price_grade"><span class="bold">¥</span><i
+                                                            :class="'icon mIcon i'+pros.product.price1Grade"></i></div>
+                                                </template>
+                                                <template v-else>
+                                                    <em class="price_grade sec">¥登录可见</em>
+                                                </template>
+                                            </template>
+                                        </div>
+                                    </a>
+                                </div>
+                                <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
+                            </div>
+                        </div>
+                    </template>
+                    <template v-if="page.floorContent && page.floorContent.templateType == '2'">
+                        <div class="floorCon">
+                            <div class="hotList">
+                                <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
+                                    <a :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
+                                       class="img01 page_main_item"
+                                       :class="page.floorContent.adsLink1!='' ? '' : 'default' ">
+                                        <img :src="page.floorContent.pcAdsImage1" alt=""> </a>
+                                    <a :href="page.floorContent.adsLink2" class="img02 page_main_item"><img
+                                            :src="page.floorContent.pcAdsImage2" alt=""> </a>
+                                    <a class="productItem" :href="pros.link"
+                                       v-for="(pros,index) in page.floorImageList">
+                                        <img src="/img/base/placeholder.png" :data-original="pros.image"
+                                             :alt="pros.name">
+                                        <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
+                                        <div class="name" target="_blank">
+                                            <sapn class="tag"
+                                                  v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会
+                                            </sapn>
+                                            {{pros.name}}
+                                        </div>
+                                        <div class="price" v-if="pros.listType == 1">
+                                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                                <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                                                <template v-if="pros.product.productCategory==1">
+                                                    <template v-if="pros.product.price1TextFlag==1">
+                                                        <div class="price_text_tag">
+                                                            <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                {{pros.product.promotions.name}}</p>
+                                                        </div>
+                                                        <div class="main_price_unde">¥价格未公开</div>
+                                                    </template>
+                                                    <template v-else>
+                                                        <template
+                                                                v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}
+                                                                    <span v-if="pros.priceFlag != 1">:¥{{pros.product.retailPrice | NumFormat}}</span>
+                                                                </p>
+                                                            </div>
+                                                            <div class="main_price_show"
+                                                                 :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
+                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ?
+                                                                pros.product.price1 : pros.product.retailPrice ) |
+                                                                NumFormat }}
+                                                            </div>
+                                                        </template>
+                                                        <template
+                                                                v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class="main_price_unde">¥会员可见</div>
+                                                        </template>
+                                                        <template v-else>
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class=" price_grade"><span class="bold">¥</span><i
+                                                                    :class="'icon mIcon i'+pros.product.price1Grade"></i>
+                                                            </div>
+                                                        </template>
+                                                    </template>
+                                                </template>
+                                                <template v-else>
+                                                    <div class="price_text_tag"></div>
+                                                    <div class="main_price_show"
+                                                         v-if="pros.product.detailTalkFlag == '2'">¥价格详聊
+                                                    </div>
+                                                    <div class="main_price_show" v-else>¥{{ pros.product.retailPrice |
+                                                        NumFormat }}
+                                                    </div>
+                                                </template>
+                                            </template>
+                                            <template v-else>
+                                                <template v-if="pros.product.productCategory == 1">
+                                                    <div class="price_text_tag">
+                                                        <p class="listTag" v-if="pros.product.actStatus==1">
+                                                            {{pros.product.promotions.name}}</p>
+                                                    </div>
+                                                    <div class=" price_grade"><span class="bold">¥</span><i
+                                                            :class="'icon mIcon i'+pros.product.price1Grade"></i></div>
+                                                </template>
+                                                <template v-else>
+                                                    <em class="price_grade sec">¥登录可见</em>
+                                                </template>
+                                            </template>
+                                        </div>
+                                    </a>
+                                </div>
+                                <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
+                            </div>
+                        </div>
+                    </template>
+                    <template v-if="page.floorContent && page.floorContent.templateType == '3'">
+                        <div class="floorCon">
+                            <div class="hotList">
+                                <div class="section_page_main type clear mfw" :class="page.isPageMore ? '' : 'max'">
+                                    <a class='imgbaner page_main_item'
+                                       :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
+                                       :class="page.floorContent.adsLink1!='' ? '' : 'default' "><img
+                                            :src="page.floorContent.pcAdsImage1"></a>
+                                    <a class="img01 page_main_item"
+                                       :href="page.floorContent.adsLink2!='' ? page.floorContent.adsLink2 : 'javascript:void(0)'"
+                                       :class="page.floorContent.adsLink2!='' ? '' : 'default' "><img
+                                            :src="page.floorContent.pcAdsImage2"/></a>
+                                    <a class="productItem" :href="pros.link"
+                                       v-for="(pros,index) in page.floorImageList">
+                                        <img src="/img/base/placeholder.png" :data-original="pros.image"
+                                             :alt="pros.name">
+                                        <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
+                                        <div class="name" target="_blank">
+                                            <sapn class="tag"
+                                                  v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会
+                                            </sapn>
+                                            {{pros.name}}
+                                        </div>
+                                        <div class="price" v-if="pros.listType == 1">
+                                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                                <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                                                <template v-if="pros.product.productCategory==1">
+                                                    <template v-if="pros.product.price1TextFlag==1">
+                                                        <div class="price_text_tag">
+                                                            <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                {{pros.product.promotions.name}}</p>
+                                                        </div>
+                                                        <div class="main_price_unde">¥价格未公开</div>
+                                                    </template>
+                                                    <template v-else>
+                                                        <template
+                                                                v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}
+                                                                    <span v-if="pros.priceFlag != 1">:¥{{pros.product.retailPrice | NumFormat}}</span>
+                                                                </p>
+                                                            </div>
+                                                            <div class="main_price_show"
+                                                                 :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
+                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ?
+                                                                pros.product.price1 : pros.product.retailPrice ) |
+                                                                NumFormat }}
+                                                            </div>
+                                                        </template>
+                                                        <template
+                                                                v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class="main_price_unde">¥会员可见</div>
+                                                        </template>
+                                                        <template v-else>
+                                                            <div class="price_text_tag ">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class=" price_grade"><span class="bold">¥</span><i
+                                                                    :class="'icon mIcon i'+pros.product.price1Grade"></i>
+                                                            </div>
+                                                        </template>
+                                                    </template>
+                                                </template>
+                                                <template v-else>
+                                                    <div class="price_text_tag"></div>
+                                                    <div class="main_price_show"
+                                                         v-if="pros.product.detailTalkFlag == '2'">¥价格详聊
+                                                    </div>
+                                                    <div class="main_price_show" v-else>¥{{ pros.product.retailPrice |
+                                                        NumFormat }}
+                                                    </div>
+                                                </template>
+                                            </template>
+                                            <template v-else>
+                                                <template v-if="pros.product.productCategory == 1">
+                                                    <div class="price_text_tag ">
+                                                        <p class="listTag" v-if="pros.product.actStatus==1">
+                                                            {{pros.product.promotions.name}}</p>
+                                                    </div>
+                                                    <div class=" price_grade"><span class="bold">¥</span><i
+                                                            :class="'icon mIcon i'+pros.product.price1Grade"></i></div>
+                                                </template>
+                                                <template v-else>
+                                                    <em class="price_grade sec">¥登录可见</em>
+                                                </template>
+                                            </template>
+                                        </div>
+                                    </a>
+                                </div>
+                                <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
+                            </div>
+                        </div>
+                    </template>
+                    <template v-if="page.floorContent && page.floorContent.templateType == '4'">
+                        <div class="floorCon">
+                            <div class="hotList">
+                                <div class="section_page_main type clear mfw" :class="page.isPageMore ? '' : 'max'">
+                                    <a class='imgbaner page_main_item'
+                                       :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
+                                       :class="page.floorContent.adsLink1!='' ? '' : 'default' ">
+                                        <img :src="page.floorContent.pcAdsImage1"></a>
+                                    <a class="img01 page_main_item"
+                                       :href="page.floorContent.adsLink2!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
+                                       :class="page.floorContent.adsLink2!='' ? '' : 'default' ">
+                                        <img :src="page.floorContent.pcAdsImage2"/></a>
+                                    <a class="img02 page_main_item"
+                                       :href="page.floorContent.adsLink3!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
+                                       :class="page.floorContent.adsLink3!='' ? '' : 'default' ">
+                                        <img :src="page.floorContent.pcAdsImage3"/></a>
+                                    <a class="productItem" :href="pros.link"
+                                       v-for="(pros,index) in page.floorImageList">
+                                        <img src="/img/base/placeholder.png" :data-original="pros.image"
+                                             :alt="pros.name">
+                                        <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
+                                        <div class="name" target="_blank">
+                                            <sapn class="tag"
+                                                  v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会
+                                            </sapn>
+                                            {{pros.name}}
+                                        </div>
+                                        <div class="price" v-if="pros.listType == 1">
+                                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                                <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                                                <template v-if="pros.product.productCategory==1">
+                                                    <template v-if="pros.product.price1TextFlag==1">
+                                                        <div class="price_text_tag">
+                                                            <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                {{pros.product.promotions.name}}</p>
+                                                        </div>
+                                                        <div class="main_price_unde">¥价格未公开</div>
+                                                    </template>
+                                                    <template v-else>
+                                                        <template
+                                                                v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}
+                                                                    <span v-if="pros.priceFlag != 1">:¥{{pros.product.retailPrice | NumFormat}}</span>
+                                                                </p>
+                                                            </div>
+                                                            <div class="main_price_show"
+                                                                 :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
+                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ?
+                                                                pros.product.price1 : pros.product.retailPrice ) |
+                                                                NumFormat }}
+                                                            </div>
+                                                        </template>
+                                                        <template
+                                                                v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class="main_price_unde">¥会员可见</div>
+                                                        </template>
+                                                        <template v-else>
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class=" price_grade"><span class="bold">¥</span><i
+                                                                    :class="'icon mIcon i'+pros.product.price1Grade"></i>
+                                                            </div>
+                                                        </template>
+                                                    </template>
+                                                </template>
+                                                <template v-else>
+                                                    <div class="price_text_tag"></div>
+                                                    <div class="main_price_show"
+                                                         v-if="pros.product.detailTalkFlag == '2'">¥价格详聊
+                                                    </div>
+                                                    <div class="main_price_show" v-else>¥{{ pros.product.retailPrice |
+                                                        NumFormat }}
+                                                    </div>
+                                                </template>
+                                            </template>
+                                            <template v-else>
+                                                <template v-if="pros.product.productCategory == 1">
+                                                    <div class="price_text_tag ">
+                                                        <p class="listTag" v-if="pros.product.actStatus==1">
+                                                            {{pros.product.promotions.name}}</p>
+                                                    </div>
+                                                    <div class=" price_grade"><span class="bold">¥</span><i
+                                                            :class="'icon mIcon i'+pros.product.price1Grade"></i></div>
+                                                </template>
+                                                <template v-else>
+                                                    <em class="price_grade sec">¥登录可见</em>
+                                                </template>
+                                            </template>
+                                        </div>
+                                    </a>
+                                </div>
+                                <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
+                            </div>
+                        </div>
+                    </template>
+                    <template v-if="page.floorContent && page.floorContent.templateType == '5'">
+                        <div class="floorCon">
+                            <div class="hotList">
+                                <div class="section_page_main type clear mfw" :class="page.isPageMore ? '' : 'max'">
+                                    <a class='imgbaner page_main_item'
+                                       :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
+                                       :class="page.floorContent.adsLink1!='' ? '' : 'default' "><img
+                                            :src="page.floorContent.pcAdsImage1"></a>
+                                    <a class="productItem" :href="pros.link"
+                                       v-for="(pros,index) in page.floorImageList">
+                                        <img src="/img/base/placeholder.png" :data-original="pros.image"
+                                             :alt="pros.name">
+                                        <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
+                                        <div class="name" target="_blank"><span class="tag"
+                                                                                v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</span>{{pros.name}}
+                                        </div>
+                                        <div class="price" v-if="pros.listType == 1">
+                                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                                <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                                                <template v-if="pros.product.productCategory==1">
+                                                    <template v-if="pros.product.price1TextFlag==1">
+                                                        <div class="price_text_tag">
+                                                            <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                {{pros.product.promotions.name}}</p>
+                                                        </div>
+                                                        <div class="main_price_unde">¥价格未公开</div>
+                                                    </template>
+                                                    <template v-else>
+                                                        <template
+                                                                v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}
+                                                                    <span v-if="pros.priceFlag != 1">:¥{{pros.product.retailPrice | NumFormat}}</span>
+                                                                </p>
+                                                            </div>
+                                                            <div class="main_price_show"
+                                                                 :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
+                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ?
+                                                                pros.product.price1 : pros.product.retailPrice ) |
+                                                                NumFormat }}
+                                                            </div>
+                                                        </template>
+                                                        <template
+                                                                v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class="main_price_unde">¥会员可见</div>
+                                                        </template>
+                                                        <template v-else>
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class=" price_grade"><span class="bold">¥</span><i
+                                                                    :class="'icon mIcon i'+pros.product.price1Grade"></i>
+                                                            </div>
+                                                        </template>
+                                                    </template>
+                                                </template>
+                                                <template v-else>
+                                                    <div class="price_text_tag"></div>
+                                                    <div class="main_price_show"
+                                                         v-if="pros.product.detailTalkFlag == '2'">¥价格详聊
+                                                    </div>
+                                                    <div class="main_price_show" v-else>¥{{ pros.product.retailPrice |
+                                                        NumFormat }}
+                                                    </div>
+                                                </template>
+                                            </template>
+                                            <template v-else>
+                                                <template v-if="pros.product.productCategory == 1">
+                                                    <div class="price_text_tag">
+                                                        <p class="listTag" v-if="pros.product.actStatus==1">
+                                                            {{pros.product.promotions.name}}</p>
+                                                    </div>
+                                                    <div class=" price_grade"><span class="bold">¥</span><i
+                                                            :class="'icon mIcon i'+pros.product.price1Grade"></i></div>
+                                                </template>
+                                                <template v-else>
+                                                    <em class="price_grade sec">¥登录可见</em>
+                                                </template>
+                                            </template>
+                                        </div>
+                                    </a>
+                                </div>
+                                <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
+                            </div>
+                        </div>
+                    </template>
+                    <template v-if="page.floorContent && page.floorContent.templateType == '6'">
+                        <div class="floorCon">
+                            <div class="hotList">
+                                <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
+                                    <a class="productItem" :href="pros.link"
+                                       v-for="(pros,index) in page.floorImageList">
+                                        <img src="/img/base/placeholder.png" :data-original="pros.image"
+                                             :alt="pros.name">
+                                        <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
+                                        <div class="name" target="_blank">
+                                            <sapn class="tag"
+                                                  v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会
+                                            </sapn>
+                                            {{pros.name}}
+                                        </div>
+                                        <div class="price" v-if="pros.listType == 1">
+                                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                                <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                                                <template v-if="pros.product.productCategory==1">
+                                                    <template v-if="pros.product.price1TextFlag==1">
+                                                        <div class="price_text_tag">
+                                                            <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                {{pros.product.promotions.name}}</p>
+                                                        </div>
+                                                        <div class="main_price_unde">¥价格未公开</div>
+                                                    </template>
+                                                    <template v-else>
+                                                        <template
+                                                                v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}
+                                                                    <span v-if="pros.priceFlag != 1">:¥{{pros.product.retailPrice | NumFormat}}</span>
+                                                                </p>
+                                                            </div>
+                                                            <div class="main_price_show"
+                                                                 :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
+                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ?
+                                                                pros.product.price1 : pros.product.retailPrice ) |
+                                                                NumFormat }}
+                                                            </div>
+                                                        </template>
+                                                        <template
+                                                                v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class="main_price_unde">¥会员可见</div>
+                                                        </template>
+                                                        <template v-else>
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class=" price_grade"><span class="bold">¥</span><i
+                                                                    :class="'icon mIcon i'+pros.product.price1Grade"></i>
+                                                            </div>
+                                                        </template>
+                                                    </template>
+                                                </template>
+                                                <template v-else>
+                                                    <div class="price_text_tag"></div>
+                                                    <div class="main_price_show"
+                                                         v-if="pros.product.detailTalkFlag == '2'">¥价格详聊
+                                                    </div>
+                                                    <div class="main_price_show" v-else>¥{{ pros.product.retailPrice |
+                                                        NumFormat }}
+                                                    </div>
+                                                </template>
+                                            </template>
+                                            <template v-else>
+                                                <template v-if="pros.product.productCategory == 1">
+                                                    <div class="price_text_tag">
+                                                        <p class="listTag" v-if="pros.product.actStatus==1">
+                                                            {{pros.product.promotions.name}}</p>
+                                                    </div>
+                                                    <div class=" price_grade"><span class="bold">¥</span><i
+                                                            :class="'icon mIcon i'+pros.product.price1Grade"></i></div>
+                                                </template>
+                                                <template v-else>
+                                                    <em class="price_grade sec">¥登录可见</em>
+                                                </template>
+                                            </template>
+                                        </div>
+                                    </a>
+                                </div>
+                                <a class='imgbaner page_main_item'
+                                   :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
+                                   :class="page.floorContent.adsLink1!='' ? '' : 'default' "><img
+                                        :src="page.floorContent.pcAdsImage1"></a>
+                                <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
+                            </div>
+                        </div>
+                    </template>
+                    <template v-if="page.floorContent && page.floorContent.templateType == '7'">
+                        <div class="floorCon">
+                            <div class="hotList">
+                                <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
+                                    <a class="productItem" :href="pros.link"
+                                       v-for="(pros,index) in page.floorImageList">
+                                        <img src="/img/base/placeholder.png" :data-original="pros.image"
+                                             :alt="pros.name">
+                                        <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
+                                        <div class="name" target="_blank"><span class="tag"
+                                                                                v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</span>{{pros.name}}
+                                        </div>
+                                        <div class="price" v-if="pros.listType == 1">
+                                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                                <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                                                <template v-if="pros.product.productCategory==1">
+                                                    <template v-if="pros.product.price1TextFlag==1">
+                                                        <div class="price_text_tag">
+                                                            <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                {{pros.product.promotions.name}}</p>
+                                                        </div>
+                                                        <div class="main_price_unde">¥价格未公开</div>
+                                                    </template>
+                                                    <template v-else>
+                                                        <template
+                                                                v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}
+                                                                    <span v-if="pros.priceFlag != 1">:¥{{pros.product.retailPrice | NumFormat}}</span>
+                                                                </p>
+                                                            </div>
+                                                            <div class="main_price_show"
+                                                                 :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
+                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ?
+                                                                pros.product.price1 : pros.product.retailPrice ) |
+                                                                NumFormat }}
+                                                            </div>
+                                                        </template>
+                                                        <template
+                                                                v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class="main_price_unde">¥会员可见</div>
+                                                        </template>
+                                                        <template v-else>
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class=" price_grade"><span class="bold">¥</span><i
+                                                                    :class="'icon mIcon i'+pros.product.price1Grade"></i>
+                                                            </div>
+                                                        </template>
+                                                    </template>
+                                                </template>
+                                                <template v-else>
+                                                    <div class="price_text_tag"></div>
+                                                    <div class="main_price_show"
+                                                         v-if="pros.product.detailTalkFlag == '2'">¥价格详聊
+                                                    </div>
+                                                    <div class="main_price_show" v-else>¥{{ pros.product.retailPrice |
+                                                        NumFormat }}
+                                                    </div>
+                                                </template>
+                                            </template>
+                                            <template v-else>
+                                                <template v-if="pros.product.productCategory == 1">
+                                                    <div class="price_text_tag">
+                                                        <p class="listTag" v-if="pros.product.actStatus==1">
+                                                            {{pros.product.promotions.name}}</p>
+                                                    </div>
+                                                    <div class=" price_grade"><span class="bold">¥</span><i
+                                                            :class="'icon mIcon i'+pros.product.price1Grade"></i></div>
+                                                </template>
+                                                <template v-else>
+                                                    <em class="price_grade sec">¥登录可见</em>
+                                                </template>
+                                            </template>
+                                        </div>
+                                    </a>
+                                </div>
+                            </div>
+                        </div>
+                    </template>
+                    <template v-if="page.floorContent && page.floorContent.templateType == '8'">
+                        <div class="floorCon">
+                            <div class="hotList swiper-container" id="recommendBox">
+                                <div class="section_page_main clear mfw swiper-wrapper"
+                                     :class="page.isPageMore ? '' : 'max'">
+                                    <a class="productItem swiper-slide" :href="pros.link"
+                                       v-for="(pros,index) in page.floorImageList">
+                                        <img :src="pros.image" :alt="pros.name">
+                                        <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
+                                        <div class="name" target="_blank">
+                                            <sapn class="tag"
+                                                  v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会
+                                            </sapn>
+                                            {{pros.name}}
+                                        </div>
+                                        <div class="price" v-if="pros.listType == 1">
+                                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                                <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                                                <template v-if="pros.product.productCategory==1">
+                                                    <template v-if="pros.product.price1TextFlag==1">
+                                                        <div class="price_text_tag">
+                                                            <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                {{pros.product.promotions.name}}</p>
+                                                        </div>
+                                                        <div class="main_price_unde">¥价格未公开</div>
+                                                    </template>
+                                                    <template v-else>
+                                                        <template
+                                                                v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}
+                                                                    <span v-if="pros.priceFlag != 1">:¥{{pros.product.retailPrice | NumFormat}}</span>
+                                                                </p>
+                                                            </div>
+                                                            <div class="main_price_show"
+                                                                 :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
+                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ?
+                                                                pros.product.price1 : pros.product.retailPrice ) |
+                                                                NumFormat }}
+                                                            </div>
+                                                        </template>
+                                                        <template
+                                                                v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class="main_price_unde">¥会员可见</div>
+                                                        </template>
+                                                        <template v-else>
+                                                            <div class="price_text_tag">
+                                                                <p class="listTag" v-if="pros.product.actStatus==1">
+                                                                    {{pros.product.promotions.name}}</p>
+                                                            </div>
+                                                            <div class=" price_grade"><span class="bold">¥</span><i
+                                                                    :class="'icon mIcon i'+pros.product.price1Grade"></i>
+                                                            </div>
+                                                        </template>
+                                                    </template>
+                                                </template>
+                                                <template v-else>
+                                                    <div class="price_text_tag"></div>
+                                                    <div class="main_price_show"
+                                                         v-if="pros.product.detailTalkFlag == '2'">¥价格详聊
+                                                    </div>
+                                                    <div class="main_price_show" v-else>¥{{ pros.product.retailPrice |
+                                                        NumFormat }}
+                                                    </div>
+                                                </template>
+                                            </template>
+                                            <template v-else>
+                                                <template v-if="pros.product.productCategory == 1">
+                                                    <div class="price_text_tag">
+                                                        <p class="listTag" v-if="pros.product.actStatus==1">
+                                                            {{pros.product.promotions.name}}</p>
+                                                    </div>
+                                                    <div class=" price_grade"><span class="bold">¥</span><i
+                                                            :class="'icon mIcon i'+pros.product.price1Grade"></i></div>
+                                                </template>
+                                                <template v-else>
+                                                    <em class="price_grade sec">¥登录可见</em>
+                                                </template>
+                                            </template>
+                                        </div>
+                                    </a>
+                                </div>
+                                <div class="swiper-pagination mfc"><span v-if="isPC"
+                                                                         v-for="i in  Math.ceil(page.floorImageList.length / 5)"></span>
+                                </div>
+                            </div>
+                        </div>
+                    </template>
+                </div>
+            </div>
+        </template>
+    </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/product.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/product/temporary.js(v=${version})}"></script>
+</body>

+ 18 - 0
src/main/resources/templates/supplier-center/setting/information.html

@@ -175,6 +175,24 @@
                                     <a href="javascript:void(0);" @click="shopScopeAdd()">确认添加</a>
                                 </p>
                                 <span class="errTips icon mIcon" tips="请选择或添加主营产品"></span>
+                            </div>
+                            <div class="formLine" >
+                                <p>网站地址:</p>
+                                <input  class="massageBtn"  type="text" v-model="params2.website" placeholder="请输入网址" id="website"  @blur="blurHandle($event)">
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="请输入公司名称"></span>
+                            </div>
+                            <div class="formLine" >
+                                <p>微信公众号:</p>
+                                <input  class="massageBtn"  type="text" v-model="params2.wxOfficialAccount" placeholder="请输入微信公众号名称">
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="请输入微信公众号名称"></span>
+                            </div>
+                            <div class="formLine" >
+                                <p>微信小程序:</p>
+                                <input  class="massageBtn"  type="text" v-model="params2.wxApplets" placeholder="请输入微信小程序名称">
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="请输入微信小程序名称"></span>
                             </div>
                              <div class="formLine info">
                                  <p><em>*</em>公司介绍:</p>

二进制
target/www-0.0.1-SNAPSHOT.jar