|
@@ -8,7 +8,7 @@ import {
|
|
|
} from 'vue'
|
|
|
import { useRoute } from 'vue-router/composables'
|
|
|
import { debounce, throttle } from 'lodash'
|
|
|
-import { replaceKeyword } from '@/utils'
|
|
|
+import { moneyUnit, replaceKeyword } from '@/utils'
|
|
|
import { dateFromNow } from '@jy/util'
|
|
|
// 组件引入
|
|
|
import ContentHeader from '@/views/article-content/components/ContentHeader.vue'
|
|
@@ -46,6 +46,7 @@ import ContentHeaderSkeleton from '@/views/article-content/components/ContentHea
|
|
|
import PoverTimeLine from '@/components/time-line/PoverTimeLine.vue'
|
|
|
import { useHoverHighlightTextPopover } from '@/views/article-content/composables/useHoverElementClientRect'
|
|
|
import attachmentDownload from '@/composables/attachment-download/component/AttachmentDownload.vue'
|
|
|
+import ContentRightTimeLine from '@/views/article-content/components/ContentRightTimeLine.vue'
|
|
|
|
|
|
useContentStore()
|
|
|
// 判断在哪个容器
|
|
@@ -71,9 +72,6 @@ const contentTabs = [
|
|
|
{
|
|
|
label: '公告正文'
|
|
|
},
|
|
|
- {
|
|
|
- label: '招标/采购进度'
|
|
|
- },
|
|
|
{
|
|
|
label: '投标服务'
|
|
|
},
|
|
@@ -88,7 +86,6 @@ const contentTabs = [
|
|
|
const tabContentState = ref({
|
|
|
公告摘要: true,
|
|
|
公告正文: true,
|
|
|
- '招标/采购进度': true,
|
|
|
投标服务: true,
|
|
|
商机推荐: true,
|
|
|
客户推荐: true
|
|
@@ -101,8 +98,6 @@ const tabContentShow = computed(() => {
|
|
|
ContentExpandsModel.value.recommendBuyers.total > 0 ||
|
|
|
ContentExpandsModel.value.recommendWinners.total > 0,
|
|
|
投标服务: ContentExpandsModel.value.services.length > 0,
|
|
|
- '招标/采购进度':
|
|
|
- ContentExpandsModel.value.projectProgress?.list?.length > 0,
|
|
|
公告摘要: SummaryModel.value.list.filter((v) => v.value).length > 0,
|
|
|
公告正文: ContentModel.value.content
|
|
|
}
|
|
@@ -147,6 +142,11 @@ const timeLineList = computed(() => {
|
|
|
ContentExpandsModel.value.projectProgress.name,
|
|
|
['<span class="highlight-text">', '</span>']
|
|
|
),
|
|
|
+ contentType: [
|
|
|
+ v._data?.toptype ? '招标' + v._data?.toptype : '',
|
|
|
+ v._data?.subtype
|
|
|
+ ].filter((v) => v),
|
|
|
+ money: v?.bidAmount ? moneyUnit(v?.bidAmount) + '元' : '',
|
|
|
id: v.id,
|
|
|
s_id: v.id,
|
|
|
tags: [v.tag],
|
|
@@ -312,8 +312,8 @@ const popoverTimeLine = computed(() => {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
-const { elementState } = useHoverHighlightTextPopover({
|
|
|
- parentSelector: '.article-page-container',
|
|
|
+const { elementState, useElementListener } = useHoverHighlightTextPopover({
|
|
|
+ parentSelector: '.content-main-container',
|
|
|
hasClass: 'keyword-underline',
|
|
|
onChangeHover: debounce((isHover) => {
|
|
|
popoverElement.value.doChangePopover(isHover)
|
|
@@ -330,6 +330,15 @@ const { elementState } = useHoverHighlightTextPopover({
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+// 事件延迟绑定
|
|
|
+const canAddContentMainEvent = computed(() => {
|
|
|
+ const result = ContentPageLoading.value && tabContentShow.value['公告正文']
|
|
|
+ if (result) {
|
|
|
+ useElementListener()
|
|
|
+ }
|
|
|
+ return result
|
|
|
+})
|
|
|
+
|
|
|
// 免费查看
|
|
|
function doClickFreeView() {
|
|
|
doOpenCollectDialog('peugeot_view_infor')
|
|
@@ -337,7 +346,12 @@ function doClickFreeView() {
|
|
|
</script>
|
|
|
<template>
|
|
|
<ContentLayout :need-ad="true" class="article-page-container">
|
|
|
- <el-skeleton :loading="ContentPageLoading" animated :throttle="500">
|
|
|
+ <el-skeleton
|
|
|
+ class="default-article-container"
|
|
|
+ :loading="ContentPageLoading"
|
|
|
+ animated
|
|
|
+ :throttle="500"
|
|
|
+ >
|
|
|
<template slot="template">
|
|
|
<div class="article-container">
|
|
|
<content-header-skeleton />
|
|
@@ -447,43 +461,6 @@ function doClickFreeView() {
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- 招标/采购进度 -->
|
|
|
- <div
|
|
|
- class="content-card watch-tab-content"
|
|
|
- name="招标/采购进度"
|
|
|
- v-if="tabContentShow['招标/采购进度']"
|
|
|
- >
|
|
|
- <div class="flex flex-(row items-center justify-between)">
|
|
|
- <div class="content-block-header">招标/采购进度</div>
|
|
|
- <div
|
|
|
- class="report-actions flex flex-(row items-center justify-between)"
|
|
|
- >
|
|
|
- <down-project-report
|
|
|
- v-if="ContentModel.projectName"
|
|
|
- :id="contentId"
|
|
|
- :name="ContentModel.projectName"
|
|
|
- ></down-project-report>
|
|
|
- <quick-monitor
|
|
|
- class="m-l-16px"
|
|
|
- :cache="true"
|
|
|
- :auto="false"
|
|
|
- type="project"
|
|
|
- :params="contentId"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <TimeLine
|
|
|
- :custom-event="true"
|
|
|
- :stepList="timeLineList"
|
|
|
- @open="doOpenArticlePage"
|
|
|
- >
|
|
|
- <template v-slot:after="{ item }">
|
|
|
- <span class="is-active-time-item" v-if="item.isActive"
|
|
|
- >当前信息</span
|
|
|
- >
|
|
|
- </template>
|
|
|
- </TimeLine>
|
|
|
- </div>
|
|
|
<!-- 投标服务 -->
|
|
|
<div
|
|
|
class="content-card watch-tab-content"
|
|
@@ -557,8 +534,16 @@ function doClickFreeView() {
|
|
|
:id="contentId"
|
|
|
@click-collect="doOpenCollectDialog"
|
|
|
></origin-link>
|
|
|
+ <template #right-top v-if="timeLineList.length > 0">
|
|
|
+ <!-- 招标/采购进度 -->
|
|
|
+ <content-right-time-line
|
|
|
+ :content-id="contentId"
|
|
|
+ :time-line-list="timeLineList"
|
|
|
+ @open="doOpenArticlePage"
|
|
|
+ ></content-right-time-line>
|
|
|
+ </template>
|
|
|
<!-- in-web 容器时右侧注入侧边栏 -->
|
|
|
- <template #right v-if="InWhichContainer === 'in-web'">
|
|
|
+ <template #right-main v-if="InWhichContainer === 'in-web'">
|
|
|
<div id="inWebRightElement"></div>
|
|
|
</template>
|
|
|
</ContentLayout>
|
|
@@ -581,11 +566,11 @@ function doClickFreeView() {
|
|
|
margin: 0 auto;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- .content-right {
|
|
|
- width: 200px;
|
|
|
- margin-left: 16px;
|
|
|
- }
|
|
|
+ }
|
|
|
+ .content-right {
|
|
|
+ flex-shrink: 0;
|
|
|
+ width: 200px;
|
|
|
+ margin-left: 16px;
|
|
|
}
|
|
|
}
|
|
|
</style>
|