Browse Source

feat: 完善参标、查看原文

zhangyuhan 1 year ago
parent
commit
d4918c3bc4

+ 9 - 0
apps/bigmember_pc/src/api/modules/detail.js

@@ -52,3 +52,12 @@ export function ajaxGetMiniEntInfo(type, data) {
     })
   })
 }
+
+// 三级页查看原文接口
+export function getArticleOriginalText(data) {
+  return request({
+    url: '/publicapply/userbase/getOriginalText',
+    method: 'post',
+    data
+  })
+}

+ 43 - 5
apps/bigmember_pc/src/views/article-content/components/ContentHeader.vue

@@ -10,6 +10,8 @@ import { useStore } from '@/store'
 import { useDistribute } from '@/views/article-content/composables/useDistribute'
 import { useShare } from '@/views/article-content/composables/useShare'
 import { useArticleStarModel } from '@/views/article-content/composables/useArticleStar'
+import BidrenewalDialog from '@/views/BidrenewalDialog/index.vue'
+import { useQuickJoinBidModel } from '@/composables/quick-join-bid'
 
 const getters = useStore().getters
 const vt = computed(() => {
@@ -40,6 +42,23 @@ const { doSubmitDistribute, openDistribute, usePowerRef } = useDistribute()
 const contentId = params.id.replace('.html', '')
 const { starModel, doFetchStarState } = useArticleStarModel(contentId)
 doFetchStarState()
+
+// 参标
+const {
+  BidrenewalDialogElement,
+  JoinBidModel,
+  doFetchJoinBid,
+  doChangeJoinBid
+} = useQuickJoinBidModel({ id: contentId })
+doFetchJoinBid()
+
+const JoinBidInfo = computed(() => {
+  return JoinBidModel.value.projectInfo.joinBidInfo
+})
+
+const canShowJoinBidTip = computed(() => {
+  return JoinBidInfo.value.nameStr
+})
 </script>
 
 <template>
@@ -108,11 +127,21 @@ doFetchStarState()
       </div>
     </div>
     <div class="expands-info">
-      <div>
-        <div class="ent-features" v-if="false">
-          <span class="iconfont icon-ren"></span>
-          参标人:秦月、张翰等
-        </div>
+      <div class="join-bid-actions">
+        <el-tooltip
+          class="item"
+          effect="dark"
+          placement="bottom-end"
+          v-if="canShowJoinBidTip"
+        >
+          <div slot="content" style="max-width: 200px">
+            {{ JoinBidInfo.userName.replace(/,/g, '、') }}
+          </div>
+          <div class="ent-features">
+            <span class="iconfont icon-ren"></span>
+            参标人:{{ JoinBidInfo.nameStr }}
+          </div>
+        </el-tooltip>
       </div>
       <div>
         <div
@@ -139,6 +168,11 @@ doFetchStarState()
       :vt="vt"
       @manualDiatribution="doSubmitDistribute"
     ></powerPerson>
+    <!-- 参标更新状态弹窗 -->
+    <BidrenewalDialog
+      ref="BidrenewalDialogElement"
+      @saveCallback="doFetchJoinBid"
+    ></BidrenewalDialog>
   </div>
 </template>
 
@@ -269,5 +303,9 @@ doFetchStarState()
       color: #2abed1;
     }
   }
+
+  .join-bid-actions {
+    position: relative;
+  }
 }
 </style>

+ 13 - 1
apps/bigmember_pc/src/views/article-content/pages/Article.vue

@@ -24,6 +24,7 @@ import DownProjectReport from '@/composables/down-project-report/component/DownP
 import { doOpenArticlePage } from '@/views/article-content/composables/useArticleUtil'
 import RecommendOpportunities from '@/views/article-content/components/RecommendOpportunities.vue'
 import FooterAd from '@/views/article-content/components/FooterAd.vue'
+import OriginLink from '@/views/article-content/components/OriginLink.vue'
 
 useContentStore()
 
@@ -128,6 +129,12 @@ const collectElement = ref(null)
 function doOpenCollectDialog(key) {
   collectElement.value?.noCallApiFn(key, false)
 }
+
+// 查看原文
+const originLinkElement = ref(null)
+function doOpenOriginLink() {
+  originLinkElement.value?.doGetLinkAction()
+}
 </script>
 <template>
   <ContentLayout :need-ad="true">
@@ -182,7 +189,7 @@ function doOpenCollectDialog(key) {
             <pre v-html="ContentModel.contentHighlighted"></pre>
           </div>
 
-          <el-button class="origin-detail-action">
+          <el-button class="origin-detail-action" @click="doOpenOriginLink">
             <span class="iconfont icon-chakanyuanwen"></span>
             查看原文链接
           </el-button>
@@ -317,6 +324,11 @@ function doOpenCollectDialog(key) {
     </div>
     <collect-info ref="collectElement"></collect-info>
     <footer-ad code="jy-pccontent-bottom"></footer-ad>
+    <origin-link
+      ref="originLinkElement"
+      :id="contentId"
+      @click-collect="doOpenCollectDialog"
+    ></origin-link>
   </ContentLayout>
 </template>