浏览代码

Merge branch 'feature/v1.0.94' into dev/v1.0.94_yf

yangfeng 4 月之前
父节点
当前提交
93d887db7d

+ 9 - 3
apps/mobile/src/views/article/content.vue

@@ -526,14 +526,15 @@ export default {
     },
     changeTdk() {
       const { title, keywords, description } = this.content.tdk || {}
+      const { listShareTitle } = this.content
       this.setPageTdkCall({
         title,
         keywords,
         description
       })
-      this.setAMiniProgramShareTitle(title)
+      this.setAMiniProgramShareTitle(title, listShareTitle)
     },
-    setAMiniProgramShareTitle(title) {
+    setAMiniProgramShareTitle(title, otherTitle) {
       // if (!this.$envs.inWxMini) return
       let subType = ''
       try {
@@ -547,7 +548,12 @@ export default {
         prefix = `【${subType}】`
       }
       const newTitle = prefix + title
-      this.postMessageToMiniProgram(newTitle)
+      if (otherTitle) {
+        this.postMessageToMiniProgram(otherTitle)
+      }
+      else {
+        this.postMessageToMiniProgram(newTitle)
+      }
     },
     postMessageToMiniProgram(title) {
       try {

+ 20 - 2
apps/mobile/src/views/search/result/sun/index.vue

@@ -1540,6 +1540,22 @@ export default {
         console.log(error)
       }
       if (!this.isLogin) {
+        if (this.$envs.inWxMini) {
+          const targetMiniAppMap = {
+            wx: `/nologin/content/${id}.html?${qs.stringify(query)}`,
+            app: `/nologin/content/${id}.html?${qs.stringify(query)}`
+          }
+          openAppOrWxPage(targetMiniAppMap)
+          // try {
+          //   wx.miniProgram.navigateTo({
+          //     url: `/pages/search/content/bidding/index?q=${qs.stringify(query)}&time=${Date.now()}&id=${id}`
+          //   })
+          // } catch (e) {
+          //   console.log(e)
+          // }
+          return false
+        }
+
         return openLinkOfOther(LINKS.APP登录页.app, {
           query: {
             url: this.$envs.inWX ? targetMap.wx : targetMap.app
@@ -2394,7 +2410,8 @@ export default {
   border-radius: 8px;
   border: 1px solid transparent;
   background-clip: padding-box, border-box;
-  background-image: linear-gradient(#e8ffff 40%, #ffffff 100%),
+  background-image:
+    linear-gradient(#e8ffff 40%, #ffffff 100%),
     linear-gradient(to right, #2abed1, #4de4f84c, #2abed1);
   background-origin: padding-box, border-box;
   .tab-right {
@@ -2590,7 +2607,8 @@ export default {
   color: #171826;
   border: 0.5px solid transparent;
   background-clip: padding-box, border-box;
-  background-image: linear-gradient(#e8ffff 40%, #ffffff 100%),
+  background-image:
+    linear-gradient(#e8ffff 40%, #ffffff 100%),
     linear-gradient(to right, #2abed1 10%, #4de4f84c 30%, #2abed1);
   background-origin: padding-box, border-box;
   border-radius: 8px;

+ 30 - 16
data/data-models/modules/article/transform/content.js

@@ -44,6 +44,7 @@ class CommonContentModel extends BaseModel {
   formatModel(data) {
     const result = this.createModel()
     const { baseInfo, detailInfo, abstract } = data
+    const fromSunList = getQueryParam('fromlist') === 'sun'
     result.id = baseInfo.id ? decodeURIComponent(baseInfo.id) : ''
     result.title = baseInfo.title
     result.projectName = baseInfo?.projectName
@@ -77,10 +78,17 @@ class CommonContentModel extends BaseModel {
     result.yyszbContent = location.pathname.includes('/yyszb')
     result.bId = baseInfo.bId || ''
 
+    // 阳光直采过来的小程序分享标题处理
+    if (fromSunList) {
+      result.listShareTitle = this.getSunListTitle([baseInfo.id, result.id])
+    }
     if (result.IsSunPublishContent) {
       // 处理拆条信息
-      const changedTitle = this.changeChaiTitle(baseInfo, abstract, result)
-      result.changedTitle = changedTitle
+      const changedTitle = this.changeChaiTitle(abstract, result.listShareTitle)
+      if (changedTitle) {
+        result.title = changedTitle
+        result.changedTitle = changedTitle
+      }
     }
 
     // TDK
@@ -224,25 +232,31 @@ class CommonContentModel extends BaseModel {
   }
 
   // 处理拆条信息:详情页中需要判断purchasingList长度>1,就使用列表页标题+‘等’。
-  changeChaiTitle(baseInfo, abstract, result) {
-    const key = 'sun_list_info_clicked'
+  changeChaiTitle(abstract, title) {
     const purchasingList = abstract?.default?.purchasingList
     if (Array.isArray(purchasingList) && purchasingList.length > 0) {
-      const saved = sessionStorage.getItem(key)
-      if (saved) {
-        const list = JSON.parse(saved)
-        if (Array.isArray(list)) {
-          const r = list.find(
-            item => item.id === baseInfo.id || item.id === result.id
-          )
-          // console.log(r)
-          if (r && r.title) {
-            result.title = r.title
-            return true
-          }
+      if (title) {
+        return title
+      }
+    }
+    return ''
+  }
+
+  getSunListTitle(idArr = []) {
+    const key = 'sun_list_info_clicked'
+    const saved = sessionStorage.getItem(key)
+    if (saved) {
+      const list = JSON.parse(saved)
+      if (Array.isArray(list)) {
+        const r = list.find(
+          item => idArr.includes(item.id)
+        )
+        if (r && r.title) {
+          return r.title
         }
       }
     }
+    return ''
   }
 }