浏览代码

Merge branch 'main' into feature/v1.0.36

lianbingjie 1 年之前
父节点
当前提交
53a5ccba90

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

@@ -110,6 +110,10 @@ export default {
       type: String,
       required: true,
       default: ''
+    },
+    contentInfo: {
+      type: Object,
+      default: () => {}
     }
   },
   computed: {
@@ -117,6 +121,7 @@ export default {
       if (this.list[0].active === 0) {
         return this.list.slice(0, 1)
       } else if (this.property === 'BIProperty') {
+        // eslint-disable-next-line vue/no-side-effects-in-computed-properties
         this.list = this.list.filter((v) => {
           return v.title !== '创建销售线索'
         })
@@ -221,14 +226,16 @@ export default {
             this.IframeSrc = `${
               location.origin
             }/succbi/crm_system/app/crm.app/%E9%80%9A%E7%94%A8%E5%88%9B%E5%BB%BA/create_intelligence.spg?t=${new Date().getTime()}`
-            const { bidamount, budget, title, area, buyer } =
-              window.goTemplateData.params.obj
+
+            const ContentParams = this.contentInfo._ob
+
+            const { bidAmount, budget, title, area, buyer } = ContentParams
             const propertyData = {
               _id: this.id,
               title: title,
               buyer: buyer,
               area: area,
-              bidamount: bidamount,
+              bidamount: bidAmount,
               budget: budget
             }
             // 将propertyData存入本地,用于BI创建情报回显数据
@@ -396,7 +403,7 @@ export default {
         url = '/jyNewApi/property/information/exist'
         info = this.employInfo[0]
         params = {
-          id: id
+          id: this.id
         }
         this.ajaxComponent(url, params).then((res) => {
           if (!item.active) {

+ 6 - 2
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 =
@@ -167,7 +168,10 @@ const isUseBIActions =
         </div>
       </div>
       <div class="actions" v-if="isUseBIActions">
-        <content-b-i-actions :id="ContentId"></content-b-i-actions>
+        <content-b-i-actions
+          :id="ContentId"
+          :contentInfo="ContentModel"
+        ></content-b-i-actions>
       </div>
     </div>
     <div class="expands-info">

+ 10 - 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,11 +86,14 @@ const recommendEntList = computed(() => {
 })
 
 function doOpen(item) {
-  console.log(item)
   if (item.type === 'winner') {
     doOpenWinnerPage(item)
   } else {
-    doOpenBuyerPage(item)
+    if (GetInWhichContainer() === 'in-app') {
+      doOpenBuyerPage(item)
+    } else {
+      doOpenBuyerPageSEO(item)
+    }
   }
 }
 </script>

+ 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(() => {

+ 1 - 0
configs/proxy/dev-proxy.js

@@ -31,6 +31,7 @@ const ProxyPrefixes = [
   '/leadGeneration',
   '/member',
   '/commercial',
+  '/jyNewApi',
   // 静态资源代理
   '/commonFunctions',
   '/common-module',

+ 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') {