Browse Source

Merge branch 'dev4.7.7' of http://192.168.3.207:8080/qmx/jy into dev4.7.7

wangshan 3 years ago
parent
commit
d0a448ec14

+ 20 - 5
src/jfw/modules/app/src/web/staticres/jyapp/js/searchindex.js

@@ -4373,6 +4373,17 @@ var Active_Default = function (nowTime) {
 //
 var Active_Vip_Invite = function (nowTime) {
     this.init = function () {
+        // SVGA 动画支持
+        if (adv_img.indexOf('.svga') !== -1) {
+          loadJS('//cdn-common.jianyu360.com/cdn/lib/svga-web/svga.min.js', function () {
+            var player = new SVGA.Player('#app-mainSearch-dialog--svga');
+            var parser = new SVGA.Parser('#app-mainSearch-dialog--svga');
+            parser.load(adv_img, function(videoItem) {
+              player.setVideoItem(videoItem);
+              player.startAnimation();
+            })
+          })
+        }
         $(".pop-new").on("tap", function () {
             //外部链接打开
             if (adv_url.indexOf("host.huiju.cool") == -1 && (adv_within == "abroad" || adv_url.indexOf("http") > -1)) {
@@ -4397,11 +4408,15 @@ var Active_Vip_Invite = function (nowTime) {
         }
     }
     this.getHtml = function () {
-        var html = '<img class="pop-new" id="wx-mainSearch-dialog" style="border-radius: 8px;" src ="' + adv_img + '">'
-        var _html = '<div class="pop-new" style="background: url(' + adv_img + ');background-size: 100% 100%;height: inherit;width: inherit;border-radius: 8px;">'
-            + '<div style="position: absolute;color: #0687DB;font-size: 14px;bottom: 1.35rem;left: 50%;margin-left: -1.7rem;font-family: 微软雅黑;width: 4.3rem;border-radius: 20px;text-align: center;cursor: pointer;height: 1.2rem;line-height: 1.2rem;" id="goToInvite"></div>'
-            + '</div>';
-        return html;
+      // SVGA 动画支持
+      if (adv_img.indexOf('.svga') !== -1) {
+        return '<div class="pop-new" id="app-mainSearch-dialog--svga"></div>'
+      }
+      var html = '<img class="pop-new" id="wx-mainSearch-dialog" style="border-radius: 8px;" src ="' + adv_img + '">'
+      var _html = '<div class="pop-new" style="background: url(' + adv_img + ');background-size: 100% 100%;height: inherit;width: inherit;border-radius: 8px;">'
+          + '<div style="position: absolute;color: #0687DB;font-size: 14px;bottom: 1.35rem;left: 50%;margin-left: -1.7rem;font-family: 微软雅黑;width: 4.3rem;border-radius: 20px;text-align: center;cursor: pointer;height: 1.2rem;line-height: 1.2rem;" id="goToInvite"></div>'
+          + '</div>';
+      return html;
     }
 }
 //

BIN
src/jfw/modules/app/src/web/staticres/jyapp/share/img/reward-points.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/share/img/reward-vip.png


+ 14 - 3
src/jfw/modules/app/src/web/templates/frontRouter/activity/sess/task.html

@@ -2,6 +2,7 @@
 <html lang="zh-CN" style="font-size: 50px;">
 
 <head>
+  <!-- <title>投标人专属免费计划</title> -->
     <title></title>
     <!--引入公共资源头部-->
     {{include "/big-member/meta.html"}}
@@ -36,9 +37,9 @@
                 <div class="mission-list" ref="missions">
                     <div
                         class="mission-list-item floating"
-                        :class="{ complete: item.complete, hide: item.hide }"
+                        :class="{ complete: item.complete, hide: item.hide, [item.id]: true }"
                         v-for="item in missionsList"
-                        :style="{ left: item.x + 'px', top: item.y + 'px' }"
+                        :style="{ left: item.x + 'rem', top: item.y + 'rem' }"
                         :key="item.id">
                         <div class="m-list-item-bg">
                             <span class="num"><span class="num-add">+</span>${ item.num }</span>
@@ -71,6 +72,7 @@
                             </div>
                             <div class="progress-bar-content" :style="{ width: rate + '%' }">
                                 <div class="blink-point"></div>
+                                <div class="blink-point-text anchor-text" v-show="blinkTextShow">${progress.current}剑鱼币</div>
                             </div>
                         </div>
                     </div>
@@ -81,7 +83,7 @@
                             :disabled="a.className !== 'wait'"
                             v-for="(a, index) in progressAnchorList"
                             v-if="a.tipText"
-                            @click="onClickReceive('mission', a)"
+                            @click="onClickReceive('schedule', a)"
                             :key="index">免费领${a.tipText}</button>
                     </div>
                 </section>
@@ -113,6 +115,15 @@
                 </section>
                 <section class="section no-select tool-box-container">
                     <div class="tool-box">
+                        <div class="tool-box-button-list">
+                            <div
+                                class="tool-action-button"
+                                :id="item.id"
+                                v-for="item in toolBoxList"
+                                v-text="item.text"
+                                @click="onToolBoxAction(item)"
+                                :key="item.id"></div>
+                        </div>
                         <div class="tool-button" @click="toToolBoxPage">一键开启</div>
                     </div>
                 </section>

+ 3 - 0
src/jfw/modules/app/src/web/templates/frontRouter/share/sess/index.html

@@ -19,6 +19,9 @@
     rel="stylesheet"
     href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/share/css/index.css?v={{Msg "seo" "version"}}'
   />
+  <style>
+    .j-header.jy-app-header{background: #fff;}
+  </style>
   {{include "/common/js.html"}}
 </head>
 

+ 9 - 0
src/web/staticres/big-member/js/rem.js

@@ -11,6 +11,15 @@
 	win.addEventListener(resizeEvt, recalc, false);
 	doc.addEventListener('DOMContentLoaded', recalc, false);
 })(document, window);
+
+//获取根节点的font-size
+function RootNodeFontSize(){
+	var clientWidth = document.documentElement.clientWidth;
+	if(!clientWidth) return 0;
+	if(clientWidth > 750) clientWidth = 750;
+	return clientWidth / 7.5;
+}
+
 /**
  * 根据keys校验object必填项
  * @param {Array} keys - 待校验字段keys

+ 35 - 6
src/web/staticres/common-module/active/2022.5.20/task.css

@@ -34,10 +34,10 @@
   align-items: center;
   position: absolute;
   left: 50%;
-  bottom: .8rem;
+  bottom: -0.6rem;
   z-index: 2;
-  width: 96%;
-  height: 3.5rem;
+  width: 86%;
+  height: 5rem;
   transform: translateX(-50%);
   /* background-color: pink; */
 }
@@ -49,6 +49,11 @@
   position: absolute;
   left: 0;
   top: 0;
+  transition: all 0.8s cubic-bezier(0, 0, 0.2, 1);
+  transform: scale(1);
+}
+.mission-list-item.exit {
+  transform: scale(0);
 }
 .mission-list-item.hide {
   display: none!important;
@@ -127,7 +132,7 @@
 }
 .progress-bar {
   position: relative;
-  width: 100%;
+  width: 92%;
   height: .4rem;
   background: #FEC285;
   box-shadow: inset 0px 6px 8px 1px rgba(255, 255, 255, 0.4);
@@ -142,6 +147,7 @@
   background: linear-gradient(270deg, #FFFFFF 20%, rgba(255, 255, 255, 0) 100%);
   border-radius: .4rem;
   z-index: 2;
+  transition: all 0.8s cubic-bezier(0.15, 0.85, 1, 1);
 }
 .blink-point {
   display: flex;
@@ -164,10 +170,12 @@
   align-items: center;
   justify-content: space-between;
   position: absolute;
-  top: -0.8rem;
+  top: -0.6rem;
+  left: 0;
   color: #fff;
   transform: translateX(-60%);
   z-index: 4;
+  transition: all 1s cubic-bezier(0.15, 0.85, 1, 1);
 }
 .anchor.first {
   transform: none;
@@ -178,13 +186,20 @@
 .anchor.wait .anchor-tip-text {
   color: #fff;
 }
+.blink-point-text {
+  position: absolute;
+  right: 0;
+  top: -0.36rem;
+  transform: translate(40%,-100%);
+}
 .anchor-text {
   font-size: .2rem;
   line-height: .24rem;
+  color: #fff;
   white-space: nowrap;
 }
 .point-img {
-  margin-top: .38rem;
+  margin-top: .16rem;
   width: .72rem;
   cursor: pointer;
 }
@@ -322,11 +337,25 @@
 
 .tool-box {
   position: relative;
+  padding: 2.2rem 0.24rem 1.8rem;
   min-height: 8rem;
   background-image: url(/common-module/active/2022.5.20/tool-box.png?v=1);
   background-repeat: no-repeat;
   background-size: contain;
 }
+.tool-box-button-list {
+  display: flex;
+  flex-wrap: wrap;
+  align-items: center;
+  justify-content: space-between;
+  min-height: 4rem;
+}
+.tool-action-button {
+  width: 30%;
+  height: 1rem;
+  color: transparent;
+  font-size: 0;
+}
 .tool-button,
 .helper-button {
   position: absolute;

+ 172 - 40
src/web/staticres/common-module/active/2022.5.20/task.js

@@ -112,11 +112,11 @@ function RandomCoordinate (conf) {
 
   this.init()
 }
-var platform = utils.isWeiXinBrowser ? 'wx' : 'app'
 var task = new Vue({
   el: '#main-app',
   delimiters: ['${', '}'],
   data: {
+    platform: 'app',
     progress: {
       min: 0,
       max: 1000,
@@ -156,8 +156,8 @@ var task = new Vue({
     missionsList: [
       {
         id: 'subscribe',
-        x: 0,
-        y: 0,
+        x: 0.2,
+        y: 0.94, // rem
         num: 300,
         unit: '剑鱼币',
         complete: false,
@@ -166,8 +166,8 @@ var task = new Vue({
       },
       {
         id: 'invite',
-        x: 0,
-        y: 0,
+        x: 2.84,
+        y: 0.06,
         num: 500,
         unit: '剑鱼币',
         complete: false,
@@ -176,8 +176,8 @@ var task = new Vue({
       },
       {
         id: 'improveInfo',
-        x: 0,
-        y: 0,
+        x: 4.8,
+        y: 0.82,
         num: 200,
         unit: '剑鱼币',
         complete: false,
@@ -204,40 +204,78 @@ var task = new Vue({
     toolBoxList: [
       {
         text: '超级订阅',
-        url: ''
+        id: 'vip',
+        url: {
+          app: '/jyapp/vipsubscribe/introducePage',
+          wx: ''
+        }
       },
       {
         text: '大会员',
-        url: ''
+        id: 'big-vip',
+        url: {
+          app: '/jyapp/big/page/main_root',
+          wx: '/big/wx/page/landingPage'
+        }
       },
       {
         text: '企业管理',
-        url: ''
+        id: 'manager',
+        url: {
+          wx: '',
+          app: '',
+        }
       },
       {
         text: '数据定制服务',
-        url: ''
+        id: 'structured',
+        url: {
+          wx: '/front/structed/index',
+          app: '/jyapp/structed/index',
+        }
       },
       {
         text: '数据自主导出',
-        url: ''
+        id: 'export',
+        url: {
+          wx: '/front/wx_dataExport/toSieve',
+          app: '/jyapp/front/dataExport/toSieve',
+        }
       },
       {
         text: '数据流量包',
-        url: ''
+        id: 'data-pack',
+        url: {
+          wx: '/jy_mobile/common/order/create/datapack',
+          app: '/jy_mobile/common/order/create/datapack',
+        }
       },
       {
-        text: '电信行业解决方案',
-        url: ''
+        text: '数据报告',
+        id: 'report',
+        url: {
+          wx: '/datareport/page/introduce',
+          app: '/datareport/page/introduce',
+        }
       },
       {
         text: '中标必听课',
-        url: ''
+        id: 'online-course',
+        url: {
+          wx: '/jyxsapp/',
+          app: '/jyxsapp/',
+        }
       },
       {
         text: '剑鱼文库',
-        url: ''
+        id: 'docs',
+        url: {
+          wx: '/page_docs_mobile/home',
+          app: '/page_docs_mobile/home',
+        }
       },
+      // 电信解决方案
+      // /weixin/frontPage/bidedoc/sess/index
     ],
     rulesList: [
       {
@@ -273,37 +311,33 @@ var task = new Vue({
       }
       return calcRate
     },
-    progressAnchorList: function () {
-      var progressList = JSON.parse(JSON.stringify(this.progress.anchorList))
+    blinkTextShow: function () {
+      var anchorList = this.progress.anchorList
       var rate = this.rate
-      var existRate = false
-      for (var i = 0; i < progressList.length; i++) {
-        if (progressList[i].rate === rate) {
-          existRate = true
+      var exist = false
+      for (var i = 0; i < anchorList.length; i++) {
+        if (rate === anchorList[i].rate) {
+          exist = true
           break
         }
       }
-      if (!existRate) {
-        progressList.push({
-          rate: this.rate, // 进度,单位%,最大为100
-          anchorText: this.progress.current + '剑鱼币'
-        })
-      }
-      return progressList.sort(function (a, b) {
-        return a.rate - b.rate
-      })
+      return !exist
+    },
+    progressAnchorList: function () {
+      return this.progress.anchorList
     },
     getScreenMax: function () {
       return document.body.clientHeight < 600
     }
   },
   created: function () {
+    this.platform = utils.isWeiXinBrowser ? 'wx' : 'app'
     this.ajaxActiveStatus()
     this.getMissionList()
     this.ajaxProgress()
   },
   mounted: function () {
-    this.calcPointList()
+    // this.calcPointList()
   },
   methods: {
     calcPointList: function () {
@@ -401,7 +435,7 @@ var task = new Vue({
         type: 'post',
         contentType: 'application/json',
         data: JSON.stringify(data),
-        complete: function (res) {
+        success: function (res) {
           return callback(res.data, res.error_msg)
         }
       })
@@ -413,17 +447,39 @@ var task = new Vue({
     },
     onClickListItem: function (item) {
       if (item.icon === 'jy-svip') {
-        location.href = '/jy_mobile/common/order/create/svip?type=buy'
+        if (this.isWeiXinBrowser) {
+          location.href = '/weixin/pay/toMyWxOrder?active=0'
+        } else {
+          location.href = '/jyapp/front/myOrder/toMyOrder?active=0'
+        }
       } else {
         location.href = '/page_points_mobile/list'
       }
     },
+    leaveCanvas: function (item) {
+      var rootFontSize = RootNodeFontSize()
+      var dom = $('.mission-list-item.' + item.id)
+      dom.removeClass('floating')
+      var baseX = -0.8 * rootFontSize
+
+      // 终点坐标
+      var current = {
+        x: baseX + $('.progress-bar-content').width(),
+        y: $('.mission-list').height() - $('.blink-point').height() / 2
+      }
+
+      item.x = current.x / rootFontSize
+      item.y = current.y / rootFontSize
+      this.$nextTick(function () {
+        dom.addClass('exit')
+      })
+    },
     onClickReceive: function (type, item) {
       var _this = this
       var status = false
       if (type === 'schedule' && item.className === 'wait') {
         status = true
-      } else if (type === 'mission' && item.className === 'wait') {
+      } else if (type === 'mission' && item.complete) {
         status = true
       }
       if (!status) {
@@ -456,20 +512,23 @@ var task = new Vue({
         }
         return
       }
+      if (type === 'mission') {
+        this.leaveCanvas(item)
+      }
       this.ajaxReceive({ type: type, value: item.id }, function (result, msg) {
         if (result) {
           switch (item.id) {
             case 'subscribe': {
-              this.$toast('已成功领取300剑鱼币')
+              _this.$toast('已成功领取300剑鱼币')
               break
             }
             case 'invite': {
-              this.$toast('已成功领取500剑鱼币')
+              _this.$toast('已成功领取500剑鱼币')
               break
             }
             case 'improveInfo': {
               // 留资
-              this.$toast('已成功领取200剑鱼币')
+              _this.$toast('已成功领取200剑鱼币')
               break
             }
             case '800': {
@@ -483,7 +542,7 @@ var task = new Vue({
           }
           _this.ajaxActiveStatus()
           _this.ajaxProgress()
-          _this.getMissionList()
+          // _this.getMissionList()
         } else {
           _this.$toast(msg)
         }
@@ -508,6 +567,79 @@ var task = new Vue({
           JyObj.openExternalLink(href, '使用帮助');
         } catch (error) {}
       }
+    },
+    onToolBoxAction: function (item) {
+      var platform = this.platform
+      var url = item.url[platform]
+      if (url) {
+        location.href = url
+      } else {
+        if (item.id === 'vip') {
+          // 微信超级订阅跳转
+          this.routerToVip()
+        } else if (item.id === 'manager') {
+          this.routerEntNiche()
+        }
+      }
+    },
+    routerToVip: function () {
+      var loading = this.$toast.loading({ duration: 0 })
+      $.ajax({
+        url: '/subscribepay/orderListDetails/isVip?v=' + (+new Date()),
+        type: 'POST',
+        success: function (data) {
+          if (data.isvip) {
+            location.href = "/front/vipsubscribe/toSubVipSetPage";
+          } else {
+            location.href = "/front/vipsubscribe/introducePage";
+          }
+        },
+        complete: function () {
+          loading.clear()
+        }
+      })
+    },
+    routerEntNiche: function () {
+      var _this = this
+      var loading = this.$toast.loading({ duration: 0 })
+      $.ajax({
+        url: '/entnicheNew/buy/whetherbuy',
+        type: 'POST',
+        success: function (res) {
+          if (res.error_code === 0) {
+            loading.clear()
+            _this.redirectToEntNiche(res.data)
+          } else {
+            // 失败 提示
+            _this.$toast({
+              message: res.error_msg,
+              duration: 2000,
+            })
+          }
+        },
+        error: function () {}
+      })
+    },
+    redirectToEntNiche: function (data) {
+      // data.status为0,未绑定
+      // data.status为1,未购买
+      // data.status为2  已购买
+      // --isPower:未购买员工是否有权限进入商机管理页面
+      if (utils.isWeiXinBrowser) {
+        location.href = '/weixin/frontPage/entpc/free/entpc'
+      } else {
+        if (data.status === 2 || data.isPower) {
+          // 跳转到商机管理使用页面
+          if (data.isNew) {
+            location.href = '/page_entniche_new/home'
+          } else {
+            location.href = '/page_entniche/home'
+          }
+      } else {
+          // 跳转到创建企业页面
+          location.href = '/jyapp/frontPage/enptc/sess/app_enptc'
+        }
+      }
     }
   },
 })

File diff suppressed because it is too large
+ 0 - 0
src/web/staticres/common-module/js/svga.min.js


+ 8 - 3
src/web/staticres/common-module/vipsubscribe/js/vip-subscribe-set-template.js

@@ -279,6 +279,7 @@ var subComponent = {
       noAreaFreeType: false, // 免费用户未设置地区时显示弹窗
       backTipShowCount: 0, // 离开页面展示弹窗次数
       UserSubscribe: {}, // 免费用户数据
+      activityActive: false
     }
   },
   mounted () {
@@ -323,7 +324,7 @@ var subComponent = {
     checkStepBlinkShow: function () {
       var active = utils.getParam('active')
       if (this.vSwitch !== 'f') return
-      if (active != '20220520') return
+      // if (active != '20220520') return
       var subRes = this.UserSubscribe
       if (!subRes.data) return
       var subscribe = subRes.data
@@ -334,12 +335,13 @@ var subComponent = {
       } else if (!keys || (Array.isArray(keys) && keys.length === 0)) {
         // keys为空或者 keys数组长度为0
         this.activity.blink = 2
-      } else {
+      } else if (this.activityActive) {
         // 完成任务且未领取任务则,弹出3
         this.activity.blink = 3
       }
     },
     getStepActivityTime: function () {
+      var _this = this
       $.ajax({
         type: 'POST',
         url: '/jyActivity/bidderPlan/period',
@@ -349,9 +351,12 @@ var subComponent = {
             var end = res.data.end * 1000
             var now = Date.now()
             if (now >= start && now <= end) {
-              this.checkStepBlinkShow()
+              _this.activityActive = true
             }
           }
+        },
+        complete: function () {
+          _this.checkStepBlinkShow()
         }
       })
     },

+ 28 - 2
src/web/staticres/frontRouter/pc/activity/css/task.css

@@ -33,15 +33,27 @@
 .header-banner {
   position: relative;
 }
+
+@media screen and (max-width: 1920px) {
+  .header-banner {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+  .header-banner > img {
+    width: unset;
+  }
+}
+
 .mission-list {
   display: flex;
   align-items: center;
   position: absolute;
   left: 50%;
-  bottom: 40px;
+  bottom: -70px;
   z-index: 2;
   width: 1200px;
-  height: 300px;
+  height: 400px;
   transform: translateX(-50%);
   /* background-color: pink; */
 }
@@ -53,6 +65,11 @@
   position: absolute;
   left: 0;
   top: 0;
+  transition: all 0.8s cubic-bezier(0, 0, 0.2, 1);
+  transform: scale(1);
+}
+.mission-list-item.exit {
+  transform: scale(0);
 }
 
 .m-list-item-bg {
@@ -145,6 +162,7 @@
   background: linear-gradient(270deg, #FFFFFF 20%, rgba(255, 255, 255, 0) 100%);
   border-radius: 20px;
   z-index: 2;
+  transition: all 0.8s cubic-bezier(0.15, 0.85, 1, 1);
 }
 .blink-point {
   display: flex;
@@ -168,13 +186,21 @@
   justify-content: space-between;
   position: absolute;
   top: -46px;
+  left: 0;
   color: #fff;
   transform: translateX(-60%);
   z-index: 4;
+  transition: all 1s cubic-bezier(0.15, 0.85, 1, 1);
 }
 .anchor.first {
   transform: none;
 }
+.blink-point-text {
+  position: absolute;
+  right: 0;
+  top: -25px;
+  transform: translate(40%,-100%);
+}
 
 .anchor.wait .anchor-tip-text {
   color: #fff;

+ 45 - 26
src/web/staticres/frontRouter/pc/activity/js/task.js

@@ -214,8 +214,8 @@ var task = new Vue({
     missionsList: [
       {
         id: 'subscribe',
-        x: 0,
-        y: 0,
+        x: 190,
+        y: 120,
         num: 300,
         unit: '剑鱼币',
         complete: false,
@@ -224,8 +224,8 @@ var task = new Vue({
       },
       {
         id: 'invite',
-        x: 0,
-        y: 0,
+        x: 470,
+        y: 20,
         num: 500,
         unit: '剑鱼币',
         complete: false,
@@ -234,8 +234,8 @@ var task = new Vue({
       },
       {
         id: 'improveInfo',
-        x: 0,
-        y: 0,
+        x: 900,
+        y: 80,
         num: 200,
         unit: '剑鱼币',
         complete: false,
@@ -311,25 +311,20 @@ var task = new Vue({
       }
       return calcRate
     },
-    progressAnchorList: function () {
-      var progressList = JSON.parse(JSON.stringify(this.progress.anchorList))
+    blinkTextShow: function () {
+      var anchorList = this.progress.anchorList
       var rate = this.rate
-      var existRate = false
-      for (var i = 0; i < progressList.length; i++) {
-        if (progressList[i].rate === rate) {
-          existRate = true
+      var exist = false
+      for (var i = 0; i < anchorList.length; i++) {
+        if (rate === anchorList[i].rate) {
+          exist = true
           break
         }
       }
-      if (!existRate) {
-        progressList.push({
-          rate: this.rate, // 进度,单位%,最大为100
-          anchorText: this.progress.current + '剑鱼币'
-        })
-      }
-      return progressList.sort(function (a, b) {
-        return a.rate - b.rate
-      })
+      return !exist
+    },
+    progressAnchorList: function () {
+      return this.progress.anchorList
     }
   },
   created: function () {
@@ -338,7 +333,7 @@ var task = new Vue({
     this.ajaxList()
   },
   mounted: function () {
-    this.calcPointList()
+    // this.calcPointList()
   },
   methods: {
     calcPointList: function () {
@@ -359,11 +354,26 @@ var task = new Vue({
     },
     onClickListItem: function (item) {
       if (item.icon === 'jy-svip') {
-        window.open('/front/subscribe.html')
+        window.open('/front/swordfish/toMyOrder')
       } else {
         window.open('/swordfish/integral/index/detail')
       }
     },
+    leaveCanvas: function (item) {
+      var dom = $('.mission-list-item.' + item.id)
+      dom.removeClass('floating')
+      var baseX = 60
+      // 终点坐标
+      var current = {
+        x: baseX + 1000 * this.rate / 100,
+        y: $('.mission-list').height() - $('.blink-point').height() / 2
+      }
+      item.x = current.x
+      item.y = current.y
+      this.$nextTick(function () {
+        dom.addClass('exit')
+      })
+    },
     onClickReceive: function (type, item) {
       var status = false
       if (type === 'schedule' && item.className === 'wait') {
@@ -372,6 +382,7 @@ var task = new Vue({
         status = true
       }
       if (!status) {
+        var _this = this
         switch (item.id) {
           case 'subscribe': {
             showDialogOfType('code')
@@ -383,15 +394,23 @@ var task = new Vue({
           }
           case 'improveInfo': {
             // 留资
-            vm.isNeedSubmit('activity_free_plan', function(){
-              vm.showSuccess = true
-            })
+            function collectSubmitCallback (key, result) {
+              if (key === 'activity_free_plan' && result) {
+                vm.showSuccess = true
+                _this.ajaxProgress()
+              }
+            }
+            window.collectSubmitCallback = collectSubmitCallback
+            vm.isNeedSubmit('activity_free_plan')
             break
           }
         }
         return
       }
       var _this = this
+      if (type === 'mission') {
+        this.leaveCanvas(item)
+      }
       this.ajaxReceive({ type: type, value: item.id }, function (result, msg) {
         if (result) {
           switch (item.id) {

+ 3 - 1
src/web/staticres/public-pc/js/header-nav.js

@@ -183,7 +183,9 @@ $(function(){
       if($("#bidLogin").is(":visible")){
         return;
       }
-      zbSeatch('zbSeatchIndex');
+      setTimeout(function () {
+        zbSeatch('zbSeatchIndex');
+      }, 10)
       //将搜索次数记录cookie
       $.cookie("selectNum",1, { expires: 1 });
     };

BIN
src/web/staticres/share/img/reward-points.png


BIN
src/web/staticres/share/img/reward-vip.png


+ 2 - 1
src/web/templates/frontRouter/pc/activity/sess/task.html

@@ -48,7 +48,7 @@
         <div class="mission-list" ref="missions">
             <div
                 class="mission-list-item floating"
-                :class="{'complete': item.complete}"
+                :class="{ complete: item.complete, [item.id]: true}"
                 v-for="item in missionsList"
                 v-show="!item.hide"
                 :style="{ left: item.x + 'px', top: item.y + 'px' }"
@@ -84,6 +84,7 @@
                     </div>
                     <div class="progress-bar-content" :style="{ width: rate + '%' }">
                         <div class="blink-point"></div>
+                        <div class="blink-point-text anchor-text" v-show="blinkTextShow">${progress.current}剑鱼币</div>
                     </div>
                 </div>
             </div>

+ 20 - 4
src/web/templates/frontRouter/wx/activity/sess/task.html

@@ -2,7 +2,7 @@
 <html lang="zh-CN" style="font-size: 50px;">
 
 <head>
-    <title>活动</title>
+    <title>投标人专属免费计划</title>
     <!--引入公共资源头部-->
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
@@ -19,7 +19,13 @@
     <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/big-member/weixin/css/public.css?v={{Msg "seo" "version"}}'>
     <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/big-member/weixin/css/j-icons.css?v={{Msg "seo" "version"}}'>
     <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/active/2022.5.20/task.css?v={{Msg "seo" "version"}}' />
+    <script src='{{Msg "seo" "cdn"}}/big-member/js/rem.js'></script>
     <!--E-当前页面的css资源-->
+    <style>
+        .header-banner {
+            margin-top: -0.6rem;
+        }
+    </style>
 </head>
 
 <body>
@@ -31,9 +37,9 @@
                 <div class="mission-list" ref="missions">
                     <div
                         class="mission-list-item floating"
-                        :class="{ complete: item.complete, hide: item.hide }"
+                        :class="{ complete: item.complete, hide: item.hide, [item.id]: true }"
                         v-for="item in missionsList"
-                        :style="{ left: item.x + 'px', top: item.y + 'px' }"
+                        :style="{ left: item.x + 'rem', top: item.y + 'rem' }"
                         :key="item.id">
                         <div class="m-list-item-bg">
                             <span class="num"><span class="num-add">+</span>${ item.num }</span>
@@ -66,6 +72,7 @@
                             </div>
                             <div class="progress-bar-content" :style="{ width: rate + '%' }">
                                 <div class="blink-point"></div>
+                                <div class="blink-point-text anchor-text" v-show="blinkTextShow">${progress.current}剑鱼币</div>
                             </div>
                         </div>
                     </div>
@@ -76,7 +83,7 @@
                             :disabled="a.className !== 'wait'"
                             v-for="(a, index) in progressAnchorList"
                             v-if="a.tipText"
-                            @click="onClickReceive('mission', a)"
+                            @click="onClickReceive('schedule', a)"
                             :key="index">免费领${a.tipText}</button>
                     </div>
                 </section>
@@ -108,6 +115,15 @@
                 </section>
                 <section class="section no-select tool-box-container">
                     <div class="tool-box">
+                        <div class="tool-box-button-list">
+                            <div
+                                class="tool-action-button"
+                                :id="item.id"
+                                v-for="item in toolBoxList"
+                                v-text="item.text"
+                                @click="onToolBoxAction(item)"
+                                :key="item.id"></div>
+                        </div>
                         <div class="tool-button" @click="toToolBoxPage">一键开启</div>
                     </div>
                 </section>

+ 23 - 1
src/web/templates/pc/index.html

@@ -706,6 +706,7 @@
     <!-- 弹窗 -->
 		<div class="pc_tc" id="pc-index-alert">
 			<div id="index_tc"  class="tc" dataUrl="">
+        <div id="index_tc_svga"></div>
         <div class="tc_button"></div>
       </div>
 			<img src="/images/pc/close2x.png" id="close2x">
@@ -727,6 +728,8 @@
 <script src='{{Msg "seo" "cdn"}}/js/dateFunc.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/js/pc-collect-user-info.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/js/pc-message-index.js?v={{Msg "seo" "version"}}'></script>
+<script src=//cdn-common.jianyu360.com/cdn/lib/svga-web/svga.min.js></script>
+
 <script>
 var visitedLinks = {
   init: function () {
@@ -917,7 +920,26 @@ if (ADList.length>0){
     if (adv_img!=""&&times> parseInt(activestart)*1000){
       $(".tc_button").remove();
       $("#pc-index-alert").removeClass("pc_tc").addClass("pc_tc_master").css({"margin-top":"-"+adv_margin_top+"px","margin-left":"-"+adv_margin_left+"px"});
-      $("#index_tc").removeClass("tc").addClass("tc_master").css({"width":adv_width+"px","height":adv_height+"px","background":"url('"+adv_img+"')","background-size":"cover"}).attr("dataurl",adv_url);
+      $("#index_tc").removeClass("tc").addClass("tc_master").css({
+        "width":adv_width+"px",
+        "height":adv_height+"px",
+        // "background":"url('"+adv_img+"')",
+        "background-size":"cover"}).attr("dataurl",adv_url);
+      // SVGA 动画支持
+      if (adv_img.indexOf('.svga') !== -1) {
+        $('#index_tc_svga').css({
+          "width":adv_width+"px",
+          "height":adv_height+"px"
+        })
+        var player = new SVGA.Player('#index_tc_svga');
+        var parser = new SVGA.Parser('#index_tc_svga');
+        parser.load(adv_img, function(videoItem) {
+          player.setVideoItem(videoItem);
+          player.startAnimation();
+        })
+      } else {
+        $("#index_tc").css("background", "url('"+adv_img+"')")
+      }
       $(".tans").css({"opacity":adv_background_opacity});//遮罩层透明度
       break;
     }

+ 20 - 2
src/web/templates/weixin/search/mainSearch.html

@@ -565,17 +565,35 @@
       <div class="modal-body" style="padding:0px;">
       <div style="border-radius: 10px;position: relative;width:5.7rem;/*height: 7.5rem;*/margin-left: -2.85rem;left: 50%;">
 			<img onclick="tapClose(0)" src="/vipsubscribe/image/close.png" style="position: absolute;right: 0px;top: -1rem;width: .6rem;" >
+      <div id="wx-mainSearch-dialog--svga" onclick="gotoIntroducePage(this)" dataUrl="/front/vipsubscribe/introducePage"></div>
       <img id="wx-mainSearch-dialog" style="border-radius: 8px;" src ="/vipsubscribe/image/vip_home.png?v={{Msg "seo" "version"}}" onclick="gotoIntroducePage(this)" dataUrl="/front/vipsubscribe/introducePage">
       {{$s_index:=(Ad "jy-wxsearch-index-tap" -1)}}
-  		<script>
+      <script src=//cdn-common.jianyu360.com/cdn/lib/svga-web/svga.min.js></script>
+      <script>
   			var ADIndexList={{$s_index}}
   			if (ADIndexList!=null&&ADIndexList.length>0){
       	  var AD=ADIndexList[0]
       		if(AD.s_link){
             $("#wx-mainSearch-dialog").attr("dataUrl", AD.s_link);
+            $("#wx-mainSearch-dialog--svga").attr("dataUrl", AD.s_link);
           }
           if(AD.s_pic){
-            $("#wx-mainSearch-dialog").attr("src", AD.s_pic+"?v="+ new Date().getTime());
+            // SVGA 动画支持
+            if (AD.s_pic.indexOf('.svga') !== -1) {
+              $('#wx-mainSearch-dialog--svga').css({
+                "width": AD.o_extend.width ? (AD.o_extend.width + "px") : 'auto',
+                "height": AD.o_extend.height ? (AD.o_extend.height + "px") : 'auto'
+              })
+              var player = new SVGA.Player('#wx-mainSearch-dialog--svga');
+              var parser = new SVGA.Parser('#wx-mainSearch-dialog--svga');
+              parser.load(AD.s_pic, function(videoItem) {
+                $("#wx-mainSearch-dialog").hide()
+                player.setVideoItem(videoItem);
+                player.startAnimation();
+              })
+            } else {
+              $("#wx-mainSearch-dialog").attr("src", AD.s_pic+"?v="+ new Date().getTime());
+            }
           }
   			}
 		</script>

Some files were not shown because too many files changed in this diff