Browse Source

Merge remote-tracking branch 'origin/developer' into developerC

# Conflicts:
#	src/main/resources/config/dev/application-dev.yml
zhengjinyi 3 years ago
parent
commit
aa32cd1b25

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

@@ -34,6 +34,7 @@ public class ProductController extends BaseController {
     private static final String QUALITY_AUTHORRIZE_PATH = "product/qualityauthorize";
     private static final String ACTIVITY_TOP_PATH = "activity/activityTopic";
     private static final String CLOUD_BEAUTY_PATH = "activity/beautyTopic";
+    private static final String ACTIVITY_COUPON_EXP = "activity/couponExp";
     /** 优惠券活动商品列表 */
     private static final String PRODUCT_COUPON = "product/product-coupon";
     /**
@@ -64,7 +65,7 @@ public class ProductController extends BaseController {
     }
 
     /**
-     * 搜索结果 页面
+     * 优惠券活动商品列表
      */
     @GetMapping("/product/product-coupon.html")
     public String productCoupon() { return PRODUCT_COUPON; }
@@ -317,4 +318,11 @@ public class ProductController extends BaseController {
         return CLOUD_BEAUTY_PATH;
     }
 
+    /**
+     * 优惠券说明页
+     */
+    @GetMapping("/product/couponExp.html")
+    public String getCouponExpPath(){
+        return ACTIVITY_COUPON_EXP;
+    }
 }

+ 5 - 3
src/main/resources/config/dev/application-dev.yml

@@ -3,10 +3,12 @@ spring:
     cache: false  #是否使用缓存
   #数据源连接--start
   datasource:
+    #本地连接数据库
     #driverClassName: com.mysql.jdbc.Driver
-#    url: jdbc:mysql://192.168.2.100:3306/caimei?characterEncoding=UTF8&serverTimezone=Asia/Shanghai
-#    username: developer
-#    password: 05bZ/OxTB:X+yd%1
+    #url: jdbc:mysql://192.168.2.100:3306/caimei?characterEncoding=UTF8&serverTimezone=Asia/Shanghai
+    #username: developer
+    #password: 05bZ/OxTB:X+yd%1
+    #测试连接数据库
     url: jdbc:mysql://120.79.25.27:3306/caimei?characterEncoding=UTF8&serverTimezone=Asia/Shanghai
     username: developer
     password: J5p3tgOVazNl4ydf

+ 22 - 14
src/main/resources/static/css/activity/beautyTopic.css

@@ -297,7 +297,7 @@ a{color:#333;text-decoration:none}
 .p-icon.i4::before{background-position-y:-804px}
 .p-icon.i5::before{background-position-y:-834px}
 .cm-container{padding-left:1vw;padding-right:1vw;-webkit-box-sizing:border-box;box-sizing:border-box}
-.cm-floor{padding:3.2vw 0}
+.cm-floor{padding:2.2vw 0}
 .cm-p-a{padding:1vw}
 .cm-m-a{padding:1vw}
 .cm-floor-title .cm-title{font-size:5vw;color:#4a4f58;font-weight:700;line-height:7.5vw;padding-top:1vw;padding-bottom:1vw}
@@ -305,7 +305,7 @@ a{color:#333;text-decoration:none}
 .cm-article-item{overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}
 .cm-article-item .cm-article-title{font-size:3.5vw;color:#4a4f58;-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}
 .cm-article-item .cm-article-title.has-border{border-left:2px solid #fff}
-.cm-article-item .cm-article-desc{font-size:2.5vw;color:#93979f;line-height:2em;text-align:justify}
+.cm-article-item .cm-article-desc{font-size:2.5vw;color:#93979f;line-height:2em;text-align:justify;word-break: break-all;}
 .cm-article-item .cm-article-desc.h56{height:10.5vw}
 .cm-article-item .cm-article-cover.cover-168-168{width:27vw;height:27vw}
 .cm-article-item.h200{height:33vw}
@@ -335,31 +335,35 @@ a{color:#333;text-decoration:none}
 .cm-float-container .cm-slide .cm-toggle-btn{top:0;right:0;position:absolute;width:100%;height:100%}
 .cm-float-container .cm-slide:hover .cm-tooltop{display:block}
 .cm-float-container .cm-slide:hover .cm-toggle-btn{width:150%}
-.cm-float-container .cm-slide:nth-child(1){height:13.2vw;background:url(https://static.caimei365.com/app/img/icon2/pc_note.png) no-repeat center;background-size:12vw}
+.cm-float-container .cm-slide:nth-child(1){height:13.2vw;background:url(/img/activity/h5_entry_icon.png) no-repeat center;background-size:12vw}
 .cm-float-container .cm-slide:nth-child(2){background:#fff url(/img/activity/pc_01.png) no-repeat center}
 .cm-float-container .cm-slide:nth-child(2):hover{background:#ff5c00 url(/img/activity/pc_a1.png) no-repeat center}
 .cm-float-container .cm-slide:nth-child(3){background:#fff url(/img/activity/pc_02.png) no-repeat center}
 .cm-float-container .cm-slide:nth-child(3):hover{background:#ff5c00 url(/img/activity/pc_a2.png) no-repeat center}
 .cm-float-container .cm-tooltop{position:absolute;padding:3.5vw;background:#ff5c00;top:0;right:16vw;border-radius:6px;display:none}
 .cm-float-container .cm-tooltop::after{position:absolute;content:'';width:15px;height:15px;-webkit-transform:rotateZ(45deg);-ms-transform:rotate(45deg);transform:rotateZ(45deg);background:#ff5c00;right:-7px;top:15px}
-.cm-float-container .cm-tooltop .cm-tooltop-content{font-size:2.2vw;color:#fff}
+.cm-float-container .cm-tooltop .cm-tooltop-content{font-size:3.2vw;color:#fff}
 .cm-float-container .cm-tooltop .cm-tooltop-content.cm-tooltop-1{width:51.6vw}
 .cm-float-container .cm-tooltop .cm-tooltop-content.cm-tooltop-1 i{display:block;border-top:1px solid #f1f1f1}
 .cm-float-container .cm-tooltop .cm-tooltop-content.cm-tooltop-1 .cm-item{padding:2.5vw 0}
-.cm-float-container .cm-tooltop .cm-tooltop-content.cm-tooltop-2{text-align:center;width:40.8vw}
+.cm-float-container .cm-tooltop .cm-tooltop-content.cm-tooltop-2{text-align:center;width:44.8vw;}
 .cm-float-container .cm-tooltop .cm-tooltop-content.cm-tooltop-2 .line{height:11vw;margin:3vw 3vw 0;width:1px;background:#f1f1f1}
 .cm-float-container .cm-tooltop .cm-tooltop-content.cm-tooltop-2 img{display:inline-block;width:16.4vw;height:16.4vw}
 .cm-float-container .cm-tooltop .cm-tooltop-content.cm-tooltop-2 span{text-align:center;display:block;margin-top:2vw}
+.cm-float-container .cm-mobile-tooltop .cm-tooltop-content .cm-item{ font-size: 1.8vw; }
 .cm-entry{z-index:9999;position:fixed;top:0;width:100vw;height:100vh;background:rgba(0,0,0,0.5)}
 .cm-entry .cm-icon-content{position:absolute;width:75.1vw;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}
 .cm-entry .cm-icon-content img{width:100%}
-.cm-entry .cm-icon-content .cm-close{cursor:pointer;position:absolute;width:6.45vw;height:6.45vw;right:5vw;top:-5vw;background:url(/img/activity/pc_close.png) no-repeat center center;background-size:6.4vw}
+.cm-entry .cm-icon-content .cm-close{cursor:pointer;position:absolute;width:6.45vw;height:6.45vw;right:5vw;top:-8vw;background:url(/img/activity/pc_close.png) no-repeat center center;background-size:6.4vw}
+.cm-entry .cm-icon-content .btn{display: block;width: 10vw;height: 10vw;background: #666;position: absolute;right: 8vw;z-index: 999;cursor: pointer;opacity: 0;}
+.cm-entry .cm-icon-content .btn1{top: 24vw;}
+.cm-entry .cm-icon-content .btn2{top: 47.5vw;}
 .cm-footer{padding:4vw 0 2vw;background-color:#4a4f58;text-align:center;color:#fff;font-size:2.4vw;overflow:hidden}
 .cm-footer img{width:12vw}
-.banner-container{position:relative;width:100vw;height:45vw;background:pink;overflow:hidden}
+.banner-container{position:relative;width:100vw;height:45vw;overflow:hidden}
 .banner-container .banner{width:100vw;position:absolute;height:100%;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}
 .banner-container .cm-container{height:100%;padding: 0;}
-.banner-container img{display:block;height:100%}
+.banner-container img{display:block;height:100%;width: 100%;}
 .has-player{position:absolute;top:0;left:0;width:100%;height:100%;}
 .has-player::before{content:'';display:block;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:6vw;height:6vw; background:url(/img/activity/pc-palyer.png) no-repeat center center;background-size: 6vw;}
 .cm-to-top{width:12vw;height:12vw;position:fixed;z-index:999;bottom:5%;right:15px;border-radius:6px;text-align:center;background:#fff;cursor:pointer;-webkit-transition:all 0.2s;-o-transition:all 0.2s;transition:all 0.2s}
@@ -637,7 +641,7 @@ a{color:#333;text-decoration:none}
 .p-icon.i5::before{background-position-y:-834px}
 .cm-container{width:960px;padding-left:8px;padding-right:8px}
 .cm-container .cm-row{margin-left:-8px;margin-right:-8px}
-.cm-floor{padding:20px 0}
+.cm-floor{padding:10px 0}
 .cm-p-a{padding:8px}
 .cm-m-a{padding:8px}
 .cm-floor-title .cm-title{font-size:24px;color:#4a4f58;line-height:30px;font-weight:700;padding-top:4px;padding-bottom:4px}
@@ -645,7 +649,7 @@ a{color:#333;text-decoration:none}
 .cm-article-item{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}
 .cm-article-item .cm-article-title{font-size:18px;color:#4a4f58;-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}
 .cm-article-item .cm-article-title.has-border{border-left:2px solid #fff}
-.cm-article-item .cm-article-desc{font-size:14px;color:#93979f;line-height:2em;text-align:justify}
+.cm-article-item .cm-article-desc{font-size:14px;color:#93979f;line-height:2em;text-align:justify;word-break: break-all;}
 .cm-article-item .cm-article-desc.h56{height:56px}
 .cm-article-item .cm-article-cover.cover-168-168{width:168px;height:168px}
 .cm-article-item:hover .cm-article-title{color:#ff5c00}
@@ -678,12 +682,12 @@ a{color:#333;text-decoration:none}
 .cm-float-container .cm-slide .cm-toggle-btn{top:0;right:0;position:absolute;width:100%;height:100%}
 .cm-float-container .cm-slide:hover .cm-tooltop{display:block}
 .cm-float-container .cm-slide:hover .cm-toggle-btn{width:150%}
-.cm-float-container .cm-slide:nth-child(1){height:70px;background:url(https://static.caimei365.com/app/img/icon2/pc_note.png) no-repeat center;background-size:64px}
+.cm-float-container .cm-slide:nth-child(1){height:70px;background:url(/img/activity/h5_entry_icon.png) no-repeat center;background-size:64px}
 .cm-float-container .cm-slide:nth-child(2){background:#fff url(/img/activity/pc_01.png) no-repeat center}
 .cm-float-container .cm-slide:nth-child(2):hover{background:#ff5c00 url(/img/activity/pc_a1.png) no-repeat center}
 .cm-float-container .cm-slide:nth-child(3){background:#fff url(/img/activity/pc_02.png) no-repeat center}
 .cm-float-container .cm-slide:nth-child(3):hover{background:#ff5c00 url(/img/activity/pc_a2.png) no-repeat center}
-.cm-float-container .cm-tooltop{position:absolute;padding:15px;background:#ff5c00;top:0;right:80px;border-radius:6px;display:none}
+.cm-float-container .cm-tooltop{position:absolute;padding:15px;background:#ff5c00;top:0;right:80px;border-radius:6px;display: none}
 .cm-float-container .cm-tooltop::after{position:absolute;content:'';width:15px;height:15px;-webkit-transform:rotateZ(45deg);-ms-transform:rotate(45deg);transform:rotateZ(45deg);background:#ff5c00;right:-7px;top:15px}
 .cm-float-container .cm-tooltop .cm-tooltop-content{font-size:14px;color:#fff}
 .cm-float-container .cm-tooltop .cm-tooltop-content.cm-tooltop-1{width:190px}
@@ -695,8 +699,12 @@ a{color:#333;text-decoration:none}
 .cm-float-container .cm-tooltop .cm-tooltop-content.cm-tooltop-2 span{text-align:center;display:block;margin-top:8px}
 .cm-footer{padding:25px 0 12px;background-color:#4a4f58;text-align:center;color:#fff;font-size:12px;overflow:hidden}
 .cm-entry{z-index:9999;position:fixed;top:0;width:100vw;height:100vh;background:rgba(0,0,0,0.3)}
-.cm-entry .cm-icon-content{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}
-.cm-entry .cm-icon-content .cm-close{cursor:pointer;position:absolute;width:32px;height:32px;right:20px;top:-20px;background:url(/img/activity/pc_close.png) no-repeat center center}
+.cm-entry .cm-icon-content{width: 400px;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}
+.cm-entry .cm-icon-content img{display: block; width: 100%;}
+.cm-entry .cm-icon-content .cm-close{cursor:pointer;position:absolute;width:32px;height:32px;right:20px;top:-40px;background:url(/img/activity/pc_close.png) no-repeat center center}
+.cm-entry .cm-icon-content .btn{display: block;width: 60px;height: 60px;background: #666;position: absolute;right: 40px;z-index: 999;cursor: pointer;opacity: 0;}
+.cm-entry .cm-icon-content .btn1{top: 122px;}
+.cm-entry .cm-icon-content .btn2{top: 250px;}
 .banner-container{position:relative;height:480px;background:pink;overflow:hidden}
 .banner-container .banner{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}
 .banner-container .cm-container{height:100%}

+ 12 - 0
src/main/resources/static/css/activity/couponExp.css

@@ -0,0 +1,12 @@
+body{background-color:f5f5f5}
+.banner-container{position:relative;width:100%;height:480px;overflow:hidden}
+.banner-container .cm-container{position:absolute;width:1920px;height:480px;left:50%;top:0;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}
+.cm-content{width:1200px;margin:0 auto 80px;background:#fff}
+.cm-content img{width:100%}
+.cm-footer{background:#4a4f58;padding:28px;text-align:center;color:#fff;font-size:14px}
+.cm-content-h5{display:none}
+.cm-content-h5 img{display:block;width:100%}
+@media (max-width:1200px){.cm-content{width:850px !important}
+}@media (max-width:760px){.cm-content-h5{display:block}
+.banner-container,.cm-content{display:none !important}
+}

BIN
src/main/resources/static/img/activity/h5_entry.png


BIN
src/main/resources/static/img/activity/h5_entry_icon.png


BIN
src/main/resources/static/img/activity/pc_entry.png


BIN
src/main/resources/static/img/activity/pc_icon.png


BIN
src/main/resources/static/img/activity/pc_note.png


+ 14 - 6
src/main/resources/static/js/activity/index.js → src/main/resources/static/js/activity/beautyTopic.js

@@ -5,9 +5,12 @@ var activeApp = (function () {
         mixins: [swiperMixin, showMoreMixin],
         data: {
             isMobile: window.innerWidth < 992,
+            showCouponEntry: false,
             isActive: true,
             isRequest: true,
             isLoading: true,
+            showPhoneNum: false,
+            showWechat: false,
             // showScrollTop: false,
             activityEntryVisiable: false,
             contactVisiable: false,
@@ -141,8 +144,8 @@ var activeApp = (function () {
             // 初始化红包入口状态
             initActivityEntry: function initActivityEntry(begin, end) {
                 const nowTime = new Date().getTime();
-                const beginTime = new Date(begin).getTime();
-                const endTime = new Date(end).getTime();
+                const beginTime = new Date(begin.replace(/-/g, '/')).getTime();
+                const endTime = new Date(end.replace(/-/g, '/')).getTime();
                 return nowTime >= beginTime && nowTime <= endTime
             }
             ,
@@ -153,18 +156,18 @@ var activeApp = (function () {
 
             // 获取直播状态
             makeVideoStatus: function makeVideoStatus(floorData, index) {
-                var displayDate = new Date(floorData.floorContent['displayDate' + index]).getTime();
+                var displayDate = new Date(floorData.floorContent['displayDate' + index].replace(/-/g, '/')).getTime();
                 var nowDate = new Date().getTime();
                 // 一天的时间戳
                 var oneDay = 60 * 60 * 24 * 1000;
                 // 直播开始时间:displayDate
                 // 直播结束时间:displayDate + oneDay
-                if (nowDate >= displayDate && nowDate <= displayDate + oneDay) {
-                    return 1; // 已开始
-                }
                 if (nowDate < displayDate) {
                     return 0; // 未开始
                 }
+                if (nowDate >= displayDate && nowDate <= displayDate + oneDay) {
+                    return 1; // 已开始
+                }
                 if (nowDate - oneDay > displayDate) {
                     return 2; // 已结束
                 }
@@ -263,6 +266,11 @@ var activeApp = (function () {
                 console.log('窗口resize事件注册完毕...');
             }
             ,
+            // 优惠券入口
+            handleToggleCoupon: function handleToggleCoupon(flag){
+                this.showCouponEntry = flag;
+                this.isActive = false;
+            },
             //    初始化用户信息
             initUserInfo: function initUserInfo() {
                 var userInfo = localStorage.getItem('userInfo');

+ 0 - 0
src/main/resources/static/js/activity/base.js → src/main/resources/static/js/activity/beautyTopic/base.js


+ 0 - 0
src/main/resources/static/js/activity/layout.js → src/main/resources/static/js/activity/beautyTopic/layout.js


+ 0 - 0
src/main/resources/static/js/activity/mixin.js → src/main/resources/static/js/activity/beautyTopic/mixin.js


+ 0 - 0
src/main/resources/static/js/activity/swiper.min.js → src/main/resources/static/js/activity/beautyTopic/swiper.min.js


+ 0 - 0
src/main/resources/static/js/activity/utils.js → src/main/resources/static/js/activity/beautyTopic/utils.js


+ 35 - 24
src/main/resources/templates/activity/beautyTopic.html

@@ -10,9 +10,8 @@
     <link href="/css/activity/normalize.css" rel="stylesheet" type="text/css">
     <link rel="stylesheet" href="/css/activity/swiper.min.css"/>
     <link th:href="@{/css/activity/beautyTopic.css(v=${version})}" rel="stylesheet" type="text/css">
-    <link th:href="@{/css/activity/beautyTopic.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
-<body>
+<body ontouchstart>
 <input type="hidden" th:value="${coreServer}" id="coreServer">
 <div id="app">
     <!-- 大图 -->
@@ -36,8 +35,7 @@
                 >
                     <div :class="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)?['cm-col-md-40', 'cm-col-xs-36']:''">
                         <div class="cm-title cm-text-ellipsis-1">{{floorData.title}}</div>
-                        <div class="cm-subtitle cm-text-ellipsis-1">{{floorData.detail}}<span>{{floorData.floorContent.templateType}}</span>
-                        </div>
+                        <div class="cm-subtitle cm-text-ellipsis-1">{{floorData.detail}}</div>
                     </div>
                     <div
                             class="cm-tabs cm-p-t-12 cm-absolute cm-bottom-right"
@@ -92,7 +90,7 @@
                                                         {{pros.name}}
                                                     </div>
                                                     <div class="cm-tags cm-p-t-2 cm-p-b-2 h20">
-<!--                                                        <span class="cm-tag color2" v-if="pros.product.couponsLogo">优惠券</span>-->
+                                                        <!--                                                        <span class="cm-tag color2" v-if="pros.product.couponsLogo">优惠券</span>-->
                                                         <span class="cm-tag color3" v-if="pros.listType == 2">{{ pros.label }}</span>
                                                     </div>
                                                     <div class="cm-prodcut-price h24">
@@ -249,7 +247,7 @@
                                                     {{pros.name}}
                                                 </div>
                                                 <div class="cm-tags cm-p-t-2 cm-p-b-2 h20">
-<!--                                                     <span class="cm-tag color3" v-if="pros.product.couponsLogo">优惠券</span>-->
+                                                    <!--                                                     <span class="cm-tag color3" v-if="pros.product.couponsLogo">优惠券</span>-->
                                                     <span class="cm-tag color2" v-if="pros.listType == 2">{{ pros.label }}</span>
                                                 </div>
                                                 <div class="cm-prodcut-price h24">
@@ -747,24 +745,25 @@
                 <div class="cm-toggle-btn"></div>
                 <div class="cm-tooltop">
                     <div class="cm-tooltop-content cm-tooltop-1">
-                        <div class="cm-item">展会咨询电话:15338851365</div>
+                        <div class="cm-item">展会咨询电话:15338897365</div>
                         <i></i>
-                        <div class="cm-item">业务咨询电话:15338897365</div>
+                        <div class="cm-item">客服咨询电话:15338851365</div>
                     </div>
                 </div>
             </div>
             <div class="cm-slide">
                 <div class="cm-toggle-btn"></div>
-                <div class="cm-tooltop">
+                <div class="cm-tooltop cm-mobile-tooltop">
                     <div class="cm-tooltop-content cm-tooltop-2 cm-clearfix">
                         <div class="cm-item cm-left">
-                            <img width="108" height="108" src="https://static.caimei365.com/app/img/icon2/cm_wechat_01.png" alt=""/>
+                            <img width="108" height="108"
+                                 src="https://static.caimei365.com/app/img/icon2/cm_wechat_02.png" alt=""/>
                             <span>展会咨询微信</span>
                         </div>
                         <div class="cm-left line"></div>
                         <div class="cm-item cm-left">
-                            <img width="108" height="108" src="https://static.caimei365.com/app/img/icon2/cm_wechat_02.png" alt=""/>
-                            <span>业务咨询微信</span>
+                            <img width="108" height="108" src="https://static.caimei365.com/app/img/icon2/cm_wechat_01.png" alt=""/>
+                            <span>客服咨询微信</span>
                         </div>
                     </div>
                 </div>
@@ -773,14 +772,26 @@
     </div>
     <!-- 获取入口图标 -->
     <div class="cm-entry" v-show="activityEntryVisiable && isActive">
-        <div class="cm-icon-content">
+        <div id="cm-icon-content" class="cm-icon-content" onclick="_czc.push(['_trackEvent','云上美博会','红包弹窗点击','红包弹窗点击',1,'cm-icon-content'])">
             <span class="cm-close" @click="handleToggleActive(false)"></span>
-            <a id="entry" target="_blank" href="/user/coupon-collection.html"
-               onclick="_czc.push(['_trackEvent','云上美博会','点击','红包优惠券','1','entry'])">
-                <img src="https://static.caimei365.com/app/img/icon2/pc_icon.png" alt=""/>
-            </a>
+            <div @click="handleToggleCoupon(true)" style="cursor: pointer">
+                <img src="/img/activity/pc_entry.png" alt="" v-if="!isMobile"/>
+                <img src="/img/activity/h5_entry.png" alt="" v-else/>
+            </div>
         </div>
     </div>
+
+    <div class="cm-entry" v-show="showCouponEntry">
+        <div class="cm-icon-content" @click="handleToggleCoupon(false)">
+            <a href="/product-6898.html" id="conpun" target="_blank" onclick="_czc.push(['_trackEvent','云上美博会','优惠券弹窗点击','优惠券弹窗点击',1,'conpun'])"><span class="btn btn1"></span></a>
+            <a href="/product/couponExp.html" id="conpunDetail" target="_blank" onclick="_czc.push(['_trackEvent','云上美博会','优惠券说明弹窗点击','优惠券说明弹窗点击',1,'conpunDetail'])"><span class="btn btn2"></span></a>
+            <span class="cm-close" @click="handleToggleCoupon(false)"></span>
+            <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-h5.png" alt="" v-if="!isMobile"/>
+            <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-pc.png" alt="" v-else/>
+        </div>
+    </div>
+
+
     <!-- 返回顶部 -->
     <div class="cm-to-top" id="cm-to-top" v-show="showScrollTop">
         <span class="cm-icon-bar"></span>
@@ -797,17 +808,17 @@
 </div>
 <!-- 引入js文件 -->
 <script charset="utf-8" type="text/javascript" src="/lib/jquery-3.5.1.min.js"></script>
-<script charset="utf-8" type="text/javascript" src="/lib/vue2.6.12.min.js"></script>
-<script charset="utf-8" src="/js/activity/swiper.min.js"></script>
 <script charset="utf-8" type="text/javascript" src="/lib/lazyload.js"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/common/ajax.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/base.js(v=${version})}"></script>
 <script charset="utf-8" type="text/javascript"
         th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/utils.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/layout.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/mixin.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/index.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" src="/lib/vue2.6.12.min.js"></script>
+<script charset="utf-8" src="/js/activity/beautyTopic/swiper.min.js"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/base.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/utils.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/layout.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/mixin.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic.js(v=${version})}"></script>
 <script>
     var isFormal = window.location.href.indexOf('www.caimei365.com') !== -1;
     if (isFormal) {

+ 35 - 0
src/main/resources/templates/activity/couponExp.html

@@ -0,0 +1,35 @@
+<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>
+    <meta charset="utf-8"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <title>优惠券说明</title>
+    <link href="/css/activity/normalize.css" rel="stylesheet" type="text/css">
+    <link href="/css/activity/couponExp.css?v=20210831-100013" rel="stylesheet"
+          type="text/css">
+</head>
+
+<body>
+<div>
+    <!-- 大图 -->
+    <div class="banner-container">
+        <div class="cm-container cm-relative">
+            <div class="banner">
+                <img src="https://static.caimei365.com/app/img/icon2/couponExp-banner.jpg" alt=""/>
+            </div>
+        </div>
+    </div>
+    <div class="cm-content">
+        <img src="https://static.caimei365.com/app/img/icon2/couponExp-content.jpg" alt="">
+    </div>
+
+    <div class="cm-content-h5">
+        <img src="https://static.caimei365.com/app/img/icon2/couponExp-content-h5.jpg" alt="">
+    </div>
+
+    <div class="cm-footer">
+        ——采美信息技术有限有限公司提供技术支持——
+    </div>
+</div>
+</body>
+</html>

+ 14 - 14
src/main/resources/templates/product/detail.html

@@ -23,7 +23,7 @@
                 <div v-if="isPC" class="bigImage">
                     <img :src="images[0]">
                     <span class="mask"></span>
-                    <span class="cm-product-cover-tag">云上美博会</span>
+                    <span class="cm-product-cover-tag" >云上美博会</span>
                 </div>
                 <div id="swiperImage" class="smallImage swiper-container">
                     <ul class="swiper-wrapper clear">
@@ -59,8 +59,8 @@
                     <div class="row price"><span class="l">采美价</span><i>:</i>
                         <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
                             <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                            <em v-if="priceObj.priceFlag==1">¥价格未公开</em>
-                            <em v-else-if="priceObj.priceFlag==2 && priceObj.userIdentity==4">¥会员可见</em>
+                            <em v-if="priceObj.priceFlag==1" v-text="'¥价格未公开'"></em>
+                            <em v-else-if="priceObj.priceFlag==2 && priceObj.userIdentity==4" v-text="'¥会员可见'"></em>
                             <template v-else-if="(priceObj.priceFlag==0 && priceObj.userIdentity!=3) || priceObj.userIdentity==2 || (priceObj.userIdentity==3 && priceObj.shopId==GLOBAL_SHOP_ID)">
                                 <em v-if="priceObj.actStatus==1 && promotions && promotions.type==1 && promotions.mode==1" class="p">
                                     <del v-text="'¥'+parseFloat(priceObj.originalPrice).toFixed(2)"></del>
@@ -85,8 +85,8 @@
                                     <span>
                                         <em class="t"><i>价格</i><i>起订量</i></em>
                                         <em v-for="l in ladderList">
-                                            <i class="p">¥{{toFloat(l.buyPrice)}}</i>
-                                            <i>{{l.numRange}}</i>
+                                            <i class="p" v-text="'¥'+toFloat(l.buyPrice)"></i>
+                                            <i v-text="l.numRange"></i>
                                         </em>
                                         <em @click="hideThisLadder($event)" class="close">了解</em>
                                     </span>
@@ -99,11 +99,11 @@
                                 <div class="promotion mFixed">
                                     <div>
                                         <p class="t">
-                                            <em v-if="promotions.type==1 && promotions.mode==1">{{priceObj.priceFlag==1?'价格未公开':(promotions.name+':¥'+toFloat(promotions.touchPrice))}}</em>
-                                            <em v-if="promotions.mode==2">{{promotions.name+',满 ¥'+toFloat(promotions.touchPrice)+' 减 ¥'+toFloat(promotions.reducedPrice)}}</em>
-                                            <em v-if="promotions.mode==3">{{promotions.name+',满 ¥'+toFloat(promotions.touchPrice)+' 赠送商品'}}</em>
+                                            <em v-if="promotions.type==1 && promotions.mode==1" v-text="priceObj.priceFlag==1?'价格未公开':(promotions.name+':¥'+toFloat(promotions.touchPrice))"></em>
+                                            <em v-if="promotions.mode==2" v-text="promotions.name+',满 ¥'+toFloat(promotions.touchPrice)+' 减 ¥'+toFloat(promotions.reducedPrice)"></em>
+                                            <em v-if="promotions.mode==3" v-text="promotions.name+',满 ¥'+toFloat(promotions.touchPrice)+' 赠送商品'"></em>
                                         </p>
-                                        <p>促销时间:<em v-if="promotions.status==1">不限时</em><em v-else>{{promotions.beginTime.substr(0,10)+' ~ '+promotions.endTime.substr(0,10)}}</em></p>
+                                        <p>促销时间:<em v-if="promotions.status==1">不限时</em><em v-else v-text="promotions.beginTime.substr(0,10)+' ~ '+promotions.endTime.substr(0,10)"></em></p>
                                         <p v-if="promotions.type==2" class="r"><a class="more" :href="'/product/promotions.html?id='+promotions.id">更多凑单商品>>></a></p>
                                         <template v-if="promotions.mode==3">
                                             <p>赠品:</p>
@@ -144,7 +144,7 @@
                         <span class="l">优惠券</span>
                         <i>:</i>
                         <span class="coupon-tags">
-                            <em class="couponTag" v-for="(coupon, index) in productCoupon" :key="index">满{{ coupon.touchPrice }}减{{ coupon.couponAmount }} </em>
+                            <em class="couponTag" v-for="(coupon, index) in productCoupon" :key="index" v-text="'满'+coupon.touchPrice+'减'+coupon.couponAmount"></em>
                             <em class="couponTag-more" @click="showPopup">更多></em>
                         </span>
                     </div>
@@ -242,8 +242,8 @@
                 <div class="item" v-if="tabsIndex == 1">
                     <table>
                         <tr v-for="pa in parameters">
-                            <td> {{ pa.paramsName }}</td>
-                            <td> {{ pa.paramsContent }}</td>
+                            <td v-text="pa.paramsName"></td>
+                            <td v-text="pa.paramsContent"></td>
                         </tr>
                     </table>
                 </div>
@@ -254,8 +254,8 @@
                     <div th:utext="${product.serviceInfo}"></div>
                 </div>
                 <div class="item" v-if="tabsIndex == 3">
-                    <div><p class="tl">培训方式: <span class="sm">{{ trainingMethodText }}</span></p></div>
-                    <div><p class="tl">培训费用: <span class="sm">{{ trainingType }}</span></p></div>
+                    <div><p class="tl">培训方式: <span class="sm" v-text="trainingMethodText"></span></p></div>
+                    <div><p class="tl">培训费用: <span class="sm" v-text="trainingType"></span></p></div>
                 </div>
 <!--                <div class="item">-->
 <!--                <div style="text-align: left;margin: 10px 0">-->