Răsfoiți Sursa

Merge branch 'master' into feature/v1.1.67

lianbingjie 1 an în urmă
părinte
comite
4149abb81c
2 a modificat fișierele cu 151 adăugiri și 87 ștergeri
  1. 4 2
      src/router/guard/baiducc.js
  2. 147 85
      src/views/push/PushSetting.vue

+ 4 - 2
src/router/guard/baiducc.js

@@ -7,6 +7,8 @@ router.afterEach(() => {
     console.warn(error)
   }
   try {
-    window.clab_tracker.track('open_page')
-  } catch (e) {}
+    window.__EasyJTrack.manualReportPV()
+  } catch (e) {
+    console.warn('Warn manualReportPV', e)
+  }
 })

+ 147 - 85
src/views/push/PushSetting.vue

@@ -74,19 +74,19 @@
                 <van-switch @change="ChangeEvent(item, 'app')" v-model="item.i_apppush" />
               </div>
             </div>
-            <div class="set-push-time" v-if="item.id === 0">
+            <div class="set-push-time" v-if="needEditTimesType.indexOf(item.param) > -1 && editResultTime[item.param]">
               <div class="push-time-left">
                 <span>推送时间:</span>
-                <span v-if="!power.isFree">
-                  {{ resultTime.ratemodeText }}
-                  <span v-if="setRateMode.ratemode === 2">{{ resultTime.times }}</span>
-                  <span v-if="setRateMode.ratemode !== 1 && setRateMode.ratemode !== 2">09:00</span>
+                <span v-if="!power.isFree && editResultTime[item.param]">
+                  {{ editResultTime[item.param].ratemodeText }}
+                  <span v-if="editResultTime[item.param].ratemode === 2">{{ editResultTime[item.param].times }}</span>
+                  <span v-if="editResultTime[item.param].ratemode !== 1 && editResultTime[item.param].ratemode !== 2">09:00</span>
                 </span>
                 <span v-else>
-                  <span>每日上午、下午各推送一次</span>
+                  <span>{{item.a_times ? item.a_times[0] : '每日上午、下午各推送一次'}}</span>
                 </span>
               </div>
-              <div @click="editTimeEvent" class="push-time-right">
+              <div @click="editTimeEvent(item)" class="push-time-right">
                 编辑
               </div>
             </div>
@@ -115,7 +115,7 @@
       </van-cell-group>
     </div>
     <van-popup v-model="showPopup" position="bottom" :style="{ height: '57%' }" round get-container="body">
-      <PopupLayout title="订阅推送时间设置" @closeIconClick="closePopup">
+      <PopupLayout :title="editTimesFlag === 'o_subset' ? '订阅推送时间设置' : '推送时间设置'" @closeIconClick="closePopup">
         <div class="select_push_time" slot="default">
           <van-cell-group>
             <van-cell :class="item.id === 2 && selectTimeSlot.length !== 0 ? `dayPush ${getHaveLine}` : ''"
@@ -173,6 +173,7 @@
       <p v-if="dparam.showTextP === 3" slot="content">开通超级订阅可选择“实时推送”及时接收公告信息,或根据您的工作需要灵活设置推送时间。</p>
       <p v-if="dparam.showTextP === 4" slot="content">系统检测到您同时拥有2个剑鱼标讯账号,<span class="high_info">手机号:{{ accountInfo.phone
       }},微信号:{{ accountInfo.name }},</span>请进行账号合并后,再开启微信提醒吧~</p>
+      <p v-if="dparam.showTextP === 5" slot="content">如需根据您的工作需要灵活设置推送时间(例如:按日推送),您可前往开通超级订阅。</p>
     </Dialog>
   </div>
 </template>
@@ -204,7 +205,7 @@ export default {
       pushSetData: {},
       getUserData: {},
       pushFunction: [
-        { id: 0, i_apppush: false, i_mailpush: false, i_wxpush: false, i_nomsgtip: false, param: 'o_subset', title: '我的订阅', label: '根据订阅条件,向您推送相关招投标公告信息。' },
+        { id: 0, i_apppush: false, i_mailpush: false, i_wxpush: false, i_nomsgtip: false, i_ratemode:1, param: 'o_subset', title: '我的订阅', label: '根据订阅条件,向您推送相关招投标公告信息。'},
         // { id: 1, i_apppush: false, i_mailpush: false, i_wxpush: false, i_nomsgtip: false, param: 'o_subset', title: '消息', label: '根据订阅条件,向您推送相关招投标公告信息。' },
         {
           id: 1,
@@ -223,10 +224,10 @@ export default {
           title: '消息',
           label: '剑鱼将为您提供精准的消息推送服务'
         },
-        { id: 2, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_follow_project', title: '项目进度监控', label: '关注项目如有动态变更,将为您推送。' },
-        { id: 3, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_follow_ent', title: '企业情报监控-企业中标动态', label: '关注企业一旦中标,会推送企业的中标项目、时间等公告信息。' },
-        { id: 4, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_entinfo', title: '企业情报监控-企业工商变动', label: '关注的企业一旦工商情况有变动,将为您推送。' },
-        { id: 5, i_apppush: false, i_mailpush: false, i_wxpush: false, param: 'o_newproject_forecast', title: '潜在项目预测', label: '通过大数据和AI智能分析预测到与您有关的潜在项目时,可及时收到提醒信息。' },
+        { 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: '根据为您推送的招标项目信息,提供每月多维度分析报告。' }
       ],
@@ -237,7 +238,6 @@ export default {
         { id: 4, title: '每月推送', active: false }
       ],
       timeList: [],
-      selectTimeSlot: [], // 每日推送选择的时间段
       mailWay: {
         isFollow: false,
         mailDialog: false,
@@ -264,26 +264,60 @@ export default {
       recSwitch: false,
       showPopup: false,
       showTimeListPopup: false,
-      setRateMode: {
-        ratemode: 1,
-        time: []
-      },
-      resultTime: {
-        ratemodeText: '实时推送',
-        times: ''
-      },
       accountInfo: {
         phone: '',
         name: ''
       },
       timer: null,
-      thisModule: {}
+      thisModule: {},
+      // 当前编辑推送时间的标识
+      editTimesFlag: 'o_subset',
+      // 可编辑推送时间的type
+      needEditTimesType: ['o_subset', 'o_follow_project', 'o_follow_ent', 'o_entinfo', 'o_newproject_forecast'],
+      editResultTime: {
+        o_subset: {
+          ratemodeText: '实时推送',
+          times: '',
+          selectTimeSlot: [], // 每日推送选择的时间段
+          ratemode: 1, // 当前选择的推送时间类型
+        },
+        o_follow_project: {
+          ratemodeText: '实时推送',
+          times: '',
+          selectTimeSlot: [], // 每日推送选择的时间段
+          ratemode: 1, // 当前选择的推送时间类型
+        },
+        o_follow_ent: {
+          ratemodeText: '实时推送',
+          times: '',
+          selectTimeSlot: [], // 每日推送选择的时间段
+          ratemode: 1, // 当前选择的推送时间类型
+        },
+        o_entinfo: {
+          ratemodeText: '实时推送',
+          times: '',
+          selectTimeSlot: [], // 每日推送选择的时间段
+          ratemode: 1, // 当前选择的推送时间类型
+        },
+        o_newproject_forecast: {
+          ratemodeText: '实时推送',
+          times: '',
+          selectTimeSlot: [], // 每日推送选择的时间段
+          ratemode: 1, // 当前选择的推送时间类型
+        }
+      }
     }
   },
   computed: {
     ...mapState('user', [
       'power'
     ]),
+    selectTimeSlot () {
+      return this.editResultTime[this.editTimesFlag]?.selectTimeSlot || []
+    },
+    ratemode () {
+      return this.editResultTime[this.editTimesFlag]?.ratemode || 1
+    },
     // 判断每日推送高度
     getHaveLine () {
       let num = parseInt(this.selectTimeSlot.length / 3)
@@ -294,24 +328,13 @@ export default {
       return 'line_' + num
     },
     isShowBtn () {
-      return this.selectTimeSlot.length === 0
+      return this.editResultTime[this.editTimesFlag]?.selectTimeSlot.length === 0
     },
     showApp () {
       return this.$env.platform === 'app'
     }
   },
-  watch: {
-    selectTimeSlot (newval) {
-      this.timeList.forEach((item, index) => {
-        item.active = false
-        newval.forEach((v, i) => {
-          if (v === item.time) {
-            item.active = !item.active
-          }
-        })
-      })
-    }
-  },
+  watch: {},
   created () {
     for (let i = 0; i < 24; i++) {
       this.timeList.push({
@@ -364,22 +387,27 @@ export default {
     },
     // 设置推送时间
     setPushTime (data) {
-      const arr = this.pushCycle
-      this.setRateMode.ratemode = data.id
-      arr.forEach((item, i) => {
+      this.editResultTime[this.editTimesFlag].ratemode = data.id
+      this.pushCycle.forEach((item, i) => {
         item.id === data.id ? item.active = true : item.active = false
       })
-      this.pushCycle = arr
       if (data.id === 2) {
         if (this.selectTimeSlot.length === 0) {
-          this.selectTimeSlot.push(9, 14)
+          this.editResultTime[this.editTimesFlag].selectTimeSlot.push(9, 14)
         }
+        this.timeList.forEach((item, index) => {
+          item.active = false
+          if(this.selectTimeSlot.indexOf(item.time) > -1) {
+            item.active = true
+          }
+        })
         this.showPopup = false
         this.showTimeListPopup = true
       }
     },
     // 每日推送选择时间段
     setTimeSlot (data) {
+      let selectTimeSlot = this.editResultTime[this.editTimesFlag].selectTimeSlot
       this.timeList.forEach((item, i) => {
         if (item.time === data.time) {
           item.active = !item.active
@@ -388,25 +416,26 @@ export default {
               this.$toast('最多添加10个')
               item.active = !item.active
             } else {
-              this.selectTimeSlot.push(item.time)
+              selectTimeSlot.push(item.time)
             }
           } else {
             if (this.selectTimeSlot.length <= 1) {
               this.$toast('请至少保留1个推送时间')
               item.active = !item.active
             } else {
-              this.selectTimeSlot.forEach((s, index) => {
+              selectTimeSlot.forEach((s, index) => {
                 if (item.time === s) {
-                  this.selectTimeSlot.splice(index, 1)
+                  selectTimeSlot.splice(index, 1)
                 }
               })
             }
           }
         }
       })
-      this.selectTimeSlot = this.selectTimeSlot.sort((a, b) => {
+      selectTimeSlot = selectTimeSlot.sort((a, b) => {
         return a - b
       })
+      this.editResultTime[this.editTimesFlag].selectTimeSlot = selectTimeSlot
     },
     // 删除选择的时间段
     deleteTimeEvent (data) {
@@ -414,17 +443,18 @@ export default {
         this.$toast('请至少保留1个推送时间')
         return
       }
-      this.selectTimeSlot = this.selectTimeSlot.filter((num, index) => {
+      this.editResultTime[this.editTimesFlag].selectTimeSlot = this.selectTimeSlot.filter((num, index) => {
         return data !== num
       })
     },
     setTimeConfirm () {
+      const ratemode = this.editResultTime[this.editTimesFlag].ratemode
       const param = {
-        item: 'o_subset',
+        item: this.editTimesFlag || 'o_subset',
         setType: 'a_times',
-        ratemode: this.setRateMode.ratemode
+        ratemode: ratemode
       }
-      if (this.setRateMode.ratemode === 2) {
+      if (ratemode === 2) {
         const timeArr = []
         if (this.selectTimeSlot.length !== 0) {
           this.selectTimeSlot.forEach(v => {
@@ -439,8 +469,11 @@ export default {
       } else {
         this.$delete(param, 'times')
       }
-      // this.showPopup = false
-      this.setPushSetApi(param)
+      this.setPushSetApi(param, (back) => {
+        if(back === 'success') {
+          this.getPushSetApi()
+        }
+      })
     },
     setTimeSlotConfirm () {
       this.showTimeListPopup = false
@@ -452,7 +485,7 @@ export default {
     setTimeSlotCancel () {
       const sub = this.pushSetData.o_subset
       if (sub.i_ratemode === 2) {
-        this.selectTimeSlot = this.pointChange(sub.a_times)
+        this.editResultTime[this.editTimesFlag].selectTimeSlot = this.pointChange(sub.a_times)
       }
       this.showTimeListPopup = false
       this.showPopup = true
@@ -465,27 +498,26 @@ export default {
           const setPushFun = []
           this.pushFunction.forEach((v, i) => {
             if (data[v.param]) {
-              if (v.param === 'o_subset') {
-                v.i_nomsgtip = !!data[v.param].i_nomsgtip
+              // 可编辑推送时间段
+              if (this.needEditTimesType.indexOf(v.param) > -1 && this.editResultTime[v.param]) {
+                if(v.param === 'o_subset') {
+                  v.i_nomsgtip = !!data[v.param].i_nomsgtip
+                }
+                v.i_ratemode = data[v.param].i_ratemode
+                v.a_times = data[v.param].a_times
                 if (data[v.param].i_ratemode === 2) {
                   if (data[v.param].a_times) {
-                    this.selectTimeSlot = this.pointChange(data[v.param].a_times)
-                    this.setPushText(data[v.param].i_ratemode, data[v.param].a_times.join('、'))
+                    this.editResultTime[v.param].selectTimeSlot = this.pointChange(data[v.param].a_times)
+                    this.setPushText(v.param, data[v.param].i_ratemode, data[v.param].a_times.join('、'))
                   } else {
-                    this.selectTimeSlot = this.pointChange(['09:00', '14:00'])
-                    this.setPushText(data[v.param].i_ratemode, '09:00、14:00')
+                    this.editResultTime[v.param].selectTimeSlot = this.pointChange(['09:00', '14:00'])
+                    this.setPushText(v.param, data[v.param].i_ratemode, '09:00、14:00')
                   }
                 } else {
-                  this.selectTimeSlot = []
-                  this.setPushText(data[v.param].i_ratemode)
+                  this.editResultTime[v.param].selectTimeSlot = []
+                  this.setPushText(v.param, data[v.param].i_ratemode)
                 }
-                this.setRateMode.ratemode = data[v.param].i_ratemode
-                this.pushCycle.forEach(item => {
-                  item.active = false
-                  if (item.id === data[v.param].i_ratemode) {
-                    item.active = true
-                  }
-                })
+                this.editResultTime[v.param].ratemode = data[v.param].i_ratemode
               }
               if (this.getUserData.mail) {
                 if ($data) {
@@ -570,18 +602,23 @@ export default {
         if (params.setType === 'a_times') {
           this.showPopup = false
           if (params.ratemode === 2) {
-            this.setPushText(params.ratemode, params.times.join('、'))
+            this.setPushText(params.item, params.ratemode, params.times.join('、'))
           } else {
-            this.setPushText(params.ratemode)
+            this.setPushText(params.item, params.ratemode)
           }
           this.$toast('设置成功')
         } else {
           this.$toast(params.pushValue === 1 || params.interested === 1 ? '已开启' : '已关闭')
         }
+        try {
+          callback('success')
+        } catch (e) {
+
+        }
       } else {
         this.$toast(msg)
         try {
-          callback()
+          callback('fail')
         } catch (e) {
 
         }
@@ -597,23 +634,26 @@ export default {
       })
       return newArr
     },
-    setPushText (data, str) {
+    setPushText (type, data, str) {
+      if(!this.editResultTime[type]) {
+        return
+      }
       switch (data) {
         case 1:
-          this.resultTime.ratemodeText = '实时推送'
-          this.resultTime.times = ''
+          this.editResultTime[type].ratemodeText = '实时推送'
+          this.editResultTime[type].times = ''
           break
         case 2:
-          this.resultTime.ratemodeText = '每日推送'
-          this.resultTime.times = str
+          this.editResultTime[type].ratemodeText = '每日推送'
+          this.editResultTime[type].times = str
           break
         case 3:
-          this.resultTime.ratemodeText = '每周推送'
-          this.resultTime.times = ''
+          this.editResultTime[type].ratemodeText = '每周推送'
+          this.editResultTime[type].times = ''
           break
         case 4:
-          this.resultTime.ratemodeText = '每月推送'
-          this.resultTime.times = ''
+          this.editResultTime[type].ratemodeText = '每月推送'
+          this.editResultTime[type].times = ''
           break
         default:
           break
@@ -689,8 +729,10 @@ export default {
         pushValue: val ? 1 : 0
       }
       this.$set(this.pushFunction[index], 'i_nomsgtip', val ? 1 : 0)
-      this.setPushSetApi(params, () => { // 修改失败回调
-        this_.$set(this_.pushFunction[index], 'i_nomsgtip', !val ? 1 : 0)
+      this.setPushSetApi(params, (back) => { // 修改失败回调
+        if(back === 'fail') {
+          this_.$set(this_.pushFunction[index], 'i_nomsgtip', !val ? 1 : 0)
+        }
       })
     },
     PopupBox () {
@@ -822,7 +864,7 @@ export default {
         this.setWxEvent()
       } else if (this.dparam.showTextP === 2) {
         this.setAppEvent()
-      } else if (this.dparam.showTextP === 3) {
+      } else if (this.dparam.showTextP === 3 || this.dparam.showTextP === 5) {
         this.$router.push('/order/create/svip')
       } else if (this.dparam.showTextP === 4) {
         if (this.$env.platform === 'wx') {
@@ -859,16 +901,36 @@ export default {
       this.showPopup = true
     },
     // 设置时间
-    editTimeEvent () {
-      console.log(this.power)
+    editTimeEvent (item) {
+      if(!this.editResultTime[item.param]) {
+        return
+      }
+      this.editTimesFlag = item.param
       if (!this.power.isFree) {
+        this.pushCycle.forEach(temp => {
+          temp.active = false
+          if (temp.id === item.i_ratemode) {
+            temp.active = true
+          }
+        })
         this.getPushSetApi()
         this.showPopup = true
       } else {
         this.dparam.setTitle = '开通超级订阅'
         this.dparam.setDialog = true
         this.dparam.confirmButtonText = '去开通'
-        this.dparam.showTextP = 3
+        let showTextP = 3
+        switch(item.id) {
+          case 0:
+          case 4:
+          case 5:
+            showTextP = 3
+            break;
+          case 2:
+          case 3:
+            showTextP = 5
+        }
+        this.dparam.showTextP = showTextP
       }
     }
   }