瀏覽代碼

feat: 移动端详情页免费用户访问业主发布的信息中联系人freeView处理

cuiyalong 1 年之前
父節點
當前提交
7e46dd13ce

+ 26 - 6
apps/mobile/src/views/article/components/ContentAbstract.vue

@@ -136,7 +136,13 @@
       <div class="abstract-line" v-if="summaryMap.buyerContactInfo?.value">
         <div class="abstract-line-label">采购联系人 / 联系电话</div>
         <div class="abstract-line-value">
-          <span class="abstract-line-value-text">
+          <span
+            class="abstract-line-value-text"
+            :class="{
+              'highlight-text': summaryMap.buyerContactInfo?.isFreeView,
+              'free-view': summaryMap.buyerContactInfo?.isFreeView
+            }"
+          >
             {{ summaryMap.buyerContactInfo?.value }}
           </span>
           <span class="abstract-line-value-actions color-main">
@@ -169,7 +175,13 @@
       <div class="abstract-line" v-if="summaryMap.agencyContactInfo?.value">
         <div class="abstract-line-label">代理联系人 / 联系电话</div>
         <div class="abstract-line-value">
-          <span class="abstract-line-value-text">
+          <span
+            class="abstract-line-value-text"
+            :class="{
+              'highlight-text': summaryMap.agencyContactInfo?.isFreeView,
+              'free-view': summaryMap.agencyContactInfo?.isFreeView
+            }"
+          >
             {{ summaryMap.agencyContactInfo?.value }}
           </span>
           <span class="abstract-line-value-actions color-main">
@@ -210,7 +222,9 @@
       </div>
       <section v-for="(winner, index) in summary.winners || []" :key="index">
         <div class="abstract-line">
-          <div class="abstract-line-label">{{ winner.isCandidate ? '' : '中标单位' }}</div>
+          <div class="abstract-line-label">
+            {{ winner.isCandidate ? '' : '中标单位' }}
+          </div>
           <div class="abstract-line-value" @click="goToEntPortrait(winner)">
             <span
               :class="{
@@ -226,9 +240,15 @@
         <div class="abstract-line" v-if="summaryMap.personTel?.value">
           <div class="abstract-line-label">中标联系人 / 联系电话</div>
           <div class="abstract-line-value">
-            <span class="abstract-line-value-text">{{
-              winner?.personTel?.value
-            }}</span>
+            <span
+              class="abstract-line-value-text"
+              :class="{
+                'highlight-text': winner?.personTel?.isFreeView,
+                'free-view': winner?.personTel?.isFreeView
+              }"
+            >
+              {{ winner?.personTel?.value }}
+            </span>
             <span class="abstract-line-value-actions color-main">
               <span
                 class="abstract-line-value-action call-phone clickable"

+ 10 - 0
apps/mobile/src/views/article/content.vue

@@ -278,6 +278,8 @@ export default {
       // project-name事件委托
       if (e.target.classList.contains('keyword-underline')) {
         this.clickKeywordUnderline(e)
+      } else if (e.target.classList.contains('free-view')) {
+        this.clickFreeView(e)
       }
     },
     // 页面下划线高内容亮事件委托
@@ -340,6 +342,14 @@ export default {
         }
       }
     },
+    clickFreeView() {
+      openAppOrWxPage(LINKS.留资, {
+        query: {
+          source: 'peugeot_view_infor',
+          infoid: this.content.id
+        }
+      })
+    },
     beforeLeaveVue() {
       this.saveToStorage()
     },

+ 4 - 0
data/data-models/modules/article/model/content.js

@@ -109,6 +109,10 @@ class ContentModel extends BaseModel {
     highlightKeys.forEach((key) => {
       content = replaceKeyword(content, key, '<span class="keyword highlight-text">$1</span>')
     })
+
+    // freeView点击查看高亮
+    // <span class="freeView">点击查看</span>     ==替换==>    <span class="freeView free-view highlight-text">点击查看</span>
+    content = content.replace(/freeView/g, 'freeView free-view highlight-text')
     return content
   }
 }

+ 12 - 3
data/data-models/modules/article/transform/summary2.js

@@ -17,13 +17,18 @@ class SummaryItem {
 // 联系人类
 class PersonTelSummaryItem extends SummaryItem {
   constructor(key, label, value, tel, expand) {
-    super(key, label, value)
+    const isFreeView = value === 'freeView'
+    const value2 = isFreeView ? '点击查看' : value
+    super(key, label, value2)
     this.expand = expand
     if (tel) {
       this.showMore = true
       this.tel = tel
       this.type = 'contact'
     }
+    if (isFreeView) {
+      this.isFreeView = true
+    }
   }
 }
 
@@ -101,8 +106,12 @@ class SummaryModel extends BaseModel {
   }
 
   formatTel(name, tel) {
-    const arr = [name, tel]
-    return arr.filter((item) => !!item).join(' / ')
+    if (name === 'freeView' || tel === 'freeView') {
+      return 'freeView'
+    } else {
+      const arr = [name, tel]
+      return arr.filter((item) => !!item).join(' / ')
+    }
   }
 
   tranSummaryOfDefault(summary) {