Эх сурвалжийг харах

feat: 采购单位画像工作台外用 seo 页面打开

zhangyuhan 1 жил өмнө
parent
commit
9e4f661adc

+ 2 - 1
apps/bigmember_pc/src/views/article-content/components/ContentHeader.vue

@@ -17,6 +17,7 @@ import BidrenewalDialog from '@/views/BidrenewalDialog/index.vue'
 import { useQuickJoinBidModel } from '@/composables/quick-join-bid'
 import WorkspaceButtonGroup from '@/components/dialog/WorkspaceButtonGroup.vue'
 import ContentBIActions from '@/views/article-content/components/ContentBIActions.vue'
+import { GetInWhichContainer } from '@/views/article-content/composables/useArticleUtil'
 
 const getters = useStore().getters
 const vt = computed(() => {
@@ -68,7 +69,7 @@ const bidCountdown = computed(() => {
 })
 
 // 判断在哪个容器
-const InWhichContainer = window.parent !== window ? 'in-app' : 'in-web'
+const InWhichContainer = GetInWhichContainer()
 
 // 判断是否兼容BI
 const isUseBIActions =

+ 11 - 4
apps/bigmember_pc/src/views/article-content/components/RecommendEnt.vue

@@ -6,7 +6,9 @@ import { ajaxGetMiniEntInfo } from '@/api/modules/detail'
 import { formatMoney } from '@/utils'
 import {
   doOpenBuyerPage,
-  doOpenWinnerPage
+  doOpenBuyerPageSEO,
+  doOpenWinnerPage,
+  GetInWhichContainer
 } from '@/views/article-content/composables/useArticleUtil'
 
 const recommendList = ref([])
@@ -58,7 +60,8 @@ function getRecommendEntInfo(list) {
               label: type === 'buyer' ? '合作企业' : '合作客户'
             }
           ],
-          origin: res.data
+          origin: res.data,
+          seoId: item.seoId
         }
         recommendList.value = [].concat(resultList)
       }
@@ -83,17 +86,21 @@ const recommendEntList = computed(() => {
 })
 
 function doOpen(item) {
-  console.log(item)
   if (item.type === 'winner') {
     doOpenWinnerPage(item)
   } else {
-    doOpenBuyerPage(item)
+    if (GetInWhichContainer() === 'in-web') {
+      doOpenBuyerPage(item)
+    } else {
+      doOpenBuyerPageSEO(item)
+    }
   }
 }
 </script>
 
 <template>
   <div v-if="recommendEntList.length">
+    {{ SummaryModel }}
     <div
       class="recommend-info-card"
       v-for="(item, index) in recommendEntList"

+ 3 - 2
apps/bigmember_pc/src/views/article-content/composables/useArticleContentPageModel.js

@@ -35,7 +35,8 @@ import {
   doOpenArticlePage,
   doOpenCorListPage,
   doOpenProjectDetailPage,
-  doOpenWinnerPage
+  doOpenWinnerPage,
+  GetInWhichContainer
 } from '@/views/article-content/composables/useArticleUtil'
 import RecommendOpportunities from '@/views/article-content/components/RecommendOpportunities.vue'
 import FooterAd from '@/views/article-content/components/FooterAd.vue'
@@ -49,7 +50,7 @@ import attachmentDownload from '@/composables/attachment-download/component/Atta
 // 使用内容存储
 useContentStore()
 // 判断在哪个容器中
-const InWhichContainer = window.parent !== window ? 'in-app' : 'in-web'
+const InWhichContainer = GetInWhichContainer()
 
 // 注入右侧DOM
 onMounted(() => {

+ 17 - 0
apps/bigmember_pc/src/views/article-content/composables/useArticleUtil.js

@@ -24,6 +24,14 @@ export function doOpenBuyerPage({ name, query = {} }) {
   window.open(link.href, '_blank')
 }
 
+// 打开SEO版本 采购单位详情页
+export function doOpenBuyerPageSEO({ seoId }) {
+  if (!seoId) {
+    return
+  }
+  window.open(`/dw/${seoId}.html`, '_blank')
+}
+
 // 打开采购单位监控列表页
 export function doOpenBuyerListPage() {
   window.open('/swordfish/page_big_pc/my_client', '_blank')
@@ -71,3 +79,12 @@ export function doOpenProjectProgressListPage() {
 export function doOpenPushSettingPage() {
   window.open('/swordfish/page_big_pc/push_setting')
 }
+
+/**
+ * 判断在哪个容器
+ * @returns {string} - in-web (iframe 中)  in-app
+ */
+export function GetInWhichContainer() {
+  const InWhichContainer = window.parent !== window ? 'in-app' : 'in-web'
+  return InWhichContainer
+}

+ 3 - 2
apps/bigmember_pc/src/views/article-content/pages/Article.vue

@@ -38,7 +38,8 @@ import {
   doOpenArticlePage,
   doOpenCorListPage,
   doOpenProjectDetailPage,
-  doOpenWinnerPage
+  doOpenWinnerPage,
+  GetInWhichContainer
 } from '@/views/article-content/composables/useArticleUtil'
 import RecommendOpportunities from '@/views/article-content/components/RecommendOpportunities.vue'
 import FooterAd from '@/views/article-content/components/FooterAd.vue'
@@ -53,7 +54,7 @@ import ContentThirdPopover from '@/views/article-content/components/ContentThird
 
 useContentStore()
 // 判断在哪个容器
-const InWhichContainer = window.parent !== window ? 'in-app' : 'in-web'
+const InWhichContainer = GetInWhichContainer()
 
 // 注入右侧DOM
 onMounted(() => {

+ 8 - 7
data/data-models/modules/article/transform/summary2.js

@@ -38,10 +38,11 @@ class Unit {
   }
 }
 class Buyer extends Unit {
-  constructor(name, id, { link }) {
+  constructor(name, id, { seoId, link }) {
     super(name, id)
     this.link = link
     this.type ='buyer'
+    this.seoId = seoId || ''
   }
 }
 class Winner extends Unit {
@@ -82,8 +83,8 @@ class SummaryModel extends BaseModel {
     const { baseInfo, abstract } = data
     const isProposed = this.isProposedCheck(baseInfo?.subType)
     const model = isProposed
-      ? this.tranSummaryOfProposed(abstract.proposed)
-      : this.tranSummaryOfDefault(abstract.default)
+      ? this.tranSummaryOfProposed(abstract.proposed, baseInfo)
+      : this.tranSummaryOfDefault(abstract.default, baseInfo)
     model.isProposed = isProposed
     return model
   }
@@ -113,7 +114,7 @@ class SummaryModel extends BaseModel {
     }
   }
 
-  tranSummaryOfDefault(summary) {
+  tranSummaryOfDefault(summary, baseInfo = {}) {
     const result = this.createModel()
     if (!summary) {
       return result
@@ -128,7 +129,7 @@ class SummaryModel extends BaseModel {
     list.push(buyerInfo)
     if (summary?.buyer) {
       result.buyers.push(
-        new Buyer(summary?.buyer, summary?.buyer, { link: summary?.buyerPortraitShow })
+        new Buyer(summary?.buyer, summary?.buyer, { seoId: baseInfo?.buyerSeoId, link: summary?.buyerPortraitShow })
       )
     }
 
@@ -225,7 +226,7 @@ class SummaryModel extends BaseModel {
     return result
   }
 
-  tranSummaryOfProposed(summary) {
+  tranSummaryOfProposed(summary, baseInfo = {}) {
     const result = this.createModel()
     if (!summary) {
       return result
@@ -265,7 +266,7 @@ class SummaryModel extends BaseModel {
         s.addKey('link', summary?.buyerPortraitShow) // 是否可进行跳转
         if (summary?.buyer) {
           result.buyers.push(
-            new Buyer(summary?.buyer, summary?.buyer, { link: summary?.buyerPortraitShow })
+            new Buyer(summary?.buyer, summary?.buyer, { seoId: baseInfo?.buyerSeoId, link: summary?.buyerPortraitShow })
           )
         }
       } else if (key === 'address') {