Browse Source

Merge remote-tracking branch 'origin/feature/v4.9.93' into feature/v4.9.93

wangkaiyue 6 months ago
parent
commit
339a61a154

+ 24 - 3
src/jfw/active/active.go

@@ -1,7 +1,10 @@
 package active
 
 import (
+	"app.yhyue.com/moapp/jybase/redis"
+	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
 	"app.yhyue.com/moapp/jypkg/public"
+	"fmt"
 	"regexp"
 
 	util "app.yhyue.com/moapp/jybase/common"
@@ -48,9 +51,12 @@ type Active struct {
 
 }
 
-var mongodb = public.MQFW
-var se = encrypt.SimpleEncrypt{Key: "topnet2015topnet2015"}
-var mobileReg = regexp.MustCompile("(?i)(Android|Mobile|Phone)")
+var (
+	mongodb      = public.MQFW
+	se           = encrypt.SimpleEncrypt{Key: "topnet2015topnet2015"}
+	mobileReg    = regexp.MustCompile("(?i)(Android|Mobile|Phone)")
+	cacheTimeOut = 3 * 24 * 60 * 60 //三天
+)
 
 func init() {
 	//添加模块解析
@@ -73,6 +79,15 @@ func (a *Active) TransitRoute(key string) error {
 			if !bm { //如果电脑端 访问电脑端
 				return a.Redirect("/active/transit/day01")
 			}
+		case "day04": //PC
+			if bm { //如果是移动端 访问移动端
+				return a.Redirect("/active/transit/day06")
+			}
+		case "day06": //WX
+			if !bm { //如果电脑端 访问电脑端
+				return a.Redirect("/active/transit/day04")
+			}
+
 		}
 		shortUrls := public.Mysql.SelectBySql(`SELECT * FROM short_url WHERE mold = 1 AND code = ?`, key)
 		if shortUrls != nil && len(*shortUrls) > 0 {
@@ -86,6 +101,12 @@ func (a *Active) TransitRoute(key string) error {
 				redirectUrl = util.ObjToString(shortUrl["href"])
 			}
 		}
+		//未登录
+		if userId, _ := a.GetSession("userId").(string); userId == "" {
+			jy.SetCookieValue(a.ResponseWriter, jy.ChannelCookieName, key, cacheTimeOut)                      //三天
+			redis.Put("limitation", fmt.Sprintf("firstVisitTagByWX_%s", a.Session().Id()), key, cacheTimeOut) //登录注册 用户标识
+			return a.Redirect(redirectUrl)
+		}
 	}
 	return a.Redirect(redirectUrl)
 }

+ 7 - 0
src/jfw/modules/app/src/app/front/shorturl.go

@@ -924,6 +924,13 @@ func (s *Short) TransitRoute(key string) error {
 				redirectUrl = util.ObjToString(shortUrl["href"])
 			}
 		}
+
+		//未登录
+		if userId, _ := s.GetSession("userId").(string); userId == "" {
+			jy.SetCookieValue(s.ResponseWriter, jy.ChannelCookieName, key, cacheTimeOut)                      //三天
+			redis.Put("limitation", fmt.Sprintf("firstVisitTagByWX_%s", s.Session().Id()), key, cacheTimeOut) //登录注册 用户标识
+			return s.Redirect(redirectUrl)
+		}
 	}
 	return s.Redirect(redirectUrl)
 }

+ 8 - 6
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_follow.js

@@ -17,7 +17,8 @@ var vNode = {
             refreshing: false,
             pageNum: 0,
             pageSize: 50,
-            scrollTop: 0
+            scrollTop: 0,
+            total: 0
         },
         entFollowList: [],
         loading: '',
@@ -30,7 +31,6 @@ var vNode = {
         if (!recover) {
             this.getPowerInfo()
         }
-        this.getEntGroupList()
 
     },
     mounted: function () {
@@ -88,7 +88,7 @@ var vNode = {
                 }
             })
         },
-        getEntFollowList: function (params = {}) {
+        getEntFollowList: function (params = {group: ''}) {
             var _this = this
             $.ajax({
                 type: 'POST',
@@ -117,6 +117,10 @@ var vNode = {
                             if (res.data.followMax) {
                                 _this.conf.maxLength = res.data.followMax
                             }
+                            if(res.data.total) {
+                              _this.listInfo.total = res.data.total
+                              _this.getEntGroupList()
+                            }
 
                             // 列表赋值
                             if (res.data.list) {
@@ -151,10 +155,8 @@ var vNode = {
         },
         // 设置企业分组数据
         setEntGroupData (data) {
-          let all_count = 0
-          all_count = data.reduce((accumulator, currentValue) => accumulator + currentValue.count, 0);
           data.unshift({
-            count: all_count,
+            count: this.listInfo.total,
             id: "",
             isPut: 0,
             name: "全部"

+ 95 - 86
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js

@@ -417,8 +417,8 @@ var vNode = {
           if (res.error_code === 0) {
             _this.groupingList = res.data || []
             _this.showGroupingDialog = true
-            if(!this.entInfo.follow) {
-              this.$refs.portrayalGrouping.setState(['默认分组'])
+            if(!_this.entInfo.follow) {
+              _this.$refs.portrayalGrouping.setState(['默认分组'])
             }
           } else {
             if(!res?.data?.status) {
@@ -907,19 +907,21 @@ var vNode = {
     },
     changeGroupState: function (type) {
       console.log(type);
-      
-      this.setGroupState = type
-      this.showGroupingDialog = true
-      const followedGroup = this.entInfo.followedGroup
-      let groupList = []
-      const isManyGroup = followedGroup.includes(',')
-      groupList = isManyGroup ? followedGroup.split(',') : [followedGroup]
-      if(!groupList.includes('默认分组')) {
-        this.$refs.portrayalGrouping.setState(groupList)
-      }
+      this.getEntGroupList() 
+      this.$nextTick(() => {
+        this.setGroupState = type
+        this.showGroupingDialog = true
+        const followedGroup = this.entInfo.followedGroup
+        let groupList = []
+        const isManyGroup = followedGroup.includes(',')
+        groupList = isManyGroup ? followedGroup.split(',') : [followedGroup]
+        if(!groupList.includes('默认分组')) {
+          this.$refs.portrayalGrouping.setState(groupList)
+        }
+      })
     },
     // 查询企业是否存在和企业关注状态
-    getEntFollowState: function () {
+    getEntFollowState: function (callback) {
       var _this = this
       _this.entInfo.followSearchFinish = false
       $.ajax({
@@ -937,6 +939,7 @@ var vNode = {
               _this.entInfo.entExist = !!res.data.isShow
               _this.entInfo.followedGroup = res.data.followedGroup
               _this.entInfo.info = res.data.info
+              callback && callback(res.data)
             } else {
               _this.entInfo.entExist = false
             }
@@ -951,13 +954,13 @@ var vNode = {
     },
     changeFollowState: function (state) {
       var _this = this
-      if(!this.isLogin) {
+      if(!_this.isLogin) {
         window.location.href = "/jyapp/free/login?to=back";
         return
       }
-      if (this.entInfo.follow) {
+      if (_this.entInfo.follow) {
         if(!state) {
-          this.$dialog.confirm({
+          _this.$dialog.confirm({
             title: '提示信息',
             message: '取消对“' + _this.entInfo.name + '”的关注?',
             confirmButtonColor: '#2cb7ca'
@@ -972,7 +975,49 @@ var vNode = {
         }
         
       } else {
-        this.getEntGroupList()
+        this.getEntFollowState((res) => {
+          const { surplus, used } = res.info
+          const monitorEntNum = surplus + used  // 可监控企业总数
+          let limit = this.powerInfo.memberStatus > 0 || this.powerInfo.entniche
+          // 1.超出可监控企业数量
+          if (used <= 0) {
+            // 大会员或商机管理用户
+            if (limit) {
+              this.$dialog({
+                width: 303,
+                className: 'monitor-dialog',
+                title: '监控企业个数已达上限',
+                message: '您最多可监控'+monitorEntNum+'个企业,可联系客服,申请监控更多企业',
+                messageAlign:'center',
+                confirmButtonText: '联系客服',
+                confirmButtonColor: '#2ABED1',
+                showConfirmButton: true,
+                showCancelButton: true,
+                cancelButtonText: '返回',
+                // cancelButtonColor: '#5F5E64'
+              }).then(() =>{
+                if(utils.$envs.inWX){
+                   window.location.href = '/big/wx/page/customer'
+                } else{
+                  window.location.href = '/jyapp/free/customer'
+                }
+              })
+            } else {
+              // 非大会员非商机管理用户,进入留资页面
+              let href_
+              if(utils.$envs.inWX){
+                href_ = '/weixin/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.wx
+              }else if(utils.$envs.inApp){
+                href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.app
+              }else if(utils.$envs.inH5){
+                href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' +  + this.sourceLimitMap.h5
+              }
+              window.location.href = href_
+            }
+          } else {
+            this.getEntGroupList()
+          }
+        })
         // this.changeFollowStateRequest()
       }
     },
@@ -1140,7 +1185,25 @@ var vNode = {
             if (res.data === 'success' || res.data.status) {
               _this.entInfo.follow = !_this.entInfo.follow
               _this.getEntFollowState()
-              _this.no_monitor(res.data)
+              if(utils.$envs.inApp && JyObj.checkNoticePermission()!=1 && res.data.status){
+                this.$dialog({
+                  width: 303,
+                  className: 'monitor-dialog',
+                  title: '监控成功',
+                  message: '您可前往“工作台-商机-企业情报监控”查看企业最新动态。为保证您能及时获取新增监控信息推送,请前往开启推送提醒。',
+                  messageAlign:'center',
+                  confirmButtonText: '去开启',
+                  confirmButtonColor: '#2ABED1',
+                  showConfirmButton: true,
+                  showCancelButton: true,
+                  cancelButtonText: '暂不开启',
+                  // cancelButtonColor: '#5F5E64'
+                }).then(() =>{
+                  //  展开监控菜单 active:4
+                  window.location.href = location.origin + '/jy_mobile/push/pushsetting?active=4'
+                })
+                return
+              }
             } else {
               return _this.showToast(res.error_msg || '监控失败')
             }
@@ -1161,92 +1224,38 @@ var vNode = {
         }
       })
     },
-    no_monitor (data){
-      if(utils.$envs.inApp && JyObj.checkNoticePermission()!=1 && data.status){
+    lookMore (){
+      if(this.powerInfo.memberStatus > 0 || this.powerInfo.entniche){
         this.$dialog({
           width: 303,
           className: 'monitor-dialog',
-          title: '监控成功',
-          message: '您可前往“工作台-商机-企业情报监控”查看企业最新动态。为保证您能及时获取新增监控信息推送,请前往开启推送提醒。',
-          messageAlign:'center',
-          confirmButtonText: '去开启',
-          confirmButtonColor: '#2ABED1',
-          showConfirmButton: true,
-          showCancelButton: true,
-          cancelButtonText: '暂不开启',
-          // cancelButtonColor: '#5F5E64'
-        }).then(() =>{
-          //  展开监控菜单 active:4
-          window.location.href = location.origin + '/jy_mobile/push/pushsetting?active=4'
-        })
-        return
-      }
-      if(!this.powerInfo.isFree && !data.msg_open && data.status){
-        this.$dialog({
-          width: 303,
-          className: 'monitor-dialog',
-          title: '监控成功',
-          message: '您可前往“工作台-商机-业主监控”查看业主最新招标动态。为保证您能及时获取新增监控信息推送,请前往开启推送提醒。',
-          messageAlign:'center',
-          confirmButtonText: '去开启',
-          confirmButtonColor: '#2ABED1',
-          showConfirmButton: true,
-          showCancelButton: true,
-          cancelButtonText: '暂不开启',
-          // cancelButtonColor: '#5F5E64'
-        }).then(() =>{
-          //  展开监控菜单 active:4
-          window.location.href = location.origin + '/jy_mobile/push/pushsetting?active=4'
-        })
-
-      } else if(!this.powerInfo.isFree && data.msg_open && data.status){
-        this.$toast({
-          duration: 2000,
-          message: '监控成功,您可前往“工作台-商机-企业情报监控”查看'
-      })
-
-      }else if(!this.powerInfo.isFree && data.limit_status === 1){
-        let href_
-        if(utils.$envs.inWX){
-          href_ = '/weixin/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.wx
-        }else if(utils.$envs.inApp){
-          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.app
-        }else if(utils.$envs.inH5){
-          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' +  + this.sourceLimitMap.h5
-        }
-        window.location.href = href_
-      } else if(!this.powerInfo.isFree && data.limit_status === 2){
-        this.$dialog({
-          width: 303,
-          className: 'monitor-dialog',
-          title: '监控企业个数已达上限',
-          message: '您最多可监控'+data.limit_count+'个企业,可联系客服,申请监控更多企业',
+          title: `申请监控更多企业`,
+          message: `您可联系客服,申请升级产品套餐,监控更多企业`,
           messageAlign:'center',
           confirmButtonText: '联系客服',
           confirmButtonColor: '#2ABED1',
           showConfirmButton: true,
           showCancelButton: true,
-          cancelButtonText: '返回',
-          // cancelButtonColor: '#5F5E64'
+          cancelButtonText: '我再想想',
+          // cancelButtonColor: '#2ABED1'
         }).then(() =>{
           if(utils.$envs.inWX){
-             window.location.href = '/big/wx/page/customer'
-          } else{
-            window.location.href = '/jyapp/free/customer'
-          }
+            window.location.href = '/big/wx/page/customer'
+         } else{
+           window.location.href = '/jyapp/free/customer'
+         }
         })
-      }else if(this.powerInfo.isFree){
+      }else{
         let href_
         if(utils.$envs.inWX){
-          href_ = '/weixin/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.wx
+          href_ = '/weixin/frontPage/bigmember/free/perfect_info?source=' + this.sourceMap.wx
         }else if(utils.$envs.inApp){
-          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.app
+          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceMap.app
         }else if(utils.$envs.inH5){
-          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.h5
+          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceMap.h5
         }
         window.location.href = href_
       }
-
     },
     // 赚剑鱼币任务完成提示
     pointsTaskSuccessTip: function() {

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

@@ -707,6 +707,7 @@
                   :ent-info="entInfo"
                   :allpower="powerInfo"
                   :monitor="!!entInfo.follow"
+                  @lookmore="lookMore"
                   @change="changeGroupState"
                   @monitorclick="changeFollowState"
                   :downshow="true"

+ 1 - 1
src/jfw/modules/app/src/web/templates/frontRouter/activity/free/202402.html

@@ -39,7 +39,7 @@
                 </div>
                 <div class="header-banner-content">
                     <div class="header-banner-content-time">${activeStartTime} - ${activeEndTime}</div>
-                    <div class="header-banner-machine">
+                    <div class="header-banner-machine" :style="machineStyle">
                         <div class="machine-title" v-if="pointsMold">${activityConf.cost}剑鱼币抽会员</div>
                         <div class="machine-ani-content machine-canvas" id="ballBox">
                             <div class="machine-ball-list">

+ 8 - 0
src/jfw/modules/publicapply/src/activityday/dao/dao.go

@@ -78,6 +78,13 @@ func GetLotteryActiveInfo(activeId int64, session *httpsession.Session, req *htt
 	} else {
 		pic = ""
 	}
+	bigPic := ""
+	bgPicMap := common.ObjToMap(r.DLai.BgPic)
+	if bgPicMap != nil {
+		bigPic = common.ObjToString((*bgPicMap)[platform])
+	} else {
+		bigPic = ""
+	}
 	activeInfo.Lai = &Lai{
 		Name:             r.DLai.Name,
 		LotteryStartTime: r.DLai.LotteryStartTime,
@@ -87,6 +94,7 @@ func GetLotteryActiveInfo(activeId int64, session *httpsession.Session, req *htt
 		ShareCopy:        r.DLai.ShareCopy,
 		Pic:              pic,
 		Mold:             r.DLai.Mold,
+		BgPic:            bigPic,
 	}
 	//奖品信息
 	if r.DLpi, err = r.PrizeInfo(); err != nil {

+ 1 - 0
src/jfw/modules/publicapply/src/activityday/dao/raffle.go

@@ -273,6 +273,7 @@ func (r *RaffleInfo) ActiveInfo() (ai *Lai, err error) {
 			Mold:             common.IntAll((*data)[0]["mold"]),
 			DeviceNum:        common.IntAll((*data)[0]["device_num"]),
 			IpNum:            common.IntAll((*data)[0]["ip_num"]),
+			BgPic:            common.ObjToString((*data)[0]["bg_pic"]),
 		}
 		errRule := json.Unmarshal([]byte(common.ObjToString((*data)[0]["rule"])), &ai.Rule)
 		if errRule != nil {

+ 1 - 0
src/jfw/modules/publicapply/src/activityday/entity/entity.go

@@ -16,6 +16,7 @@ type LotteryActiveInfo struct {
 	Rule             []map[string]string  `json:"rule"`               //活动规则
 	ShareCopy        map[string]ShareCopy `json:"share_copy"`         //分享文案
 	Mold             int                  `json:"mold"`               //活动类型 0:购买奖励;1:抽奖
+	BgPic            string               `json:"bg_pic"`             //活动奖品背景图片
 }
 
 // 分享文案

+ 8 - 0
src/web/staticres/common-module/active/202402/202402.js

@@ -164,6 +164,14 @@ var task = new Vue({
       var conf = this.activityConf
       return conf.mold === 1
     },
+    machineStyle: function() {
+      const pic = this.activityConf.bg_pic
+      if (pic) {
+        return {
+          'background-image': `url(${pic})`
+        }
+      }
+    },
     // 订单抽奖活动
     orderMold: function () {
       var conf = this.activityConf

+ 95 - 86
src/web/staticres/common-module/collection/js/ent_portrait.js

@@ -387,7 +387,7 @@ var vNode = {
     getEntGroupList () {
       var _this = this
       $.ajax({
-        url: '/bigmember/follow/ent/labelGroupList',
+        url: '/bigmember/follow/ent/labelGroup',
         type: 'POST',
         data: {
           type: 'get'
@@ -396,8 +396,8 @@ var vNode = {
           if (res.error_code === 0) {
             _this.groupingList = res.data || []
             _this.showGroupingDialog = true
-            if(!this.entInfo.follow) {
-              this.$refs.portrayalGrouping.setState(['默认分组'])
+            if(!_this.entInfo.follow) {
+              _this.$refs.portrayalGrouping.setState(['默认分组'])
             }
           } else {
             if(!res?.data?.status) {
@@ -866,19 +866,21 @@ var vNode = {
     },
     changeGroupState: function (type) {
       console.log(type);
-      
-      this.setGroupState = type
-      this.showGroupingDialog = true
-      const followedGroup = this.entInfo.followedGroup
-      let groupList = []
-      const isManyGroup = followedGroup.includes(',')
-      groupList = isManyGroup ? followedGroup.split(',') : [followedGroup]
-      if(!groupList.includes('默认分组')) {
-        this.$refs.portrayalGrouping.setState(groupList)
-      }
+      this.getEntGroupList() 
+      this.$nextTick(() => {
+        this.setGroupState = type
+        this.showGroupingDialog = true
+        const followedGroup = this.entInfo.followedGroup
+        let groupList = []
+        const isManyGroup = followedGroup.includes(',')
+        groupList = isManyGroup ? followedGroup.split(',') : [followedGroup]
+        if(!groupList.includes('默认分组')) {
+          this.$refs.portrayalGrouping.setState(groupList)
+        }
+      })
     },
     // 查询企业是否存在和企业关注状态
-    getEntFollowState: function () {
+    getEntFollowState: function (callback) {
       var _this = this
       _this.entInfo.followSearchFinish = false
       $.ajax({
@@ -895,6 +897,7 @@ var vNode = {
               _this.entInfo.entExist = !!res.data.isShow
               _this.entInfo.followedGroup = res.data.followedGroup
               _this.entInfo.info = res.data.info
+              callback && callback(res.data)
             } else {
               _this.entInfo.entExist = false
             }
@@ -909,9 +912,9 @@ var vNode = {
     },
     changeFollowState: function (state) {
       var _this = this
-      if (this.entInfo.follow) {
+      if (_this.entInfo.follow) {
         if(!state) {
-          this.$dialog.confirm({
+          _this.$dialog.confirm({
             title: '提示信息',
             message: '取消对“' + _this.entInfo.name + '”的关注?',
             confirmButtonColor: '#2cb7ca'
@@ -926,7 +929,49 @@ var vNode = {
         }
         
       } else {
-        this.getEntGroupList()
+        this.getEntFollowState((res) => {
+          const { surplus, used } = res.info
+          const monitorEntNum = surplus + used  // 可监控企业总数
+          let limit = this.powerInfo.memberStatus > 0 || this.powerInfo.entniche
+          // 1.超出可监控企业数量
+          if (used <= 0) {
+            // 大会员或商机管理用户
+            if (limit) {
+              this.$dialog({
+                width: 303,
+                className: 'monitor-dialog',
+                title: '监控企业个数已达上限',
+                message: '您最多可监控'+monitorEntNum+'个企业,可联系客服,申请监控更多企业',
+                messageAlign:'center',
+                confirmButtonText: '联系客服',
+                confirmButtonColor: '#2ABED1',
+                showConfirmButton: true,
+                showCancelButton: true,
+                cancelButtonText: '返回',
+                // cancelButtonColor: '#5F5E64'
+              }).then(() =>{
+                if(utils.$envs.inWX){
+                   window.location.href = '/big/wx/page/customer'
+                } else{
+                  window.location.href = '/jyapp/free/customer'
+                }
+              })
+            } else {
+              // 非大会员非商机管理用户,进入留资页面
+              let href_
+              if(utils.$envs.inWX){
+                href_ = '/weixin/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.wx
+              }else if(utils.$envs.inApp){
+                href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.app
+              }else if(utils.$envs.inH5){
+                href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' +  + this.sourceLimitMap.h5
+              }
+              window.location.href = href_
+            }
+          } else {
+            this.getEntGroupList()
+          }
+        })
         // this.changeFollowStateRequest()
       }
     },
@@ -1091,7 +1136,25 @@ var vNode = {
             if (res.data === 'success' || res.data.status) {
               _this.entInfo.follow = !_this.entInfo.follow
               _this.getEntFollowState()
-              _this.no_monitor(res.data)
+              if(utils.$envs.inApp && JyObj.checkNoticePermission()!=1 && res.data.status){
+                this.$dialog({
+                  width: 303,
+                  className: 'monitor-dialog',
+                  title: '监控成功',
+                  message: '您可前往“工作台-商机-企业情报监控”查看企业最新动态。为保证您能及时获取新增监控信息推送,请前往开启推送提醒。',
+                  messageAlign:'center',
+                  confirmButtonText: '去开启',
+                  confirmButtonColor: '#2ABED1',
+                  showConfirmButton: true,
+                  showCancelButton: true,
+                  cancelButtonText: '暂不开启',
+                  // cancelButtonColor: '#5F5E64'
+                }).then(() =>{
+                  //  展开监控菜单 active:4
+                  window.location.href = location.origin + '/jy_mobile/push/pushsetting?active=4'
+                })
+                return
+              }
             } else {
               return _this.showToast(res.error_msg || '监控失败')
             }
@@ -1110,92 +1173,38 @@ var vNode = {
         }
       })
     },
-    no_monitor (data){
-      if(utils.$envs.inApp && JyObj.checkNoticePermission()!=1 && data.status){
-        this.$dialog({
-          width: 303,
-          className: 'monitor-dialog',
-          title: '监控成功',
-          message: '您可前往“工作台-商机-企业情报监控”查看企业最新动态。为保证您能及时获取新增监控信息推送,请前往开启推送提醒。',
-          messageAlign:'center',
-          confirmButtonText: '去开启',
-          confirmButtonColor: '#2ABED1',
-          showConfirmButton: true,
-          showCancelButton: true,
-          cancelButtonText: '暂不开启',
-          // cancelButtonColor: '#5F5E64'
-        }).then(() =>{
-          //  展开监控菜单 active:4
-          window.location.href = location.origin + '/jy_mobile/push/pushsetting?active=4'
-        })
-        return
-      }
-      if(!this.powerInfo.isFree && !data.msg_open && data.status){
+    lookMore (){
+      if(this.powerInfo.memberStatus > 0 || this.powerInfo.entniche){
         this.$dialog({
           width: 303,
           className: 'monitor-dialog',
-          title: '监控成功',
-          message: '您可前往“工作台-商机-业主监控”查看业主最新招标动态。为保证您能及时获取新增监控信息推送,请前往开启推送提醒。',
-          messageAlign:'center',
-          confirmButtonText: '去开启',
-          confirmButtonColor: '#2ABED1',
-          showConfirmButton: true,
-          showCancelButton: true,
-          cancelButtonText: '暂不开启',
-          // cancelButtonColor: '#5F5E64'
-        }).then(() =>{
-          //  展开监控菜单 active:4
-          window.location.href = location.origin + '/jy_mobile/push/pushsetting?active=4'
-        })
-
-      } else if(!this.powerInfo.isFree && data.msg_open && data.status){
-        this.$toast({
-          duration: 2000,
-          message: '监控成功,您可前往“工作台-商机-企业情报监控”查看'
-      })
-
-      }else if(!this.powerInfo.isFree && data.limit_status === 1){
-        let href_
-        if(utils.$envs.inWX){
-          href_ = '/weixin/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.wx
-        }else if(utils.$envs.inApp){
-          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.app
-        }else if(utils.$envs.inH5){
-          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' +  + this.sourceLimitMap.h5
-        }
-        window.location.href = href_
-      } else if(!this.powerInfo.isFree && data.limit_status === 2){
-        this.$dialog({
-          width: 303,
-          className: 'monitor-dialog',
-          title: '监控企业个数已达上限',
-          message: '您最多可监控'+data.limit_count+'个企业,可联系客服,申请监控更多企业',
+          title: `申请监控更多企业`,
+          message: `您可联系客服,申请升级产品套餐,监控更多企业`,
           messageAlign:'center',
           confirmButtonText: '联系客服',
           confirmButtonColor: '#2ABED1',
           showConfirmButton: true,
           showCancelButton: true,
-          cancelButtonText: '返回',
-          // cancelButtonColor: '#5F5E64'
+          cancelButtonText: '我再想想',
+          // cancelButtonColor: '#2ABED1'
         }).then(() =>{
           if(utils.$envs.inWX){
-             window.location.href = '/big/wx/page/customer'
-          } else{
-            window.location.href = '/jyapp/free/customer'
-          }
+            window.location.href = '/big/wx/page/customer'
+         } else{
+           window.location.href = '/jyapp/free/customer'
+         }
         })
-      }else if(this.powerInfo.isFree){
+      }else{
         let href_
         if(utils.$envs.inWX){
-          href_ = '/weixin/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.wx
+          href_ = '/weixin/frontPage/bigmember/free/perfect_info?source=' + this.sourceMap.wx
         }else if(utils.$envs.inApp){
-          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.app
+          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceMap.app
         }else if(utils.$envs.inH5){
-          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceLimitMap.h5
+          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=' + this.sourceMap.h5
         }
         window.location.href = href_
       }
-
     },
     // 赚剑鱼币任务完成提示
     pointsTaskSuccessTip: function() {

+ 28 - 5
src/web/staticres/common-module/mobile-portrayal-footer/css/mobile-portrayal-grouping.css

@@ -1,5 +1,6 @@
-.mobile-portrayal-grouping .van-dialog {
+.mobile-portrayal-grouping .grouping-dialog.van-dialog {
   padding: 0 .32rem;
+  top: 50%;
 }
 .mobile-portrayal-grouping .van-dialog .van-dialog__header {
   padding-top: 24px;
@@ -10,12 +11,17 @@
   margin-bottom: .44rem;
 }
 .mobile-portrayal-grouping .van-dialog__content .add-grouping {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
   margin: .16rem 0;
   height: .4rem;
-  line-height: .4rem;
-  text-align: right;
+}
+.add-grouping .van-icon-plus {
+  margin-bottom: .04rem;
 }
 .mobile-portrayal-grouping .van-dialog__content .add-grouping .add-grouping-text {
+  margin-left: .08rem;
   font-size: .28rem;
   color: #2ABED1;
 }
@@ -36,12 +42,29 @@
   text-overflow: ellipsis;
 }
 
+.mobile-portrayal-grouping .add-grouping-dialog .dialog-footer {
+  display: flex;
+  justify-content: space-between;
+  
+}
+.add-grouping-dialog .dialog-footer .van-button {
+  flex: 1;
+  font-size: 18px;
+  border: none;
+  border-top: 0.5px solid rgba(0, 0, 0, 0.1);
+}
+
+.add-grouping-dialog .dialog-footer .van-button.confirm-button {
+  color: #2abed1;
+  border-left: 0.5px solid rgba(0, 0, 0, 0.1);
+}
+
 .mobile-portrayal-grouping .add-grouping-dialog .van-dialog__content {
   padding: 0;
-  margin: .32rem 0 .44rem 0;
+  margin: .32rem 0 0 0;
 }
 .mobile-portrayal-grouping .add-grouping-dialog .van-cell {
-  padding: 0;
+  padding: 0 .32rem .44rem .32rem;
 }
 .mobile-portrayal-grouping .add-grouping-dialog .van-cell .van-field__body {
   padding-bottom: .22rem;

+ 5 - 0
src/web/staticres/common-module/mobile-portrayal-footer/js/mobile-portrayal-footer.js

@@ -243,6 +243,11 @@ var mobilePortrayalFooter = {
       
     },
     lookMore (){
+      if(this.portraitOrigin === 'ent'){
+        this.$emit('lookmore')
+        return
+      }
+
       if(this.allpower.vipStatus > 0){
         let href_
         if(utils.$envs.inWX){

+ 40 - 4
src/web/staticres/common-module/mobile-portrayal-footer/js/mobile-portrayal-grouping.js

@@ -4,6 +4,7 @@ var mobilePortrayalGrouping = `
       v-model="showGroupingDialog"
       :title="title"
       show-cancel-button
+      confirmButtonText="确定"
       class="grouping-dialog"
       @confirm="confirmGrouping"
       @cancel="cancelGrouping"
@@ -22,9 +23,9 @@ var mobilePortrayalGrouping = `
     <van-dialog
       class="add-grouping-dialog"
       v-model="showAddGroupingDialog"
+      :show-confirm-button="false"
       title="新增分组"
-      @confirm="addGrouping"
-      show-cancel-button>
+      >
       <van-field 
         v-model="groupingName"
         show-word-limit 
@@ -32,7 +33,21 @@ var mobilePortrayalGrouping = `
         :error-message="errorMessageText"
         placeholder="请输入分组名称"
         @input="setGroupingName"
-      ></van-field>
+      >
+      </van-field>
+      <div class="dialog-footer">
+        <van-button type="default" @click="showAddGroupingDialog = false">
+          取消
+        </van-button>
+        <van-button
+          type="default"
+          class="confirm-button"
+          :disabled="isConfirmButtonDisabled"
+          @click="addGrouping"
+        >
+          确定
+        </van-button>
+      </div>
     </van-dialog>
   </div>
 `
@@ -64,7 +79,8 @@ var mobilePortrayalGroupingScript = {
       groupingName: '',
       showAddGroupingDialog: false,
       errorMessageText: '',
-      isUpdating: false // 标志位,避免死循环
+      isUpdating: false, // 标志位,避免死循环
+      isConfirmButtonDisabled: true, // 控制确定按钮是否禁用
     }
   },
   methods: {
@@ -73,6 +89,7 @@ var mobilePortrayalGroupingScript = {
     },
     addMonitor () {
       this.showAddGroupingDialog = true
+      this.isConfirmButtonDisabled = true
     },
     addGrouping () {
       // 添加分组确定事件
@@ -97,8 +114,27 @@ var mobilePortrayalGroupingScript = {
     },
     setGroupingName (val) {
       this.groupingName = val.trim().replace(/\s+/g, '')
+      this.errorMessageText = ''
+      this.isConfirmButtonDisabled = false
+
+      if (this.groupingName === '') {
+        this.errorMessageText = '分组名称不能为空'
+        this.isConfirmButtonDisabled = true
+      } else {
+        const exists = this.groupingList.some(
+          (item) => item.s_name === this.groupingName
+        )
+        if (exists) {
+          this.errorMessageText = '分组名称已存在'
+          this.isConfirmButtonDisabled = true
+        }
+      }
     },
     handleGroupChange (checked) {
+      if(checked.length === 0) {
+        this.groupingResult = ['默认分组']; // 如果没有选择任何其他分组,则只保留'默认分组'
+        return;
+      }
       if (this.isUpdating) {
         // 如果正在更新,直接返回,避免递归调用
         return;

+ 27 - 0
src/web/staticres/common-module/perfect-info/js/perfect-info.js

@@ -133,6 +133,13 @@ var titleMap = {
   h5_list_monitor_more:'申请监控更多业主',
   app_list_monitor_more:'申请监控更多业主',
   wx_list_monitor_more:'申请监控更多业主',
+  app_ent_limit: '申请监控更多企业',
+  wx_ent_limit: '申请监控更多企业',
+  h5_ent_limit: '申请监控更多企业',
+  app_ent_more: '申请监控更多企业',
+  wx_ent_more: '申请监控更多企业',
+  h5_ent_more: '申请监控更多企业',
+
   // 商机情报详情页
   app_project_businessDetails: '欢迎体验剑鱼大会员',
   wx_project_businessDetails: '欢迎体验剑鱼大会员',
@@ -385,6 +392,14 @@ var tipMap = {
   h5_list_monitor_more:'请升级大会员,可实时监控最多500个业主采购动态,洞察潜在商机。',
   app_list_monitor_more:'请升级大会员,可实时监控最多500个业主采购动态,洞察潜在商机。',
   wx_list_monitor_more:'请升级大会员,可实时监控最多500个业主采购动态,洞察潜在商机。',
+  app_ent_more: '请升级大会员,可实时监控最多500个企业中标动态,帮助你了解竞争对手和合作伙伴的动向。',
+  wx_ent_more: '请升级大会员,可实时监控最多500个企业中标动态,帮助你了解竞争对手和合作伙伴的动向。',
+  h5_ent_more: '请升级大会员,可实时监控最多500个企业中标动态,帮助你了解竞争对手和合作伙伴的动向。',
+  app_ent_limit: '您当前权限不足,请升级大会员,可实时监控最多500个企业中标动态,帮助你了解竞争对手和合作伙伴的动向。',
+  wx_ent_limit: '您当前权限不足,请升级大会员,可实时监控最多500个企业中标动态,帮助你了解竞争对手和合作伙伴的动向。',
+  h5_ent_limit: '您当前权限不足,请升级大会员,可实时监控最多500个企业中标动态,帮助你了解竞争对手和合作伙伴的动向。',
+
+  
   // 商机情报详情页
   app_project_businessDetails: '请留下联系方式,我们会尽快联系您体验大会员全部功能!',
   wx_project_businessDetails: '请留下联系方式,我们会尽快联系您体验大会员全部功能!',
@@ -512,6 +527,12 @@ var sourceDescMap = {
   h5_list_monitor_more:'业主监控页-超级订阅用户申请监控更多业主',
   app_list_monitor_more:'业主监控页-超级订阅用户申请监控更多业主',
   wx_list_monitor_more:'业主监控页-超级订阅用户申请监控更多业主',
+  app_ent_limit: '企业画像页-申请监控更多企业(已达上限)',
+  wx_ent_limit: '企业画像页-申请监控更多企业(已达上限)',
+  h5_ent_limit: '企业画像页-申请监控更多企业(已达上限)',
+  app_ent_more: '企业画像页-申请监控更多企业',
+  wx_ent_more: '企业画像页-申请监控更多企业',
+  h5_ent_more: '企业画像页-申请监控更多企业',
   // 商机情报详情页
   app_project_businessDetails: '商机情报详情页-查看潜在项目预测',
   wx_project_businessDetails: '商机情报详情页-查看潜在项目预测',
@@ -1858,6 +1879,12 @@ var vNode = {
                 case  'h5_list_monitor_more':
                 case  'app_list_monitor_more':
                 case  'wx_list_monitor_more':
+                case 'app_ent_more':
+                case 'wx_ent_more':
+                case 'h5_ent_more':
+                case 'app_ent_limit':
+                case 'wx_ent_limit':
+                case 'h5_ent_limit':
                 {
                  _this.showMessage('已收到您提交的升级大会员申请,我们会尽快联系您并预约演示时间。', '我知道了', function () {
                     history.back()

+ 8 - 0
src/web/staticres/frontRouter/pc/activity/js/202402.js

@@ -204,6 +204,14 @@ var task = new Vue({
       var conf = this.activityConf
       return conf.mold === 1
     },
+    machineStyle: function() {
+      const pic = this.activityConf.bg_pic
+      if (pic) {
+        return {
+          'background-image': `url(${pic})`
+        }
+      }
+    },
     // 订单抽奖活动
     orderMold: function () {
       var conf = this.activityConf

+ 1 - 1
src/web/templates/frontRouter/pc/activity/free/202402.html

@@ -54,7 +54,7 @@
             </div>
             <div class="header-banner-content w">
                 <div class="header-banner-content-time">${activeStartTime} - ${activeEndTime}</div>
-                <div class="header-banner-machine m-c">
+                <div class="header-banner-machine m-c" :style="machineStyle">
                     <div class="machine-title" v-if="pointsMold">${activityConf.cost}剑鱼币抽会员</div>
                     <div class="machine-ani-content machine-canvas" id="ballBox">
                         <div class="machine-ball-list">

+ 1 - 1
src/web/templates/frontRouter/wx/activity/free/202402.html

@@ -41,7 +41,7 @@
                 </div>
                 <div class="header-banner-content">
                     <div class="header-banner-content-time">${activeStartTime} - ${activeEndTime}</div>
-                    <div class="header-banner-machine">
+                    <div class="header-banner-machine" :style="machineStyle">
                         <div class="machine-title" v-if="pointsMold">${activityConf.cost}剑鱼币抽会员</div>
                         <div class="machine-ani-content machine-canvas" id="ballBox">
                             <div class="machine-ball-list">