|
@@ -48,6 +48,7 @@ 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'
|
|
|
+import ContentThirdPopover from '@/views/article-content/components/ContentThirdPopover.vue'
|
|
|
|
|
|
useContentStore()
|
|
|
// 判断在哪个容器
|
|
@@ -268,7 +269,6 @@ const canShowMask = computed(() => {
|
|
|
})
|
|
|
|
|
|
const popoverElement = ref(null)
|
|
|
-const popoverTriggerElement = ref(null)
|
|
|
|
|
|
// 招标、采购进度
|
|
|
const winnerTimeLineList = computed(() => {
|
|
@@ -296,6 +296,11 @@ const popoverElementType = computed(() => {
|
|
|
if (elementState.value.className.indexOf('winner-name') !== -1) {
|
|
|
return 'winner-name'
|
|
|
}
|
|
|
+ if (
|
|
|
+ elementState.value.className.indexOf('third-party-verify-button') !== -1
|
|
|
+ ) {
|
|
|
+ return 'third-verify'
|
|
|
+ }
|
|
|
return ''
|
|
|
})
|
|
|
|
|
@@ -303,6 +308,8 @@ const popoverElementType = computed(() => {
|
|
|
const popoverTimeLine = computed(() => {
|
|
|
if (popoverElementType.value === 'project-name') {
|
|
|
return {
|
|
|
+ width: '720',
|
|
|
+ contentType: 'time-line',
|
|
|
title: '项目公告',
|
|
|
list: timeLineList.value
|
|
|
}
|
|
@@ -313,11 +320,23 @@ const popoverTimeLine = computed(() => {
|
|
|
popoverElementType.value === 'winner-name'
|
|
|
) {
|
|
|
return {
|
|
|
+ width: '720',
|
|
|
+ contentType: 'time-line',
|
|
|
title: '企业最新信息',
|
|
|
list: winnerTimeLineList.value
|
|
|
}
|
|
|
}
|
|
|
+ if (popoverElementType.value === 'third-verify') {
|
|
|
+ return {
|
|
|
+ width: '623',
|
|
|
+ contentType: 'third-verify',
|
|
|
+ title: '',
|
|
|
+ list: []
|
|
|
+ }
|
|
|
+ }
|
|
|
return {
|
|
|
+ width: '',
|
|
|
+ contentType: '',
|
|
|
title: '',
|
|
|
list: []
|
|
|
}
|
|
@@ -326,6 +345,17 @@ const popoverTimeLine = computed(() => {
|
|
|
const { elementState, useElementListener } = useHoverHighlightTextPopover({
|
|
|
parentSelector: '.content-main-container',
|
|
|
hasClass: 'keyword-underline',
|
|
|
+ onCustomClass: (className) => {
|
|
|
+ // 项目名称
|
|
|
+ if (className.indexOf('keyword-underline') !== -1) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ // 认证服务
|
|
|
+ if (className.indexOf('third-party-verify-button') !== -1) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ },
|
|
|
onChangeHover: debounce((isHover) => {
|
|
|
popoverElement.value.doChangePopover(isHover)
|
|
|
}, 150),
|
|
@@ -343,7 +373,7 @@ const { elementState, useElementListener } = useHoverHighlightTextPopover({
|
|
|
|
|
|
// 事件延迟绑定
|
|
|
const canAddContentMainEvent = computed(() => {
|
|
|
- const result = ContentPageLoading.value && tabContentShow.value['公告正文']
|
|
|
+ const result = !ContentPageLoading.value && tabContentShow.value['公告正文']
|
|
|
if (result) {
|
|
|
useElementListener()
|
|
|
}
|
|
@@ -440,7 +470,10 @@ function doClickFreeView() {
|
|
|
name="公告正文"
|
|
|
v-if="tabContentShow['公告正文']"
|
|
|
>
|
|
|
- <div class="content-main-container">
|
|
|
+ <div
|
|
|
+ class="content-main-container"
|
|
|
+ :data-content="canAddContentMainEvent"
|
|
|
+ >
|
|
|
<div class="content-block-header">公告正文</div>
|
|
|
<div
|
|
|
class="content-detail-container"
|
|
@@ -528,14 +561,24 @@ function doClickFreeView() {
|
|
|
</el-skeleton>
|
|
|
<!-- hover 项目、企业名称时展示 popover 最新标讯 -->
|
|
|
<pover-time-line
|
|
|
+ class="article-content-popover"
|
|
|
trigger="manual"
|
|
|
+ poperClass="poverStep"
|
|
|
+ poperPlacement="bottom"
|
|
|
:title="popoverTimeLine.title"
|
|
|
:custom-event="true"
|
|
|
@open="doOpenArticlePage"
|
|
|
:stepList="popoverTimeLine.list"
|
|
|
+ :poper-width="popoverTimeLine.width"
|
|
|
ref="popoverElement"
|
|
|
>
|
|
|
<div slot="content" :style="elementState.style"></div>
|
|
|
+ <div slot="main" v-if="popoverTimeLine.contentType === 'third-verify'">
|
|
|
+ <!-- 认证服务悬浮弹窗 -->
|
|
|
+ <content-third-popover
|
|
|
+ @open-collect="doOpenCollectDialog"
|
|
|
+ ></content-third-popover>
|
|
|
+ </div>
|
|
|
</pover-time-line>
|
|
|
<!-- 留资弹窗 -->
|
|
|
<collect-info ref="collectElement"></collect-info>
|