|
@@ -10,6 +10,15 @@ import ContentLayout from '@/components/common/ContentLayout.vue'
|
|
|
import { replaceKeyword } from '@/utils'
|
|
|
import RecommendCustomersList from '@/views/content/components/RecommendCustomers.vue'
|
|
|
import { throttle } from 'lodash'
|
|
|
+import { ajaxGetContentInfo } from '@/api/modules/detail'
|
|
|
+import { useContentInfo, summaryModel, contentModel } from '@jy/data-models'
|
|
|
+import ContentSummary from '@/views/content/components/ContentSummary.vue'
|
|
|
+
|
|
|
+ajaxGetContentInfo({}).then((res) => {
|
|
|
+ if (res.error_code === 0) {
|
|
|
+ useContentInfo(res.data)
|
|
|
+ }
|
|
|
+})
|
|
|
|
|
|
const activeContentTab = ref('公告摘要')
|
|
|
const contentTabs = [
|
|
@@ -51,58 +60,6 @@ function doSelectTab(item) {
|
|
|
scrollToTop(goElement, 45)
|
|
|
}
|
|
|
|
|
|
-const tableConfig = ref({
|
|
|
- column: [
|
|
|
- {
|
|
|
- width: '124px'
|
|
|
- },
|
|
|
- {},
|
|
|
- {
|
|
|
- width: '124px'
|
|
|
- },
|
|
|
- {}
|
|
|
- ]
|
|
|
-})
|
|
|
-
|
|
|
-const contentSummaryTable = [
|
|
|
- [
|
|
|
- {
|
|
|
- label: '采购单位'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '大通回族土族自治县住房和城乡建设局',
|
|
|
- type: 'unit'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '采购联系人/电话'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '0371-5454545',
|
|
|
- type: 'phone'
|
|
|
- }
|
|
|
- ],
|
|
|
- [
|
|
|
- {
|
|
|
- label: '招标代理机构'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '青海川泽工程咨询有限公司'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '采购联系人/电话'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '0371-5454545'
|
|
|
- }
|
|
|
- ]
|
|
|
-]
|
|
|
-
|
|
|
-function getCellClassName({ row, column, rowIndex, columnIndex }) {
|
|
|
- if (columnIndex === 0 || columnIndex === 2) {
|
|
|
- return 'label-col'
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
function addTableItem(item) {
|
|
|
const TypeLabels = {
|
|
|
buyerunit: '采购单位',
|
|
@@ -291,7 +248,7 @@ onBeforeMount(() => {
|
|
|
<div class="article-container">
|
|
|
<content-header></content-header>
|
|
|
|
|
|
- <div class="content-header-tip">
|
|
|
+ <div class="content-header-tip" v-if="contentModel.isSelfSite">
|
|
|
<span>
|
|
|
该公告由业主方/采购单位直接发布,急寻供应商,立即报名直接联系业主方/采购单位参与投标采购。
|
|
|
</span>
|
|
@@ -323,54 +280,11 @@ onBeforeMount(() => {
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="article-content-container watch-tab-content" name="公告摘要">
|
|
|
- <div class="flex flex-(row items-center justify-between)">
|
|
|
- <div class="content-block-header">公告摘要</div>
|
|
|
-
|
|
|
- <div class="summary-header-tip color-highlight">
|
|
|
- 最近5年招标采购数据均可导出下载,如需更多年份和行业字段您可申请数据定制
|
|
|
- >
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <el-table
|
|
|
- class="summary-table"
|
|
|
- :data="contentSummaryTable"
|
|
|
- border
|
|
|
- :show-header="false"
|
|
|
- :cell-class-name="getCellClassName"
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-table-column
|
|
|
- v-for="(item, index) in tableConfig.column"
|
|
|
- :key="index"
|
|
|
- :width="item.width"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <div v-if="!scope.row[index]?.type">
|
|
|
- {{ scope.row[index].label }}
|
|
|
- </div>
|
|
|
- <div v-else>
|
|
|
- <div class="td-unit" v-if="scope.row[index].type === 'unit'">
|
|
|
- {{ scope.row[index].label }}
|
|
|
- <span>查看详情></span>
|
|
|
- </div>
|
|
|
- <div class="td-phone" v-if="scope.row[index].type === 'phone'">
|
|
|
- {{ scope.row[index].label }}
|
|
|
- <span>更多联系人></span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
-
|
|
|
- <div class="table-footer-tip">
|
|
|
- *以上摘要信息由剑鱼标讯智能提取,仅供参考。如有误差,请<span
|
|
|
- class="highlight-label"
|
|
|
- >联系客服</span
|
|
|
- >进行处理。
|
|
|
- </div>
|
|
|
+ <div class="content-card watch-tab-content" name="公告摘要">
|
|
|
+ <content-summary />
|
|
|
+ </div>
|
|
|
|
|
|
+ <div class="article-content-container watch-tab-content" name="公告摘要">
|
|
|
<div class="recommend-info-card" v-for="i in 2" :key="i">
|
|
|
<div class="type-info-header">
|
|
|
<div class="type-infos">
|
|
@@ -788,6 +702,9 @@ onBeforeMount(() => {
|
|
|
border-radius: 8px;
|
|
|
padding: 32px 40px;
|
|
|
background-color: #fff;
|
|
|
+ &.is-plain {
|
|
|
+ border-radius: 0;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.content-detail-container {
|
|
@@ -933,65 +850,6 @@ onBeforeMount(() => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-.table-footer-tip {
|
|
|
- margin-bottom: 8px;
|
|
|
- color: #888;
|
|
|
- font-size: 14px;
|
|
|
- font-style: normal;
|
|
|
- font-weight: 400;
|
|
|
- line-height: normal;
|
|
|
- .highlight-label {
|
|
|
- cursor: pointer;
|
|
|
- color: #2abed1;
|
|
|
- text-decoration-line: underline;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-::v-deep {
|
|
|
- .el-table.summary-table {
|
|
|
- margin: 16px 0;
|
|
|
- font-size: 14px;
|
|
|
- font-style: normal;
|
|
|
- font-weight: 400;
|
|
|
- line-height: 22px;
|
|
|
- color: #1d1d1d;
|
|
|
- background-color: #fff;
|
|
|
-
|
|
|
- tr:hover > td.el-table__cell {
|
|
|
- background-color: unset;
|
|
|
- }
|
|
|
-
|
|
|
- tr:hover > td.el-table__cell.label-col,
|
|
|
- .label-col {
|
|
|
- width: 124px;
|
|
|
- color: #5c5d61;
|
|
|
- background: #f7f9fc;
|
|
|
- }
|
|
|
- .td-phone {
|
|
|
- display: flex;
|
|
|
- flex-direction: row;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
- span {
|
|
|
- color: #2abed1;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
- }
|
|
|
- .td-unit {
|
|
|
- display: flex;
|
|
|
- flex-direction: row;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
- color: #2abed1;
|
|
|
- span {
|
|
|
- flex-shrink: 0;
|
|
|
- margin-left: 34px;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
.article-container {
|
|
|
width: 980px;
|
|
|
margin: 20px;
|
|
@@ -1000,25 +858,31 @@ onBeforeMount(() => {
|
|
|
padding: 33px 40px;
|
|
|
background-color: #fff;
|
|
|
}
|
|
|
-.content-block-header {
|
|
|
- position: relative;
|
|
|
- color: #1d1d1d;
|
|
|
- font-size: 20px;
|
|
|
- font-style: normal;
|
|
|
- font-weight: 400;
|
|
|
- line-height: 32px;
|
|
|
- &::before {
|
|
|
- content: '';
|
|
|
- position: absolute;
|
|
|
- top: 4px;
|
|
|
- left: -40px;
|
|
|
- display: inline-block;
|
|
|
- width: 3px;
|
|
|
- height: 24px;
|
|
|
- border-radius: 0px 2px 2px 0px;
|
|
|
- background: #2abed1;
|
|
|
+::v-deep {
|
|
|
+ .content-block-header {
|
|
|
+ position: relative;
|
|
|
+ color: #1d1d1d;
|
|
|
+ font-size: 20px;
|
|
|
+ font-style: normal;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 32px;
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ top: 4px;
|
|
|
+ left: -40px;
|
|
|
+ display: inline-block;
|
|
|
+ width: 3px;
|
|
|
+ height: 24px;
|
|
|
+ border-radius: 0px 2px 2px 0px;
|
|
|
+ background: #2abed1;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+.watch-tab-header {
|
|
|
+ margin-top: 16px;
|
|
|
+}
|
|
|
.content-tabs-fixed {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
@@ -1063,7 +927,7 @@ onBeforeMount(() => {
|
|
|
}
|
|
|
}
|
|
|
.content-header-tip {
|
|
|
- margin: 16px 0;
|
|
|
+ margin-top: 16px;
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
align-items: center;
|