Browse Source

提交代码

wangxiaogang 3 years ago
parent
commit
5b1bff0f89

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: {
     methods: {
         industryTab() {
         industryTab() {
-            const _this = this
             $.ajax({
             $.ajax({
                 type:'POST',
                 type:'POST',
                 url:'/entnichenew/buy/whetherbuy',
                 url:'/entnichenew/buy/whetherbuy',
                 success:function (res) {
                 success:function (res) {
-                  if (res.isNew) {
-                    _this.industryShow = true
+                  if (res.data.isNew) {
+                    this.industryShow = true
                   } else {
                   } else {
-                    _this.industryShow = false
+                    this.industryShow = false
                   }
                   }
                 }
                 }
             })
             })

+ 2 - 1
src/web/staticres/js/login.js

@@ -337,7 +337,7 @@ function checkMenuForEnt () {
                         +"</div>" 
                         +"</div>" 
                     }
                     }
                     if(r.entnicheMenu){
                     if(r.entnicheMenu){
-                        if (r.isNew) {
+                        if (r.isNew == true) {
                             tempHtml+= "<div class=\"myorderDiv\" onclick=\"window.location.href='/entpc/newBus'\">"
                             tempHtml+= "<div class=\"myorderDiv\" onclick=\"window.location.href='/entpc/newBus'\">"
                                 +"<span>商机管理</span>"
                                 +"<span>商机管理</span>"
                                 +"</div>"
                                 +"</div>"
@@ -648,6 +648,7 @@ var signout = function(){
 				createWebSocket();
 				createWebSocket();
 				getNewShareId(mynum,true);*/
 				getNewShareId(mynum,true);*/
 			}
 			}
+            window.localStorage.removeItem('bus-key-group-SCOPE')
 		}
 		}
 	})
 	})
 }
 }

+ 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();
           $(".custom-toast").fadeOut().remove();
       },duration)
       },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() {
 function ewmMoveHover() {
     var $div = $(".search-right-wx .search-right-wx-inner"),
     var $div = $(".search-right-wx .search-right-wx-inner"),
         $parent = $(".search-right-wx");
         $parent = $(".search-right-wx");
@@ -99,6 +113,8 @@ var vm = new Vue({
                 children: [],
                 children: [],
                 id: ''
                 id: ''
             },
             },
+            attentionName: [],
+            claimcheckName: [],
             showmoreBtn: true,
             showmoreBtn: true,
             industryListMap: [],
             industryListMap: [],
             getIndustryListMap: [],
             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 () {
     created: function () {
         this.initIndustryMap()
         this.initIndustryMap()
         this.qyCustmer()
         this.qyCustmer()
@@ -146,8 +167,56 @@ var vm = new Vue({
     mounted: function () {
     mounted: function () {
         this.initDOMEvents()
         this.initDOMEvents()
         ewmMoveHover()
         ewmMoveHover()
+        this.$on('updatescope', (data) => {
+            this.setData.keyList = data
+        })
     },
     },
     methods: {
     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 () {
         initIndustryMap () {
             const industryListMap = []
             const industryListMap = []
@@ -243,6 +312,7 @@ var vm = new Vue({
           if (this.selectorType === 'line') {
           if (this.selectorType === 'line') {
             this.onChange()
             this.onChange()
           }
           }
+          this.searchContent = ''
           this.doSearch()
           this.doSearch()
         },
         },
         // 检查是否全部选中了/全部不选中
         // 检查是否全部选中了/全部不选中
@@ -335,11 +405,6 @@ var vm = new Vue({
             this.listState.pageNum = 1
             this.listState.pageNum = 1
             this.getList(1, 'search')
             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) {
         getList: function (p, str) {
             let obj = {
             let obj = {
                 entName: this.searchContent.trim(),
                 entName: this.searchContent.trim(),
@@ -351,7 +416,6 @@ var vm = new Vue({
                 pageSize: this.listState.pageSize,
                 pageSize: this.listState.pageSize,
                 pageNum: this.listState.pageNum - 1,
                 pageNum: this.listState.pageNum - 1,
             }
             }
-            console.info(obj)
             this.listState.loading = true
             this.listState.loading = true
             this.listState.loaded = false
             this.listState.loaded = false
             const _this = this
             const _this = this
@@ -362,7 +426,7 @@ var vm = new Vue({
                 data: JSON.stringify(obj),
                 data: JSON.stringify(obj),
                 contentType:'application/json;charset=utf-8',
                 contentType:'application/json;charset=utf-8',
                 success: function (res) {
                 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) {
                         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) || []
                             arrs = res.data.list.slice((p - 1) * this.listState.pageSize, (p - 1) * this.listState.pageSize + this.listState.pageSize) || []
                         } else {
                         } else {
@@ -371,7 +435,11 @@ var vm = new Vue({
                         arrs.forEach(v => {
                         arrs.forEach(v => {
                             arr1.push(v.Buyer)
                             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.total = res.data.list.length
                         this.listState.loading = false
                         this.listState.loading = false
                     }
                     }
@@ -386,6 +454,13 @@ var vm = new Vue({
             this.listState.pageNum = p
             this.listState.pageNum = p
             this.getList(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() {
         allChange() {
             const str1 = $('.check-all').prop('checked')
             const str1 = $('.check-all').prop('checked')
@@ -397,7 +472,6 @@ var vm = new Vue({
                 this.listState.list.forEach(v => {
                 this.listState.list.forEach(v => {
                     arrs1.push(v.Buyer)
                     arrs1.push(v.Buyer)
                 })
                 })
-                console.info(arrs1)
             } else {
             } else {
                 str2.prop('checked', false)
                 str2.prop('checked', false)
                 arrs1 = []
                 arrs1 = []
@@ -418,6 +492,26 @@ var vm = new Vue({
                 $('.check-all').prop('checked', false)
                 $('.check-all').prop('checked', false)
             }
             }
             this.selectName = arr1
             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) {
         attentionCheck(arrs, item) {
@@ -428,6 +522,9 @@ var vm = new Vue({
                 data: JSON.stringify({names: item}),
                 data: JSON.stringify({names: item}),
                 contentType:'application/json;charset=utf-8',
                 contentType:'application/json;charset=utf-8',
                 success: function (res) {
                 success: function (res) {
+                    if (res.data.names) {
+                        this.attentionName = res.data.names
+                    }
                     arrs.forEach(v => {
                     arrs.forEach(v => {
                         if (res.data.names.indexOf(v.Buyer) > -1) {
                         if (res.data.names.indexOf(v.Buyer) > -1) {
                             v.follow1 = true
                             v.follow1 = true
@@ -447,6 +544,9 @@ var vm = new Vue({
                 data: JSON.stringify({names: item}),
                 data: JSON.stringify({names: item}),
                 contentType:'application/json;charset=utf-8',
                 contentType:'application/json;charset=utf-8',
                 success: function (res) {
                 success: function (res) {
+                    if (res.data.names) {
+                        this.claimcheckName = res.data.names
+                    }
                     arrs.forEach(v => {
                     arrs.forEach(v => {
                         if (res.data.names.indexOf(v.Buyer) > -1) {
                         if (res.data.names.indexOf(v.Buyer) > -1) {
                             v.claim1 = true
                             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
             let obj = {}, _this = this
             if (type == 0) {
             if (type == 0) {
                 obj = {
                 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,
                     mold: type,
-                    B: str ? !this.follow : item.follow1,
+                    B: per ? str : item.follow1,
                 }
                 }
             } else {
             } else {
                 obj = {
                 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,
                     mold: type,
-                    D: str ? !this.claim : item.claim1
+                    D: per ? str : item.claim1
                 }
                 }
             }
             }
             console.info(obj)
             console.info(obj)
@@ -486,12 +586,24 @@ var vm = new Vue({
                 contentType:'application/json;charset=utf-8',
                 contentType:'application/json;charset=utf-8',
                 success: function (res) {
                 success: function (res) {
                     if (res.data == false) {
                     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 {
                     } 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) {
                         // if (type == 1) {
                         //     $('.tags-box').css('display', 'block')
                         //     $('.tags-box').css('display', 'block')
                         //     if (str == 'all') {
                         //     if (str == 'all') {
@@ -510,15 +622,53 @@ var vm = new Vue({
                 }.bind(this)
                 }.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) {
         allGuanren (type) {
             if (this.selectName.length == 0) {
             if (this.selectName.length == 0) {
                 toastFn('至少选择一项', 1500)
                 toastFn('至少选择一项', 1500)
             } else {
             } 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) {
         caiIndus(val, index) {
             let arrIndex = this.caiIndex.indexOf(index);
             let arrIndex = this.caiIndex.indexOf(index);
@@ -539,12 +689,13 @@ var vm = new Vue({
                 this.qutive = true;
                 this.qutive = true;
                 this.caiIndex = ["-2"];
                 this.caiIndex = ["-2"];
             }
             }
+            this.searchContent = ''
             this.doSearch()
             this.doSearch()
         },
         },
         quanBu() {
         quanBu() {
             this.caiIndex = [];
             this.caiIndex = [];
             this.qutive = true;
             this.qutive = true;
-            this.indusList = [""];
+            this.indusList = [];
             this.doSearch()
             this.doSearch()
         },
         },
         caiIndus1(val, index) {
         caiIndus1(val, index) {
@@ -566,12 +717,13 @@ var vm = new Vue({
                 this.qutive1 = true;
                 this.qutive1 = true;
                 this.caiIndex1 = ["-2"];
                 this.caiIndex1 = ["-2"];
             }
             }
+            this.searchContent = ''
             this.doSearch()
             this.doSearch()
         },
         },
         quanBu1() {
         quanBu1() {
             this.caiIndex1 = [];
             this.caiIndex1 = [];
             this.qutive1 = true;
             this.qutive1 = true;
-            this.indusList1 = [""];
+            this.indusList1 = [];
             this.doSearch()
             this.doSearch()
         },
         },
         cusMore() {
         cusMore() {
@@ -582,25 +734,35 @@ var vm = new Vue({
                 url: '/entnicheNew/customer/history',
                 url: '/entnicheNew/customer/history',
                 method: 'GET',
                 method: 'GET',
                 success: function (res) {
                 success: function (res) {
-                    if (res.error_code == 0) {
+                    if (res.error_code == 0 && $.isArray(res.data.list)) {
                         this.qyData = res.data.list
                         this.qyData = res.data.list
                     }
                     }
                 }.bind(this)
                 }.bind(this)
             })  
             })  
         },
         },
         qyChange() {
         qyChange() {
+            this.searchContent = ''
             this.doSearch()
             this.doSearch()
         },
         },
         jobRange() {
         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) {
         keyChange(appendkey, key, notkey) {
             let str = String(appendkey.concat(key).concat(notkey)).replace(/,/g, ' ')
             let str = String(appendkey.concat(key).concat(notkey)).replace(/,/g, ' ')
@@ -617,6 +779,7 @@ var vm = new Vue({
                 city = city.concat(area[key])
                 city = city.concat(area[key])
             }
             }
             this.entArea = area
             this.entArea = area
+            this.searchContent = ''
             this.doSearch()
             this.doSearch()
         },
         },
         isFilterShow: function () {
         isFilterShow: function () {

File diff suppressed because it is too large
+ 33 - 0
src/web/staticres/js/selector/bus-edit-key.js


File diff suppressed because it is too large
+ 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;
     display: flex;
     align-items: center;
     align-items: center;
     text-decoration: none;
     text-decoration: none;
+    cursor: pointer;
 }
 }
 .search-content .tit-r .mesg-box .el-icon-jy-top-mesg {
 .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;
     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/pc/entsearchindex.html

@@ -181,7 +181,7 @@
                         <el-tabs v-model="tabActive">
                         <el-tabs v-model="tabActive">
                             <el-tab-pane label="招标搜索" name="zb"></el-tab-pane>
                             <el-tab-pane label="招标搜索" name="zb"></el-tab-pane>
                             <el-tab-pane label="企业搜索" name="qy"></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>
                         </el-tabs>
                     </div>
                     </div>
                 </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/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"}}/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" />
 		<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/jquery.cookie.js"></script>
 		<script src="{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}"></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 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 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"}}/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>
         <style>
             .search-container {
             .search-container {
                 line-height: 1;
                 line-height: 1;
                 padding-top: 64px;
                 padding-top: 64px;
+                padding-bottom: 56px;
                 min-height: calc(100vh - 364px);
                 min-height: calc(100vh - 364px);
+                background-color: #f5f5fb;
             }
             }
         </style>
         </style>
 	</head>
 	</head>
@@ -32,238 +31,92 @@
 	<body>
 	<body>
 	{{include "/common/pchead.html"}}
 	{{include "/common/pchead.html"}}
 	<section class="search-container">
 	<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>
-                    <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>
-                    <!--行业分类-->
-                    <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>
+                            <div class="list-right">
+                              <span class="icon-edit" @click="editKeyFn(v, i)"></span>
+                              <span class="icon-delete" @click="deleteKeyFn(i)"></span>
                             </div>
                             </div>
+                          </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>
-                    <!-- 业务范围 -->
-                    <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>
-                        <!-- <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>
-                <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>
             </div>
-            <div class="search-footer w"></div>
         </div>
         </div>
     </section>
     </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/public/js/china-map-data.js'></script>
     <script src='{{Msg "seo" "cdn"}}/common-module/selector/js/provinceMap.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/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/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/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>
 </body>
 
 
 </html>
 </html>

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

@@ -58,6 +58,14 @@
                                 <span>筛选</span>
                                 <span>筛选</span>
                                 <span class="el-icon-arrow-up" :class="filterShow ? '' : 'rotate180'"></span>
                                 <span class="el-icon-arrow-up" :class="filterShow ? '' : 'rotate180'"></span>
                             </div>
                             </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>
                         <div class="search-right-wx">
                         <div class="search-right-wx">
                             <img src="{{Msg "seo" "cdn"}}/images/biddingSearch/sea-right-wx.png" />
                             <img src="{{Msg "seo" "cdn"}}/images/biddingSearch/sea-right-wx.png" />
@@ -81,10 +89,10 @@
             </div>
             </div>
             <div class="search-content w">
             <div class="search-content w">
                 <div class="tit-r">
                 <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>
                         <i class="el-icon-jy-top-mesg"></i>
                         <span>业务范围设置</span>
                         <span>业务范围设置</span>
-                    </a>
+                    </span>
                 </div>
                 </div>
                 <div class="selector-card-container search-filters">
                 <div class="selector-card-container search-filters">
                     <div class="selector-card">
                     <div class="selector-card">
@@ -170,12 +178,11 @@
                                 :key="index" 
                                 :key="index" 
                                 class="spa" 
                                 class="spa" 
                                 :class="{'g_active':caiIndex1.indexOf(index)>-1}"
                                 :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>
                             </span>
                         </div>
                         </div>
-                        <!-- <div class="stops job-more">更多</div> -->
                     </div>
                     </div>
                     <!-- 企业历史客户 -->
                     <!-- 企业历史客户 -->
                     <div class="qy-card">
                     <div class="qy-card">
@@ -212,7 +219,7 @@
                             <div class="list-header pur-top">
                             <div class="list-header pur-top">
                                 <div class="tit">
                                 <div class="tit">
                                     <input class="custom-checkbox single-txt-checkbox" @click="singleChange()" name="bus-list" type="checkbox" :dataname="item.Buyer" />
                                     <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>
                                 <div class="r-cont">
                                 <div class="r-cont">
                                     <div class="img-c" @click="guanAndren(item, 0)">
                                     <div class="img-c" @click="guanAndren(item, 0)">
@@ -253,6 +260,7 @@
                         </div>
                         </div>
                     </div>
                     </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">
                 <div class="el-pagination-container">
                     <el-pagination
                     <el-pagination
                         background
                         background

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

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

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