Browse Source

Merge branch 'master' into feature/v1.1.78

123456 1 year ago
parent
commit
75f81fd373

+ 49 - 3
src/assets/fonts/app/demo_index.html

@@ -54,6 +54,18 @@
       <div class="content unicode" style="display: block;">
           <ul class="icon_lists dib-box">
           
+            <li class="dib">
+              <span class="icon iconfont">&#xe60a;</span>
+                <div class="name">监控</div>
+                <div class="code-name">&amp;#xe60a;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe602;</span>
+                <div class="name">已监控</div>
+                <div class="code-name">&amp;#xe602;</div>
+              </li>
+          
             <li class="dib">
               <span class="icon iconfont">&#xe710;</span>
                 <div class="name">compress</div>
@@ -1128,9 +1140,9 @@
 <pre><code class="language-css"
 >@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1697789307940') format('woff2'),
-       url('iconfont.woff?t=1697789307940') format('woff'),
-       url('iconfont.ttf?t=1697789307940') format('truetype');
+  src: url('iconfont.woff2?t=1705912866856') format('woff2'),
+       url('iconfont.woff?t=1705912866856') format('woff'),
+       url('iconfont.ttf?t=1705912866856') format('truetype');
 }
 </code></pre>
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -1156,6 +1168,24 @@
       <div class="content font-class">
         <ul class="icon_lists dib-box">
           
+          <li class="dib">
+            <span class="icon iconfont icon-jiankong"></span>
+            <div class="name">
+              监控
+            </div>
+            <div class="code-name">.icon-jiankong
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-yijiankong"></span>
+            <div class="name">
+              已监控
+            </div>
+            <div class="code-name">.icon-yijiankong
+            </div>
+          </li>
+          
           <li class="dib">
             <span class="icon iconfont icon-compress"></span>
             <div class="name">
@@ -2767,6 +2797,22 @@
       <div class="content symbol">
           <ul class="icon_lists dib-box">
           
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-jiankong"></use>
+                </svg>
+                <div class="name">监控</div>
+                <div class="code-name">#icon-jiankong</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-yijiankong"></use>
+                </svg>
+                <div class="name">已监控</div>
+                <div class="code-name">#icon-yijiankong</div>
+            </li>
+          
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-compress"></use>

+ 11 - 3
src/assets/fonts/app/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 687854 */
-  src: url('iconfont.woff2?t=1697789307940') format('woff2'),
-       url('iconfont.woff?t=1697789307940') format('woff'),
-       url('iconfont.ttf?t=1697789307940') format('truetype');
+  src: url('iconfont.woff2?t=1705912866856') format('woff2'),
+       url('iconfont.woff?t=1705912866856') format('woff'),
+       url('iconfont.ttf?t=1705912866856') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,14 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-jiankong:before {
+  content: "\e60a";
+}
+
+.icon-yijiankong:before {
+  content: "\e602";
+}
+
 .icon-compress:before {
   content: "\e710";
 }

File diff suppressed because it is too large
+ 0 - 0
src/assets/fonts/app/iconfont.js


+ 14 - 0
src/assets/fonts/app/iconfont.json

@@ -5,6 +5,20 @@
   "css_prefix_text": "icon-",
   "description": "",
   "glyphs": [
+    {
+      "icon_id": "39063691",
+      "name": "监控",
+      "font_class": "jiankong",
+      "unicode": "e60a",
+      "unicode_decimal": 58890
+    },
+    {
+      "icon_id": "39063379",
+      "name": "已监控",
+      "font_class": "yijiankong",
+      "unicode": "e602",
+      "unicode_decimal": 58882
+    },
     {
       "icon_id": "37664626",
       "name": "compress",

BIN
src/assets/fonts/app/iconfont.ttf


BIN
src/assets/fonts/app/iconfont.woff


BIN
src/assets/fonts/app/iconfont.woff2


+ 6 - 0
src/data/service-list.js

@@ -90,6 +90,12 @@ export const serviceListData = [
         four: '100个',
         five: '500个'
       },
+      {
+        two: '业主监控',
+        three: '监控业主最新发布的招标动态,并通过微信、邮件实时推送信息提醒,便于企业了解业主实时动态、及时跟标。',
+        four: '100个',
+        five: '500个'
+      },
       {
         two: '企业情报监控',
         three: '监控企业工商变动信息、最新招标采购、中标、项目动态,并通过微信、邮件实时推送信息提醒,帮助企业了解竞争对手和合作伙伴的动向。',

+ 2 - 2
src/views/order/components/bigmember/Introduction.vue

@@ -50,7 +50,7 @@ export default {
       { name: '招标附件下载' },
       { name: '查看公告原文链接' },
       { name: '招标/采购进度监控(100个)' },
-      { name: '企业情报监控(100个)' },
+      { name: '业主/企业情报监控(100个)' },
       { name: '企业人脉信息' },
       { name: '业主人脉信息' },
       { name: '企业分析' },
@@ -63,7 +63,7 @@ export default {
         gold: 'gold'
       },
       { name: '招标/采购进度监控(500个)' },
-      { name: '企业情报监控(500个)' },
+      { name: '业主/企业情报监控(500个)' },
       { name: '数据导出(200条/天)' },
       { name: '潜在客户挖掘' },
       { name: '向业主唯一推荐' },

+ 13 - 6
src/views/push/PushSetting.vue

@@ -225,11 +225,12 @@ export default {
           label: '剑鱼将为您提供精准的消息推送服务'
         },
         { id: 2, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_follow_project',i_ratemode:1, title: '项目进度监控', label: '关注项目如有动态变更,将为您推送。' },
-        { id: 3, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_follow_ent', i_ratemode:1, title: '企业情报监控-企业中标动态', label: '关注企业一旦中标,会推送企业的中标项目、时间等公告信息。' },
-        { id: 4, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_entinfo', i_ratemode:1, title: '企业情报监控-企业工商变动', label: '关注的企业一旦工商情况有变动,将为您推送。' },
-        { id: 5, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_newproject_forecast', i_ratemode:1, title: '潜在项目预测', label: '通过大数据和AI智能分析预测到与您有关的潜在项目时,可及时收到提醒信息。' },
-        { id: 6, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_week_report', title: '周报', label: '根据为您推送的招标项目信息,提供每周多维度分析报告。' },
-        { id: 7, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_month_report', title: '月报', label: '根据为您推送的招标项目信息,提供每月多维度分析报告。' }
+        { id: 3, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_owner_monitor',i_ratemode:1, title: '业主监控', label: '监控业主一旦发布与“我的订阅”相关的招标动态,会推送业主的招标项目、时间等公告信息。' },
+        { id: 4, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_follow_ent', i_ratemode:1, title: '企业情报监控-企业中标动态', label: '关注企业一旦中标,会推送企业的中标项目、时间等公告信息。' },
+        { id: 5, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_entinfo', i_ratemode:1, title: '企业情报监控-企业工商变动', label: '关注的企业一旦工商情况有变动,将为您推送。' },
+        { id: 6, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_newproject_forecast', i_ratemode:1, title: '潜在项目预测', label: '通过大数据和AI智能分析预测到与您有关的潜在项目时,可及时收到提醒信息。' },
+        { id: 7, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_week_report', title: '周报', label: '根据为您推送的招标项目信息,提供每周多维度分析报告。' },
+        { id: 8, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_month_report', title: '月报', label: '根据为您推送的招标项目信息,提供每月多维度分析报告。' }
       ],
       pushCycle: [
         { id: 1, title: '实时推送', active: false },
@@ -273,7 +274,7 @@ export default {
       // 当前编辑推送时间的标识
       editTimesFlag: 'o_subset',
       // 可编辑推送时间的type
-      needEditTimesType: ['o_subset', 'o_follow_project', 'o_follow_ent', 'o_entinfo', 'o_newproject_forecast'],
+      needEditTimesType: ['o_subset', 'o_follow_project', 'o_owner_monitor','o_follow_ent', 'o_entinfo', 'o_newproject_forecast'],
       editResultTime: {
         o_subset: {
           ratemodeText: '实时推送',
@@ -287,6 +288,12 @@ export default {
           selectTimeSlot: [], // 每日推送选择的时间段
           ratemode: 1, // 当前选择的推送时间类型
         },
+        o_owner_monitor:{
+          ratemodeText: '实时推送',
+          times: '',
+          selectTimeSlot: [], // 每日推送选择的时间段
+          ratemode: 1, // 当前选择的推送时间类型
+        },
         o_follow_ent: {
           ratemodeText: '实时推送',
           times: '',

+ 224 - 125
src/views/search/result/buyer/index.vue

@@ -2,64 +2,45 @@
   <div class="j-container search-result-buyer top-radius">
     <div class="j-header">
       <van-dropdown-menu class="dropdown-menu-arrow" :close-on-click-outside="false" ref="dropdownMenu">
-        <van-dropdown-item ref="area" title="所在地" :title-class="selected.area ? 'selected' : ''" :lazy-render="false" get-container="body" @opened="openDropDown('area')">
+        <van-dropdown-item ref="area" title="所在地" :title-class="selected.area ? 'selected' : ''" :lazy-render="false"
+          get-container="body" @opened="openDropDown('area')">
           <DropdownLayout @cancel="onCancel('area')" @confirm="onConfirm('area')">
             <AreaCitySidebar ref="areaComponent" slot="main" v-model="cache.area"></AreaCitySidebar>
           </DropdownLayout>
         </van-dropdown-item>
-        <van-dropdown-item ref="buyer" title="采购单位类型" :title-class="selected.buyer ? 'selected' : ''" :lazy-render="false" get-container="body" @opened="openDropDown('buyer')">
+        <van-dropdown-item ref="buyer" title="采购单位类型" :title-class="selected.buyer ? 'selected' : ''" :lazy-render="false"
+          get-container="body" @opened="openDropDown('buyer')">
           <DropdownLayout @cancel="onCancel('buyer')" @confirm="onConfirm('buyer')">
             <BuyerClassSidebar ref="buyerComponent" slot="main" v-model="cache.buyer"></BuyerClassSidebar>
           </DropdownLayout>
         </van-dropdown-item>
-        <van-dropdown-item
-          ref="isContact"
-          :title-class="selected.isContact ? 'selected' : ''"
-          title="采购单位联系方式"
-          get-container="body"
-          @opened="openDropDown('isContact')">
-            <ScopeSelector
-              v-model="cache.isContact"
-              :options="isContactOptions"
-              :default-val="[0]"
-              :multiple="false"
-              ref="isContactComponent"
-              checkedIcon="duihao"
-              defaultIcon=""
-              @change="isContactChange">
-            </ScopeSelector>
+        <van-dropdown-item ref="isContact" :title-class="selected.isContact ? 'selected' : ''" title="采购单位联系方式"
+          get-container="body" @opened="openDropDown('isContact')">
+          <ScopeSelector v-model="cache.isContact" :options="isContactOptions" :default-val="[0]" :multiple="false"
+            ref="isContactComponent" checkedIcon="duihao" defaultIcon="" @change="isContactChange">
+          </ScopeSelector>
         </van-dropdown-item>
       </van-dropdown-menu>
     </div>
     <div class="j-main" ref="list">
-      <van-list v-model="listInfo.loading" :finished="listInfo.finished"  :finished-text="''" @load="onLoad()">
-        <buyer-cell
-          style="margin-bottom:8px;"
-          ref="buyerCell"
-          v-for="(item,index) in getBuyerList"
-          :key="item.entId"
-          :title="item.title"
-          :tags="item.tags"
-          :isFollow="item.isFollow"
-          :isClaim="item.isClaim"
-          tagKeyColor="#9B9CA3"
-          :showClaimAction="showClaimAction"
-          :showAttentionAction="showAttentionAction"
-          :action-split-line="true"
-          claimText="认领客户"
-          @cellClick="onClickList(item)"
-          @action-left="onClickFollow(item, index)"
-          @action-right="onClickClaim(item, index)"
-        >
+      <van-list v-model="listInfo.loading" :finished="listInfo.finished" :finished-text="''" @load="onLoad()">
+        <buyer-cell style="margin-bottom:8px;" ref="buyerCell" v-for="(item, index) in getBuyerList" :key="item.entId"
+          :title="item.title" :tags="item.tags" :isFollow="item.isFollow" :isClaim="item.isClaim" tagKeyColor="#9B9CA3"
+          :showClaimAction="showClaimAction" :showAttentionAction="showAttentionAction" :action-split-line="true"
+          claimText="认领客户" checkedFollowIcon="yijiankong" followIcon="jiankong" checkedFollowText="已监控" followText="监控"
+          @cellClick="onClickList(item)" @action-left="onClickFollow(item, index)"
+          @action-right="onClickClaim(item, index)">
           <template v-slot:custom-icon="option">
             <div class="ent-info-head">{{ option.title ? getShortName(option.title) : '' }}</div>
           </template>
         </buyer-cell>
       </van-list>
-      <AppEmpty v-if="listInfo.buyerList && listInfo.buyerList.length === 0 && !listInfo.loading" class="empty-container">未搜索到符合条件的采购单位</AppEmpty>
+      <AppEmpty v-if="listInfo.buyerList && listInfo.buyerList.length === 0 && !listInfo.loading" class="empty-container">
+        未搜索到符合条件的采购单位</AppEmpty>
     </div>
     <div v-if="openKeepDialog">
-      <KeepLabel ref="keepLabel" :getLabelAction="onGetLabelAction" :addLabelAction="onAddLabelAction" @submit="onSubmitKeepLabel"></KeepLabel>
+      <KeepLabel ref="keepLabel" :getLabelAction="onGetLabelAction" :addLabelAction="onAddLabelAction"
+        @submit="onSubmitKeepLabel"></KeepLabel>
     </div>
   </div>
 </template>
@@ -98,11 +79,11 @@ export default {
   },
   inject: {
     topSearch: {
-      default: () => {}
+      default: () => { }
     }
   },
   mixins: [setPageTdk],
-  data () {
+  data() {
     return {
       maxHeight: 0,
       /**
@@ -159,18 +140,19 @@ export default {
       'isNewBusiness',
       'isLogin',
       'isMember',
-      'isEntService'
+      'isEntService',
+      'isFree'
     ]),
     // 是否有认领操作(新商机管理或者商机管理服务)
-    showClaimAction () {
-      return (this.isNewBusiness || this.isEntService) && Boolean(this.isLogin)
+    showClaimAction() {
+      return (this.isNewBusiness || this.isEntService) && Boolean(this.isLogin) && !this.$envs.inWX
     },
-    // 是否有关注操作(大会员或者新商机管理)
-    showAttentionAction () {
-      return (this.isMember || this.isNewBusiness) && Boolean(this.isLogin)
+    // 是否有监控操作
+    showAttentionAction() {
+      return Boolean(this.isLogin)
     },
     // 采购单位单元格数据处理
-    getBuyerList () {
+    getBuyerList() {
       const list = JSON.parse(JSON.stringify(this.listInfo.buyerList))
       const arr = list.map(v => {
         if (v.province && v.city && v.province.indexOf(v.city) > -1) {
@@ -200,7 +182,7 @@ export default {
     }
   },
   watch: {
-    'topSearch.input' (val, oldVal) {
+    'topSearch.input'(val, oldVal) {
       if (oldVal && oldVal.length === 1 && !val) {
         this.clear()
       } else {
@@ -209,16 +191,16 @@ export default {
       }
     }
   },
-  async beforeRouteLeave (to, from, next) {
+  async beforeRouteLeave(to, from, next) {
     await this.closeDropDown()
     next()
   },
-  created () {
+  created() {
     if (this.$store.state.direction !== 'forward') {
       this.doRecovery()
     }
   },
-  mounted () {
+  mounted() {
     this.setPageTdk(this.topSearch?.input)
   },
   methods: {
@@ -226,7 +208,7 @@ export default {
       'setHistory'
     ]),
     getShortName,
-    closeDropDown () {
+    closeDropDown() {
       return new Promise(resolve => {
         const refArr = ['area', 'buyer', 'isContact']
         refArr.forEach(v => {
@@ -235,14 +217,14 @@ export default {
         setTimeout(resolve, 301)
       })
     },
-    clear () {
+    clear() {
       this.$router.back()
     },
-    submit () {
+    submit() {
       this.initSearch()
       this.setPageTdk(this.topSearch?.input)
     },
-    initSearch () {
+    initSearch() {
       // if (this.listInfo.loading) {
       //   return
       // }
@@ -251,10 +233,10 @@ export default {
       this.totalPage = 1
       this.onLoad(0)
     },
-    toggle (index) {
+    toggle(index) {
       this.$refs.checkboxes[index].toggle()
     },
-    doSave () {
+    doSave() {
       this.$storage.set(this.$route.path, {
         cache: this.cache,
         listInfo: this.listInfo,
@@ -262,7 +244,7 @@ export default {
         scrollTop: this.$refs.list?.scrollTop
       })
     },
-    doRecovery () {
+    doRecovery() {
       const storage = this.$storage.get(this.$route.path, false)
       if (storage) {
         // console.log('从缓存中读取到数据', storage)
@@ -288,7 +270,7 @@ export default {
         })
       }
     },
-    onLoad (currentPage) {
+    onLoad(currentPage) {
       if (currentPage === 0) this.conf.pageNum = 0
       if (this.conf.pageNum < this.totalPage) {
         this.conf.pageNum++
@@ -296,7 +278,7 @@ export default {
       }
     },
     // 获取采购单位列表
-    async getList () {
+    async getList() {
       try {
         this.listInfo.loading = true
         const { error_code: code, data } = await getManageBuyerList(this.conf)
@@ -322,7 +304,7 @@ export default {
       }
     },
     // 根据采购单位获取补充数据信息
-    async getSupplyInfo () {
+    async getSupplyInfo() {
       try {
         if (this.listInfo.buyerList?.length > 0) {
           const { pageNum, pageSize } = this.conf
@@ -345,7 +327,7 @@ export default {
       }
     },
     // 获取认领标签
-    async onGetLabelAction () {
+    async onGetLabelAction() {
       const { error_code: code, data } = await ajaxGetUserKeepLabel().catch(e => {
         return []
       })
@@ -360,7 +342,7 @@ export default {
       }
     },
     // 添加认领标签
-    async onAddLabelAction (item, action) {
+    async onAddLabelAction(item, action) {
       const { error_code: code, data } = await ajaxEntNicheKeepLabel({
         name: item.label
       }).catch(e => {
@@ -378,7 +360,7 @@ export default {
       }
     },
     // 提交认领标签
-    async onSubmitKeepLabel ({ keys, options, complete }) {
+    async onSubmitKeepLabel({ keys, options, complete }) {
       const params = {
         label: keys.join(','),
         mold: 1,
@@ -404,7 +386,7 @@ export default {
       }
     },
     // 查看当前点击的客户认领状态=>已认领返回一个对象,未认领返回空
-    async getClaimCustomList (name) {
+    async getClaimCustomList(name) {
       let temp = ''
       const params = {
         entId: '',
@@ -424,50 +406,153 @@ export default {
       }
       return temp
     },
-    // 关注
-    async onClickFollow (item, index) {
+    // 监控
+     onClickFollow(item, index) {
       console.log(item)
-      // 大会员
-      if (this.isMember) {
-        const params = {
-          name: item.title,
-          province: item.province,
-          city: item.city,
-          b: item.isFollow
+      // 
+      if (!this.isFree) {
+        if (!item.isFollow) {
+          this.FollowAndClaimAjax(item,index)
+        } else {
+          this.$dialog({
+            width: 303,
+            className: 'monitor-dialog',
+            title: '确定不再监控?',
+            message: '取消监控,将错过业主最新动态推送',
+            messageAlign: 'center',
+            confirmButtonText: '确认取消',
+            // confirmButtonColor: '#2ABED1',
+            showConfirmButton: true,
+            showCancelButton: true,
+            cancelButtonText: '我再想想',
+            cancelButtonColor: '#2ABED1'
+          }).then(() => {
+            this.FollowAndClaimAjax(item,index)
+          }).catch(() =>{})
         }
-        const { data } = await bigmemberFollowAndClaim(params)
-        if (data) {
-          this.$toast('操作成功')
-          item.isFollow = !item.isFollow
-          this.$refs.buyerCell[index]?.setFollow(item.isFollow)
-          this.listInfo.buyerList.forEach(v => {
-            if (v.buyer === item.title) {
-              v.isFollowed = item.isFollow
-            }
-          })
+      } else {
+        if (item.isFollow) {
+          return
         }
-      } else if (this.isNewBusiness || this.isEntService) {
-        // 新版商机管理
-        const params = {
-          name: item.title,
-          mold: 0,
-          B: item.isFollow
+        let href_
+        if (this.$envs.inWX) {
+          href_ = '/weixin/frontPage/bigmember/free/perfect_info?source=wx_buyer_monitor_freeuser'
+        } else if (this.$envs.inApp) {
+          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=app_buyer_monitor_freeuser'
+        } else if (this.$envs.inH5) {
+          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=h5_buyer_monitor_freeuser'
         }
-        const { data } = await ajaxFollowAndClaim(params)
-        if (data) {
-          this.$toast('操作成功')
-          item.isFollow = !item.isFollow
-          this.$refs.buyerCell[index]?.setFollow(item.isFollow)
-          this.listInfo.buyerList.forEach(v => {
-            if (v.buyer === item.title) {
-              v.isFollowed = item.isFollow
-            }
-          })
+        window.location.href = href_
+      }
+    },
+    async FollowAndClaimAjax(item,index) {
+      const params = {
+        name: item.title,
+        province: item.province,
+        city: item.city,
+        b: item.isFollow
+      }
+      const { data } = await bigmemberFollowAndClaim(params)
+      if (!item.isFollow) {
+        this.noMonitor(data)
+      }else{
+        this.$toast('取消成功')
+      }
+      if (data.status) {
+        // this.$toast('操作成功')
+        item.isFollow = !item.isFollow
+        this.$refs.buyerCell[index]?.setFollow(item.isFollow)
+        this.listInfo.buyerList.forEach(v => {
+          if (v.buyer === item.title) {
+            v.isFollowed = item.isFollow
+          }
+        })
+      }
+    },
+    noMonitor(data) {
+      if(JyObj.checkNoticePermission() !== 1 && this.$envs.inApp && data.status){
+        this.$dialog({
+          width: 303,
+          className: 'monitor-dialog',
+          title: '监控成功',
+          message: '您可前往“工作台-商机-业主监控”查看业主最新招标动态。为保证您能及时获取新增监控信息推送,请前往开启推送提醒。',
+          messageAlign: 'center',
+          confirmButtonText: '去开启',
+          confirmButtonColor: '#2ABED1',
+          showConfirmButton: true,
+          showCancelButton: true,
+          cancelButtonText: '暂不开启',
+          // cancelButtonColor: '#5F5E64'
+        }).then(() => {
+          //  展开监控菜单 active:3
+          window.location.href = location.origin + '/jy_mobile/push/pushsetting?active=3'
+        }).catch((e) =>{
+
+        })
+        return
+      }
+      if (!data.msg_open && data.status) {
+        this.$dialog({
+          width: 303,
+          className: 'monitor-dialog',
+          title: '监控成功',
+          message: '您可前往“工作台-商机-业主监控”查看业主最新招标动态。为保证您能及时获取新增监控信息推送,请前往开启推送提醒。',
+          messageAlign: 'center',
+          confirmButtonText: '去开启',
+          confirmButtonColor: '#2ABED1',
+          showConfirmButton: true,
+          showCancelButton: true,
+          cancelButtonText: '暂不开启',
+          // cancelButtonColor: '#5F5E64'
+        }).then(() => {
+          //  展开监控菜单 active:3
+          window.location.href = location.origin + '/jy_mobile/push/pushsetting?active=3'
+        }).catch((e) =>{
+
+        })
+
+      } else if (data.msg_open && data.status) {
+        this.$toast({
+          duration: 2000,
+          message: '监控成功,您可前往“工作台-商机-业主监控”查看'
+        })
+
+      } else if (data.limit_status === 1) {
+        let href_
+        if (this.$envs.inWX) {
+          href_ = '/weixin/frontPage/bigmember/free/perfect_info?source=wx_buyer_monitor_limit'
+        } else if (this.$envs.inApp) {
+          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=app_buyer_monitor_limit'
+        } else if (this.$envs.inH5) {
+          href_ = '/jyapp/frontPage/bigmember/free/perfect_info?source=h5_buyer_monitor_limit'
         }
+        window.location.href = href_
+      } else if (data.limit_status === 2) {
+        this.$dialog({
+          width: 303,
+          className: 'monitor-dialog',
+          title: '监控业主个数已达上限',
+          message: '您最多可监控' + data.limit_count + '个业主,可联系客服,申请监控更多业主',
+          messageAlign: 'center',
+          confirmButtonText: '联系客服',
+          confirmButtonColor: '#2ABED1',
+          showConfirmButton: true,
+          showCancelButton: true,
+          cancelButtonText: '返回',
+          // cancelButtonColor: '#5F5E64'
+        }).then(() => {
+          if (this.$envs.inWX) {
+            window.location.href = '/big/wx/page/customer'
+          } else {
+            window.location.href = '/jyapp/free/customer'
+          }
+        }).catch((e) =>{
+          
+        })
       }
     },
     // 认领取消认领操作
-    async onClickClaim (item, index) {
+    async onClickClaim(item, index) {
       // 查询当前点击的项是否有认领id
       const temp = await this.getClaimCustomList(item.title)
       // 取消认领
@@ -499,7 +584,7 @@ export default {
         this.$refs.buyerCell[index]?.setClaim(item.isClaim)
       }
     },
-    onClickList (item) {
+    onClickList(item) {
       // 历史记录新增
       this.setHistory({
         type: 'buyer',
@@ -514,7 +599,7 @@ export default {
         goLink = `/big/wx/page/unit_portrayal?entName=${encodeURIComponent(item.title)}`
       } else {
         // 新商机管理采购单位画像
-        if (this.isNewBusiness) {
+        if (this.isNewBusiness || this.isEntService) {
           goLink = `/jyapp/big/page/client_portrayal?entName=${encodeURIComponent(item.title)}&from=client`
         } else {
           goLink = `/jyapp/big/page/unit_portrayal?entName=${encodeURIComponent(item.title)}`
@@ -522,12 +607,12 @@ export default {
       }
       openLinkOfOther(goLink)
     },
-    openDropDown (name) {
+    openDropDown(name) {
       const domTop = this.$refs[name]?.$el?.getBoundingClientRect().top
       this.maxHeight = `calc(100vh - ${domTop}px)`
     },
     // 重置操作
-    onCancel (name) {
+    onCancel(name) {
       switch (name) {
         case 'area': {
           this.$refs.areaComponent?.setState()
@@ -547,7 +632,7 @@ export default {
       this.initSearch()
     },
     // 提交操作
-    onConfirm (name) {
+    onConfirm(name) {
       switch (name) {
         case 'area': {
           const { area } = this.cache
@@ -574,16 +659,16 @@ export default {
       this.initSearch()
     },
     // 采购单位联系方式切换
-    isContactChange (val) {
+    isContactChange(val) {
       this.cache.isContact = val.value || []
       this.onConfirm('isContact')
     },
-    onScopeClick () {
+    onScopeClick() {
       this.doSave()
       // 微信端未上线商机管理采购单位搜索、暂无地址
       openLinkOfOther('/jyapp/big/page/client_set_scope?header=业务范围')
     },
-    formatAreaParams (data) {
+    formatAreaParams(data) {
       if (!data) return
       const temp = {}
       if (Object.keys(data).length === 0) {
@@ -604,7 +689,7 @@ export default {
       }
       return temp
     },
-    formatBuyerClass (data) {
+    formatBuyerClass(data) {
       if (!data) return
       const arr = []
       for (const key in data) {
@@ -621,51 +706,64 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-::v-deep{
+::v-deep {
   .more-cell.van-cell {
     padding: 12px 16px;
-    &::after{
+
+    &::after {
       left: 0;
       right: 0;
     }
+
     .van-cell__title,
-    .van-cell__value{
+    .van-cell__value {
       font-size: 15px;
     }
-    .van-cell__title{
+
+    .van-cell__title {
       max-width: 120px;
       white-space: nowrap;
     }
   }
-  .customer-content{
+
+  .customer-content {
     min-height: 200px;
   }
-  .check-cell.van-cell{
+
+  .check-cell.van-cell {
     padding: 12px 24px;
-    .van-cell__title{
+
+    .van-cell__title {
       margin-right: 4px;
     }
   }
-  [class*='van-hairline']::after{
+
+  [class*='van-hairline']::after {
     border-color: rgba(0, 0, 0, 0.05);
   }
-  .van-dropdown-menu__title.selected{
+
+  .van-dropdown-menu__title.selected {
     color: $color_main;
   }
-  .van-dropdown-menu__item{
-    flex:unset;
+
+  .van-dropdown-menu__item {
+    flex: unset;
   }
-  .van-dropdown-menu__bar{
+
+  .van-dropdown-menu__bar {
     justify-content: space-around;
   }
 
 }
-.scope-component-group{
+
+.scope-component-group {
   overflow-x: hidden;
 }
+
 .search-result-buyer {
   background-color: $gray_1;
 }
+
 .ent-info-head {
   display: flex;
   justify-content: center;
@@ -683,7 +781,8 @@ export default {
   background: $main;
   opacity: .7;
 }
-.buyer-split-line{
+
+.buyer-split-line {
   margin: 12px 0;
 
 }

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