招标解析
This commit is contained in:
parent
7a212705c1
commit
2a288052a4
|
|
@ -4,189 +4,194 @@
|
||||||
<!-- 头部导航 -->
|
<!-- 头部导航 -->
|
||||||
<AnalysisHeader @back="handleBack" />
|
<AnalysisHeader @back="handleBack" />
|
||||||
|
|
||||||
<!-- 一级标签页 - 占满整行 -->
|
<el-card>
|
||||||
<div class="main-tabs-container">
|
<!-- 解析结果标题 -->
|
||||||
<el-tabs v-model="activeMainTab" @tab-click="handleMainTabClick" class="main-tabs">
|
<div class="result-header">
|
||||||
<el-tab-pane
|
<img src="@/assets/enterpriseLibrary/basic-info.png" alt="基本信息">
|
||||||
v-for="tab in mainTabs"
|
<h3>解析结果</h3>
|
||||||
:key="tab.name"
|
|
||||||
:label="tab.label"
|
|
||||||
:name="tab.name"
|
|
||||||
/>
|
|
||||||
</el-tabs>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 主内容区域 - 左右各占50% -->
|
|
||||||
<div class="main-content">
|
|
||||||
<!-- 左侧:解析结果面板(包含二级tab和内容) -->
|
|
||||||
<div class="left-panel">
|
|
||||||
<AnalysisResultPanel ref="resultPanel" :main-tabs="mainTabs" :default-main-tab="activeMainTab"
|
|
||||||
:default-sub-tab="defaultSubTab" @main-tab-change="handleMainTabChange"
|
|
||||||
@sub-tab-change="handleSubTabChange" :hide-main-tabs="true" :key="activeMainTab">
|
|
||||||
<!-- 项目信息 - 招标人 -->
|
|
||||||
<template #project-tenderer>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">招标人信息</div>
|
|
||||||
<div class="section-content">{{ analysisData.tenderer || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 项目信息 - 基础信息 -->
|
|
||||||
<template #project-basic>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">基础信息</div>
|
|
||||||
<div class="section-content">{{ analysisData.basicInfo || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 项目信息 - 代理机构 -->
|
|
||||||
<template #project-agency>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">代理机构</div>
|
|
||||||
<div class="section-content">{{ analysisData.agency || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 项目信息 - 关键时间 -->
|
|
||||||
<template #project-keyTime>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">关键时间</div>
|
|
||||||
<div class="section-content">{{ analysisData.keyTime || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 项目信息 - 联合体要求 -->
|
|
||||||
<template #project-consortium>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">联合体要求</div>
|
|
||||||
<div class="section-content">{{ analysisData.consortium || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 项目信息 - 分包要求 -->
|
|
||||||
<template #project-subcontract>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">分包要求</div>
|
|
||||||
<div class="section-content">{{ analysisData.subcontract || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 项目信息 - 最高限价 -->
|
|
||||||
<template #project-maxPrice>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">最高限价</div>
|
|
||||||
<div class="section-content">{{ analysisData.maxPrice || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 项目信息 - 响应和偏差 -->
|
|
||||||
<template #project-response>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">响应和偏差要求</div>
|
|
||||||
<div class="section-content">{{ analysisData.response || '招标文件无此内容' }}</div>
|
|
||||||
</div>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">澄清要求</div>
|
|
||||||
<div class="section-content">{{ analysisData.clarification || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 标段信息 -->
|
|
||||||
<template #bid>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">标段信息</div>
|
|
||||||
<div class="section-content">{{ analysisData.bidInfo || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 保证金 - 投标保证金 -->
|
|
||||||
<template #deposit-bidDeposit>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">投标保证金金额</div>
|
|
||||||
<div class="section-content">{{ analysisData.bidDepositAmount || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">投标保证金形式</div>
|
|
||||||
<div class="section-content">{{ analysisData.bidDepositForm || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">投标保证金提交期限</div>
|
|
||||||
<div class="section-content">{{ analysisData.bidDepositSubmitDeadline || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">投标保证金退还期限</div>
|
|
||||||
<div class="section-content">{{ analysisData.bidDepositRefundDeadline || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 保证金 - 履约保证金 -->
|
|
||||||
<template #deposit-performanceDeposit>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">履约保证金</div>
|
|
||||||
<div class="section-content">{{ analysisData.performanceDeposit || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 其他标签页内容 -->
|
|
||||||
<template #qualification>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">资格要求</div>
|
|
||||||
<div class="section-content">{{ analysisData.qualification || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<template #performance>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">业绩要求</div>
|
|
||||||
<div class="section-content">{{ analysisData.performance || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<template #finance>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">财务要求</div>
|
|
||||||
<div class="section-content">{{ analysisData.finance || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<template #personnel>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">人员要求</div>
|
|
||||||
<div class="section-content">{{ analysisData.personnel || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<template #evaluation>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">开评定标要求</div>
|
|
||||||
<div class="section-content">{{ analysisData.evaluation || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<template #rejection>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">废标项</div>
|
|
||||||
<div class="section-content">{{ analysisData.rejection || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<template #document>
|
|
||||||
<div class="content-section">
|
|
||||||
<div class="section-title">投标文件要求</div>
|
|
||||||
<div class="section-content">{{ analysisData.document || '--' }}</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</AnalysisResultPanel>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 右侧:文档预览面板 -->
|
<!-- 一级标签页 - 占满整行 -->
|
||||||
<div class="right-panel">
|
<div class="main-tabs-container">
|
||||||
<DocumentPreviewPanel :tender-document-url="tenderDocumentUrl"
|
<el-tabs v-model="activeMainTab" @tab-click="handleMainTabClick" class="main-tabs">
|
||||||
:tender-document-title="tenderDocumentTitle" :tender-document-key="tenderDocumentKey"
|
<el-tab-pane v-for="tab in mainTabs" :key="tab.name" :label="tab.label" :name="tab.name" />
|
||||||
:bid-document-url="bidDocumentUrl" :bid-document-title="bidDocumentTitle"
|
</el-tabs>
|
||||||
:bid-document-key="bidDocumentKey" @document-switch="handleDocumentSwitch" @search="handleSearch" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
<!-- 主内容区域 - 左右各占50% -->
|
||||||
|
<div class="main-content">
|
||||||
|
<!-- 左侧:解析结果面板(包含二级tab和内容) -->
|
||||||
|
<div class="left-panel">
|
||||||
|
<AnalysisResultPanel ref="resultPanel" :main-tabs="mainTabs" :default-main-tab="activeMainTab"
|
||||||
|
:default-sub-tab="defaultSubTab" @main-tab-change="handleMainTabChange"
|
||||||
|
@sub-tab-change="handleSubTabChange" :hide-main-tabs="true" :hide-header="true"
|
||||||
|
:key="activeMainTab">
|
||||||
|
<!-- 项目信息 - 招标人 -->
|
||||||
|
<template #project-tenderer>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">招标人信息</div>
|
||||||
|
<div class="section-content">{{ analysisData.tenderer || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 项目信息 - 基础信息 -->
|
||||||
|
<template #project-basic>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">基础信息</div>
|
||||||
|
<div class="section-content">{{ analysisData.basicInfo || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 项目信息 - 代理机构 -->
|
||||||
|
<template #project-agency>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">代理机构</div>
|
||||||
|
<div class="section-content">{{ analysisData.agency || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 项目信息 - 关键时间 -->
|
||||||
|
<template #project-keyTime>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">关键时间</div>
|
||||||
|
<div class="section-content">{{ analysisData.keyTime || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 项目信息 - 联合体要求 -->
|
||||||
|
<template #project-consortium>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">联合体要求</div>
|
||||||
|
<div class="section-content">{{ analysisData.consortium || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 项目信息 - 分包要求 -->
|
||||||
|
<template #project-subcontract>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">分包要求</div>
|
||||||
|
<div class="section-content">{{ analysisData.subcontract || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 项目信息 - 最高限价 -->
|
||||||
|
<template #project-maxPrice>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">最高限价</div>
|
||||||
|
<div class="section-content">{{ analysisData.maxPrice || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 项目信息 - 响应和偏差 -->
|
||||||
|
<template #project-response>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">响应和偏差要求</div>
|
||||||
|
<div class="section-content">{{ analysisData.response || '招标文件无此内容' }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">澄清要求</div>
|
||||||
|
<div class="section-content">{{ analysisData.clarification || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 标段信息 -->
|
||||||
|
<template #bid>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">标段信息</div>
|
||||||
|
<div class="section-content">{{ analysisData.bidInfo || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 保证金 - 投标保证金 -->
|
||||||
|
<template #deposit-bidDeposit>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">投标保证金金额</div>
|
||||||
|
<div class="section-content">{{ analysisData.bidDepositAmount || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">投标保证金形式</div>
|
||||||
|
<div class="section-content">{{ analysisData.bidDepositForm || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">投标保证金提交期限</div>
|
||||||
|
<div class="section-content">{{ analysisData.bidDepositSubmitDeadline || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">投标保证金退还期限</div>
|
||||||
|
<div class="section-content">{{ analysisData.bidDepositRefundDeadline || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 保证金 - 履约保证金 -->
|
||||||
|
<template #deposit-performanceDeposit>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">履约保证金</div>
|
||||||
|
<div class="section-content">{{ analysisData.performanceDeposit || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 其他标签页内容 -->
|
||||||
|
<template #qualification>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">资格要求</div>
|
||||||
|
<div class="section-content">{{ analysisData.qualification || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #performance>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">业绩要求</div>
|
||||||
|
<div class="section-content">{{ analysisData.performance || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #finance>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">财务要求</div>
|
||||||
|
<div class="section-content">{{ analysisData.finance || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #personnel>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">人员要求</div>
|
||||||
|
<div class="section-content">{{ analysisData.personnel || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #evaluation>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">开评定标要求</div>
|
||||||
|
<div class="section-content">{{ analysisData.evaluation || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #rejection>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">废标项</div>
|
||||||
|
<div class="section-content">{{ analysisData.rejection || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #document>
|
||||||
|
<div class="content-section">
|
||||||
|
<div class="section-title">投标文件要求</div>
|
||||||
|
<div class="section-content">{{ analysisData.document || '--' }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</AnalysisResultPanel>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 右侧:文档预览面板 -->
|
||||||
|
<div class="right-panel">
|
||||||
|
<DocumentPreviewPanel :tender-document-url="tenderDocumentUrl"
|
||||||
|
:tender-document-title="tenderDocumentTitle" :tender-document-key="tenderDocumentKey"
|
||||||
|
:bid-document-url="bidDocumentUrl" :bid-document-title="bidDocumentTitle"
|
||||||
|
:bid-document-key="bidDocumentKey" @document-switch="handleDocumentSwitch"
|
||||||
|
@search="handleSearch" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -368,6 +373,30 @@ export default {
|
||||||
background: linear-gradient(180deg, #F1F6FF 0%, #E5EFFF 100%);
|
background: linear-gradient(180deg, #F1F6FF 0%, #E5EFFF 100%);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
|
// 解析结果标题
|
||||||
|
.result-header {
|
||||||
|
flex-shrink: 0;
|
||||||
|
padding: 16px 20px;
|
||||||
|
border-bottom: 1px solid #EBEEF5;
|
||||||
|
background: #FFFFFF;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 34px;
|
||||||
|
height: 34px;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 一级标签页容器 - 占满整行
|
// 一级标签页容器 - 占满整行
|
||||||
.main-tabs-container {
|
.main-tabs-container {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<!-- 解析结果面板 -->
|
<!-- 解析结果面板 -->
|
||||||
<template>
|
<template>
|
||||||
<div class="analysis-result-panel">
|
<div class="analysis-result-panel">
|
||||||
<div class="panel-header">
|
<div class="panel-header" v-if="!hideHeader">
|
||||||
<h3>解析结果</h3>
|
<h3>解析结果</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-content">
|
<div class="panel-content">
|
||||||
|
|
@ -143,6 +143,11 @@ export default {
|
||||||
hideMainTabs: {
|
hideMainTabs: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
|
},
|
||||||
|
// 是否隐藏头部标题
|
||||||
|
hideHeader: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue