Browse Source

feat:企业、业主采购下载框,文案提示交互逻辑添加

zhangsiya 1 năm trước cách đây
mục cha
commit
742c2d1085

+ 1 - 1
apps/bigmember_pc/src/components/selector-cascader/BuyerClassCascader.vue

@@ -92,7 +92,7 @@ export default {
       }
     },
     optionsMap() {
-      const optMap = this.showOptions
+      const optMap = this.showOptions || []
       if (optMap.length === 0) {
         return buyerclassListMapExp
       } else {

+ 6 - 2
apps/bigmember_pc/src/views/portrayal/EntPortrayal.vue

@@ -318,6 +318,7 @@ import {
   isClaimed
 } from '@/api/modules'
 import { pointType } from '@/utils/mixins/calc-point-type'
+import $bus from '@/utils/bus'
 
 function getImgForVipUpgrade(name, bg = false, suffix = '.png') {
   return getAssetsFile('vip/' + (bg ? 'bg/mask/' : '') + name + suffix)
@@ -502,7 +503,8 @@ export default {
       // 下载报告弹窗配置
       reportDownloadConfig: {
         visible: false,
-        hasPower: false
+        hasPower: false,
+        totalNum: 0
       }
     }
   },
@@ -584,7 +586,6 @@ export default {
     }
   },
   created() {
-    console.log(this.$route)
     this.position = this.$route.query?.position
     this.getSelect()
     this.getClaimStatus()
@@ -603,6 +604,9 @@ export default {
       ? $('#public-nav').height()
       : 52
     $('#entTabNav').css('top', headerHeight + 'px')
+    $bus.$on('sendCount', (data) => {
+      this.reportDownloadConfig.totalNum = data
+    })
   },
   destroyed() {
     window.removeEventListener('scroll', this.watchScroll)

+ 6 - 1
apps/bigmember_pc/src/views/portrayal/EntSearchPortrayal.vue

@@ -451,6 +451,7 @@ import { mapState } from 'vuex'
 import { TabPane, Tabs } from 'element-ui'
 import { dateFormatter, getAssetsFile, moneyUnit } from '@/utils'
 import tdk from '@/utils/mixins/set-tdk.js'
+import $bus from '@/utils/bus'
 import { pointType } from '@/utils/mixins/calc-point-type'
 import {
   getEntSearchPower,
@@ -672,7 +673,8 @@ export default {
       // 下载报告弹窗配置
       reportDownloadConfig: {
         visible: false,
-        hasPower: false
+        hasPower: false,
+        totalNum: 0
       }
     }
   },
@@ -924,6 +926,9 @@ export default {
       ? $('#public-nav').height()
       : 52
     $('.tab-header.bg-white').css('top', this.headerHeight + 'px')
+    $bus.$on('sendCount', (data) => {
+      this.reportDownloadConfig.totalNum = data
+    })
   },
   beforeDestroy() {
     window.$noIntercept = false

+ 7 - 1
apps/bigmember_pc/src/views/portrayal/UnitPortrayal.vue

@@ -528,6 +528,7 @@ import ReportDownloadDialog from '@/views/portrayal/components/UnitReportDownloa
 import DownloadBottomTip from '@/components/download-report/DownloadBottomTip.vue'
 import { Button, Dialog, Popover } from 'element-ui'
 import { getAssetsFile, openSelfLink } from '@/utils/'
+import $bus from '@/utils/bus'
 import {
   getBuyerSelect,
   getStatusCustomer,
@@ -818,7 +819,8 @@ export default {
       // 下载报告弹窗配置
       reportDownloadConfig: {
         visible: false,
-        hasPower: false
+        hasPower: false,
+        totalNum: 0
       }
     }
   },
@@ -1163,6 +1165,10 @@ export default {
       ? $('#public-nav').height()
       : 52
     $('.tab-header.bg-white').css('top', headerHeight + 'px')
+    //拿到招标动态总数
+    $bus.$on('sendCount', (data) => {
+      this.reportDownloadConfig.totalNum = data
+    })
   },
   beforeDestroy() {
     window.$noIntercept = false

+ 0 - 10
apps/bigmember_pc/src/views/portrayal/components/DynamicList.vue

@@ -374,9 +374,7 @@ export default {
     authState() {
       //无权限转态
       let state = true
-      console.log(this.config, 'config')
       if (!this.config.winner && !this.config.isMedical) {
-        console.log(this.config.hasPower)
         if (this.config.hasPower) {
           //有权限
           state = false //关闭
@@ -421,7 +419,6 @@ export default {
       let Text = ''
       const info = this.userInfo
       const usage = this.pagePowerInfo
-      console.log(usage)
 
       if (info.isFree) {
         Text = '开通超级订阅实时查看更多数据'
@@ -455,7 +452,6 @@ export default {
       let btnText = ''
       const info = this.userInfo
       const usage = this.usage
-      console.log(usage)
       // 【立即解锁】:未体验过采购单位画像的免费用户,点击进行“欢迎体验采购单位全景分析”留资
       // 【去开通】:已体验过1次采购单位画像的免费用户,点击进入超级订阅购买页
       // 【前往升级】:超级订阅老版用户+购买了非全国采购单位画像余额为0的超级订阅新版用户,点击进入超级订阅升级页
@@ -559,7 +555,6 @@ export default {
     dateFromNow,
     dateFormatter,
     getCheckStatus(id) {
-      console.log('id', id, this.selected[id])
       return this.selected[id]
     },
     changeCheckInput(id) {
@@ -701,7 +696,6 @@ export default {
         status: data ? 1 : 0
       }
       const res = await ajaxSetDontPromptAgain(params)
-      console.log(res)
     },
     setExport() {
       this.toDataExportEvent()
@@ -832,7 +826,6 @@ export default {
     async getList() {
       const buyerName = this.getFilters?.buyer
       const entId = this.getFilters?.entId
-      console.log(buyerName, entId)
       if (!buyerName && !entId) return
       let query = {
         companyName: this.companyName,
@@ -945,7 +938,6 @@ export default {
       }
     },
     onPageChange(p) {
-      console.log('页码改变' + p)
       if (!this.loginFlag && p > 1) {
         location.href = '/notin/page?close_goBack=1'
         return false
@@ -1308,7 +1300,6 @@ export default {
         var index = $(item).parent().attr('data-index')
         var id = $(item).parent().attr('data-id')
         dynamicListActiveTags.splice(index, 1)
-        console.log(index, id)
         inputTagList()
         $('.dynamic-list-star .tags-item[data-id="' + id + '"]').removeClass(
           'tags-active'
@@ -1384,7 +1375,6 @@ export default {
                 return item.lid != id
               })
               dynamicListActiveTags = newArr
-              console.log(dynamicListActiveTags, newArr, 'quxiao')
               inputTagList()
             }
           })

+ 18 - 9
apps/bigmember_pc/src/views/portrayal/components/EntReportDownloadDialog.vue

@@ -24,9 +24,9 @@
         :canSelect="canSelect"
         @changeFilter="changeFilter"
       ></download-filter>
-<!--      <section class="empty" v-if="!hasPower">-->
-<!--        <div>该企业暂无中标项目,暂无法下载报告</div>-->
-<!--      </section>-->
+      <section class="empty" v-if="!hasPower && (emptyShow || totalNum === 0)">
+        <div>该企业暂无中标项目,暂无法下载报告</div>
+      </section>
       <section class="empty" v-if="hasPower && emptyShow">
         <div>当前条件下该企业暂无中标项目,请修改成交时间再试试吧</div>
       </section>
@@ -35,7 +35,7 @@
         <span v-for="item in totalData">{{item.label}}:<strong>{{ item.count }}</strong></span>
         <span class="highlight view-more" @click="viewMore">查看更多</span>
       </section>
-      <section class="email-box" v-if="!hasPower || (hasPower && !emptyShow)">
+      <section class="email-box" v-if="showEmailAndTip">
         <span class="email-label"><i class="star">*</i>接收邮箱:</span>
         <el-input v-model="s_email" placeholder="必填,报告将发送至邮箱" @input="showEmailError = false" @change="checkEmail"></el-input>
         <span class="error-tip" v-if="showEmailError">
@@ -47,7 +47,7 @@
           <i class="el-icon-success"></i>
         </span>
       </section>
-      <section class="download-notice-box" v-if="!hasPower || (hasPower && !emptyShow)">
+      <section class="download-notice-box" v-if="showEmailAndTip">
         <p class="box-label">下载须知:</p>
         <div class="box-desc">
           <p>1. 报告内容 <strong>不包含工商变动、企业通讯录</strong>;</p>
@@ -58,7 +58,7 @@
         </div>
       </section>
     </div>
-    <div slot="footer" :class="{ 'mask': sendLoading }" v-if="(!hasPower || (hasPower && !emptyShow))&& !pageLoading">
+    <div slot="footer" :class="{ 'mask': sendLoading }" v-if="showEmailAndTip && !pageLoading">
       <div class="footer-con">
         <span class="residue">企业中标分析报告下载余额:{{residueCount}}份</span>
         <span class="go-recharge" @click="goRecharge">去充值&gt;</span>
@@ -72,7 +72,7 @@
 
 <script>
 import DownloadFilter from './DownloadFilter.vue'
-import { getPDFPackBalance, sendPdfEmail, getPdfEmail, savePdfCondition, ajaxExportPdf } from '@/api/modules/'
+import { getPDFPackBalance, getPdfEmail, savePdfCondition, ajaxExportPdf } from '@/api/modules/'
 import { emailRegExp } from '@/utils/constant'
 import { debounce } from '@/utils/'
 
@@ -86,7 +86,8 @@ export default {
       default: () => {
         return {
           visible:false,
-          hasPower: true
+          hasPower: true,
+          totalNum: 0
         }
       }
     },
@@ -143,13 +144,21 @@ export default {
         scopeClass: '', // 行业
         timeRange: 2018 + '_' + new Date().getFullYear(), // 成交时间范围
         buyerClass: '' // 采购单位类型
-      }
+      },
     }
   },
   watch: {},
   computed: {
     hasPower() {
       return this.options.hasPower
+    },
+    // 中标动态的数据
+    totalNum () {
+      return this.options.totalNum
+    },
+    showEmailAndTip () {
+      // 有数据
+      return !this.emptyShow && this.totalNum > 0
     }
   },
   created() {

+ 16 - 7
apps/bigmember_pc/src/views/portrayal/components/UnitReportDownloadDialog.vue

@@ -24,9 +24,9 @@
         :canSelect="canSelect"
         @changeFilter="changeFilter"
       ></download-filter>
-<!--      <section class="empty" v-if="!hasPower">-->
-<!--        <div>该业主暂无采购项目,暂无法下载报告</div>-->
-<!--      </section>-->
+      <section class="empty" v-if="!hasPower && (emptyShow || totalNum === 0)">
+        <div>该业主暂无采购项目,暂无法下载报告</div>
+      </section>
       <section class="empty" v-if="hasPower && emptyShow">
         <div>当前条件下该业主暂无采购项目,请修改成交时间再试试吧</div>
       </section>
@@ -38,7 +38,7 @@
         <span>外省中标企业:<strong>{{ totalInfo.otherWinner }}</strong></span>
         <span class="highlight view-more" @click="viewMore">查看更多</span>
       </section>
-      <section class="email-box" v-if="!hasPower || (hasPower && !emptyShow)">
+      <section class="email-box" v-if="showEmailAndTip">
         <span class="email-label"><i class="star">*</i>接收邮箱:</span>
         <el-input v-model="s_email" placeholder="必填,报告将发送至邮箱" @input="showEmailError = false" @change="checkEmail"></el-input>
         <span class="error-tip" v-if="showEmailError">
@@ -50,7 +50,7 @@
           <i class="el-icon-success"></i>
         </span>
       </section>
-      <section class="download-notice-box" v-if="!hasPower || (hasPower && !emptyShow)">
+      <section class="download-notice-box" v-if="showEmailAndTip">
         <p class="box-label">下载须知:</p>
         <div class="box-desc">
           <p>1. 报告内容 <strong>不包含采购单位通讯录</strong>;</p>
@@ -61,7 +61,7 @@
         </div>
       </section>
     </div>
-    <div slot="footer" :class="{ 'mask': sendLoading }" v-if="(!hasPower || (hasPower && !emptyShow)) && !pageLoading">
+    <div slot="footer" :class="{ 'mask': sendLoading }" v-if="showEmailAndTip && !pageLoading">
       <div class="footer-con">
         <span class="residue">业主采购分析报告下载余额:{{ residueCount }}份</span>
         <span class="go-recharge" @click="goRecharge">去充值&gt;</span>
@@ -89,7 +89,8 @@ export default {
       default: () => {
         return {
           visible:false,
-          hasPower: false
+          hasPower: false,
+          totalNum: 0
         }
       }
     },
@@ -148,6 +149,14 @@ export default {
   computed: {
     hasPower() {
       return this.options.hasPower
+    },
+    // 招标动态的数据
+    totalNum () {
+      return this.options.totalNum
+    },
+    showEmailAndTip () {
+      // 有数据
+      return !this.emptyShow && this.totalNum > 0
     }
   },
   created() {

+ 1 - 1
apps/bigmember_pc/src/views/reportDownload/record.vue

@@ -457,7 +457,7 @@ export default {
               v.rangeTimeStart = rangeTimeArr[0] + '-01-01'
               v.rangeTimeEnd = rangeTimeArr[1] + '-12-31'
             }
-            const creatTime = v.l_createTime ? new Date(v.l_createTime).pattern('yyyyMMdd') : new Date().pattern('yyyyMMdd')
+            const creatTime = v.l_createTime ? new Date(v.l_createTime * 1000).pattern('yyyyMMdd') : new Date().pattern('yyyyMMdd')
             const typeName = v.type ? this.typeObj[v.type.toString()] : '分析报告'
             v.fileName = `剑鱼标讯-${typeName}-${creatTime}`
             return v