فهرست منبع

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

WH01243 3 سال پیش
والد
کامیت
1cafb951db
40فایلهای تغییر یافته به همراه1212 افزوده شده و 635 حذف شده
  1. 2 1
      config_formal/sword_172.17.145.167/entnichePc.json
  2. 2 2
      config_formal/sword_172.17.145.167/time.txt
  3. 2 1
      config_formal/sword_172.17.148.50/entnichePc.json
  4. 2 2
      config_formal/sword_172.17.148.50/time.txt
  5. 3 2
      src/jfw/config/config.go
  6. 6 0
      src/jfw/front/dataExport.go
  7. 25 0
      src/jfw/modules/app/src/web/staticres/jyapp/js/historypush.js
  8. 1 1
      src/jfw/modules/app/src/web/staticres/jyapp/js/searchindex.js
  9. 1 1
      src/jfw/modules/app/src/web/templates/big-member/meta.html
  10. 2 1
      src/jfw/modules/app/src/web/templates/big-member/page_client_follow_list.html
  11. 13 8
      src/jfw/modules/app/src/web/templates/big-member/page_client_list.html
  12. 1 1
      src/jfw/modules/app/src/web/templates/common/js.html
  13. 2 2
      src/jfw/modules/app/src/web/templates/weixin/historypush.html
  14. 1 1
      src/jfw/modules/app/src/web/templates/weixin/search/mainSearch.html
  15. 9 5
      src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html
  16. 7 1
      src/jfw/modules/publicapply/src/bidcollection/entity/entity.go
  17. 2 0
      src/jfw/modules/subscribepay/src/entity/entniche.go
  18. 7 1
      src/web/staticres/common-module/ent-search/ent-search-template.js
  19. 1 1
      src/web/staticres/common-module/public/head.js
  20. 0 0
      src/web/staticres/common-module/track/j-track.min.js
  21. 0 0
      src/web/staticres/common-module/track/j-track.min.js.map
  22. 2 2
      src/web/staticres/common-module/yearEndReport/js/index.js
  23. BIN
      src/web/staticres/commonFunctions/pc_strake_bg.png
  24. 3 4
      src/web/staticres/js/ent-search-index-pc.js
  25. 15 7
      src/web/staticres/js/login.js
  26. 296 0
      src/web/staticres/js/pur-busniess-index-pc.js
  27. 201 38
      src/web/staticres/js/pur-search-index-pc.js
  28. 33 0
      src/web/staticres/js/selector/bus-edit-key.js
  29. 464 0
      src/web/staticres/pccss/pur-busniess-index-pc.css
  30. 1 0
      src/web/staticres/pccss/pur-search-index-pc.css
  31. 1 1
      src/web/templates/big-member/wx/meta.html
  32. 1 1
      src/web/templates/big-member/wx/page_unit_portrayal.html
  33. 1 1
      src/web/templates/common/pnc.html
  34. 1 1
      src/web/templates/common/weixin.html
  35. 1 1
      src/web/templates/frontRouter/pc/page_big_pc/sess/index.html
  36. 2 1
      src/web/templates/pc/biddetail_rec.html
  37. 1 1
      src/web/templates/pc/entsearchindex.html
  38. 84 538
      src/web/templates/pc/purScopebusniess.html
  39. 15 7
      src/web/templates/pc/pursearchindex.html
  40. 1 1
      src/web/templates/pc/supsearch.html

+ 2 - 1
config_formal/sword_172.17.145.167/entnichePc.json

@@ -1,4 +1,5 @@
 {
 	"entnichePcUser": [18624,12724,10256,14002,14004,14576,14577,1416,1421,2546,9522,10500,10511,10617,12469,7426,12814,12815,12816,12817,12818,12819,12820,12823,12822,12920,14128,14796],
-	"hideEntnicheMenu": [10256,14002,14004,14577,1416]
+	"hideEntnicheMenu": [10256,14002,14004,14577,1416],
+	"privateDataPhone": "18530014520,13525530909,13938299083,15225181827,18537851805,15830500028"
 }

+ 2 - 2
config_formal/sword_172.17.145.167/time.txt

@@ -1,2 +1,2 @@
-#上次修改时间,比当前修改时间小就行
-2022-1-18 9:00:00
+#上次修改时间,比当前修改时间小就行
+2022-1-21 00:00:00

+ 2 - 1
config_formal/sword_172.17.148.50/entnichePc.json

@@ -1,4 +1,5 @@
 {
 	"entnichePcUser": [18624,12724,10256,14002,14004,14576,14577,1416,1421,2546,9522,10500,10511,10617,12469,7426,12814,12815,12816,12817,12818,12819,12820,12823,12822,12920,14128,14796],
-	"hideEntnicheMenu": [10256,14002,14004,14577,1416]
+	"hideEntnicheMenu": [10256,14002,14004,14577,1416],
+	"privateDataPhone": "18530014520,13525530909,13938299083,15225181827,18537851805,15830500028"
 }

+ 2 - 2
config_formal/sword_172.17.148.50/time.txt

@@ -1,2 +1,2 @@
-#上次修改时间,比当前修改时间小就行
-2022-1-18 9:00:00
+#上次修改时间,比当前修改时间小就行
+2022-1-21 00:00:00

+ 3 - 2
src/jfw/config/config.go

@@ -18,8 +18,9 @@ var Wxoauth, Wxoauthinfo string
 var GmailAuth []*mail.GmailAuth
 
 type entnichePcConf struct {
-	EntnichePcUser   []int `json:"entnichePcUser"`
-	HideEntnicheMenu []int `json:"hideEntnicheMenu"`
+	EntnichePcUser   []int  `json:"entnichePcUser"`
+	HideEntnicheMenu []int  `json:"hideEntnicheMenu"`
+	PrivateDataPhone string `json:"privateDataPhone"`
 }
 
 var EntnichePcConf *entnichePcConf

+ 6 - 0
src/jfw/front/dataExport.go

@@ -840,6 +840,7 @@ func (this *DataExport) GetPcEntAuth() {
 	//phone = "15136225931"
 	myEntMenu := false
 	entnicheMenu := false
+	privatedata := false
 	pcUsers := map[int]bool{}
 	hideUsers := map[int]bool{}
 	for _, v := range config.EntnichePcConf.EntnichePcUser {
@@ -896,12 +897,17 @@ func (this *DataExport) GetPcEntAuth() {
 				}
 			}
 		}
+		userCount := public.Mysql.CountBySql("select count(1) from privatedata where phone=?", phone)
+		if userCount > 0 {
+			privatedata = true
+		}
 	}
 
 	data := map[string]interface{}{
 		"myEntMenu":    myEntMenu,
 		"entnicheMenu": entnicheMenu,
 		"isNew":        isNew,
+		"privatedata":  privatedata,
 	}
 	this.ServeJson(data)
 }

+ 25 - 0
src/jfw/modules/app/src/web/staticres/jyapp/js/historypush.js

@@ -463,6 +463,7 @@ var vm = new Vue({
               $(".switch .switch_icon").addClass('icon_ent')
               _this.protype = 'entniche'
               _this.selectPro = 3
+              _this.getEntInfo()
             }
             if(switchProduct == 'bigmember' && _this.rootInfo.isSubCount) {
             	$('#sub_manager').hide();
@@ -478,6 +479,30 @@ var vm = new Vue({
         }
       })
     },
+    // 获取商机管理权限
+    getEntInfo: function () {
+      let _this = this
+      $.ajax({
+        type: 'post',
+        url: '/entbase/ent/entinfo',
+        success: function(res) {
+          console.log(res)
+          if(res.error_code === 0) {
+            let address = ''
+            if(res.data.admin_department || res.data.admin_system) {
+              address = '/page_entniche/page/sub_management/sub_management_system.html'
+            } else {
+              address = '/page_entniche/page/subsetting/sub_entrance.html'
+            }
+            $("#sub_manager").click(function() {
+              setSessionStorage();
+              sessionStorage.setItem(_this.sessStorageKey, JSON.stringify(_this.$data))
+              location.href = address
+            })
+          }
+        }
+      })
+    },
     // 判断是否是有筛选条件
     getUserRoot: function() {
       var _this = this

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

@@ -4209,4 +4209,4 @@ window.onload = function(){
 	if(ActiveTipFlag){
 		ActiveTip = new Active_Tip();
 	}
-}
+}

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

@@ -19,7 +19,7 @@
   if (typeof window._jyGlobal !== 'object') { window._jyGlobal = {} }
   try { window._jyGlobal.baseURL = {{Msg "seo" "buryingPointUrl"}} } catch (e) { window._jyGlobal.baseURL = '' }
 </script>
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/track/j-track.min.js?v={{Msg "seo" "mod_version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/track/j-track.min.js?v={{Msg "seo" "version"}}'></script>
 <!--E-meta-->
 
 <!--S-必定会使用的资源-->

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

@@ -296,7 +296,7 @@
             },
             onCancelArea (data) {
               this.list = this.newList
-              this.filterList(this.carePro,this.value1, [])
+              this.filterList(this.carePro,this.value1, {})
               this.$refs.areaDown.toggle()
             },
             // 筛选列表
@@ -398,6 +398,7 @@
                 newlist = this.newList
               }
               this.list = newlist
+              console.log(this.list)
             },
             deweight(arr) {
               var obj = {}

+ 13 - 8
src/jfw/modules/app/src/web/templates/big-member/page_client_list.html

@@ -53,7 +53,7 @@
             <div class="j-main havefomain" ref="jList">
               <div class="claim-main" style="width:100%;background: #fff;">
                 <div class="claim-scree">
-                  <van-tabs @change="getProjectList" v-model="active" color="#2ABED1">
+                  <van-tabs v-model="active" color="#2ABED1">
                     <van-tab title="全部">
                       <van-list
                         v-model="loading"
@@ -353,10 +353,10 @@
                       if(res.data.names.length !== listcopy.length) {
                         _this.noClaimList = newarr
                       } else {
-                        _this.noClaimList = []
+                        _this.noClaimList = _this.list
                       }
                     } else {
-                      _this.noClaimList = []
+                      _this.noClaimList = _this.list
                     }
                   }
                 }
@@ -373,6 +373,7 @@
             },
             // 关注、认领
             changeFollowState (data, str, taglid, tag) {
+              this.loading = true
               let params = {
                 "name": data.name, //采购单位名称
                 "province": data.province || data.wProvince, //省份
@@ -398,11 +399,11 @@
                   if(data.claim) {
                     this.ajaxClaim(params)
                   } else {
-                    this.ajaxClaim(params)
-                    // if (vKeepComponent) {
-                    //   vKeepComponent.changeBid(data.name, !data.claim)
-                    //   // vKeepComponent.changeKeepStatus(!data.claim, this)
-                    // }
+                    // this.ajaxClaim(params)
+                    if (vKeepComponent) {
+                      vKeepComponent.changeBid(data.name, !data.claim)
+                      // vKeepComponent.changeKeepStatus(!data.claim, this)
+                    }
                   }
                 }
               }
@@ -415,12 +416,16 @@
                 contentType: 'application/json',
                 data: JSON.stringify(params),
                 success: (res) => {
+                  _this.loading = false
                   console.log(res)
                   if(res.data) {
                     _this.getProjectList()
                   } else {
                     _this.$toast('取消认领失败')
                   }
+                },
+                error: function(err) {
+                  _this.loading = false
                 }
               })
             },

+ 1 - 1
src/jfw/modules/app/src/web/templates/common/js.html

@@ -9,4 +9,4 @@
       console.log = function () {}
   }
 </script>
-<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/track/j-track.min.js?v={{Msg "seo" "mod_version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/track/j-track.min.js?v={{Msg "seo" "version"}}'></script>

+ 2 - 2
src/jfw/modules/app/src/web/templates/weixin/historypush.html

@@ -815,7 +815,7 @@
             setSessionStorage();
             sessionStorage.setItem(vm.sessStorageKey, JSON.stringify(vm.$data))
             if(historyVt == 's') {
-              location.href = '/page_entniche/page/subsetting/sub_entrance.html'
+              location.href = '/page_entniche/page/sub_management/sub_management_system.html'
               return
             }
             let thisType = sessionStorage.getItem('userIsNew')
@@ -1100,7 +1100,7 @@
                 $('.header_header').hide()
                 $(".switch").addClass('switch_zj')
                 $(".switch_right").hide()
-                $(".switch .switch_icon").addClass('icon_zj')
+                $(".switch .switch_icon").addClass('icon_ent')
                 $(".switch .user_pro").text("商机管理").css('margin-right','.08rem')
                 $(".switch").show()
                 thisClass.InitPersonal(r);

+ 1 - 1
src/jfw/modules/app/src/web/templates/weixin/search/mainSearch.html

@@ -1182,7 +1182,7 @@
                 }else{
                     //window.location.href='/jyloanweb/index.html?v='+(new Date()).valueOf();
                     //查询是否是否开通商机管理 --isPower:未购买员工是否有权限进入商机管理页面
-                    $.post("/entniche/buy/whetherbuy",{},function(res){
+                    $.post("/entnicheNew/buy/whetherbuy",{},function(res){
                         if (res.error_code === 0) {
                             if (res.data.status === 2||res.data.isPower) {
                                 //清除之前选中商机管理推送列表的缓存

+ 9 - 5
src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html

@@ -855,7 +855,7 @@
     var industry = {{.T.obj.industry}};
     var subscopeclass = {{.T.obj.s_subscopeclass}};
     var forceShareFlag = {{.T.forceShareFlag}};
-
+    var newEntNiche = false
     var inithgt = 45;//tab高度
     var cHeight = document.body.clientHeight;
     var m1 = 0;     // 滚动的值
@@ -990,6 +990,9 @@
 
     function toMyFollowList(e){
         var url = $(e).attr("data-url")
+        if(newEntNiche) {
+          url = '/jyapp/big/page/client_follow_list'
+        }
         window.location.href = url;
     }
 
@@ -1167,6 +1170,7 @@
           success: function(res) {
             console.log(res)
             if(res.error_code == 0) {
+              newEntNiche = res.data.isNew
               if(res.data.isNew) {
                 $('.commonUser').hide()
                 $('.entnicheUser').show()
@@ -1308,13 +1312,13 @@
       } else if (str == 'g') {
         $(".follow").css("display","")
         // 关注
+        let param = {
+          sid:id
+        }
         $.ajax({
           type: 'POST',
           url: '/entnicheNew/follow/project/check',
-          contentType: 'application/json',
-          data: {
-            sid:id
-          },
+          data: param,
           success: function(res) {
             console.log(res)
             if(res.error_code == 0) {

+ 7 - 1
src/jfw/modules/publicapply/src/bidcollection/entity/entity.go

@@ -429,7 +429,7 @@ func GetCollList(c *util.CollList, userid string) map[string]interface{} {
 
 //是否是付费用户 -bool: true:是 fasle:不是
 func Power(userid string) (bool, map[string]interface{}) {
-	isVip, isMember, isEnt := false, false, false
+	isVip, isMember, isEnt, privatedata := false, false, false, false
 	vipstatus := 0
 	phone := ""
 	var registedate int64
@@ -470,6 +470,11 @@ func Power(userid string) (bool, map[string]interface{}) {
 			// if db.Mysql.CountBySql(`select count(1) from entniche_user where phone = ? and power =1`, phone) > 0 {
 			// 	isEnt = true
 			// }
+			//广州移动判断
+			privatedataCount := db.Mysql.CountBySql(`select count(1) from privatedata where phone = ?`, phone)
+			if privatedataCount > 0 {
+				privatedata = true
+			}
 		}
 		registedate, _ = (*data)["l_registedate"].(int64)
 	}
@@ -477,6 +482,7 @@ func Power(userid string) (bool, map[string]interface{}) {
 		"vip":         vipstatus,
 		"member":      isMember,
 		"entniche":    isEnt,
+		"privatedata": privatedata,
 		"registedate": registedate,
 	}
 }

+ 2 - 0
src/jfw/modules/subscribepay/src/entity/entniche.go

@@ -59,6 +59,8 @@ func (e *entnicheStruct) PayCallBack(param *CallBackParam) bool {
 							"quota":         qutil.IntAll(filter["personnum"]),
 							"startdate":     now.Unix(),
 							"enddate":       enddate.Unix(),
+							"isNew":         1,
+							"model":         1,
 						})
 						ok_2 := util.Mysql.UpdateOrDeleteBySqlByTx(tx, `update entniche_user set power=1 where phone=? and ent_id=?`, phone, ent_id)
 						return ok_1 && ok_2 > -1

+ 7 - 1
src/web/staticres/common-module/ent-search/ent-search-template.js

@@ -1264,6 +1264,7 @@ window.vBuyerSearchComponent = new Vue({
       this.togglePopForArea(false)
     },
     resetEnt () {
+      this.selectEntList = '请选择企业历史客户'
       this.conditionStrMap.entcustomer= []
       this.togglePopForArea(false)
     },
@@ -1393,10 +1394,15 @@ window.vBuyerSearchComponent = new Vue({
           cateArr.push(sum.Buyer)
         })
         if (r.data.list) {
+          r.data.list = r.data.list.splice(0, 499)
           if(r.data.count<=10) {
             this.buyerList = r.data.list
           } else {
-            this.buyerList = this.buyerList.concat(r.data.list)
+            if(this.listInfo.pageNum <= 1) {
+              this.buyerList = r.data.list
+            } else {
+              this.buyerList = this.buyerList.concat(r.data.list)
+            }
           }
         }
 

+ 1 - 1
src/web/staticres/common-module/public/head.js

@@ -18,7 +18,7 @@
 try {
   // 剑鱼荟聚Event
   var hm = document.createElement("script");
-  hm.src = '/common-module/track/j-track.min.js?v=1'
+  hm.src = '/common-module/track/j-track.min.js?v=2'
   setTimeout(function(){
     var s = document.getElementsByTagName("script")[0];
     s.parentNode.insertBefore(hm, s);

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
src/web/staticres/common-module/track/j-track.min.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
src/web/staticres/common-module/track/j-track.min.js.map


+ 2 - 2
src/web/staticres/common-module/yearEndReport/js/index.js

@@ -298,11 +298,11 @@ var vPage = new Vue({
                             initSwiper.bind(_this)()
                         })
                     } else {
-                        location.replace('/swordfish/about')
+                        location.replace('/swordfish/about?from=yearEndReportnew')
                     }
                 },
                 error: function () {
-                    location.replace('/swordfish/about')
+                    location.replace('/swordfish/about?from=yearEndReportnew')
                 }
             })
         },

BIN
src/web/staticres/commonFunctions/pc_strake_bg.png


+ 3 - 4
src/web/staticres/js/ent-search-index-pc.js

@@ -284,15 +284,14 @@ var vm = new Vue({
     },
     methods: {
         industryTab() {
-            const _this = this
             $.ajax({
                 type:'POST',
                 url:'/entnichenew/buy/whetherbuy',
                 success:function (res) {
-                  if (res.isNew) {
-                    _this.industryShow = true
+                  if (res.data.isNew) {
+                    this.industryShow = true
                   } else {
-                    _this.industryShow = false
+                    this.industryShow = false
                   }
                 }
             })

+ 15 - 7
src/web/staticres/js/login.js

@@ -345,23 +345,29 @@ function checkMenuForEnt () {
                 type: 'get',
                 url: '/front/entExportAuth/getAuth?t=' + new Date().getTime(),
                 success: function (r) {
-                    var tempHtml = ''
+					$(".myorderDiv[data-ent-menu]").remove()
+					var tempHtml = ''
                     if(r.myEntMenu){
-                        tempHtml += "<div class=\"myorderDiv\" onclick=\"window.location.href='/entpc/myent'\">"
+                        tempHtml += "<div data-ent-menu class=\"myorderDiv\" onclick=\"window.location.href='/entpc/myent'\">"
                         +"<span>我的企业</span>"
                         +"</div>"
                     }
                     if(r.entnicheMenu){
-                        if (r.isNew) {
+                        if (r.isNew == true) {
                             tempHtml+= "<div class=\"myorderDiv\" onclick=\"window.location.href='/entpc/newBus'\">"
                                 +"<span>商机管理</span>"
                                 +"</div>"
                         } else {
-                            tempHtml+= "<div class=\"myorderDiv\" onclick=\"window.location.href='/entpc/bus'\">"
+                            tempHtml+= "<div data-ent-menu class=\"myorderDiv\" onclick=\"window.location.href='/entpc/bus'\">"
                                 +"<span>商机管理</span>"
                                 +"</div>"
                         }
                     }
+                    if(r.privatedata){
+                      tempHtml+= "<div data-ent-menu class=\"myorderDiv\" onclick=\"window.location.href='/swordfish/page_big_pc/free/custom_search'\">"
+                          +"<span>画像分析系统</span>"
+                          +"</div>"
+                    }
                     $(".infoList .lastBox").before(tempHtml)
                 }
             })
@@ -668,6 +674,7 @@ var signout = function(){
 				createWebSocket();
 				getNewShareId(mynum,true);*/
 			}
+            window.localStorage.removeItem('bus-key-group-SCOPE')
 		}
 	})
 }
@@ -753,13 +760,14 @@ var haslogin = function(num,kyorpn,url){
 				+"</div>"
 			$("#login").html(hhtml);
 			try{
-        checkBigStatus()
-        checkMenuForEnt()
+				checkBigStatus()
+				checkMenuForEnt()
 				infoListCss();
 				commonMouseEvent();
                 message.init()
 			}catch(e){}
-		}else{
+		}
+		else{
 			$("#login").html("<button class='loginBtn' data-toggle='modal' onclick='openLoginDig()'>登录</button>");
 			loginBtnType();
 			//pc限制登陆

+ 296 - 0
src/web/staticres/js/pur-busniess-index-pc.js

@@ -0,0 +1,296 @@
+function getParam (name) {
+  let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
+  let r = window.location.search.substr(1).match(reg)
+  let context = '' // eslint-disable-line no-unused-vars
+  if (r !== null) context = r[2]
+  // 释放变量
+  reg = null
+  r = null
+  return context === null || context === '' || context === 'undefined' ? '' : context
+}
+// toast上限提示
+function toastFn (text, duration) {
+  if (duration) {
+    duration = 1000
+  }
+  var _html = ""
+  _html+='<div class="custom-toast"><div class="mask" style="background-color: transparent;"></div><div class="toast-container">'
+  _html+='<span>' + text + '</span></div></div>'
+  $('body').append(_html)
+    setTimeout(function(){
+        $(".custom-toast").fadeOut().remove();
+    },duration)
+}
+function formatKeywordsList (res) {
+  console.info(res)
+  // if (!res || !res.a_items) return
+  // const data = res.a_items
+  const newArr = []
+  res.forEach((v) => {
+    if (v.a_key) {
+      v.a_key.forEach((s) => {
+        newArr.push(s)
+      })
+    }
+  })
+  return newArr
+}
+var vm = new Vue({
+  el: '#pur-busniess-container',
+  delimiters: ['${', '}'],
+  components: {
+    Edit: Edit
+  },
+  data() {
+    return {
+      setData: {
+        title: '业务范围设置',
+        // 关键词
+        // keyList: [{"key":["电饭锅"],"notkey":[],"appendkey":["蒸锅","擀面杖"],"matchway":1,"updatetime":1642657696,"showForm":false,"iidex":1},{"key":["科技"],"showForm":false,"iidex":0,"updatetime":0},{"key":["放东西"],"notkey":[],"appendkey":null,"matchway":1,"updatetime":1642657756}],
+        keyList: [],
+        maxCount: 0,
+        from: null
+      },
+      dialog: {
+        editKey: false, // 修改关键词弹框
+        delKey: false
+      },
+      // 传给dialog子组件的数据
+      proData: {
+        ways: '', // 编辑还是新增
+        keyIndex: null, // 关键词下标
+        key: [], // 关键词
+        notkey: [], // 排除词
+        appendkey: [] // 附加词
+      },
+      newWordsList: [],
+      addShowForm: false,
+      delIndex: null,
+      subData: []
+    }
+  },
+  created () {
+    const params = decodeURIComponent(getParam('title'))
+    if (params) {
+      this.setData.title = params
+      this.setData.from = 'buyClass'
+    }
+    // this.getBigInfo()
+    // this.setData.keyList = window.localStorage.getItem('bus-key-group-SCOPE')
+    this.keyRange()
+  },
+  methods: {
+    keyRange() {
+      const decide = window.localStorage.getItem('bus-key-group-SCOPE')
+      if (decide) {
+        this.setData.keyList = decide
+        this.formatDatasList()
+      } else {
+        $.ajax({
+          url: '/entnicheNew/subscribe/key/get',
+          method: 'POST',
+          success: function (res) {
+            if ($.isArray(res.data.data) && res.error_code == 0) {
+                const arrs = []
+                res.data.data.forEach(v => {
+                  v.a_key.forEach(t => {
+                    arrs.push(t)
+                  })
+                })
+                this.setData.keyList = JSON.stringify(arrs)
+                this.formatDatasList()
+            }
+          }.bind(this)
+        })
+      }
+    },
+    // 从接口中取数据 执行业务范围页面逻辑
+    // async getBigInfo () {
+    //   const state = window.localStorage.getItem('bus-key-group-SCOPE')
+    //   // const state = this.setData.from ? this.buyClass : this.scope
+    //   console.info(state, 'state')
+    //   state.forEach((v, i) => {
+    //     v.showForm = false
+    //     v.iidex = i
+    //     if (!v.updatetime) {
+    //       v.updatetime = 0
+    //     }
+    //   })
+    //   // const isClear = this.setData.from ? this.isDeleteAllBuyClass : this.isDeleteAllScope
+    //   if (state) {
+    //     this.setData.keyList = state
+    //   }
+    // },
+    getCurEdit () {
+      const data = this.newWordsList
+      const t = data.some(s => {
+        return s.showForm
+      })
+      console.info(t)
+      console.info(this.addShowForm)
+      return t || this.addShowForm
+    },
+    // 排序
+    sortData (arr) {
+      return arr.sort((a, b) => {
+        return b.updatetime - a.updatetime
+      })
+    },
+    onUpdatescope(data) {
+      if (data) {
+        this.subData = data
+      }
+    },
+    // 整理数据
+    formatDatasList () {
+      const lists = JSON.parse(this.setData.keyList)
+      this.sortData(lists)
+      lists.forEach(v => {
+        v.showForm = false
+      })
+      this.newWordsList = lists
+    },
+    onCloseForm: function (data) {
+      console.info(data)
+      this.newWordsList[this.proData.keyIndex].showForm = false
+    },
+    // 取消编辑
+    cancelEdit () {
+      this.dialog.editKey = false
+    },
+    // 添加关键词
+    addKeyFn () {
+      const t = this.getCurEdit()
+      console.info(t)
+      if (t) {
+        return toastFn('请先保存或取消正在操作的关键词组', 1500)
+      }
+      this.addShowForm = true
+    },
+    // 删除单个关键词(打开确认弹框)
+    deleteKeyFn (i) {
+      this.dialog.delKey = true
+      this.delIndex = i
+    },
+    confirmDeleteKeyFn () {
+      // 需用JSON.parse、JSON.stringify深拷贝原数组数据
+      const data = this.newWordsList
+      if (!data) return
+      data.splice(this.delIndex, 1)
+      this.$emit('updateKey', data)
+      this.dialog.delKey = false
+    },
+    // 编辑单个关键词
+    editKeyFn (v, i) {
+      const t = this.getCurEdit()
+      console.info(t)
+      if (t) {
+        return toastFn('请先保存或取消正在操作的关键词组', 1500)
+      } else {
+        console.info(i)
+        v.showForm = true
+        this.proData.ways = 'edit'
+        this.proData.key = v.key
+        this.proData.notkey = v.notkey
+        this.proData.appendkey = v.appendkey
+        this.proData.keyIndex = i
+      }
+    },
+    // 清空传值
+    clearPropsData () {
+      this.proData.key = []
+      this.proData.notkey = []
+      this.proData.appendkey = []
+    },
+    // 修改关键词dialog 保存数据
+    submitKeywords () {
+      // 需用JSON.parse、JSON.stringify深拷贝原数组数据
+      const data = JSON.parse(JSON.stringify(this.setData.keyList))
+      const refs = this.$refs.keyEditRef.cur
+      const keyArr = this.getKeyTotalArray()
+      const type = this.proData.ways
+      const obj = {
+        key: refs.key.split(' '),
+        notkey: refs.notkey,
+        appendkey: refs.appendkey
+      }
+      if (refs.key === '') {
+        return this.$message({
+          type: 'warning',
+          message: '关键词不能为空'
+        })
+      }
+      // 判断附加词是否重复
+      if (this.getArrIsRepeat(refs.appendkey)) {
+        return this.$message({
+          type: 'warning',
+          message: '设置的附加词重复,请调整后再添加'
+        })
+      }
+      // 判断排除词是否重复
+      if (this.getArrIsRepeat(refs.notkey)) {
+        return this.$message({
+          type: 'warning',
+          message: '设置的排除词重复,请调整后再添加'
+        })
+      }
+      if (type === 'add') {
+        if (keyArr.indexOf(refs.key) > -1) {
+          return this.$message({
+            type: 'warning',
+            message: '关键词不能重复'
+          })
+        }
+        data.push(obj)
+      } else if (type === 'edit') {
+        // 如果当前编辑的关键词和修改框里的关键词不相同 需校验是否重复
+        if (data[this.proData.keyIndex].key.toString() !== refs.key) {
+          if (keyArr.indexOf(refs.key) > -1) {
+            return this.$message({
+              type: 'warning',
+              message: '关键词不能重复'
+            })
+          }
+        }
+        data[this.proData.keyIndex].key = refs.key.split(' ')
+        data[this.proData.keyIndex].notkey = refs.notkey
+        data[this.proData.keyIndex].appendkey = refs.appendkey
+      }
+      // 通知父组件发请求修改并更新
+      console.info(data)
+      this.$emit('updateKey', data)
+      this.dialog.editKey = false
+    },
+    // 获取所有关键词的key的属性,并返回一个数组(主要用于判断添加关键词是否重复)
+    getKeyTotalArray () {
+      const data = JSON.parse(JSON.stringify(this.setData.keyList))
+      const keysArr = []
+      data.forEach((s) => {
+        if (s && s.key && Array.isArray(s.key)) {
+          keysArr.push(s.key.toString().replace(',', ' '))
+        }
+      })
+      return keysArr
+    },
+    // 判断附加词、排除词是否重复
+    getArrIsRepeat (arr) {
+      this.removeEmptyInput(arr)
+      return (new Set(arr)).size !== arr.length
+    },
+    // 输入框为空移除
+    removeEmptyInput (arr) {
+      for (let i = 0; i < arr.length; i++) {
+        // eslint-disable-next-line
+        if (arr[i] === '' || arr[i] === null || typeof (arr[i]) === undefined) {
+          arr.splice(i, 1)
+          i = i - 1
+        }
+      }
+      return arr
+    },
+    // 保存设置
+    saveSetting () {
+      window.localStorage.setItem('bus-key-group-SCOPE', JSON.stringify(this.subData))
+    }
+  }
+})

+ 201 - 38
src/web/staticres/js/pur-search-index-pc.js

@@ -24,6 +24,20 @@ function toastFn (text, duration) {
           $(".custom-toast").fadeOut().remove();
       },duration)
 }
+function formatKeywordsList (res) {
+    console.info(res)
+    // if (!res || !res.a_items) return
+    // const data = res.a_items
+    const newArr = []
+    res.forEach((v) => {
+      if (v.a_key) {
+        v.a_key.forEach((s) => {
+          newArr.push(s)
+        })
+      }
+    })
+    return newArr
+  }
 function ewmMoveHover() {
     var $div = $(".search-right-wx .search-right-wx-inner"),
         $parent = $(".search-right-wx");
@@ -99,6 +113,8 @@ var vm = new Vue({
                 children: [],
                 id: ''
             },
+            attentionName: [],
+            claimcheckName: [],
             showmoreBtn: true,
             industryListMap: [],
             getIndustryListMap: [],
@@ -137,6 +153,11 @@ var vm = new Vue({
             }
         }
     },
+    computed: {
+        purListShow: function () {
+            return this.searchContent.trim().length >= 2 && this.preSearch.list.length && (this.preSearch.focus || this.preSearch.hover)
+        },
+    },
     created: function () {
         this.initIndustryMap()
         this.qyCustmer()
@@ -146,8 +167,56 @@ var vm = new Vue({
     mounted: function () {
         this.initDOMEvents()
         ewmMoveHover()
+        this.$on('updatescope', (data) => {
+            this.setData.keyList = data
+        })
     },
     methods: {
+        updatescope(data) {
+            console.log(data)
+        },
+        // 采购单位模糊搜索
+        getPreSearchList: utils.debounce(function () {
+            var data = {
+                name: this.searchContent.trim()
+            }
+            if (data.name.length < 2) return
+            $.ajax({
+                url: '/entnicheNew/customer/buyer/association',
+                method: 'POST',
+                data: data,
+                success: function (res) {
+                    if (res.error_code === 0) {
+                        if (res.data) {
+                            this.preSearch.list = res.data.list || []
+                        }
+                    } else {
+                        this.checkLogin()
+                    }
+                }.bind(this)
+            })
+        }, 200),
+        goSearch(name) {
+            this.searchContent = name
+            this.preSearch.hover = false
+            this.listState.pageNum = 1
+            this.entArea = {}
+            this.indusList = []
+            this.indusList1 = []
+            this.industryListMap = []
+            this.qyCheck = []
+            this.doSearch()
+        },
+        checkLogin: function () {
+            var moduleOpen = $('body').hasClass('modal-open')
+            if (moduleOpen) return
+            if (!loginflag) {
+                $("#bidLogin").modal("show");
+            }
+        },
+        yeFan() {
+            location.href = '/jylab/purScopebusniess/index.html'
+        },
         // 整理数据列表
         initIndustryMap () {
             const industryListMap = []
@@ -243,6 +312,7 @@ var vm = new Vue({
           if (this.selectorType === 'line') {
             this.onChange()
           }
+          this.searchContent = ''
           this.doSearch()
         },
         // 检查是否全部选中了/全部不选中
@@ -335,11 +405,6 @@ var vm = new Vue({
             this.listState.pageNum = 1
             this.getList(1, 'search')
         },
-        getPreSearchList: utils.debounce(function () {
-            var name = this.searchContent.trim()
-            if (name.length < 2) return
-            // this.getList(1, 'search')
-        }, 200),
         getList: function (p, str) {
             let obj = {
                 entName: this.searchContent.trim(),
@@ -351,7 +416,6 @@ var vm = new Vue({
                 pageSize: this.listState.pageSize,
                 pageNum: this.listState.pageNum - 1,
             }
-            console.info(obj)
             this.listState.loading = true
             this.listState.loaded = false
             const _this = this
@@ -362,7 +426,7 @@ var vm = new Vue({
                 data: JSON.stringify(obj),
                 contentType:'application/json;charset=utf-8',
                 success: function (res) {
-                    if (res.error_code === 0) {
+                    if (res.error_code === 0 && $.isArray(res.data.list)) {
                         if (res.data.list.length > this.listState.pageSize) {
                             arrs = res.data.list.slice((p - 1) * this.listState.pageSize, (p - 1) * this.listState.pageSize + this.listState.pageSize) || []
                         } else {
@@ -371,7 +435,11 @@ var vm = new Vue({
                         arrs.forEach(v => {
                             arr1.push(v.Buyer)
                         })
-                        _this.attentionCheck(arrs, String(arr1))
+                        if (arrs.length == 0) {
+                            this.listState.list = []
+                        } else {
+                            _this.attentionCheck(arrs, String(arr1))
+                        }
                         this.listState.total = res.data.list.length
                         this.listState.loading = false
                     }
@@ -386,6 +454,13 @@ var vm = new Vue({
             this.listState.pageNum = p
             this.getList(p)
         },
+        goTitle(name) {
+            // const urls = this.$router.resolve({path:'/swordfish/page_big_pc/ent-bus_portrayal/' + name})
+            // window.open(urls.href, '_blank')
+            // const reff = this.$router.resolve({path:'/swordfish/page_big_pc/ent-bus_portrayal/' + name});
+            // window.open(reff.href,'_blank');
+            location.href = '/swordfish/page_big_pc/client_portrayal/' + name
+        },
         // 全选
         allChange() {
             const str1 = $('.check-all').prop('checked')
@@ -397,7 +472,6 @@ var vm = new Vue({
                 this.listState.list.forEach(v => {
                     arrs1.push(v.Buyer)
                 })
-                console.info(arrs1)
             } else {
                 str2.prop('checked', false)
                 arrs1 = []
@@ -418,6 +492,26 @@ var vm = new Vue({
                 $('.check-all').prop('checked', false)
             }
             this.selectName = arr1
+            var tempArray1 = this.arrDefault(this.selectName, this.attentionName)
+            var tempArray2 = this.arrDefault(this.selectName, this.claimcheckName)
+            console.info(tempArray1)
+            console.info(tempArray2)
+            if (tempArray1.length == 0) {
+                this.follow = true
+                if (this.selectName.length == 0) {
+                    this.follow = false
+                }
+            } else {
+                this.follow = false
+            }
+            if (tempArray2.length == 0) {
+                this.claim = true
+                if (this.selectName.length == 0) {
+                    this.claim = false
+                }
+            } else {
+                this.claim = false
+            }
         },
         // 是否关注企业
         attentionCheck(arrs, item) {
@@ -428,6 +522,9 @@ var vm = new Vue({
                 data: JSON.stringify({names: item}),
                 contentType:'application/json;charset=utf-8',
                 success: function (res) {
+                    if (res.data.names) {
+                        this.attentionName = res.data.names
+                    }
                     arrs.forEach(v => {
                         if (res.data.names.indexOf(v.Buyer) > -1) {
                             v.follow1 = true
@@ -447,6 +544,9 @@ var vm = new Vue({
                 data: JSON.stringify({names: item}),
                 contentType:'application/json;charset=utf-8',
                 success: function (res) {
+                    if (res.data.names) {
+                        this.claimcheckName = res.data.names
+                    }
                     arrs.forEach(v => {
                         if (res.data.names.indexOf(v.Buyer) > -1) {
                             v.claim1 = true
@@ -459,23 +559,23 @@ var vm = new Vue({
             })
         },
         // 关注、认领接口
-        attention(item, type, str, index) {
+        attention(item, type, str, per) {
             let obj = {}, _this = this
             if (type == 0) {
                 obj = {
-                    name: str ? item : item.Buyer,
-                    province: str ? '' : item.WProvince,
-                    city: str ? '' : item.WCity,
+                    name: per ? item : item.Buyer,
+                    province: per ? '' : item.WProvince,
+                    city: per ? '' : item.WCity,
                     mold: type,
-                    B: str ? !this.follow : item.follow1,
+                    B: per ? str : item.follow1,
                 }
             } else {
                 obj = {
-                    name: str ? item : item.Buyer,
-                    province: str ? '' : item.WProvince,
-                    city: str ? '' : item.WCity,
+                    name: per ? item : item.Buyer,
+                    province: per ? '' : item.WProvince,
+                    city: per ? '' : item.WCity,
                     mold: type,
-                    D: str ? !this.claim : item.claim1
+                    D: per ? str : item.claim1
                 }
             }
             console.info(obj)
@@ -486,12 +586,24 @@ var vm = new Vue({
                 contentType:'application/json;charset=utf-8',
                 success: function (res) {
                     if (res.data == false) {
-                        _this.$message({
-                            message: res.error_msg,
-                            type: 'warning'
-                        })
+                        if (res.error_msg) {
+                            _this.$message({
+                                message: res.error_msg,
+                                type: 'warning'
+                            })
+                        }
                     } else {
-            //             _this.getList(_this.listState.pageNum)
+                        _this.getList(_this.listState.pageNum)
+                        if (per && this.follow) {
+                            this.follow = false
+                        } else {
+                            this.follow = true
+                        }
+                        if (per && this.claim) {
+                            this.claim = false
+                        } else {
+                            this.claim = true
+                        }
                         // if (type == 1) {
                         //     $('.tags-box').css('display', 'block')
                         //     if (str == 'all') {
@@ -510,15 +622,53 @@ var vm = new Vue({
                 }.bind(this)
             })
         },
+        arrDefault(array1, array2) {//比较的两个数组
+            var tempArray1 = []
+            var tempArray2 = []
+            for(var i=0;i<array2.length;i++){
+                if (!tempArray1.hasOwnProperty(array1[i])) {
+                    tempArray1[array2[i]]=true;
+               }
+            }
+            for(var i=0;i<array1.length;i++){
+                if(!tempArray1[array1[i]]){
+                    tempArray2.push(array1[i])
+                }
+            }
+            return tempArray2
+        },
         allGuanren (type) {
             if (this.selectName.length == 0) {
                 toastFn('至少选择一项', 1500)
             } else {
-                this.attention(String(this.selectName), type, 'all')
+                var tempArray1 = this.arrDefault(this.selectName, this.attentionName)
+                var tempArray2 = this.arrDefault(this.selectName, this.claimcheckName)
+                if (type == 0) {
+                    if (tempArray1.length == 0) {// 批量取关
+                        this.follow = true
+                        this.attention(String(this.selectName), type, true, 'pi') 
+                    } else if (tempArray1.length == this.selectName.length) {// 批量关注
+                        this.follow = false
+                        this.attention(String(this.selectName), type, false, 'pi')
+                    } else {
+                        toastFn('关注和取消关注不能同时进行!', 2000)
+                    }
+                } else {
+                    console.info(this.selectName)
+                    if (tempArray2.length == 0) {// 批量取认领
+                        this.claim = true
+                        this.attention(String(this.selectName), type, true, 'pi') 
+                    } else if (tempArray2.length == this.selectName.length) {// 批量认领
+                        this.claim = false
+                        this.attention(String(this.selectName), type, false, 'pi')
+                    } else {
+                        toastFn('认领和取消认领不能同时进行!', 2000)
+                    }
+                }
             }
         },
-        guanAndren(item, type, index) {
-            this.attention(item, type, '', index)
+        guanAndren(item, type) {
+            this.attention(item, type, '')
         },
         caiIndus(val, index) {
             let arrIndex = this.caiIndex.indexOf(index);
@@ -539,12 +689,13 @@ var vm = new Vue({
                 this.qutive = true;
                 this.caiIndex = ["-2"];
             }
+            this.searchContent = ''
             this.doSearch()
         },
         quanBu() {
             this.caiIndex = [];
             this.qutive = true;
-            this.indusList = [""];
+            this.indusList = [];
             this.doSearch()
         },
         caiIndus1(val, index) {
@@ -566,12 +717,13 @@ var vm = new Vue({
                 this.qutive1 = true;
                 this.caiIndex1 = ["-2"];
             }
+            this.searchContent = ''
             this.doSearch()
         },
         quanBu1() {
             this.caiIndex1 = [];
             this.qutive1 = true;
-            this.indusList1 = [""];
+            this.indusList1 = [];
             this.doSearch()
         },
         cusMore() {
@@ -582,25 +734,35 @@ var vm = new Vue({
                 url: '/entnicheNew/customer/history',
                 method: 'GET',
                 success: function (res) {
-                    if (res.error_code == 0) {
+                    if (res.error_code == 0 && $.isArray(res.data.list)) {
                         this.qyData = res.data.list
                     }
                 }.bind(this)
             })  
         },
         qyChange() {
+            this.searchContent = ''
             this.doSearch()
         },
         jobRange() {
-            $.ajax({
-                url: '/entnicheNew/subscribe/key/get',
-                method: 'POST',
-                success: function (res) {
-                    if (res.error_code == 0) {
-                        this.jobData = res.data.data
-                    }
-                }.bind(this)
-            })  
+            const decide = window.localStorage.getItem('bus-key-group-SCOPE')
+            if (decide) {
+                this.jobData = JSON.parse(decide)
+            } else {
+                $.ajax({
+                    url: '/entnicheNew/subscribe/key/get',
+                    method: 'POST',
+                    success: function (res) {
+                        if ($.isArray(res.data.data) && res.error_code == 0) {
+                            res.data.data.forEach(v => {
+                                v.a_key.forEach(t => {
+                                    this.jobData.push(t)
+                                })
+                            })
+                        }
+                    }.bind(this)
+                })
+            }
         },
         keyChange(appendkey, key, notkey) {
             let str = String(appendkey.concat(key).concat(notkey)).replace(/,/g, ' ')
@@ -617,6 +779,7 @@ var vm = new Vue({
                 city = city.concat(area[key])
             }
             this.entArea = area
+            this.searchContent = ''
             this.doSearch()
         },
         isFilterShow: function () {

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 33 - 0
src/web/staticres/js/selector/bus-edit-key.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 464 - 0
src/web/staticres/pccss/pur-busniess-index-pc.css


+ 1 - 0
src/web/staticres/pccss/pur-search-index-pc.css

@@ -549,6 +549,7 @@
     display: flex;
     align-items: center;
     text-decoration: none;
+    cursor: pointer;
 }
 .search-content .tit-r .mesg-box .el-icon-jy-top-mesg {
     background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANHSURBVHgB7VdNUhNBFO43kzFUoSVHiDsqhjIsBFkRdgYXCScgOUHgBMAJEk5gOAGxLBnLDXFhxQoLWATLHfEGcUGVkEw/X89/pnucsYyli3xVkJ7pfq+/7n79vTeMzTHHnwFUL5fNXi7D9NcArIjIliQjYCOOrGP8MPavdlZH4b7c6eXSw4VJAwD3VLaOA+xMkO9/LW8MEwkJMgbol7HOwkB2lbkztsKkVsz+DRKvRFta1ASt1SgpLToug5lmKjKO0+I4e1fzHvNmv5aKjADNIU5Bml+eBKtec8KsJ6ptLZz1W0Sm4ZIq0f+WaGoIFbJ35qMjud5+0YrauuFw4y0o2i/tUBgqMjYs6Pj8mfaYBYvxd5Zi6CrRp+IkfknoX2BOKAn/HSHFLWMjL9ienn3eA0uXg9PgDYaOhCHj373XiPgNwJU20BqFtxeye4NVaFwwVyIhC4+ZBgf2eNCaJEzSEI+M3eRacOOAtxnTd90xVbKtSqY41e5E+2VhvH/QIpshSwU8+vJqre09DcobXfEulSWp/C2lnuh7iDPIm72aBlqFVipphSAMzDpxCPyeLWnVCDl+vL3LtoeRPDhHGiiPTJQQi5Q0QYPNuG3nFrwJx4/Kx6PsfYkDVEAkXNeGa1Y3NiWpCNn1THZ8rkp8CvPDQfm5FMT5D5+KumWcKjM/XXXk/EiVeAWkW7a4MG6mIyOAhwWzV5LIcOM8tgwhjRNyUjAvDlIRIl2rhoyPSZi2pD+q+IIhru64sHfGy+K28OERIO5wZtWn5URejEBGtQKvOdhe22MK2Arsih6EdiJcoInJLbS2IvHSLpj9c/ot2U9cFz66Yd8zzWVEbtN/QH6sDl7LjznQWCXaO2tCOb8dU6CFxVQVZzMlJJJr0AblxRAlrP+gSK4zLj+CXaHSdrdIEhIdoTM9uF2Uz1gioRDrqdWEYeCzwGdQfhiUn3x7ko4J6Vn+Xd/eqeXTXm7l/UWTjrXmjeecncjTRzB1C1KAnNbDim3XUKJsSQDFT/u6vFaPvpd2iD596qqzjXE6jKYPR4ETShDSMVXpoSQkrqr4ogyLn+zQETxyuqrqHpTXD8U3HQX5iS+GziK7QlgHL9d35qXHHH8LPwE7rHWiN49TqgAAAABJRU5ErkJggg==) no-repeat;

+ 1 - 1
src/web/templates/big-member/wx/meta.html

@@ -19,7 +19,7 @@
   if (typeof window._jyGlobal !== 'object') { window._jyGlobal = {} }
   try { window._jyGlobal.baseURL = {{Msg "seo" "buryingPointUrl"}} } catch (e) { window._jyGlobal.baseURL = '' }
 </script>
-<script src='{{Msg "seo" "cdn"}}/common-module/track/j-track.min.js?v={{Msg "seo" "mod_version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/track/j-track.min.js?v={{Msg "seo" "version"}}'></script>
 <!--E-meta-->
 
 <!--S-必定会使用的资源-->

+ 1 - 1
src/web/templates/big-member/wx/page_unit_portrayal.html

@@ -23,7 +23,7 @@
     if (typeof window._jyGlobal !== 'object') { window._jyGlobal = {} }
     try { window._jyGlobal.baseURL = {{Msg "seo" "buryingPointUrl"}} } catch (e) { window._jyGlobal.baseURL = '' }
     </script>
-    <script src='{{Msg "seo" "cdn"}}/common-module/track/j-track.min.js?v={{Msg "seo" "mod_version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/common-module/track/j-track.min.js?v={{Msg "seo" "version"}}'></script>
     <script src="/big-member/js/rem.js"></script>
     <!--S-当前页面的css资源-->
     <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />

+ 1 - 1
src/web/templates/common/pnc.html

@@ -54,7 +54,7 @@
     });
   }
 </script>
-<script src='{{Msg "seo" "cdn"}}/common-module/track/j-track.min.js?v={{Msg "seo" "mod_version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/track/j-track.min.js?v={{Msg "seo" "version"}}'></script>
 {{Html `<!--[if lt IE 9]><script src="{{Msg "seo" "cdn"}}/js/jquery.js?v={{Msg "seo" "version"}}"><![endif]-->`}}
 <script src="{{Msg "seo" "cdn"}}/js/jquery.cookie.js"></script>
 <script src="{{Msg "seo" "cdn"}}/js/bootstrap.min.js"></script>

+ 1 - 1
src/web/templates/common/weixin.html

@@ -4,4 +4,4 @@
   if (typeof window._jyGlobal !== 'object') { window._jyGlobal = {} }
   try { window._jyGlobal.baseURL = {{Msg "seo" "buryingPointUrl"}} } catch (e) { window._jyGlobal.baseURL = '' }
 </script>
-<script src='{{Msg "seo" "cdn"}}/common-module/track/j-track.min.js?v={{Msg "seo" "mod_version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/track/j-track.min.js?v={{Msg "seo" "version"}}'></script>

+ 1 - 1
src/web/templates/frontRouter/pc/page_big_pc/sess/index.html

@@ -36,7 +36,7 @@
     <script type="systemjs-importmap" crossorigin="anonymous">
       {
         "imports": {
-          "app": "http://127.0.0.1:8080/js/app.js?v={{Msg "seo" "big_pc_v"}}",
+          "app": "/page_big_pc/js/app.js?v={{Msg "seo" "big_pc_v"}}",
           "single-spa": "https://cdn-common.jianyu360.com/cdn/lib/single-spa/4.3.7/lib/system/single-spa.min.js",
           "vue": "https://cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js",
           "vue-router": "https://cdn-common.jianyu360.com/cdn/lib/vue-router/3.1.5/vue-router.min.js",

+ 2 - 1
src/web/templates/pc/biddetail_rec.html

@@ -1249,6 +1249,7 @@ var ucbs_source="pc_rec",ucbsId="{{.T.obj.ucbsId}}";
 			bidmember = res.data.member
 			entniche = res.data.entniche
 			vip = res.data.vip
+      privatedata = res.data.privatedata
 			var subType = {{.T.obj.subtype}}
 			// if(subType == '采购意向' && !bidmember && !entniche && vip <=0){
 			// 	$(".com-prebuilt").removeClass("hidden");
@@ -1258,7 +1259,7 @@ var ucbs_source="pc_rec",ucbsId="{{.T.obj.ucbsId}}";
 				$(".tip-box .tip-text").eq(0).text('采购意向项目全公开,抢先获知采购项目需求,')
 				$(".tip-box .tip-text").eq(1).text('提前主动介入,中标几率更高!')
 			}
-			if ((subType == '拟建' || subType == '采购意向') && !bidmember && !entniche && vip <=0){
+			if ((subType == '拟建' || subType == '采购意向') && !bidmember && !entniche && vip <=0 && !privatedata){
 				$(".com-prebuilt").removeClass("hidden");
 				$(".com-prebuilt").css('height', '408px')
 				$('.original-text').remove()

+ 1 - 1
src/web/templates/pc/entsearchindex.html

@@ -181,7 +181,7 @@
                         <el-tabs v-model="tabActive">
                             <el-tab-pane label="招标搜索" name="zb"></el-tab-pane>
                             <el-tab-pane label="企业搜索" name="qy"></el-tab-pane>
-                            <el-tab-pane label="采购单位搜索" name="cgdw" v-if="industryShow"></el-tab-pane>
+                            <el-tab-pane label="采购单位搜索" name="cgdw" v-show="industryShow"></el-tab-pane>
                         </el-tabs>
                     </div>
                 </div>

+ 84 - 538
src/web/templates/pc/purScopebusniess.html

@@ -11,20 +11,19 @@
 		<link href="{{Msg "seo" "cdn"}}/css/pc.css?v={{Msg "seo" "version"}}" rel="stylesheet" />
 		<link href="{{Msg "seo" "cdn"}}/css/dev2/reset_pc.css?v={{Msg "seo" "version"}}" rel="stylesheet" />
 		<link href="{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}" rel="stylesheet" />
-
         <script src="{{Msg "seo" "cdn"}}/js/jquery.cookie.js"></script>
 		<script src="{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}"></script>
-
         <link href="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/theme-chalk/index.css" rel="stylesheet" />
         <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/ele-reset.css?v={{Msg "seo" "version"}}'>
-        <!-- <link href='{{Msg "seo" "cdn"}}/css/dev2/newBidSearch.css?v={{Msg "seo" "version"}}' rel="stylesheet"> -->
         <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/selector/selector.css?v={{Msg "seo" "version"}}'>
-        <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/pccss/pur-search-index-pc.css?v={{Msg "seo" "version"}}'>
+        <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/pccss/pur-busniess-index-pc.css?v={{Msg "seo" "version"}}'>
         <style>
             .search-container {
                 line-height: 1;
                 padding-top: 64px;
+                padding-bottom: 56px;
                 min-height: calc(100vh - 364px);
+                background-color: #f5f5fb;
             }
         </style>
 	</head>
@@ -32,238 +31,92 @@
 	<body>
 	{{include "/common/pchead.html"}}
 	<section class="search-container">
-        <div class="vue-search-container" id="pur-search-container" v-cloak>
-            <div class="search-header">
-                <div class="search-header-content w">
-                    <div class="search-header-top">
-                        <div class="input-container flex">
-                            <el-input
-                                placeholder="输入采购单位名称"
-                                v-model.trim="searchContent"
-                                clearable
-                                @focus="preSearch.focus=true"
-                                @blur="preSearch.focus=false"
-                                @input="getPreSearchList"
-                                @keyup.enter.native="doSearch">
-                                <template slot="prefix">
-                                    <div class="input-prefix-icon">
-                                        <img src="/images/biddingSearch/search-icon1.png">
-                                    </div>
-                                </template>
-                                <template slot="append">
-                                    <div class="search-button no-select" @click="doSearch">搜 索</div>
-                                </template>
-                            </el-input>
-                            <div class="filter-button no-select" @click="isFilterShow">
-                                <span>筛选</span>
-                                <span class="el-icon-arrow-up" :class="filterShow ? '' : 'rotate180'"></span>
-                            </div>
-                        </div>
-                        <div class="search-right-wx">
-                            <img src="{{Msg "seo" "cdn"}}/images/biddingSearch/sea-right-wx.png" />
-                            <div class="search-right-wx-inner">
-                                <div class="wx-inner-title">扫码关注剑鱼标讯</div>
-                                <div class="wx-inner-ewm">
-                                    <img id="keyImg" src="/front/share/{{.T.shareid}}"/>
-                                </div>
-                                <div class="wx-inner-bottom">微信扫一扫<br>随时随地掌握招标信息</div>
-                            </div>
-                        </div>
+        <div class="vue-busniess-container" id="pur-busniess-container" v-cloak>
+            <div class="scope-config">
+                <!-- 关键词列表 -->
+                <div class="classify">
+                    <div class="key-title">
+                      <span>${setData.title}</span>
                     </div>
-                    <div class="search-header-bottom">
-                        <el-tabs v-model="tabActive">
-                            <el-tab-pane label="招标搜索" name="zb"></el-tab-pane>
-                            <el-tab-pane label="企业搜索" name="qy"></el-tab-pane>
-                            <el-tab-pane label="采购单位搜索" name="cgdw"></el-tab-pane>
-                        </el-tabs>
-                    </div>
-                </div>
-            </div>
-            <div class="search-content w">
-                <div class="tit-r">
-                    <div class="mesg-box">
-                        <i class="el-icon-jy-top-mesg"></i>
-                        <span>业务范围设置</span>
-                    </div>
-                </div>
-                <div class="selector-card-container search-filters">
-                    <div class="selector-card">
-                        <div class="selector-card-header">选择区域:</div>
-                        <div class="selector-card-content">
-                            <area-city-component @change="areaCityChange"></area-city-component>
+                    <div class="classify-list">
+                      <div class="classify-content" v-if="newWordsList && newWordsList.length > 0">
+                        <div class="add-words-box" @click="addKeyFn()" v-if="!addShowForm" key="add">+新增关键词组</div>
+                        <div style="width:100%;" v-else key="add">
+                          <Edit
+                            :datas="newWordsList"
+                            title="新增"
+                            :keywords="{key:[], appendkey:[],notkey:[],showForm: true,matchway: 1}"
+                            :keyIndex="newWordsList.length"
+                            @closeform="addShowForm = false"
+                            @updatescope="onUpdatescope"
+                          >
+                          </Edit>
                         </div>
-                    </div>
-                    <!--行业分类-->
-                    <div class="industry-lis-t">
-                        <div class="indus-tit">行业分类:</div>
-                        <div class="selector-content" :class="{ 'no-more': !showMore }">
-                            <div class="select-group-container" >
-                            <div class="select-group-header"
-                                v-show="!showMore"
-                                v-for="(item, index) in industryListMap"
-                                :key="index+'A'"
-                                :class="{
-                                    'right-line': showMore
-                                }">
-                                <button
-                                class="j-button-item"
-                                :class="{
-                                    active: item.selected,
-                                    [item.id]: true,
-                                    'button-level-0': item.level === 0,
-                                    'button-level-1': item.level === 1,
-                                    'all': item.level === 0,
-                                    'bgc': item.level === 1
-                                }"
-                                @click="changeIndustryState(item)"
-                                >${ item.name }</button>
-                            </div>
-                            <div class="select-group-header"
-                                v-show="showMore"
-                                v-for="(item, index) in getIndustryListMap"
-                                :key="index+'B'"
-                                :class="{
-                                    'right-line': showMore
-                                }">
-                                <button
-                                class="j-button-item"
-                                :class="{
-                                    active: item.selected,
-                                    [item.id]: true,
-                                    'button-level-0': item.level === 0,
-                                    'button-level-1': item.level === 1,
-                                    'all': item.level === 0,
-                                    'bgc': item.level === 1
-                                }"
-                                @click="changeIndustryState(item)"
-                                >${ item.name }</button>
+                        <div class="list" v-for="(v, i) in newWordsList" :key="'0' + i" style="width:100%;">
+                          <Edit
+                            :datas="newWordsList"
+                            title="修改"
+                            :keywords="v"
+                            :keyindex="i"
+                            @closeform="onCloseForm"
+                            @updatescope="onUpdatescope"
+                            v-if="v.showForm" key="edit">
+                          </Edit>
+                          <div class="list-box" v-else key="edit">
+                            <div class="list-left yellow-box" v-if="v.matchway">模糊</div>
+                            <div class="list-left blue-box" v-else>精准</div>
+                            <div class="list-middle">
+                              <div class="list-keywords" v-if="v.appendkey">
+                                ${v.key.join(' ') + ' ' +  v.appendkey.join(' ')}
+                              </div>
+                              <div class="list-keywords" v-else >${v.key.join(' ')}</div>
+                              <p class="list-notkey" v-if="v.notkey && v.notkey.length > 0">排除词: ${v.notkey.join(' ')}</p>
                             </div>
+                            <div class="list-right">
+                              <span class="icon-edit" @click="editKeyFn(v, i)"></span>
+                              <span class="icon-delete" @click="deleteKeyFn(i)"></span>
                             </div>
+                          </div>
                         </div>
-                        <span class="action-button show-more" v-if="showmoreBtn" @click="showMore = !showMore">
-                            <span class="action-text">${ showMore ? '收起' : '更多' }</span>
-                            <span class="el-icon-arrow-down" :class="showMore ? 'rotate180' : ''"></span>
-                        </span>
-                    </div>
-                    <!-- 客户分类 -->
-                    <div class="customer-card industry bus-card">
-                        <div class="leftTitle r-industry">客户分类:</div>
-                        <div class="right_msg">
-                            <span class="spa" :class="{g_active:qutive}" @click="quanBu('全部')">全部</span>
-                            <span 
-                                v-for="(item,index) in indusData" 
-                                :key="item" 
-                                class="spa" 
-                                :class="{'g_active':caiIndex.indexOf(index)>-1}"
-                                @click="caiIndus(item,index)"
-                            >${item}</span>
-                        </div>
-                        <div class="stops cus-more">更多</div>
+                      </div>
+                      <div v-else>
+                        <Edit
+                            title="新增"
+                            :datas="newWordsList"
+                            :keywords="{key:[], appendkey:[],notkey:[],showForm: true,matchway:1}"
+                            :keyIndex="newWordsList.length"
+                            @closeform="addShowForm = false"
+                            @updatescope="onUpdatescope"
+                          >
+                          </Edit>
+                      </div>
                     </div>
-                    <!-- 业务范围 -->
-                    <div class="customer-card industry job-card">
-                        <div class="leftTitle r-industry">业务范围:</div>
-                        <div class="right_msg">
-                            <span class="spa" :class="{g_active:qutive1}" @click="quanBu1('全部')">全部</span>
-                            <span 
-                                v-for="(item,index) in jobData" 
-                                :key="index" 
-                                class="spa" 
-                                :class="{'g_active':caiIndex1.indexOf(index)>-1}"
-                                @click="caiIndus1(item.a_key,index)"
-                            >
-                                <i v-for="(ite,indx) in item.a_key" :key="indx">${keyChange(ite.appendkey,ite.key,ite.notkey)}</i>
-                            </span>
+                    <!-- 删除关键词dialog -->
+                    <el-dialog
+                      custom-class="sub-dialog small-dialog"
+                      :visible.sync="dialog.delKey"
+                      :close-on-click-modal="false"
+                      :show-close="false"
+                      top="30vh"
+                      center
+                      width="380px"
+                      v-if="dialog.delKey"
+                    >
+                      <div class="delete-class">
+                        <div class="delete-class-header">删除关键词组</div>
+                        <div class="delete-class-content">确定删除该关键词组吗?</div>
+                        <div class="delete-class-footer">
+                          <el-button type="primary" class="confirm" @click="confirmDeleteKeyFn">确定</el-button>
+                          <el-button class="cancel" @click="dialog.delKey = false">取消</el-button>
                         </div>
-                        <!-- <div class="stops job-more">更多</div> -->
-                    </div>
-                    <!-- 企业历史客户 -->
-                    <div class="qy-card">
-                        <div class="leftTitle r-industry">企业历史客户:</div>
-                        <el-checkbox-group v-model="qyCheck" @change="qyChange">
-                            <el-checkbox v-for="(item, index) in qyData" :label="item">${item}</el-checkbox>
-                        </el-checkbox-group>
-                        <!-- <div class="stops qy-more">更多</div> -->
-                    </div>
+                      </div>
+                    </el-dialog>
                 </div>
-                <div class="search-pur-container">
-                    <div class="list-header">
-                        <el-checkbox v-model="allChecked" @change="allChange">客户列表</el-checkbox>
-                        <div class="r-cont">
-                            <div class="img-c" @click="allGuanren(0)">
-                                <img src='{{Msg "seo" "cdn"}}/images/focused.png' v-if="follow">
-                                <img src='{{Msg "seo" "cdn"}}/images/focus.png' v-else>
-                                <i v-if="follow">已关注</i>
-                                <i v-else>关注</i>
-                            </div>
-                            <div class="img-c" @click="allGuanren(1)">
-                                <img src='{{Msg "seo" "cdn"}}/images/renling_active.png' v-if="claim" style="margin-left: 16px;">
-                                <img src='{{Msg "seo" "cdn"}}/images/renling.png' v-else style="margin-left: 16px;">
-                                <i v-if="claim">已认领</i>
-                                <i v-else>认领</i>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="pur-info-list" v-loading="listState.loading">
-                        <div class="list-item" v-for="(item, index) in listState.list" :key="index">
-                            <div class="list-header pur-top">
-                                <div class="tit">
-                                    <!-- <el-checkbox v-model="singleChecked" @change="singleChange"></el-checkbox> -->
-                                    <input class="custom-checkbox title-text-checkbox" name="bus-list" type="checkbox" dataid="" />
-                                    <div class="img-tit">${item.Buyer}</div>
-                                </div>
-                                <div class="r-cont">
-                                    <div class="img-c" @click="guanAndren(item, 0)">
-                                        <img src='{{Msg "seo" "cdn"}}/images/focused.png' v-if="item.follow1">
-                                        <img src='{{Msg "seo" "cdn"}}/images/focus.png' v-else>
-                                        <i v-if="item.follow1">已关注</i>
-                                        <i v-else>关注</i>
-                                    </div>
-                                    <div class="img-c" @click="guanAndren(item, 1)">
-                                        <img src='{{Msg "seo" "cdn"}}/images/renling_active.png' v-if="item.claim1" style="margin-left: 16px;">
-                                        <img src='{{Msg "seo" "cdn"}}/images/renling.png' v-else style="margin-left: 16px;">
-                                        <i v-if="item.claim1">已认领</i>
-                                        <i v-else>认领</i>
-                                    </div>
-                                </div>
-                            </div>
-                            <div class="pur-bot">
-                                <span>项目数量:<i>${item.PNCount || '-'}</i></span>
-                                <span>项目总金额:<i>${moneyUnit(item.Budget) || '-'}</i></span>
-                                <span>所在地:<i>${item.WProvince || '-'} ${item.WCity || ''}</i></span>
-                            </div>
-                        </div>
-                        <!-- 自定义标签弹框 -->
-                        <div class="tags-box">
-                            <div class="tags-inputs">
-                                <div class="tag-input">
-                                    <div class="tag-labels"></div>
-                                    <input type="text" class="clear-input" maxlength="5" oninput="this.value=this.value.replace(/\s+/g,'')">
-                                    <div class="tag-placeholder">新增标签回车保存</div>
-                                </div>
-                                <div class="add-tag-button">添加并使用</div>
-                            </div>
-                            <div class="tags-list clearfix"></div>
-                            <div class="tags-footer">
-                                <div class="tags-button button-confirm">确认添加</div>
-                                <div class="tags-button button-cancel">暂不添加</div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <div class="el-pagination-container">
-                    <el-pagination
-                        background
-                        layout="prev, pager, next, ->"
-                        :hide-on-single-page="true"
-                        :current-page="listState.pageNum"
-                        :page-size="listState.pageSize"
-                        :total="listState.total"
-                        @current-change="onPageChange"
-                    ></el-pagination>
+                <div>
+                  <div class="reset-tips">新增的关键词设置,将在登出时还原</div>
+                  <button type="button" class="save-btn" @click="saveSetting"><a href="/jylab/purSearch/index.html">保存设置</a></button>
                 </div>
             </div>
-            <div class="search-footer w"></div>
         </div>
     </section>
 
@@ -283,321 +136,14 @@
     <script src='{{Msg "seo" "cdn"}}/common-module/public/js/china-map-data.js'></script>
     <script src='{{Msg "seo" "cdn"}}/common-module/selector/js/provinceMap.js'></script>
     <script src='{{Msg "seo" "cdn"}}/js/selector/select-list-pc.js?v={{Msg "seo" "version"}}'></script>
-    <script src='{{Msg "seo" "cdn"}}/js/selector/area-city-pc.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/js/selector/bus-edit-key.js?v={{Msg "seo" "version"}}'></script>
     <script src='{{Msg "seo" "cdn"}}/js/selector/price-pc.js?v={{Msg "seo" "version"}}'></script>
     <script src='{{Msg "seo" "cdn"}}/js/selector/no-data-pc.js?v={{Msg "seo" "version"}}'></script>
-    <script src='{{Msg "seo" "cdn"}}/js/purSearch.js?v={{Msg "seo" "version"}}'></script>
-    <script src='{{Msg "seo" "cdn"}}/js/pur-search-index-pc.js?v={{Msg "seo" "version"}}1'></script>
-    <script type="text/javascript">
-        var industry = {{.T.industry}}!=null?{{.T.industry}}:"";
-        var industrylist = {{.T.industrylist}}!=null?{{.T.industrylist}}:"";
-        var sortArray = {{.T.sortArray}}!=null?{{.T.sortArray}}:"";
-        var selectPublishtime = {{.T.publishtime}}?{{.T.publishtime}}:"thisyear";
-        $(function() {
-            // 客户分类
-            $('.bus-card').find('.right_msg').css('height','22px')
-            $('.bus-card').find('.cus-more').click(function() {
-                var txts = $(this).html()
-                if (txts == '更多') {
-                    $(this).html('收起')
-                    $('.bus-card').find('.right_msg').css('height','auto')
-                } else {
-                    $(this).html('更多')
-                    $('.bus-card').find('.right_msg').css('height','22px')
-                }
-            })
-            // 自定义标签
-            // 标签输入框事件
-            $('.tags-box').click(function(e) {
-                e.stopPropagation()
-            })
-
-            $('.tag-input').click(function(e) {
-                e.stopPropagation()
-                $(this).children('.tag-placeholder').hide()
-                $(this).children('input').focus()
-            })
-            // 标签输入框回车事件
-            $('.tag-input .clear-input').keydown(function(event){
-                event.stopPropagation()
-                if (event.keyCode == 13) {
-                    if (!$('.tags-box').is(':hidden')) {
-                        $('.tags-inputs .add-tag-button').trigger('click')
-                    }
-                }
-            })
-            // 标签输入框失去焦点事件
-            $('.tag-input .clear-input').blur(function() {
-                if($('.tag-labels').children().length == 0 && $(this).val() == '') {
-                    $('.tag-placeholder').show()
-                }
-            })
-            // 添加标签按钮事件
-            $('.tags-inputs .add-tag-button').on('click', function () {
-                var input = $('.tag-input .clear-input')
-                if(input.val().length >= 2 && input.val().length < 6) {
-                    // ajax提交自定义标签
-                    addTagsAjax(input.val())
-                }
-            })
-            // 点击确定按钮,绑定标签
-            $('.tags-footer .button-confirm').on('click', function () {
-                if (!$('.tags-box').is(':hidden')){
-                var lids = ""
-                var lname = ""
-                $('.tags-item.tags-active').each(function() {
-                    if ($(this).attr('data-id')){
-                        if(lids != ""){
-                            lids += ",";
-                        }
-                        if(lname != "") {
-                            lname+= ",";
-                        }
-                        lids += $(this).attr('data-id');
-                        lname += $(this).text()
-                    }
-                })
-                var params = {
-                    lids: lids,
-                    laction: 'S',
-                    binfo: JSON.parse(sessionStorage.getItem('$save-tags-binfo'))
-                }
-
-                // 执行保存绑定标签操作
-                if (params.lids !== '') {
-                    saveChooseTags(params, function () {
-                    $('.tags-footer .button-cancel').trigger('click')
-                    })
-                }
-                }
-            })
-
-            $('.tags-footer .button-cancel').on('click', function () {
-                $('.tags-box').hide(function() {
-                // 标签弹框消失时 清除上次选择的标签分类
-                activeTags = []
-                $('.tag-labels').empty()
-                $('.clear-input').val('')
-                $('.tags-list').find('.tags-item').removeClass('tags-active')
-                $('.tag-placeholder').show()
-                })
-            })
-            var activeTags = []; //选中的自定义标签 作为全局变量使用
-            // 解绑自定义标签
-            function deleteInputTag(item) {
-                var index = $(item).parent().attr('data-index')
-                var id = $(item).parent().attr('data-id')
-                activeTags.splice(index, 1)
-                inputTagList()
-                $('.tags-item[data-id="' + id + '"]').removeClass('tags-active')
-            }
+    <!-- <script src='{{Msg "seo" "cdn"}}/js/purSearch.js?v={{Msg "seo" "version"}}'></script> -->
+    <script src='{{Msg "seo" "cdn"}}/js/pur-busniess-index-pc.js?v={{Msg "seo" "version"}}'></script>
 
-            function inputTagList () {
-                var ht = '';
-                $('.tag-labels').html(ht)
-                activeTags.forEach(function(v,i) {
-                    ht+='<span class="tag-label" data-index=' + i + ' data-id="' + v.lid + '">'
-                    ht+='<em>'+ v.lname + '</em>'
-                    ht+='<i class="tag-close" onclick="deleteInputTag(this)"></i>'
-                    ht+='</span>'
-                });
-                $('.tag-labels').html(ht)
-                if ($('.tag-labels').children('.tag-label').length > 0) {
-                    $('.tag-placeholder').hide()
-                }
-                checkTagDisabled()
-            }
-            // 渲染标签列表数据
-            function renderTagsList (data) {
-                if (data && data.length > 0) {
-                    var ht = '';
-                    data.forEach(function(v,i) {
-                        ht+='<span class="tags-item" data-count=' + v.count + ' data-id=' + v.lid + '>'+ v.lanme +'</span>'
-                    });
-                    $(".tags-list").html(ht)
-                    activeTags.forEach(function(s,j){
-                        $('.tags-list .tags-item[data-id="' + s.lid +  '"]').addClass('tags-active')
-                    })
-                    $('.tags-item').click(function(e) {
-                        e.stopPropagation()
-                        if ($(this).hasClass('disabled')) return
-                        var id = $(this).attr('data-id');
-                        var name = $(this).text()
-                        $(this).toggleClass('tags-active')
-                        if ($(this).hasClass('tags-active')) {
-                            activeTags.push({
-                                lid: id,
-                                lname: name
-                            })
-                            inputTagList ()
-                        } else {
-                            var newArr = activeTags.filter(function(item) {
-                                return item.lid != id
-                            })
-                            activeTags = newArr
-                            // console.log(activeTags,newArr, 'quxiao')
-                            inputTagList ()
-                        }
-
-                    })
-                }
-                inputTagList()
-            }
-            // 获取用户自定义标签
-            function getUserTags () {
-                $.ajax({
-                    type:'post',
-                    url:'/publicapply/bidcoll/getLabel?t=' + Date.now(),
-                    success: function(r){
-                    if (r.error_code == 0 && $.isArray(r.data)) {
-                        renderTagsList(r.data.reverse())
-                    }
-                    }
-                })
-            }
-            /*
-            保存或清除标签 ajax
-            params: {
-                lids: String 标签id(加密后),  非必传
-                lname: String 标签名称,  非必传
-                laction: String  用户行为:S添加或绑定标签;D删除标签  非必传
-                binfo: Array 招标信息数组(已收藏的招标信息) 非必传
-                bid: String 招标信息加密后id  必传
-            }
-            1:lids为空;lname不为空;laction=”S”;binfo数组不为空->新增标签并且绑定收藏信息
-            2:lids不为空;laction=”S”;binfo数组不为空->收藏信息绑定标签
-            3:lids不为空;laction=”D”;->删除标签 并解绑收藏的信息
-            */
-            function saveChooseTags(params, callback) {
-                $.ajax({
-                    type:'post',
-                    url:'/publicapply/bidcoll/label',
-                    contentType: "application/json",
-                    data: JSON.stringify(params),
-                    dataType:'json',
-                    success: function(r){
-                    if (r.data) {
-                        toastFn("标签绑定成功", 1000)
-                        callback && callback()
-                    }
-                    }
-                })
-            }
-            // 新增标签
-            function addTagsAjax (name) {
-                console.info('66666666')
-                $.ajax({
-                    type:'post',
-                    url:'/publicapply/bidcoll/addLabel',
-                    data: {
-                    name: name
-                    },
-                    dataType:'json',
-                    success: function(r){
-                    if (r.data) {
-                        $('.tag-input .clear-input').val('')
-                        // 添加标签成功后 绑定标签
-                        if (activeTags.length < 3) {
-                        activeTags.push({
-                            lid: r.data,
-                            lname: name
-                        })
-                        }
-                        getUserTags()
-                    } else {
-                        // toastFn(r.error_msg, 1000)
-                        toastFn('标签已经存在,无需添加', 1000)
-                    }
-                    }
-                })
-            }
-            function checkTagDisabled () {
-                if (activeTags.length >= 3) {
-                    // 禁用标签
-                    $('.tags-list').find('.tags-item:not(.tags-active)').addClass('disabled')
-                } else {
-                    // 解除禁用
-                    $('.tags-list').find('.disabled').removeClass('disabled')
-                }
-            }
-        })
-    </script>
-    <script type="text/javascript">
-        setTimeout(() => {
-            if(!vm.powerInfo.entniche && !vm.powerInfo.member && vm.powerInfo.vip <= 0) {
-                (window.slotbydup = window.slotbydup || []).push({
-                    id: "u6603900",
-                    container: "_u4m8od8j3s",
-                    async: true
-                });
-                getAjaxAdv()
-                var frames = document.getElementById("iframeu6603900_0");
-                console.log(frames, 'frames')
-    
-                IframeOnClick.track(frames, function() {
-                        jQuery(document).click();
-                });
-            }
-        }, 1000);
-            function getAjaxAdv () {
-                $.ajax({
-                  type: 'POST',
-                  url: '/publicapply/adLeague/exposure',
-                  data: {
-                    client: 'PC',
-                    id: 'ad2',
-                    position: '企业搜索列表页底部'
-                  },
-                  success: function(res) {
-                    console.log(res)
-                  }
-                })
-            }
-            var IframeOnClick = {
-                resolution: 200,
-                iframes: [],
-                interval: null,
-                Iframe: function() {
-                    this.element = arguments[0];
-                    this.cb = arguments[1];
-                    this.hasTracked = false;
-                },
-                track: function(element, cb) {
-                    this.iframes.push(new this.Iframe(element, cb));
-                    var _this = this;
-                        this.interval = setInterval(function() { _this.checkClick(); }, this.resolution);
-                },
-                checkClick: function() {
-                    if (document.activeElement) {
-                        var activeElement = document.activeElement;
-                        for (var i in this.iframes) {
-                            if (activeElement === this.iframes[i].element) { // user is in this Iframe
-                                if (this.iframes[i].hasTracked == false) {
-                                    this.iframes[i].cb.apply(window, []);
-                                    this.iframes[i].hasTracked = true;
-                                    $.ajax({
-                                        type: 'POST',
-                                        url: '/publicapply/adLeague/click',
-                                        data: {
-                                            client: 'PC',
-                                            id: 'ad2',
-                                            position: '企业搜索列表页底部'
-                                        },
-                                        success: function(res) {
-                                            console.log(res)
-                                        }
-                                    })
-                                }
-                            } else {
-                                this.iframes[i].hasTracked = false;
-                            }
-                        }
-                    }
-                }
-                };
-        </script>
-        <!-- 多条广告如下脚本只需引入一次 -->
-        <script type="text/javascript" src="//cpro.baidustatic.com/cpro/ui/cm.js" async="async" defer="defer"></script>
+    <!-- 多条广告如下脚本只需引入一次 -->
+    <script type="text/javascript" src="//cpro.baidustatic.com/cpro/ui/cm.js" async="async" defer="defer"></script>
 </body>
 
 </html>

+ 15 - 7
src/web/templates/pc/pursearchindex.html

@@ -58,6 +58,14 @@
                                 <span>筛选</span>
                                 <span class="el-icon-arrow-up" :class="filterShow ? '' : 'rotate180'"></span>
                             </div>
+                            <div class="pre-search-list" style="display: none;" v-show="purListShow" @mouseout="preSearch.hover=false" @mouseover="preSearch.hover=true">
+                                <div
+                                    class="pre-search-item ellipsis"
+                                    v-for="(item,index) in preSearch.list"
+                                    :key="index"
+                                    @click="goSearch(item.name)"
+                                    >${ item.name }</div>
+                            </div>
                         </div>
                         <div class="search-right-wx">
                             <img src="{{Msg "seo" "cdn"}}/images/biddingSearch/sea-right-wx.png" />
@@ -81,10 +89,10 @@
             </div>
             <div class="search-content w">
                 <div class="tit-r">
-                    <a class="mesg-box" href="/jylab/purScopebusniess/index.html" target="_blank">
+                    <span class="mesg-box" @click="yeFan">
                         <i class="el-icon-jy-top-mesg"></i>
                         <span>业务范围设置</span>
-                    </a>
+                    </span>
                 </div>
                 <div class="selector-card-container search-filters">
                     <div class="selector-card">
@@ -170,12 +178,11 @@
                                 :key="index" 
                                 class="spa" 
                                 :class="{'g_active':caiIndex1.indexOf(index)>-1}"
-                                @click="caiIndus1(item.a_key,index)"
-                            >
-                                <i v-for="(ite,indx) in item.a_key" :key="indx">${keyChange(ite.appendkey,ite.key,ite.notkey)}</i>
+                                @click="caiIndus1(item,index)"
+                            >${String(item.key)}
+                                <!-- <i v-for="(ite,indx) in item.a_key" :key="indx">${keyChange(ite.appendkey,ite.key,ite.notkey)}</i> -->
                             </span>
                         </div>
-                        <!-- <div class="stops job-more">更多</div> -->
                     </div>
                     <!-- 企业历史客户 -->
                     <div class="qy-card">
@@ -212,7 +219,7 @@
                             <div class="list-header pur-top">
                                 <div class="tit">
                                     <input class="custom-checkbox single-txt-checkbox" @click="singleChange()" name="bus-list" type="checkbox" :dataname="item.Buyer" />
-                                    <div class="img-tit">${item.Buyer}</div>
+                                    <div class="img-tit" @click="goTitle(item.Buyer)">${item.Buyer}</div>
                                 </div>
                                 <div class="r-cont">
                                     <div class="img-c" @click="guanAndren(item, 0)">
@@ -253,6 +260,7 @@
                         </div>
                     </div>
                 </div>
+                <no-data style="display: none;" v-show="listState.list.length === 0 && listState.loaded" tip-text="没有找到符合条件的企业"></no-data>
                 <div class="el-pagination-container">
                     <el-pagination
                         background

+ 1 - 1
src/web/templates/pc/supsearch.html

@@ -1595,7 +1595,7 @@ $(function(){
     type:'POST',
     url:'/entnicheNew/buy/whetherbuy',
     success:function (res) {
-      if (!res.isNew) {
+      if (res.data.isNew) {
         $("#pursearch").css('display', 'inline-block')
       } else {
         $("#pursearch").css('display', 'none')

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است