소스 검색

Merge branch 'feature/v4.7.49' of http://192.168.3.207:8080/qmx/jy into feature/v4.7.49

zhangyuhan 2 년 전
부모
커밋
5d730b9e9d
38개의 변경된 파일443개의 추가작업 그리고 224개의 파일을 삭제
  1. 35 35
      src/jfw/front/big-member.go
  2. 10 1
      src/jfw/front/front.go
  3. 10 4
      src/jfw/modules/app/src/app/front/laboratory.go
  4. 10 1
      src/jfw/modules/app/src/app/front/login.go
  5. 6 3
      src/jfw/modules/app/src/app/front/vipsubscribe.go
  6. 2 0
      src/jfw/modules/app/src/app/tag/ad.go
  7. 14 2
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/page_init.js
  8. 3 1
      src/jfw/modules/app/src/web/staticres/jyapp/js/common.js
  9. 7 1
      src/jfw/modules/app/src/web/staticres/jyapp/js/historypush.js
  10. 63 2
      src/jfw/modules/app/src/web/staticres/jyapp/me/css/mine.css
  11. 23 3
      src/jfw/modules/app/src/web/staticres/jyapp/me/js/mine.js
  12. 2 2
      src/jfw/modules/app/src/web/templates/big-member/page_client_follow_detail.html
  13. 11 1
      src/jfw/modules/app/src/web/templates/big-member/page_full.html
  14. 1 0
      src/jfw/modules/app/src/web/templates/big-member/page_init.html
  15. 7 1
      src/jfw/modules/app/src/web/templates/big-member/page_landingPage.html
  16. 5 0
      src/jfw/modules/app/src/web/templates/me/account/phone_bind.html
  17. 12 70
      src/jfw/modules/app/src/web/templates/me/mine.html
  18. 1 1
      src/jfw/modules/bigmember/src/entity/portraitWinnerSearch.go
  19. 2 0
      src/jfw/modules/publicapply/src/ad/entity/struct.go
  20. 3 0
      src/jfw/modules/publicapply/src/config.json
  21. 1 0
      src/jfw/modules/publicapply/src/config/config.go
  22. 44 0
      src/jfw/modules/publicapply/src/userbase/entity/entity.go
  23. 1 0
      src/jfw/modules/publicapply/src/userbase/service/action.go
  24. 17 0
      src/jfw/modules/publicapply/src/userbase/service/service.go
  25. 2 0
      src/web/staticres/common-module/active/2022.5.20/task.js
  26. 7 1
      src/web/staticres/common-module/active/2022.7/task-202207.js
  27. 7 1
      src/web/staticres/common-module/active/20221111/task-20221111.js
  28. 1 0
      src/web/staticres/common-module/ad/js/msgbuoy.js
  29. 1 1
      src/web/staticres/common-module/big-member/js/page_client_follow_detail.js
  30. 10 21
      src/web/staticres/common-module/chart-module/js/chart-common.js
  31. 7 1
      src/web/staticres/common-module/history-push/js/historypush.js
  32. 10 2
      src/web/staticres/common-module/report-analysis/js/report_analysis.js
  33. BIN
      src/web/staticres/commonFunctions/wm-exhibition.png
  34. 62 2
      src/web/staticres/me/css/mine.css
  35. 23 2
      src/web/staticres/me/js/mine.js
  36. 2 2
      src/web/templates/big-member/wx/page_client_follow_detail.html
  37. 9 3
      src/web/templates/pc/supsearch.html
  38. 12 60
      src/web/templates/weixin/my.html

+ 35 - 35
src/jfw/front/big-member.go

@@ -1,55 +1,55 @@
 package front
 
 import (
-	"jfw/config"
-	"jfw/public"
-	"qfw/util/jy"
+    "jfw/config"
+    "jfw/public"
+    "qfw/util/jy"
 
-	"github.com/go-xweb/xweb"
+    "github.com/go-xweb/xweb"
 )
 
 type BigMemberAction struct {
-	*xweb.Action
-	vIPViewPage   xweb.Mapper `xweb:"/big/page/(.*)"`    //大会员
-	pcVIPViewPage xweb.Mapper `xweb:"/big/pc/page/(.*)"` //大会员pc
-	wxVIPViewPage xweb.Mapper `xweb:"/big/wx/page/(.*)"` //大会员wx
+    *xweb.Action
+    vIPViewPage   xweb.Mapper `xweb:"/big/page/(.*)"`    //大会员
+    pcVIPViewPage xweb.Mapper `xweb:"/big/pc/page/(.*)"` //大会员pc
+    wxVIPViewPage xweb.Mapper `xweb:"/big/wx/page/(.*)"` //大会员wx
 }
 
 func init() {
-	xweb.AddAction(&BigMemberAction{})
+    xweb.AddAction(&BigMemberAction{})
 }
 
 func (s *BigMemberAction) VIPViewPage(htmlName string) {
-	s.T["logid"] = config.Seoconfig["bigmember"].(string)
-	userid, _ := s.GetSession("userId").(string)
-	bigBaseMsg := jy.GetBigVipUserBaseMsg(userid, public.Mysql, public.MQFW)
-	//大会员介绍页需要使用power字段
-	if bigBaseMsg.Status > 0 && htmlName == "index" {
-		power := []int{}
-		for key := range bigBaseMsg.PowerMap {
-			power = append(power, key)
-		}
-		s.T["power"] = power
-	}
-	s.T["member_status"] = bigBaseMsg.Status
-	s.T["member_trial"] = bigBaseMsg.HasTrial
-	s.Render("/big-member/pc/page_"+htmlName+".html", &s.T)
+    s.T["logid"] = config.Seoconfig["bigmember"].(string)
+    userid, _ := s.GetSession("userId").(string)
+    bigBaseMsg := jy.GetBigVipUserBaseMsg(userid, public.Mysql, public.MQFW)
+    //大会员介绍页需要使用power字段
+    if bigBaseMsg.Status > 0 && htmlName == "index" {
+        power := []int{}
+        for key := range bigBaseMsg.PowerMap {
+            power = append(power, key)
+        }
+        s.T["power"] = power
+    }
+    s.T["member_status"] = bigBaseMsg.Status
+    s.T["member_trial"] = bigBaseMsg.HasTrial
+    s.Render("/big-member/pc/page_"+htmlName+".html", &s.T)
 }
 
 func (s *BigMemberAction) PcVIPViewPage(htmlName string) {
-	s.T["logid"] = config.Seoconfig["bigmember"].(string)
-	s.Render("/big-member/pc/page_"+htmlName+".html", &s.T)
+    s.T["logid"] = config.Seoconfig["bigmember"].(string)
+    s.Render("/big-member/pc/page_"+htmlName+".html", &s.T)
 }
 
 func (s *BigMemberAction) WxVIPViewPage(htmlName string) error {
-	s.T["logid"] = config.Seoconfig["bigmember"].(string)
-	userid, _ := s.GetSession("userId").(string)
-	bigBaseMsg := jy.GetBigVipUserBaseMsg(userid, public.Mysql, public.MQFW)
-	if bigBaseMsg.Status > 0 && htmlName == "landingPage" {
-		htmlName = "index"
-	}
-	if htmlName == "open_app_active" {
-		return s.Render("/big-member/wx/page_"+htmlName+".html", &s.T)
-	}
-	return s.Render("/big-member/wx/page_"+htmlName+".html", &s.T)
+    s.T["logid"] = config.Seoconfig["bigmember"].(string)
+    userid, _ := s.GetSession("userId").(string)
+    bigBaseMsg := jy.GetBigVipUserBaseMsg(userid, public.Mysql, public.MQFW)
+    if bigBaseMsg.Status > 0 && htmlName == "landingPage" {
+        return s.Redirect("/jy_mobile/tabbar/box")
+    }
+    if htmlName == "open_app_active" {
+        return s.Render("/big-member/wx/page_"+htmlName+".html", &s.T)
+    }
+    return s.Render("/big-member/wx/page_"+htmlName+".html", &s.T)
 }

+ 10 - 1
src/jfw/front/front.go

@@ -858,7 +858,16 @@ func (m *Front) Sess(ostr string) error {
 				}
 				//切换企业身份
 				if len(strs) > 2 {
-					entParams := strings.Split(sewx.DecodeString(strs[2]), "_")
+					var entParams []string
+					if strings.HasPrefix(strs[2], "V20221215-") {
+						entParams = strings.Split(sewx.Decode4HexByCheck(strings.TrimPrefix(strs[2], "V20221215-")), "_")
+					} else {
+						entParams = strings.Split(sewx.DecodeString(strs[2]), "_")
+						ents := public.Mysql.SelectBySql(`select name from entniche_info where id=?`, util.Int64All(entParams[0]))
+						if ents != nil && len(*ents) > 0 {
+							entParams[2] = util.ObjToString((*ents)[0]["name"])
+						}
+					}
 					m.Session().SetMultiple(map[string]interface{}{
 						"entId":     util.Int64All(entParams[0]),
 						"entUserId": util.Int64All(entParams[1]),

+ 10 - 4
src/jfw/modules/app/src/app/front/laboratory.go

@@ -7,8 +7,9 @@ import (
 type Lab struct {
 	*xweb.Action
 	/********************剑鱼标讯实验室dev2.0**************************/
-	index   xweb.Mapper `xweb:"/jyapp/jylab/index"`   //实验室首页
-	indexNg xweb.Mapper `xweb:"/jyapp/jylab/indexNg"` //实验室 nginx跳转
+	index    xweb.Mapper `xweb:"/jyapp/jylab/index"`    //实验室首页
+	indexNg  xweb.Mapper `xweb:"/jyapp/jylab/indexNg"`  //实验室 nginx跳转
+	newIndex xweb.Mapper `xweb:"/jyapp/jylab/newIndex"` //实验室 nginx跳转
 }
 
 //
@@ -16,12 +17,17 @@ func init() {
 	xweb.AddAction(&Lab{})
 }
 
-//剑鱼标讯实验室首页
+//剑鱼标讯实验室首页>移动端工作桌面(百宝箱)
 func (l *Lab) Index() error {
-	return l.Redirect("/page_entniche/page/treasure_box.html")
+	return l.Redirect("/jy_mobile/tabbar/box")
 }
 
 //剑鱼标讯实验室首页
 func (l *Lab) IndexNg() error {
 	return l.Redirect("/jyapp/jylab/page_index") //在nginx配置的路由
 }
+
+//剑鱼标讯实验室首页>移动端工作桌面(百宝箱)
+func (l *Lab) NewIndex() error {
+	return l.Redirect("/jy_mobile/tabbar/box")
+}

+ 10 - 1
src/jfw/modules/app/src/app/front/login.go

@@ -298,7 +298,16 @@ func (l *Login) Sess(ostr string) error {
 				}
 				//切换企业身份
 				if len(strs) > 2 {
-					entParams := strings.Split(sewx.DecodeString(strs[2]), "_")
+					var entParams []string
+					if strings.HasPrefix(strs[2], "V20221215-") {
+						entParams = strings.Split(sewx.Decode4HexByCheck(strings.TrimPrefix(strs[2], "V20221215-")), "_")
+					} else {
+						entParams = strings.Split(sewx.DecodeString(strs[2]), "_")
+						ents := public.Mysql.SelectBySql(`select name from entniche_info where id=?`, qutil.Int64All(entParams[0]))
+						if ents != nil && len(*ents) > 0 {
+							entParams[2] = qutil.ObjToString((*ents)[0]["name"])
+						}
+					}
 					l.Session().SetMultiple(map[string]interface{}{
 						"entId":     qutil.Int64All(entParams[0]),
 						"entUserId": qutil.Int64All(entParams[1]),

+ 6 - 3
src/jfw/modules/app/src/app/front/vipsubscribe.go

@@ -319,14 +319,16 @@ func (f *Subscribepay) Msgremind() error {
 		i_member_endtime := util.Int64All((*user)["i_member_endtime"])
 		if now_unix < i_member_endtime-259200 {
 			//已续费
-			return f.Redirect("/jyapp/big/page/main_root")
+			//return f.Redirect("/jyapp/big/page/main_root")
+			return f.Redirect("/jyapp/jylab/index") // 跳转到移动端工作台
 		} else {
 			if now_unix > i_member_endtime {
 				//未续费已到期,跳转到再次购买页面
 				return f.Redirect("/jyapp/big/page/buy_commit?meal=sj&mid=")
 			} else {
 				//未续费未到期,跳转到续费页面
-				return f.Redirect("/jyapp/big/page/main_root")
+				//return f.Redirect("/jyapp/big/page/main_root")
+				return f.Redirect("/jyapp/jylab/index")
 			}
 		}
 	} else if t == "paid" {
@@ -337,7 +339,8 @@ func (f *Subscribepay) Msgremind() error {
 		}
 	} else if t == "bigmember_paid" {
 		if util.IntAll((*user)["i_member_status"]) > 0 {
-			return f.Redirect("/jyapp/big/page/main_root")
+			//return f.Redirect("/jyapp/big/page/main_root")
+			return f.Redirect("/jyapp/jylab/index")
 		} else {
 			return f.Redirect("/jyapp/big/page/buy_commit?meal=sj&mid=")
 		}

+ 2 - 0
src/jfw/modules/app/src/app/tag/ad.go

@@ -82,6 +82,8 @@ type adInfo struct {
 		IosHref   string `json:"iosHref"`   //根据客户端不同 是否访问不同地址
 		Title     string `json:"title"`     //标题
 		Theme     string `json:"theme"`     // 主题样式
+		Power     string `json:"power"`     // 权限判断
+		Tab       string `json:"tab"`       // tab切换
 	} `json:"o_extend"` //拓展属性
 	S_script string `json:"s_script"` //脚本代码
 }

+ 14 - 2
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/page_init.js

@@ -302,7 +302,13 @@ var vNode = {
                         if (response.data.isUsed) {
                             sessionStorage.setItem('stop_recovery_init', 'true')
                             // location.href = './big_subscribe'
-                            location.replace('./main_root')
+                            try {
+                              JyObj.refreshAppointTab('box', 1)
+                              JyObj.backUrl("")
+                              JyObj.skipAppointTab('box')
+                            } catch (e) {
+                              console.warn(e)
+                            }
                         } else {
                             this.hideLoading()
                             this.inputArr[1].value = response.data.entname
@@ -497,7 +503,13 @@ var vNode = {
                     vant.Toast.clear();
                     if (response && response.error_code === 0 && response.data.status === 1) {
                         sessionStorage.setItem('stop_recovery_init', 'true')
-                        location.replace('./main_root')
+                        try {
+                          JyObj.refreshAppointTab('box', 1)
+                          JyObj.backUrl("")
+                          JyObj.skipAppointTab('box')
+                        } catch (e) {
+                          console.warn(e)
+                        }
                     } else {
                         vant.Toast(response.error_msg)
                     }

+ 3 - 1
src/jfw/modules/app/src/web/staticres/jyapp/js/common.js

@@ -1797,7 +1797,9 @@ function afterReceivePushMessage (type, url) {
       	JyObj.hideRedSpotOnMenu("my");
     }
     receivePushMessageHandle(type, url);
-  } catch (e) { }
+  } catch (e) {
+    console.log(e)
+  }
 }
 
 //获取用户经纬度 每天记录一次

+ 7 - 1
src/jfw/modules/app/src/web/staticres/jyapp/js/historypush.js

@@ -223,7 +223,13 @@ var vm = new Vue({
       } else if(this.rootInfo.memberStatus > 0) {
         // 仅大会员
         if((!this.rootInfo.vipStatus || this.rootInfo.vipStatus == 0) && !this.isEntniche) {
-          location.href = '/jyapp/big/page/main_root?type=subscribe'
+          try {
+            JyObj.refreshAppointTab('box', 1)
+            JyObj.backUrl("")
+            JyObj.skipAppointTab('box')
+          } catch (e) {
+            console.warn(e)
+          }
         }
       }
     },

+ 63 - 2
src/jfw/modules/app/src/web/staticres/jyapp/me/css/mine.css

@@ -306,7 +306,7 @@
   color: #FF7A00;
   font-weight: 600;
 }
-    
+
 .sign .btn{
   display: flex;
   align-items: center;
@@ -417,4 +417,65 @@
   border-top: 9px solid #f01212;
   border-right: 5px solid transparent;
   border-bottom: 9px solid #f01212;
-}
+}
+
+.feature-move-dialog{
+  position:absolute;
+  top:0;
+  bottom:0;
+  width:100%;
+  background: rgba(0,0,0,0);
+  z-index:10;
+  display:none;
+}
+.feature-move-dialog .tip-box{
+  position: fixed;
+  width: 274px;
+  height: 198px;
+  right: 9%;
+  bottom: 0.32rem;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  padding: 16px 24px;
+  background: linear-gradient(180deg, #14D8D8 0%, #14B4D8 100%);
+  border-radius: 12px;
+  color: #fff;
+}
+.feature-move-dialog .tip-box h3{
+  font-weight: 400;
+  font-size: 18px;
+  line-height: 24px;
+  text-align: center;
+}
+.feature-move-dialog .tip-box .tip-content{
+  font-size: 14px;
+  line-height: 20px;
+  color: #FFFFFF;
+  width:226px;
+  margin: 5px;
+}
+.feature-move-dialog .tip-box .tip-confirm-btn{
+  margin-top:3px;
+  width:226px;
+  height:32px;
+  background: #FFFFFF;
+  border-radius: 4px;
+  font-style: normal;
+  font-weight: 400;
+  font-size: 16px;
+  line-height: 32px;
+  color: #2ABED1;
+  text-align: center;
+  cursor: pointer;
+}
+
+.feature-move-dialog .tip-box .triangle{
+  position: absolute;
+  bottom:-25px;
+  right:24%;
+  width:0;
+  height:0;
+  border: 13px solid;
+  border-color: #14B4D8 transparent transparent transparent;
+}

+ 23 - 3
src/jfw/modules/app/src/web/staticres/jyapp/me/js/mine.js

@@ -29,6 +29,8 @@ var mine = {
         sessionStorage.removeItem('vip-cur-select-coupon')
         sessionStorage.removeItem('$select-coupon')
         sessionStorage.removeItem('vip-cur-select-size')
+        // 功能搬家弹窗
+        this.showMoveDialog()
     },
     // ios返回刷新问题
     iosBackInvoke: function () {
@@ -124,7 +126,7 @@ var mine = {
         $('.project-follow').on('click', function (e) {
             setLiActive(e.currentTarget)
             var url = $(this).attr('data-href')
-            autoLogin(url) 
+            autoLogin(url)
         })
 
         // 我的企业跳转
@@ -141,7 +143,7 @@ var mine = {
             location.href = '/page_entniche_new/ent/enterprise?t=' + new Date().getTime() +'&pagesource=enterprise'
           }
         })
-        
+
         // 客户关注跳转
         $('.customer-follow').on('click', function (e) {
           setLiActive(e.currentTarget)
@@ -409,7 +411,25 @@ var mine = {
             }
         })
 
-    }
+    },
+    // 展示功能搬家提醒弹窗
+    showMoveDialog: function(isKnow) {
+      $.ajax({
+        url: "/publicapply/userbase/tipInfo?t=" + Date.now(),
+        type: "POST",
+        data: {
+          tipName: 'box_moving',
+          doType: isKnow ? 'know' :  ''
+        },
+        success: function(res){
+          if (res && res.data === false){
+            $('.feature-move-dialog').show()
+          } else {
+            $('.feature-move-dialog').hide()
+          }
+        }
+    });
+  }
 }
 
 mine.init()

+ 2 - 2
src/jfw/modules/app/src/web/templates/big-member/page_client_follow_detail.html

@@ -43,10 +43,10 @@
                     <span class="j-icon icon-favorite"></span>
                     <span class="care_text">已关注</span>
                 </div>
-                <!-- <div class="report">
+                <div class="report">
                     <span class="down-report active" @click="downReport('app')">下载项目报告</span>
                     <span class="toVip" @click="openVip()" v-if="!this.$data.isPayedUser">开通</span>
-                </div> -->
+                </div>
                 <div class="forecast" @click="goAiAdd()"
                      v-if="this.$data.prodetail.bidtype=='招标'||this.$data.prodetail.bidtype=='询价'">
                     <span class="j-icon icon-face"></span>

+ 11 - 1
src/jfw/modules/app/src/web/templates/big-member/page_full.html

@@ -281,7 +281,17 @@
   })
   function goDetail() {
     if (userLoginStatus) {
-      locationReplace(isMember ? '/jyapp/big/page/main_root' : '/jyapp/big/page/landingPage')
+      if (isMember) {
+        try {
+          JyObj.refreshAppointTab('box', 1)
+          JyObj.backUrl("")
+          JyObj.skipAppointTab('box')
+        } catch (e) {
+          console.warn(e)
+        }
+      } else {
+        locationReplace('/jyapp/big/page/landingPage')
+      }
     } else {
       location.href = ("/jyapp/free/login?url="+encodeURIComponent('/jyapp/big/page/main_root'))
     }

+ 1 - 0
src/jfw/modules/app/src/web/templates/big-member/page_init.html

@@ -135,6 +135,7 @@
 <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
 <script src=//cdn-common.jianyu360.com/cdn/lib/zepto/1.2.0/zepto.min.js></script>
 {{include "/big-member/commonjs.html"}}
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/page_init.js?v={{Msg "seo" "version"}}'></script>
 <!--E-当前页面的资源-->
 

+ 7 - 1
src/jfw/modules/app/src/web/templates/big-member/page_landingPage.html

@@ -315,7 +315,13 @@
                     success:function(res) {
                         if (res && res.data) {
                             if (res.data.memberStatus > 0){
-                                window.location.replace('/jyapp/big/page/main_root')
+                              try {
+                                JyObj.refreshAppointTab('box', 1)
+                                JyObj.backUrl("")
+                                JyObj.skipAppointTab('box')
+                              } catch (e) {
+                                console.warn(e)
+                              }
                                 //_this.onlyBuy = false
                             } else {
                                 if (res.data.is_member_trial) {

+ 5 - 0
src/jfw/modules/app/src/web/templates/me/account/phone_bind.html

@@ -217,6 +217,11 @@
       * @param {String} isAppsion 请求环境、app、weixin、pc
       */
       getActive.getActiveInfo(Activedata,'Applink')
+      try {
+        JyObj.hiddenBottom('0')
+      } catch (e) {
+        console.warn(e)
+      }
     </script>
     {{include "/common/baiducc.html"}}
 </body>

+ 12 - 70
src/jfw/modules/app/src/web/templates/me/mine.html

@@ -137,56 +137,6 @@
                 </div>
                 {{end}}
                 <div class="menu">
-                    <div data-need-bind-phone class="menu_list project-follow">
-                        <div class="menu_list_left">
-                            <span class="j-icon base-icon icon-case"></span>
-                            <span class="label">项目关注</span>
-                        </div>
-                        <div class="menu_list_right">
-                            <i class="dot-red"></i>
-                            <span class="j-icon base-icon icon-arrow-right"></span>
-                        </div>
-                    </div>
-                    <div data-need-bind-phone style="display: none;" class="menu_list customer-follow" data-href='/jyapp/big/page/client_list'>
-                      <div class="menu_list_left">
-                          <span class="j-icon base-icon icon-case"></span>
-                          <span class="label">客户关注</span>
-                      </div>
-                      <div class="menu_list_right">
-                          <i class="dot-red"></i>
-                          <span class="j-icon base-icon icon-arrow-right"></span>
-                      </div>
-                  </div>
-                    <div class="menu_list ent-search" style="display: none;" data-href='/jyapp/vipsubscribe/introducePage'>
-                        <div class="menu_list_left">
-                            <span class="j-icon base-icon icon-qiyechaxun"></span>
-                            <span class="label">企业查询</span>
-                        </div>
-                        <div class="menu_list_right">
-                            <i class="dot-red"></i>
-                            <span class="j-icon base-icon icon-arrow-right"></span>
-                        </div>
-                    </div>
-                    <div class="menu_list bx-collection" data-href='/jyapp/frontPage/collection/sess/index'>
-                        <div class="menu_list_left">
-                            <span class="j-icon base-icon icon-shoucang"></span>
-                            <span class="label">标讯收藏</span>
-                        </div>
-                        <div class="menu_list_right">
-                            <i class="dot-red"></i>
-                            <span class="j-icon base-icon icon-arrow-right"></span>
-                        </div>
-                    </div>
-                    <div data-need-bind-phone class="menu_list ent-follow">
-                        <div class="menu_list_left">
-                            <span class="j-icon base-icon icon-company"></span>
-                            <span class="label">企业关注</span>
-                        </div>
-                        <div class="menu_list_right">
-                            <i class="dot-red"></i>
-                            <span class="j-icon base-icon icon-arrow-right"></span>
-                        </div>
-                    </div>
                     <div style="display: none;" data-need-bind-phone class="menu_list ent-follow-history" data-href='/jyapp/frontPage/portraitRecord/sess/index'>
                         <div class="menu_list_left">
                             <span class="j-icon base-icon icon-company"></span>
@@ -209,26 +159,6 @@
                     </div>
                 </div>
                 <div class="menu">
-                  <div class="menu_list my-docs" data-need-bind-phone>
-                      <div class="menu_list_left">
-                          <span class="j-icon base-icon icon-docs"></span>
-                          <span class="label">我的文库</span>
-                      </div>
-                      <div class="menu_list_right">
-                          <div class="partner_value"></div>
-                          <span class="j-icon base-icon icon-arrow-right"></span>
-                      </div>
-                  </div>
-                    <div class="menu_list my-dataExportHistory" data-need-bind-phone>
-                        <div class="menu_list_left">
-                            <span class="j-icon base-icon icon-data-export"></span>
-                            <span class="label">数据导出记录</span>
-                        </div>
-                        <div class="menu_list_right">
-                            <div class="partner_value"></div>
-                            <span class="j-icon base-icon icon-arrow-right"></span>
-                        </div>
-                    </div>
                     <div class="menu_list my-dataPackage" data-need-bind-phone>
                         <div class="menu_list_left">
                             <span class="j-icon base-icon icon-data-pack"></span>
@@ -362,6 +292,18 @@
 			</div>
 		</div>
 		<!--分享好友弹窗 end-->
+      <!--S 功能搬家提醒弹窗-->
+      <div class="feature-move-dialog" >
+        <div class="tip-box">
+          <h3>功能搬家提醒</h3>
+          <div class="tip-content">
+            “百宝箱”全新升级,“我的”部分功能(例如:项目关注、数据导出记录等)已搬家至“百宝箱”,请前往“百宝箱”了解并使用剑鱼全部功能。
+          </div>
+          <div class="tip-confirm-btn" onClick="mine.showMoveDialog('know')">我知道了</div>
+          <div class="triangle"></div>
+        </div>
+      </div>
+      <!--E 功能搬家提醒弹窗-->
     </div>
     <script src='https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js'></script>
     <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.js'></script>

+ 1 - 1
src/jfw/modules/bigmember/src/entity/portraitWinnerSearch.go

@@ -219,7 +219,7 @@ func GetWinnerPortraitSearch(screen *PortraitScreen) (map[string]interface{}, er
 	tBegin := time.Now()
 	doSearchSql := fmt.Sprintf(winnerPortraitSearchSql, strings.Join(mustQueryArr, ","), comminTimeRange, comminTimeRange, bidamountTimeRange)
 	res, docCount := util.GetAggs("projectset", "projectset", doSearchSql)
-	//log.Println("winnerPortraitSql", doSearchSql)
+	log.Println("winnerPortraitSql", doSearchSql)
 	if res == nil {
 		return nil, errors.New(fmt.Sprintf("%s中标企业画像查询异常\n", screen.Ent))
 	}

+ 2 - 0
src/jfw/modules/publicapply/src/ad/entity/struct.go

@@ -23,6 +23,8 @@ type AdInfo struct {
 		IosHref   string `json:"iosHref"`   //根据客户端不同 是否访问不同地址
 		Theme     string `json:"theme"`     // 主题样式
 		Title     string `json:"title"`     //标题
+		Power     string `json:"power"`     // 权限判断
+		Tab       string `json:"tab"`       // tab切换
 	} `json:"o_extend"` //拓展属性
 	S_script string `json:"s_script"` //脚本
 }

+ 3 - 0
src/jfw/modules/publicapply/src/config.json

@@ -50,5 +50,8 @@
     "followCustomer": {
       "customerNumb": 10,
       "enterpriseNumb": 500
+    },
+    "tipInfo":{
+    	"box_moving":1670774400
     }
 }

+ 1 - 0
src/jfw/modules/publicapply/src/config/config.go

@@ -28,6 +28,7 @@ type config struct {
 		EnterpriseNumb int
 	}
 	ExhibitionLog string
+	TipInfo       map[string]int64
 }
 type BidColl struct {
 	PayUserCollLimit      int    //付费用户收藏数量最大限制

+ 44 - 0
src/jfw/modules/publicapply/src/userbase/entity/entity.go

@@ -1,6 +1,7 @@
 package entity
 
 import (
+	"config"
 	"db"
 	"encoding/json"
 	"fmt"
@@ -260,3 +261,46 @@ func SellerTokenDecrypt(token string) (uId, sName string, sid int, desc map[stri
 	}
 	return
 }
+
+//用户一次性弹窗信息集合
+type TipInfoStruct struct {
+	UserId  string
+	DoType  string
+	TipName string
+}
+
+//
+func NewTipInfo(userId, doType, tipName string) *TipInfoStruct {
+	return &TipInfoStruct{
+		UserId:  userId,
+		DoType:  doType,
+		TipName: tipName,
+	}
+}
+
+//
+func (this *TipInfoStruct) GetTipInfo() (flag bool) {
+	queryMap := map[string]interface{}{
+		"s_userId": this.UserId,
+	}
+	if this.DoType == "know" { //我知道了 更新
+		flag = db.Mgo.Update("tip_info", queryMap, map[string]interface{}{
+			"$set": map[string]interface{}{
+				this.TipName: 1,
+				fmt.Sprintf("l_%s_updatetime", this.TipName): time.Now().Unix(),
+			},
+		}, true, false)
+	} else { //查询是否提示弹框
+		//判断是否严重用户注册时间
+		if config.Config.TipInfo[this.TipName] > 0 {
+			userBase := jy.GetBigVipUserBaseMsg(this.UserId, db.Mysql, db.Mgo)
+			//此时间点后注册的新用户
+			if userBase.Registedate > config.Config.TipInfo[this.TipName] {
+				return true
+			}
+		}
+		queryMap[this.TipName] = 1
+		flag = db.Mgo.Count("tip_info", queryMap) > 0
+	}
+	return flag
+}

+ 1 - 0
src/jfw/modules/publicapply/src/userbase/service/action.go

@@ -11,4 +11,5 @@ type ServiceStruct struct {
 	allFunctions  xweb.Mapper `xweb:"/userbase/allFunctions"`        //获取所有用户可用功能
 	bigmemberMenu xweb.Mapper `xweb:"/userbase/bigmemberMenu"`       //大会员菜单
 	industryTag   xweb.Mapper `xweb:"/userbase/medical/industryTag"` // 用户(医疗)行业标签
+	tipInfo       xweb.Mapper `xweb:"/userbase/tipInfo"`             // 用户一次性标签使用
 }

+ 17 - 0
src/jfw/modules/publicapply/src/userbase/service/service.go

@@ -101,3 +101,20 @@ func (this *ServiceStruct) IndustryTag() {
 	}()
 	this.ServeJson(r)
 }
+
+// 用户一次性弹窗标签使用
+func (this *ServiceStruct) TipInfo() {
+	userId, _ := this.GetSession("userId").(string)
+	defer qu.Catch()
+	r := func() Result {
+		if this.Method() != "POST" {
+			return Result{Data: nil, Error_msg: Error_msg_1005}
+		}
+		tipInfo := entity.NewTipInfo(userId, this.GetString("doType"), this.GetString("tipName"))
+		if tipInfo.TipName == "" {
+			return Result{Data: nil, Error_msg: Error_msg_1002}
+		}
+		return Result{Data: tipInfo.GetTipInfo()}
+	}()
+	this.ServeJson(r)
+}

+ 2 - 0
src/web/staticres/common-module/active/2022.5.20/task.js

@@ -585,6 +585,8 @@ var task = new Vue({
         location.href = href
       } else {
         try {
+          JyObj.refreshAppointTab('box', 1)
+          JyObj.backUrl("")
           JyObj.skipAppointTab('box')
         } catch (error) {}
       }

+ 7 - 1
src/web/staticres/common-module/active/2022.7/task-202207.js

@@ -1172,7 +1172,13 @@ var task = new Vue({
         if (utils.isWeiXinBrowser) {
           location.href = '/big/wx/page/landingPage'
         } else {
-          location.href = '/jyapp/big/page/main_root'
+          try {
+            JyObj.refreshAppointTab('box', 1)
+            JyObj.backUrl("")
+            JyObj.skipAppointTab('box')
+          } catch (e) {
+            console.warn(e)
+          }
         }
         return
       } else {

+ 7 - 1
src/web/staticres/common-module/active/20221111/task-20221111.js

@@ -1095,7 +1095,13 @@ var task = new Vue({
         if (utils.isWeiXinBrowser) {
           location.href = '/big/wx/page/landingPage'
         } else {
-          location.href = '/jyapp/big/page/main_root'
+          try {
+            JyObj.refreshAppointTab('box', 1)
+            JyObj.backUrl("")
+            JyObj.skipAppointTab('box')
+          } catch (e) {
+            console.warn(e)
+          }
         }
         return
       } else {

+ 1 - 0
src/web/staticres/common-module/ad/js/msgbuoy.js

@@ -352,6 +352,7 @@ var getMsgBuoyActive = {
           /* width:315px; */
           left: 50%;
           bottom: 0;
+          z-index: 9;
           transform: translate(-50%, 0);
         }
       `

+ 1 - 1
src/web/staticres/common-module/big-member/js/page_client_follow_detail.js

@@ -604,7 +604,7 @@ var vNode = {
                 let _this = this
                 $.ajax({
                     type: 'POST',
-                    url: '/project/getPdfFile',
+                    url: '/bigmember/project/getPdfFile',
                     data: {sid: this.sid},
                     success: function (res) {
                         _this.isRequestIng = false

+ 10 - 21
src/web/staticres/common-module/chart-module/js/chart-common.js

@@ -53,7 +53,7 @@ var chartTemplate =
       </ve-line>
   </template>
 `
-var vComponentChart = function (el, chartData, config, type) {
+window.proxy.vComponentChart = function (el, chartData, config, type) {
   new Vue({
     delimiters: ['${', '}'],
     el: el,
@@ -62,7 +62,7 @@ var vComponentChart = function (el, chartData, config, type) {
       return {
         myChart: null,
         type: type,
-        chartData: chartData,
+        chartData: {},
         // histogram 柱状图
         histogramChart: {},
         // barLineChart 柱状图+折线图
@@ -74,6 +74,7 @@ var vComponentChart = function (el, chartData, config, type) {
       }
     },
     created () {
+      this.chartData = chartData
       this.getChartConfig()
     },
     mounted () {
@@ -395,6 +396,7 @@ var vComponentChart = function (el, chartData, config, type) {
             }
           }
         } else if (this.type === 've-line') {
+          let _this = this
           this.lineChart = {
             options: {
               height: '100%',
@@ -413,30 +415,17 @@ var vComponentChart = function (el, chartData, config, type) {
               xAxis: {
                 axisLabel: {
                   formatter: function (params) {
-                    var newParamsName = "";
-                    var paramsNameNumber = params.length;
-                    var provideNumber = this.IsPc ? 20 : 5; // 一行显示几个字 然后就超过字数就会自动换行
-                    var rowNumber = Math.ceil(paramsNameNumber / provideNumber);
-                    if (paramsNameNumber > provideNumber) {
-                      for (var p = 0; p < rowNumber; p++) {
-                        var tempStr = "";
-                        var start = p * provideNumber;
-                        var end = start + provideNumber;
-                        if (p == rowNumber - 1) {
-                          tempStr = params.substring(start, paramsNameNumber);
-                        } else {
-                          tempStr = params.substring(start, end) + "\n";
-                        }
-                        newParamsName += tempStr;
-                      }
+                    var arr = params.split('~')
+                    var isPc = _this.IsPC()
+                    if (arr.length === 2 && !isPc) {
+                      return arr.join('\n-')
                     } else {
-                      newParamsName = params;
+                      return params
                     }
-                    return newParamsName;
                   },
                   textStyle: {
                     color: '#626262',
-                    fontSize: 12
+                    fontSize: 10
                   },
                   interval: 0
                 }

+ 7 - 1
src/web/staticres/common-module/history-push/js/historypush.js

@@ -294,7 +294,13 @@ var vm = new Vue({
         if((!this.rootInfo.vipStatus || this.rootInfo.vipStatus == 0) && !this.isEntniche) {
           // @tip[big-member] 微信端暂不支持大会员其他功能使用
           if (!utils.isWeiXinBrowser) {
-            location.href = '/jyapp/big/page/main_root?type=subscribe'
+            try {
+              JyObj.refreshAppointTab('box', 1)
+              JyObj.backUrl("")
+              JyObj.skipAppointTab('box')
+            } catch (e) {
+              console.warn(e)
+            }
           }
         }
       }

+ 10 - 2
src/web/staticres/common-module/report-analysis/js/report_analysis.js

@@ -1800,10 +1800,18 @@ var vm = new Vue({
     },
     toSubManage: function () {
       this.isWeixin = utils.isWeiXinBrowser
+      let rootlink = 'f'
+      if (this.powerInfo.memberStatus > 0) {
+        rootlink = 'm'
+      } else if (this.powerInfo.vipStatus > 0) {
+        rootlink = 'v'
+      } else {
+        rootlink = 'f'
+      }
       if(this.isWeixin) {
-        location.href = '/front/vipsubscribe/toSetKeyWordPage?vSwitch=m'
+        location.href = '/front/vipsubscribe/toSetKeyWordPage?vSwitch=' + rootlink
       } else {
-        location.href = '/jyapp/vipsubscribe/toSetKeyWordPage?vSwitch=m'
+        location.href = '/jyapp/vipsubscribe/toSetKeyWordPage?vSwitch=' + rootlink
       }
     },
     toArticleContent (item) {

BIN
src/web/staticres/commonFunctions/wm-exhibition.png


+ 62 - 2
src/web/staticres/me/css/mine.css

@@ -208,7 +208,7 @@
   color: #FF7A00;
   font-weight: 600;
 }
-    
+
 .sign .btn{
   display: flex;
   align-items: center;
@@ -319,4 +319,64 @@
   border-top: 9px solid #f01212;
   border-right: 5px solid transparent;
   border-bottom: 9px solid #f01212;
-}
+}
+.feature-move-dialog{
+  position:absolute;
+  top:0;
+  bottom:0;
+  width:100%;
+  background: rgba(0,0,0,0);
+  z-index:10;
+  display:none;
+}
+.feature-move-dialog .tip-box{
+  position: fixed;
+  width: 274px;
+  height: 198px;
+  right: 10%;
+  bottom: 10%;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  padding: 16px 24px;
+  background: linear-gradient(180deg, #14D8D8 0%, #14B4D8 100%);
+  border-radius: 12px;
+  color: #fff;
+}
+.feature-move-dialog .tip-box h3{
+  font-weight: 400;
+  font-size: 18px;
+  line-height: 26px;
+  text-align: center;
+}
+.feature-move-dialog .tip-box .tip-content{
+  font-size: 14px;
+  line-height: 20px;
+  color: #FFFFFF;
+  width:226px;
+  margin: 5px;
+}
+.feature-move-dialog .tip-box .tip-confirm-btn{
+  margin-top:3px;
+  width:226px;
+  height:36px;
+  background: #FFFFFF;
+  border-radius: 4px;
+  font-style: normal;
+  font-weight: 400;
+  font-size: 16px;
+  line-height: 36px;
+  color: #2ABED1;
+  text-align: center;
+  cursor: pointer;
+}
+
+.feature-move-dialog .tip-box .triangle{
+  position: absolute;
+  bottom:-25px;
+  right:24%;
+  width:0;
+  height:0;
+  border: 13px solid;
+  border-color: #14B4D8 transparent transparent transparent;
+}

+ 23 - 2
src/web/staticres/me/js/mine.js

@@ -30,6 +30,9 @@ var mine = {
         sessionStorage.removeItem('vip-cur-select-coupon')
         sessionStorage.removeItem('$select-coupon')
         sessionStorage.removeItem('vip-cur-select-size')
+
+       // 功能搬家弹窗
+       this.showMoveDialog()
     },
     // ios返回刷新问题
     iosBackInvoke: function () {
@@ -245,6 +248,24 @@ var mine = {
             $('#customer-follow').attr('data-href', '/big/wx/page/client_list').show()
         }
     },
+    // 展示功能搬家提醒弹窗
+    showMoveDialog: function(isKnow){
+      $.ajax({
+        url: "/publicapply/userbase/tipInfo?t=" + Date.now(),
+        type: "POST",
+        data: {
+          tipName: 'box_moving',
+          doType: isKnow ? 'know' :  ''
+        },
+        success: function(res){
+          if (res && res.data === false){
+            $('.feature-move-dialog').show()
+          } else {
+            $('.feature-move-dialog').hide()
+          }
+        }
+      });
+    }
 }
 
 mine.init()
@@ -267,8 +288,8 @@ var vNode = {
         four: [5, 10, 15, 15, 15, 15, 15], // 9
         five: [10, 15, 15, 15, 15, 15, 15], // 10
         six: [15, 15, 15, 15, 15, 15, 15] // >= 11
-      }
-
+      },
+     isShowMoveDialog: false
     }
   },
   computed: {

+ 2 - 2
src/web/templates/big-member/wx/page_client_follow_detail.html

@@ -32,10 +32,10 @@
                     <span class="j-icon icon-favorite"></span>
                     <span class="care_text">已关注</span>
                 </div>
-                <!-- <div class="report">
+                <div class="report">
                     <span class="down-report active" @click="downReport('app')">下载项目报告</span>
                     <span class="toVip" @click="openVip()" v-if="!this.$data.isPayedUser">开通</span>
-                </div> -->
+                </div>
                 <!-- 微信端没有中标预测 -->
                 <div class="forecast" @click="goAiAdd()"
                     v-show="false"

+ 9 - 3
src/web/templates/pc/supsearch.html

@@ -2604,7 +2604,9 @@ if(sessionselect){
                       amount: _this.formatPrice(item.amount / 10000)
                     }
                   })
-                  vComponentChart('#chartTreeMap', data, {}, 've-treemap')
+                  setTimeout(() => {
+                    window.proxy.vComponentChart('#chartTreeMap', data, {}, 've-treemap')
+                  }, 1000)
                 } else if (item === 'winner_time_distribution') {
                   $('#buyerChart').show()
                   var data = {
@@ -2634,7 +2636,9 @@ if(sessionselect){
                   }
                   if (total) {
                     data.rows.reverse()
-                    vComponentChart('#chartLineChartBuyer', data, {}, 've-line')
+                    setTimeout(() => {
+                      window.proxy.vComponentChart('#chartLineChartBuyer', data, {}, 've-line')
+                    }, 1000)
                   }
                 } else if (item === 'buyer_time_distribution') {
                   $('#winnerChart').show()
@@ -2665,7 +2669,9 @@ if(sessionselect){
                   }
                   if (total) {
                     data.rows.reverse()
-                    vComponentChart('#chartLineChart', data, {}, 've-line')
+                    setTimeout(() => {
+                      window.proxy.vComponentChart('#chartLineChart', data, {}, 've-line')
+                    }, 1000)
                   }
                 }
               })

+ 12 - 60
src/web/templates/weixin/my.html

@@ -135,46 +135,6 @@
                     </div>
                 </div>
                 <div class="menu-list">
-                    <div class="menu-list-item clickable" id="project-follow" data-href="/follow/list">
-                        <div class="m-l-i-left">
-                            <span class="j-icon base-icon icon-case"></span>
-                            <span class="m-l-i-label">项目关注</span>
-                        </div>
-                        <div class="m-l-i-right">
-                            <i class="dot-red"></i>
-                            <span class="j-icon base-icon icon-arrow-right"></span>
-                        </div>
-                    </div>
-                    <div class="menu-list-item clickable" id="customer-follow" style="display: none">
-                        <div class="m-l-i-left">
-                            <span class="j-icon base-icon icon-case"></span>
-                            <span class="m-l-i-label">客户关注</span>
-                        </div>
-                        <div class="m-l-i-right">
-                            <i class="dot-red"></i>
-                            <span class="j-icon base-icon icon-arrow-right"></span>
-                        </div>
-                    </div>
-                    <div class="menu-list-item clickable" id="bx-collection" data-href="/weixin/frontPage/collection/sess/index">
-                        <div class="m-l-i-left">
-                            <span class="j-icon base-icon icon-shoucang"></span>
-                            <span class="m-l-i-label">标讯收藏</span>
-                        </div>
-                        <div class="m-l-i-right">
-                            <i class="dot-red"></i>
-                            <span class="j-icon base-icon icon-arrow-right"></span>
-                        </div>
-                    </div>
-                    <div class="menu-list-item clickable" id="ent-follow" data-href="/jylab/followent/entList">
-                        <div class="m-l-i-left">
-                            <span class="j-icon base-icon icon-company"></span>
-                            <span class="m-l-i-label">企业关注</span>
-                        </div>
-                        <div class="m-l-i-right">
-                            <i class="dot-red"></i>
-                            <span class="j-icon base-icon icon-arrow-right"></span>
-                        </div>
-                    </div>
                     <div style="display: none;" class="menu-list-item clickable" id="ent-follow-history" data-href="/weixin/frontPage/portraitRecord/sess/index">
                         <div class="m-l-i-left">
                             <span class="j-icon base-icon icon-company"></span>
@@ -197,26 +157,6 @@
                     </div>
                 </div>
                 <div class="menu-list">
-                  <div class="menu-list-item clickable" id="" data-href="/page_docs_mobile/user/lib">
-                      <div class="m-l-i-left">
-                          <span class="j-icon base-icon icon-docs"></span>
-                          <span class="m-l-i-label">我的文库</span>
-                      </div>
-                      <div class="m-l-i-right">
-                          <i class="dot-red"></i>
-                          <span class="j-icon base-icon icon-arrow-right"></span>
-                      </div>
-                  </div>
-                    <div class="menu-list-item clickable" id="" data-href="/swordfish/dataPack/recordList">
-                        <div class="m-l-i-left">
-                            <span class="j-icon base-icon icon-data-export"></span>
-                            <span class="m-l-i-label">数据导出记录</span>
-                        </div>
-                        <div class="m-l-i-right">
-                            <i class="dot-red"></i>
-                            <span class="j-icon base-icon icon-arrow-right"></span>
-                        </div>
-                    </div>
                     <div class="menu-list-item clickable data-pack" id="" data-href="/swordfish/dataPack/myIndex">
                         <div class="m-l-i-left">
                             <span class="j-icon base-icon icon-data-pack"></span>
@@ -295,6 +235,18 @@
             </div>
         </div>
         <div class="j-footer"></div>
+        <!--S 功能搬家提醒弹窗-->
+        <div class="feature-move-dialog" >
+          <div class="tip-box">
+            <h3>功能搬家提醒</h3>
+            <div class="tip-content">
+              “百宝箱”全新升级,“我的”部分功能(例如:项目关注、数据导出记录等)已搬家至“百宝箱”,请前往“百宝箱”了解并使用剑鱼全部功能。
+            </div>
+            <div class="tip-confirm-btn" onClick="mine.showMoveDialog('know')">我知道了</div>
+            <div class="triangle"></div>
+          </div>
+        </div>
+        <!--E 功能搬家提醒弹窗-->
         <!-- 底部导航 -->
         {{include "/weixin/tabbar.html"}}
     </div>