|
@@ -18,7 +18,7 @@
|
|
|
<span class="dropdown-text">{{ value.name }}</span>
|
|
|
<i class="el-icon-caret-bottom" :class="{ highlight: value.dropDownShow }"></i>
|
|
|
</span>
|
|
|
- <el-dropdown-menu slot="dropdown" class="report-dropdown-menu">
|
|
|
+ <el-dropdown-menu slot="dropdown" :append-to-body="false" class="report-dropdown-menu">
|
|
|
<el-dropdown-item
|
|
|
v-for="(item, index) in dimensionsOptions[key]"
|
|
|
:key="index"
|
|
@@ -39,203 +39,290 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="bg-grey-h24"></div>
|
|
|
- <div class="analysis-result-list">
|
|
|
- <section class="analysis-result-section section-market">
|
|
|
- <div class="analysis-result-title pd-lr20">市场规模</div>
|
|
|
- <div class="analysis-result-content sub-section-list">
|
|
|
- <!-- 市场概况 -->
|
|
|
- <div class="sub-section market-overview" v-if="(sections.market.overview.length && isConf10)">
|
|
|
- <div class="sub-section-header">
|
|
|
- <div class="sub-section-title">市场概况</div>
|
|
|
- </div>
|
|
|
- <div class="sub-section-content">
|
|
|
- <MarketOverview :overviewList="sections.market.overview" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[0]])" :k="Object.keys(vipUpgradeMap)[0]" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[0]]"></MaskCard>
|
|
|
- <!-- 项目规模分布 -->
|
|
|
- <div class="sub-section project-scatter"
|
|
|
- v-if="(isConf10 && !sections.loaded.top3) || (sections.projectScatter.dataAlready && sections.loaded.top3 && isConf10)"
|
|
|
- v-loading="!sections.loaded.top3">
|
|
|
- <div class="sub-section-header">
|
|
|
- <div class="sub-section-title">项目规模分布</div>
|
|
|
- </div>
|
|
|
- <div class="sub-section-content">
|
|
|
- <ProjectScatter
|
|
|
- v-if="sections.projectScatter.dataAlready"
|
|
|
- :chartData="sections.projectScatter.chartData"
|
|
|
- :tableData="sections.projectScatter.tableData"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[1]])" :k="Object.keys(vipUpgradeMap)[1]" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[1]]"></MaskCard>
|
|
|
- <!-- 时间分布 -->
|
|
|
- <div class="sub-section time-scatter" v-if="sections.timeScatter.dataAlready">
|
|
|
- <div class="sub-section-header">
|
|
|
- <div class="sub-section-title">时间分布</div>
|
|
|
- <div class="sub-section-action">
|
|
|
- <div
|
|
|
- class="s-a-item"
|
|
|
- :class="{
|
|
|
- active: item.value === sections.timeScatter.activeAction
|
|
|
- }"
|
|
|
- v-for="(item, index) in sections.timeScatter.actionList"
|
|
|
- :key="index"
|
|
|
- @click="clickTimeScatterTab(item)"
|
|
|
- >{{ item.label }}</div>
|
|
|
+ <el-tabs class="tabs sticky-tab-container" v-model="tabActiveName" :before-leave="beforeTabLeave">
|
|
|
+ <el-tab-pane label="市场分析" name="1">
|
|
|
+ <div class="analysis-result-list">
|
|
|
+ <section class="analysis-result-section section-market">
|
|
|
+ <div class="analysis-result-title pd-lr20">市场规模</div>
|
|
|
+ <div class="analysis-result-content sub-section-list">
|
|
|
+ <!-- 市场概况 -->
|
|
|
+ <div class="sub-section market-overview" v-if="(sections.market.overview.length && isConf10)">
|
|
|
+ <div class="sub-section-header">
|
|
|
+ <div class="sub-section-title">市场概况</div>
|
|
|
+ </div>
|
|
|
+ <div class="sub-section-content">
|
|
|
+ <MarketOverview :overviewList="sections.market.overview" />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[0]])" :k="Object.keys(vipUpgradeMap)[0]" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[0]]"></MaskCard>
|
|
|
+ <!-- 项目规模分布 -->
|
|
|
+ <div class="sub-section project-scatter"
|
|
|
+ v-if="(isConf10 && !sections.loaded.top3) || (sections.projectScatter.dataAlready && sections.loaded.top3 && isConf10)"
|
|
|
+ v-loading="!sections.loaded.top3">
|
|
|
+ <div class="sub-section-header">
|
|
|
+ <div class="sub-section-title">项目规模分布</div>
|
|
|
+ </div>
|
|
|
+ <div class="sub-section-content">
|
|
|
+ <ProjectScatter
|
|
|
+ v-if="sections.projectScatter.dataAlready"
|
|
|
+ :chartData="sections.projectScatter.chartData"
|
|
|
+ :tableData="sections.projectScatter.tableData"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[1]])" :k="Object.keys(vipUpgradeMap)[1]" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[1]]"></MaskCard>
|
|
|
+ <!-- 时间分布 -->
|
|
|
+ <div class="sub-section time-scatter" v-if="sections.timeScatter.dataAlready">
|
|
|
+ <div class="sub-section-header">
|
|
|
+ <div class="sub-section-title">时间分布</div>
|
|
|
+ <div class="sub-section-action">
|
|
|
+ <div
|
|
|
+ class="s-a-item"
|
|
|
+ :class="{
|
|
|
+ active: item.value === sections.timeScatter.activeAction
|
|
|
+ }"
|
|
|
+ v-for="(item, index) in sections.timeScatter.actionList"
|
|
|
+ :key="index"
|
|
|
+ @click="clickTimeScatterTab(item)"
|
|
|
+ >{{ item.label }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="sub-section-content time-chart-group" key="timeScatterChartsKey">
|
|
|
+ <MarketTimeScatter width="460px" :chartData="sections.timeScatter[sections.timeScatter.activeAction].count" />
|
|
|
+ <MarketTimeScatter width="460px" :chartData="sections.timeScatter[sections.timeScatter.activeAction].amount" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 地区分布 -->
|
|
|
+ <div class="sub-section area-scatter"
|
|
|
+ v-if="(!sections.loaded.top3 && notOneCityFilter && isConf10) || (sections.areaScatter.dataAlready && sections.loaded.top3 && notOneCityFilter && isConf10)"
|
|
|
+ v-loading="!sections.loaded.top3">
|
|
|
+ <div class="sub-section-header">
|
|
|
+ <div class="sub-section-title">地区分布</div>
|
|
|
+ </div>
|
|
|
+ <div class="sub-section-content">
|
|
|
+ <MarketAreaCityScatter
|
|
|
+ v-if="sections.areaScatter.dataAlready"
|
|
|
+ :chartData="sections.areaScatter.chartData"
|
|
|
+ :filterAreaMap="reportFilters.area"
|
|
|
+ :areaDataList="sections.areaScatter.areaDataList"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="top3-table-list pd-lr20">
|
|
|
+ <div class="ar-table"
|
|
|
+ v-if="(!sections.loaded.top3 && isConf10) || (sections.areaScatter.projectCountTop3 && sections.loaded.top3 && isConf10)"
|
|
|
+ v-loading="!sections.loaded.top3">
|
|
|
+ <p class="ar-table-title">项目数量TOP3地区的重点中标单位</p>
|
|
|
+ <Top3Table
|
|
|
+ v-if="sections.areaScatter.projectCountTop3"
|
|
|
+ :tableData="sections.areaScatter.projectCountTop3"
|
|
|
+ labelClickable
|
|
|
+ @clickLabel="clickTop3TableLabel($event, 'areaScatter')"
|
|
|
+ valueClickable
|
|
|
+ @clickValue="clickTop3TableValue($event, 'areaScatter')"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="ar-table"
|
|
|
+ v-if="!sections.loaded.top3 || (sections.areaScatter.projectAmountTop3 && sections.loaded.top3)"
|
|
|
+ v-loading="!sections.loaded.top3">
|
|
|
+ <p class="ar-table-title">项目金额TOP3地区的重点中标单位</p>
|
|
|
+ <Top3Table
|
|
|
+ v-if="sections.areaScatter.projectAmountTop3"
|
|
|
+ :tableData="sections.areaScatter.projectAmountTop3"
|
|
|
+ labelClickable
|
|
|
+ @clickLabel="clickTop3TableLabel($event, 'areaScatter')"
|
|
|
+ valueClickable
|
|
|
+ @clickValue="clickTop3TableValue($event, 'areaScatter')"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[2]])" :k="Object.keys(vipUpgradeMap)[2]" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[2]]"></MaskCard>
|
|
|
+ <!-- 客户分布 -->
|
|
|
+ <div class="sub-section user-scatter"
|
|
|
+ v-if="!sections.loaded.top3 || (sections.userScatter.list.length && sections.loaded.top3)"
|
|
|
+ v-loading="!sections.loaded.top3">
|
|
|
+ <div class="sub-section-header">
|
|
|
+ <div class="sub-section-title">客户分布</div>
|
|
|
+ <div class="view-more-btn" v-if="sections.userScatter.list.length > 10" @click="viewMoreUserScatter">查看详情</div>
|
|
|
+ </div>
|
|
|
+ <div class="sub-section-content">
|
|
|
+ <MarketUserScatter v-if="sections.userScatter.list.length" :chartData="sections.userScatter.list.slice(0,10)" @clickChart="clickMarketUserScatter" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="top3-table-list pd-lr20">
|
|
|
+ <div class="ar-table"
|
|
|
+ v-if="!sections.loaded.top3 || (sections.userScatter.projectCountTop3 && sections.loaded.top3)"
|
|
|
+ v-loading="!sections.loaded.top3">
|
|
|
+ <p class="ar-table-title">项目数量TOP3客户类型的重点中标单位</p>
|
|
|
+ <Top3Table
|
|
|
+ v-if="sections.userScatter.projectCountTop3"
|
|
|
+ :tableData="sections.userScatter.projectCountTop3"
|
|
|
+ labelClickable
|
|
|
+ @clickLabel="clickTop3TableLabel($event, 'userScatter')"
|
|
|
+ valueClickable
|
|
|
+ @clickValue="clickTop3TableValue($event, 'userScatter')"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="ar-table"
|
|
|
+ v-if="!sections.loaded.top3 || (sections.userScatter.projectAmountTop3 && sections.loaded.top3)"
|
|
|
+ v-loading="!sections.loaded.top3">
|
|
|
+ <p class="ar-table-title">项目金额TOP3客户类型的重点中标单位</p>
|
|
|
+ <Top3Table
|
|
|
+ v-if="sections.userScatter.projectAmountTop3"
|
|
|
+ :tableData="sections.userScatter.projectAmountTop3"
|
|
|
+ labelClickable
|
|
|
+ @clickLabel="clickTop3TableLabel($event, 'userScatter')"
|
|
|
+ valueClickable
|
|
|
+ @clickValue="clickTop3TableValue($event, 'userScatter')"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 细分市场 -->
|
|
|
+ <div class="sub-section market-refine"
|
|
|
+ v-if="(isConf10 && !sections.loaded.segment) || (sections.market.refine.dataAlready && sections.loaded.segment && isConf10)"
|
|
|
+ v-loading="!sections.loaded.segment">
|
|
|
+ <div class="sub-section-header">
|
|
|
+ <div class="sub-section-title">细分市场</div>
|
|
|
+ </div>
|
|
|
+ <div class="sub-section-content">
|
|
|
+ <MarketSegment
|
|
|
+ v-if="sections.market.refine.dataAlready"
|
|
|
+ @clickChart="clickMarketSegment"
|
|
|
+ :projectCountData="sections.market.refine.projectCountData"
|
|
|
+ :projectAmountData="sections.market.refine.projectAmountData"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="top3-table-list pd-lr20" v-if="isConf10">
|
|
|
+ <div class="ar-table"
|
|
|
+ v-if="(!sections.loaded.segment) || (sections.market.refine.projectCountTop3 && sections.loaded.segment)"
|
|
|
+ v-loading="!sections.loaded.segment">
|
|
|
+ <p class="ar-table-title">细分市场的重点中标单位-项目数量</p>
|
|
|
+ <Top3Table
|
|
|
+ v-if="sections.market.refine.projectCountTop3"
|
|
|
+ :tableData="sections.market.refine.projectCountTop3"
|
|
|
+ labelClickable
|
|
|
+ @clickLabel="clickTop3TableLabel($event, 'segment')"
|
|
|
+ valueClickable
|
|
|
+ @clickValue="clickTop3TableValue($event, 'segment')"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="ar-table"
|
|
|
+ v-if="!sections.loaded.segment || (sections.market.refine.projectAmountTop3 && sections.loaded.segment)"
|
|
|
+ v-loading="!sections.loaded.segment">
|
|
|
+ <p class="ar-table-title">细分市场的重点中标单位-项目金额</p>
|
|
|
+ <Top3Table
|
|
|
+ v-if="sections.market.refine.projectAmountTop3"
|
|
|
+ :tableData="sections.market.refine.projectAmountTop3"
|
|
|
+ labelClickable
|
|
|
+ @clickLabel="clickTop3TableLabel($event, 'segment')"
|
|
|
+ valueClickable
|
|
|
+ @clickValue="clickTop3TableValue($event, 'segment')"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[3]])" :k="Object.keys(vipUpgradeMap)[3]" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[3]]"></MaskCard>
|
|
|
</div>
|
|
|
- <div class="sub-section-content time-chart-group" key="timeScatterChartsKey">
|
|
|
- <MarketTimeScatter width="460px" :chartData="sections.timeScatter[sections.timeScatter.activeAction].count" />
|
|
|
- <MarketTimeScatter width="460px" :chartData="sections.timeScatter[sections.timeScatter.activeAction].amount" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 地区分布 -->
|
|
|
- <div class="sub-section area-scatter"
|
|
|
- v-if="(!sections.loaded.top3 && notOneAreaFilter && isConf10) || (sections.areaScatter.dataAlready && sections.loaded.top3 && notOneAreaFilter && isConf10)"
|
|
|
- v-loading="!sections.loaded.top3">
|
|
|
- <div class="sub-section-header">
|
|
|
- <div class="sub-section-title">地区分布</div>
|
|
|
- </div>
|
|
|
- <div class="sub-section-content">
|
|
|
- <MarketAreaScatter
|
|
|
- v-if="sections.areaScatter.dataAlready"
|
|
|
- :chartData="sections.areaScatter.chartData"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="top3-table-list pd-lr20">
|
|
|
- <div class="ar-table"
|
|
|
- v-if="(!sections.loaded.top3 && isConf10) || (sections.areaScatter.projectCountTop3 && sections.loaded.top3 && isConf10)"
|
|
|
- v-loading="!sections.loaded.top3">
|
|
|
- <p class="ar-table-title">项目数量TOP3地区的重点中标单位</p>
|
|
|
- <Top3Table v-if="sections.areaScatter.projectCountTop3" :tableData="sections.areaScatter.projectCountTop3" />
|
|
|
- </div>
|
|
|
- <div class="ar-table"
|
|
|
- v-if="!sections.loaded.top3 || (sections.areaScatter.projectAmountTop3 && sections.loaded.top3)"
|
|
|
- v-loading="!sections.loaded.top3">
|
|
|
- <p class="ar-table-title">项目金额TOP3地区的重点中标单位</p>
|
|
|
- <Top3Table v-if="sections.areaScatter.projectAmountTop3" :tableData="sections.areaScatter.projectAmountTop3" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[2]])" :k="Object.keys(vipUpgradeMap)[2]" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[2]]"></MaskCard>
|
|
|
- <!-- 客户分布 -->
|
|
|
- <div class="sub-section user-scatter"
|
|
|
- v-if="!sections.loaded.top3 || (sections.userScatter.list.length && sections.loaded.top3)"
|
|
|
- v-loading="!sections.loaded.top3">
|
|
|
- <div class="sub-section-header">
|
|
|
- <div class="sub-section-title">客户分布</div>
|
|
|
- <div class="view-more-btn" v-if="sections.userScatter.list.length > 10" @click="viewMoreUserScatter">查看详情</div>
|
|
|
- </div>
|
|
|
- <div class="sub-section-content">
|
|
|
- <MarketUserScatter v-if="sections.userScatter.list.length" :chartData="sections.userScatter.list.slice(0,10)" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="top3-table-list pd-lr20">
|
|
|
- <div class="ar-table"
|
|
|
- v-if="!sections.loaded.top3 || (sections.userScatter.projectCountTop3 && sections.loaded.top3)"
|
|
|
- v-loading="!sections.loaded.top3">
|
|
|
- <p class="ar-table-title">项目数量TOP3客户类型的重点中标单位</p>
|
|
|
- <Top3Table v-if="sections.userScatter.projectCountTop3" :tableData="sections.userScatter.projectCountTop3" />
|
|
|
- </div>
|
|
|
- <div class="ar-table"
|
|
|
- v-if="!sections.loaded.top3 || (sections.userScatter.projectAmountTop3 && sections.loaded.top3)"
|
|
|
- v-loading="!sections.loaded.top3">
|
|
|
- <p class="ar-table-title">项目金额TOP3客户类型的重点中标单位</p>
|
|
|
- <Top3Table v-if="sections.userScatter.projectAmountTop3" :tableData="sections.userScatter.projectAmountTop3" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 细分市场 -->
|
|
|
- <div class="sub-section market-refine"
|
|
|
- v-if="(isConf10 && !sections.loaded.segment) || (sections.market.refine.dataAlready && sections.loaded.segment && isConf10)"
|
|
|
- v-loading="!sections.loaded.segment">
|
|
|
- <div class="sub-section-header">
|
|
|
- <div class="sub-section-title">细分市场</div>
|
|
|
- </div>
|
|
|
- <div class="sub-section-content">
|
|
|
- <MarketSegment
|
|
|
- v-if="sections.market.refine.dataAlready"
|
|
|
- :projectCountData="sections.market.refine.projectCountData"
|
|
|
- :projectAmountData="sections.market.refine.projectAmountData"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="top3-table-list pd-lr20" v-if="isConf10">
|
|
|
- <div class="ar-table"
|
|
|
- v-if="(!sections.loaded.segment) || (sections.market.refine.projectCountTop3 && sections.loaded.segment)"
|
|
|
- v-loading="!sections.loaded.segment">
|
|
|
- <p class="ar-table-title">细分市场的重点中标单位-项目数量</p>
|
|
|
- <Top3Table v-if="sections.market.refine.projectCountTop3" :tableData="sections.market.refine.projectCountTop3" />
|
|
|
- </div>
|
|
|
- <div class="ar-table"
|
|
|
- v-if="!sections.loaded.segment || (sections.market.refine.projectAmountTop3 && sections.loaded.segment)"
|
|
|
- v-loading="!sections.loaded.segment">
|
|
|
- <p class="ar-table-title">细分市场的重点中标单位-项目金额</p>
|
|
|
- <Top3Table v-if="sections.market.refine.projectAmountTop3" :tableData="sections.market.refine.projectAmountTop3" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[3]])" :k="Object.keys(vipUpgradeMap)[3]" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[3]]"></MaskCard>
|
|
|
- </div>
|
|
|
- </section>
|
|
|
- <div class="bg-grey-h24" v-if="!sections.loaded.buyerWinner || buyerclassSectionShow"></div>
|
|
|
- <section class="analysis-result-section section-buyer"
|
|
|
- v-if="!sections.loaded.buyerWinner || (buyerclassSectionShow && sections.loaded.buyerWinner)"
|
|
|
- v-loading="!sections.loaded.buyerWinner">
|
|
|
- <div class="analysis-result-title pd-lr20">采购单位</div>
|
|
|
- <div class="analysis-result-content sub-section-list">
|
|
|
- <!-- 采购规模分布 -->
|
|
|
- <div class="sub-section buyerclass-scatter" v-if="sections.buyerclass.dataAlready">
|
|
|
- <div class="sub-section-header">
|
|
|
- <div class="sub-section-title">采购规模分布</div>
|
|
|
- </div>
|
|
|
- <div class="sub-section-content">
|
|
|
- <BuyerScaleScatter v-if="buyerclassSectionShow" :chartData="sections.buyerclass.chartData" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="top3-table-list pd-lr20">
|
|
|
- <div class="ar-table buyerclass-count-top3" v-if="(sections.buyerclass.projectCountTop3 && isConf10)">
|
|
|
- <p class="ar-table-title">项目数量TOP3采购单位及其重点合作中标单位</p>
|
|
|
- <Top3Table v-if="buyerclassSectionShow" :tableData="sections.buyerclass.projectCountTop3" />
|
|
|
- </div>
|
|
|
- <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[4]])" k="项目数量TOP3采购单位及其重点合作中标单位" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[4]]"></MaskCard>
|
|
|
- <div class="ar-table buyerclass-amount-top3" v-if="(sections.buyerclass.projectAmountTop3 && isConf10)">
|
|
|
- <p class="ar-table-title">采购金额TOP3采购单位及其重点合作中标单位</p>
|
|
|
- <Top3Table v-if="buyerclassSectionShow" :tableData="sections.buyerclass.projectAmountTop3" />
|
|
|
- </div>
|
|
|
- <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[5]])" k="采购金额TOP3采购单位及其重点合作中标单位" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[5]]"></MaskCard>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </section>
|
|
|
- <div class="bg-grey-h24" v-if="!sections.loaded.buyerWinner || winnerSectionShow"></div>
|
|
|
- <section class="analysis-result-section section-winner"
|
|
|
- v-if="!sections.loaded.buyerWinner || (winnerSectionShow && sections.loaded.buyerWinner)"
|
|
|
- v-loading="!sections.loaded.buyerWinner">
|
|
|
- <div class="analysis-result-title pd-lr20">中标单位</div>
|
|
|
- <div class="analysis-result-content sub-section-list">
|
|
|
- <!-- 中标规模分布 -->
|
|
|
- <div class="sub-section winner-scatter">
|
|
|
- <div class="sub-section-header">
|
|
|
- <div class="sub-section-title">中标规模分布</div>
|
|
|
- </div>
|
|
|
- <div class="sub-section-content">
|
|
|
- <BidderScaleScatter v-if="sections.winner.dataAlready" :chartData="sections.winner.chartData" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="top3-table-list pd-lr20">
|
|
|
- <div class="ar-table winner-count-top3" v-if="isConf10">
|
|
|
- <p class="ar-table-title">项目数量TOP3中标单位及其重点合作采购单位</p>
|
|
|
- <Top3Table v-if="sections.winner.projectCountTop3" :tableData="sections.winner.projectCountTop3" />
|
|
|
+ </section>
|
|
|
+ <div class="bg-grey-h24" v-if="!sections.loaded.buyerWinner || buyerclassSectionShow"></div>
|
|
|
+ <section class="analysis-result-section section-buyer"
|
|
|
+ v-if="!sections.loaded.buyerWinner || (buyerclassSectionShow && sections.loaded.buyerWinner)"
|
|
|
+ v-loading="!sections.loaded.buyerWinner">
|
|
|
+ <div class="analysis-result-title pd-lr20">采购单位</div>
|
|
|
+ <div class="analysis-result-content sub-section-list">
|
|
|
+ <!-- 采购规模分布 -->
|
|
|
+ <div class="sub-section buyerclass-scatter" v-if="sections.buyerclass.dataAlready">
|
|
|
+ <div class="sub-section-header">
|
|
|
+ <div class="sub-section-title">采购规模分布</div>
|
|
|
+ </div>
|
|
|
+ <div class="sub-section-content">
|
|
|
+ <BuyerScaleScatter v-if="buyerclassSectionShow" :chartData="sections.buyerclass.chartData" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="top3-table-list pd-lr20">
|
|
|
+ <div class="ar-table buyerclass-count-top3" v-if="(sections.buyerclass.projectCountTop3 && isConf10)">
|
|
|
+ <p class="ar-table-title">项目数量TOP30采购单位及其重点合作中标单位</p>
|
|
|
+ <Top3Table
|
|
|
+ v-if="buyerclassSectionShow"
|
|
|
+ :tableData="sections.buyerclass.projectCountTop3"
|
|
|
+ labelClickable
|
|
|
+ @clickLabel="clickTop3TableLabel($event, 'buyerclassTOP')"
|
|
|
+ valueClickable
|
|
|
+ @clickValue="clickTop3TableValue($event, 'buyerclassTOP')"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[4]])" k="项目数量TOP30采购单位及其重点合作中标单位" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[4]]"></MaskCard>
|
|
|
+ <div class="ar-table buyerclass-amount-top3" v-if="(sections.buyerclass.projectAmountTop3 && isConf10)">
|
|
|
+ <p class="ar-table-title">采购金额TOP30采购单位及其重点合作中标单位</p>
|
|
|
+ <Top3Table
|
|
|
+ v-if="buyerclassSectionShow"
|
|
|
+ :tableData="sections.buyerclass.projectAmountTop3"
|
|
|
+ labelClickable
|
|
|
+ @clickLabel="clickTop3TableLabel($event, 'buyerclassTOP')"
|
|
|
+ valueClickable
|
|
|
+ @clickValue="clickTop3TableValue($event, 'buyerclassTOP')"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[5]])" k="采购金额TOP30采购单位及其重点合作中标单位" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[5]]"></MaskCard>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[6]])" k="项目数量TOP3中标单位及其重点合作采购单位" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[6]]"></MaskCard>
|
|
|
- <div class="ar-table winner-amount-top3" v-if="isConf10">
|
|
|
- <p class="ar-table-title">中标金额TOP3中标单位及其重点合作采购单位</p>
|
|
|
- <Top3Table v-if="sections.winner.projectAmountTop3" :tableData="sections.winner.projectAmountTop3" />
|
|
|
+ </section>
|
|
|
+ <div class="bg-grey-h24" v-if="!sections.loaded.buyerWinner || winnerSectionShow"></div>
|
|
|
+ <section class="analysis-result-section section-winner"
|
|
|
+ v-if="!sections.loaded.buyerWinner || (winnerSectionShow && sections.loaded.buyerWinner)"
|
|
|
+ v-loading="!sections.loaded.buyerWinner">
|
|
|
+ <div class="analysis-result-title pd-lr20">中标单位</div>
|
|
|
+ <div class="analysis-result-content sub-section-list">
|
|
|
+ <!-- 中标规模分布 -->
|
|
|
+ <div class="sub-section winner-scatter">
|
|
|
+ <div class="sub-section-header">
|
|
|
+ <div class="sub-section-title">中标规模分布</div>
|
|
|
+ </div>
|
|
|
+ <div class="sub-section-content">
|
|
|
+ <BidderScaleScatter v-if="sections.winner.dataAlready" :chartData="sections.winner.chartData" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="top3-table-list pd-lr20">
|
|
|
+ <div class="ar-table winner-count-top3" v-if="isConf10">
|
|
|
+ <p class="ar-table-title">项目数量TOP30中标单位及其重点合作采购单位</p>
|
|
|
+ <Top3Table
|
|
|
+ v-if="sections.winner.projectCountTop3"
|
|
|
+ :tableData="sections.winner.projectCountTop3"
|
|
|
+ labelClickable
|
|
|
+ @clickLabel="clickTop3TableLabel($event, 'winnerTOP')"
|
|
|
+ valueClickable
|
|
|
+ @clickValue="clickTop3TableValue($event, 'winnerTOP')"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[6]])" k="项目数量TOP30中标单位及其重点合作采购单位" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[6]]"></MaskCard>
|
|
|
+ <div class="ar-table winner-amount-top3" v-if="isConf10">
|
|
|
+ <p class="ar-table-title">中标金额TOP30中标单位及其重点合作采购单位</p>
|
|
|
+ <Top3Table
|
|
|
+ v-if="sections.winner.projectAmountTop3"
|
|
|
+ :tableData="sections.winner.projectAmountTop3"
|
|
|
+ labelClickable
|
|
|
+ @clickLabel="clickTop3TableLabel($event, 'winnerTOP')"
|
|
|
+ valueClickable
|
|
|
+ @clickValue="clickTop3TableValue($event, 'winnerTOP')"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[7]])" k="中标金额TOP30中标单位及其重点合作采购单位" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[7]]"></MaskCard>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <MaskCard v-if="!isConf10" @click="openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[7]])" k="中标金额TOP3中标单位及其重点合作采购单位" :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[7]]"></MaskCard>
|
|
|
- </div>
|
|
|
+ </section>
|
|
|
</div>
|
|
|
- </section>
|
|
|
- </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane lazy label="项目明细" name="2">
|
|
|
+ <ProjectDetailsList
|
|
|
+ :initFilters="projectDetailFilters.initFilters"
|
|
|
+ :reportFilters="reportFilters"
|
|
|
+ :subscribeClassList="projectDetailFilters.keywordsGroupList"
|
|
|
+ :subscribeIndustryMap="projectDetailFilters.subscribeIndustryMap"
|
|
|
+ :subscribeAreaMap="projectDetailFilters.subscribeAreaMap"
|
|
|
+ :subscribeBuyerClass="projectDetailFilters.subscribeBuyerClass"
|
|
|
+ />
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
<!-- 更多项目信息 -->
|
|
|
<user-scatter-dialog v-if="userScatterDialog.visible" :options.sync="userScatterDialog"/>
|
|
|
<!-- 留资弹窗 -->
|
|
@@ -244,11 +331,11 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { Dropdown, DropdownMenu, DropdownItem, Icon } from 'element-ui'
|
|
|
+import { Dropdown, DropdownMenu, DropdownItem, Icon, Tabs, TabPane } from 'element-ui'
|
|
|
import MarketOverview from '@/views/analysisReport/components/MarketOverview.vue'
|
|
|
import ProjectScatter from '@/views/analysisReport/components/ProjectScatter.vue'
|
|
|
import MarketTimeScatter from '@/views/analysisReport/components/MarketTimeScatter.vue'
|
|
|
-import MarketAreaScatter from '@/views/analysisReport/components/MarketAreaScatter.vue'
|
|
|
+import MarketAreaCityScatter from '@/views/analysisReport/components/MarketAreaCityScatter.vue'
|
|
|
import MarketSegment from '@/views/analysisReport/components/MarketSegment.vue'
|
|
|
import BuyerScaleScatter from '@/views/analysisReport/components/BuyerScaleScatter.vue'
|
|
|
import BidderScaleScatter from '@/views/analysisReport/components/BidderScaleScatter.vue'
|
|
@@ -260,6 +347,7 @@ import CollectInfo from '@/components/collect-info/CollectInfo.vue'
|
|
|
import { getReportAnalysisInfo } from '@/api/modules/'
|
|
|
import { mapState } from 'vuex'
|
|
|
import { moneyUnit, dateFormatter, formatPrice } from '@/utils/globalFunctions'
|
|
|
+import ProjectDetailsList from './components/ProjectDetailsList.vue'
|
|
|
function getImgForVipUpgrade (name, bg = false, suffix = '.png') {
|
|
|
return require('@/assets/images/report/' + (bg ? 'bg/' : '') + name + suffix)
|
|
|
}
|
|
@@ -270,10 +358,13 @@ export default {
|
|
|
[Dropdown.name]: Dropdown,
|
|
|
[DropdownMenu.name]: DropdownMenu,
|
|
|
[DropdownItem.name]: DropdownItem,
|
|
|
+ [Tabs.name]: Tabs,
|
|
|
+ [TabPane.name]: TabPane,
|
|
|
+ ProjectDetailsList,
|
|
|
MarketOverview,
|
|
|
ProjectScatter,
|
|
|
MarketTimeScatter,
|
|
|
- MarketAreaScatter,
|
|
|
+ MarketAreaCityScatter,
|
|
|
MarketSegment,
|
|
|
BuyerScaleScatter,
|
|
|
BidderScaleScatter,
|
|
@@ -290,6 +381,7 @@ export default {
|
|
|
return {
|
|
|
loaded: false,
|
|
|
loading: false,
|
|
|
+ tabActiveName: '1',
|
|
|
stickyed: {
|
|
|
className: ['dim-fixed'],
|
|
|
startFixedTop: 0 // 从高度为startFixedTop处开始置顶
|
|
@@ -362,12 +454,12 @@ export default {
|
|
|
anchor: 'buyerclass-scatter'
|
|
|
},
|
|
|
{
|
|
|
- name: '项目数量TOP3',
|
|
|
+ name: '项目数量TOP30',
|
|
|
show: false,
|
|
|
anchor: 'buyerclass-count-top3'
|
|
|
},
|
|
|
{
|
|
|
- name: '采购金额TOP3',
|
|
|
+ name: '采购金额TOP30',
|
|
|
show: false,
|
|
|
anchor: 'buyerclass-amount-top3'
|
|
|
}
|
|
@@ -379,12 +471,12 @@ export default {
|
|
|
anchor: 'winner-scatter'
|
|
|
},
|
|
|
{
|
|
|
- name: '项目数量TOP3',
|
|
|
+ name: '项目数量TOP30',
|
|
|
show: false,
|
|
|
anchor: 'winner-count-top3'
|
|
|
},
|
|
|
{
|
|
|
- name: '中标金额TOP3',
|
|
|
+ name: '中标金额TOP30',
|
|
|
show: false,
|
|
|
anchor: 'winner-amount-top3'
|
|
|
}
|
|
@@ -440,6 +532,8 @@ export default {
|
|
|
areaScatter: {
|
|
|
dataAlready: false,
|
|
|
chartData: null,
|
|
|
+ // 原始数据
|
|
|
+ areaDataList: [],
|
|
|
// 项目数量Top3
|
|
|
projectCountTop3: null,
|
|
|
// 项目金额Top3
|
|
@@ -471,6 +565,15 @@ export default {
|
|
|
projectAmountTop3: null
|
|
|
}
|
|
|
},
|
|
|
+ projectDetailFilters: {
|
|
|
+ // 该属性会被传入项目明细,更改时会清空其他选择器并恢复initFilter中的选项
|
|
|
+ initFilters: {},
|
|
|
+ // 备选项
|
|
|
+ keywordsGroupList: [],
|
|
|
+ subscribeAreaMap: {},
|
|
|
+ subscribeIndustryMap: {},
|
|
|
+ subscribeBuyerClass: []
|
|
|
+ },
|
|
|
// 客户分布查看详情弹窗
|
|
|
userScatterDialog: {
|
|
|
visible: false,
|
|
@@ -553,6 +656,9 @@ export default {
|
|
|
...mapState({
|
|
|
info: state => state.user.info
|
|
|
}),
|
|
|
+ reportSelectedKeywords () {
|
|
|
+ return this.projectDetailFilters.keywordsGroupList
|
|
|
+ },
|
|
|
isConf10 () {
|
|
|
return this.info.power.indexOf(10) !== -1
|
|
|
},
|
|
@@ -566,9 +672,15 @@ export default {
|
|
|
})
|
|
|
return tempMap
|
|
|
},
|
|
|
- notOneAreaFilter () {
|
|
|
+ notOneCityFilter () {
|
|
|
const area = this.reportFilters.area
|
|
|
- const showArea = area && (Object.keys(area).length > 1 || Object.keys(area).length === 0)
|
|
|
+ let cityArr = []
|
|
|
+ for (const key in area) {
|
|
|
+ cityArr = cityArr.concat(area[key])
|
|
|
+ }
|
|
|
+ const cityCount = cityArr.length
|
|
|
+ const onlyOneCity = area && Object.keys(area).length === 1 && cityCount === 1
|
|
|
+ const showArea = !onlyOneCity
|
|
|
return showArea
|
|
|
},
|
|
|
buyerclassSectionShow () {
|
|
@@ -580,7 +692,6 @@ export default {
|
|
|
return winnerState.dataAlready && winnerState.projectCountTop3 && winnerState.projectAmountTop3
|
|
|
}
|
|
|
},
|
|
|
- watch: {},
|
|
|
created () {
|
|
|
this.sendRequest()
|
|
|
},
|
|
@@ -596,6 +707,31 @@ export default {
|
|
|
this.stickyed.startFixedTop = offset.top + 5
|
|
|
}
|
|
|
},
|
|
|
+ beforeTabLeave (targetActiveName) {
|
|
|
+ // 无权限点击项目信息明细,提示留资
|
|
|
+ if (targetActiveName === '2') {
|
|
|
+ try {
|
|
|
+ // eslint-disable-next-line no-undef
|
|
|
+ _hmt.push(['_trackEvent', '定制化市场分析报告', 'click', '项目明细tab'])
|
|
|
+ } catch (e) {
|
|
|
+ console.log('未初始化百度统计')
|
|
|
+ }
|
|
|
+ if (this.isConf10) {
|
|
|
+ setTimeout(() => {
|
|
|
+ const headerH = 64
|
|
|
+ window.scrollTo(0, headerH * 2)
|
|
|
+ }, 100)
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ // 留资
|
|
|
+ this.openLeaveSourceDialog('pc_analysis_ProjectDetails')
|
|
|
+ this.tabActiveName = '1'
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ },
|
|
|
onEmpty (info) {
|
|
|
this.$emit('onEmpty', info)
|
|
|
},
|
|
@@ -721,6 +857,12 @@ export default {
|
|
|
if (data.buyerclass) {
|
|
|
this.reportFilters.buyerclass = data.buyerclass.split(',')
|
|
|
}
|
|
|
+
|
|
|
+ this.projectDetailFilters.keywordsGroupList = this.reportFilters.keys
|
|
|
+ this.projectDetailFilters.subscribeAreaMap = this.reportFilters.area
|
|
|
+ this.projectDetailFilters.subscribeBuyerClass = this.reportFilters.buyerclass
|
|
|
+ this.projectDetailFilters.subscribeIndustryMap = this.reportFilters.industry
|
|
|
+
|
|
|
this.$emit('loadedFilters', this.reportFilters)
|
|
|
},
|
|
|
// 市场概况
|
|
@@ -1052,6 +1194,7 @@ export default {
|
|
|
this.$set(this.sections.areaScatter, 'chartData', areaChartData)
|
|
|
this.sections.areaScatter.dataAlready = true
|
|
|
this.showDimensionsOptions('market', 'area-scatter')
|
|
|
+ this.sections.areaScatter.areaDataList = areaList
|
|
|
}
|
|
|
},
|
|
|
// 客户分布
|
|
@@ -1250,7 +1393,6 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
-
|
|
|
if (tableDataCount.rows.length) {
|
|
|
this.$set(this.sections.userScatter, 'projectCountTop3', tableDataCount)
|
|
|
}
|
|
@@ -1660,13 +1802,16 @@ export default {
|
|
|
},
|
|
|
dropDownClick (item) {
|
|
|
if (!item.show) return
|
|
|
- const $ = this.$querySelector.bind(this)
|
|
|
- const anchor = item.anchor
|
|
|
- const offset = $('.' + anchor).offset()
|
|
|
- const headerH = 64
|
|
|
- if (offset) {
|
|
|
- $('body,html').animate({ scrollTop: offset.top - headerH - 64 })
|
|
|
- }
|
|
|
+ this.tabActiveName = '1'
|
|
|
+ this.$nextTick(() => {
|
|
|
+ const $ = this.$querySelector.bind(this)
|
|
|
+ const anchor = item.anchor
|
|
|
+ const offset = $('.' + anchor).offset()
|
|
|
+ const headerH = 64
|
|
|
+ if (offset) {
|
|
|
+ window.scrollTo(0, offset.top - headerH - 64)
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
moneyUnit (...args) {
|
|
|
const m = moneyUnit(...args)
|
|
@@ -1685,6 +1830,109 @@ export default {
|
|
|
count
|
|
|
}
|
|
|
},
|
|
|
+ getKeyWordFilterFromName (name) {
|
|
|
+ const target = this.reportSelectedKeywords.find(r => r.s_item === name)
|
|
|
+ const filters = {
|
|
|
+ subscribe: [
|
|
|
+ {
|
|
|
+ a_key: target?.a_key || [],
|
|
|
+ s_item: name
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ return filters
|
|
|
+ },
|
|
|
+ clickMarketUserScatter (e) {
|
|
|
+ this.recoverBuyerClassFilter(e.name)
|
|
|
+ },
|
|
|
+ clickMarketSegment (e) {
|
|
|
+ this.recoverKeyWordFilter(e.name)
|
|
|
+ },
|
|
|
+ clickTop3TableLabel (e, type) {
|
|
|
+ if (type === 'segment') {
|
|
|
+ this.recoverKeyWordFilter(e.name)
|
|
|
+ } else if (type === 'buyerclassTOP') {
|
|
|
+ this.recoverBuyerFilter(e.name)
|
|
|
+ } else if (type === 'winnerTOP') {
|
|
|
+ this.recoverWinnerFilter(e.winner_name)
|
|
|
+ } else if (type === 'areaScatter') {
|
|
|
+ this.recoverAreaCityFilter(e.name)
|
|
|
+ } else if (type === 'userScatter') {
|
|
|
+ this.recoverBuyerClassFilter(e.name)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ clickTop3TableValue (e, type) {
|
|
|
+ const filters = {}
|
|
|
+ if (type === 'segment') {
|
|
|
+ const f = this.getKeyWordFilterFromName(e.name)
|
|
|
+ Object.assign(filters, f)
|
|
|
+ filters.winner = e.winner_name || ''
|
|
|
+ this.toProjectDetail(filters)
|
|
|
+ } else if (type === 'buyerclassTOP' || type === 'winnerTOP') {
|
|
|
+ const filters = {
|
|
|
+ buyerName: e.name,
|
|
|
+ winner: e.winner_name
|
|
|
+ }
|
|
|
+ this.toProjectDetail(filters)
|
|
|
+ } else if (type === 'areaScatter') {
|
|
|
+ const filters = {
|
|
|
+ area: {
|
|
|
+ [e.name]: []
|
|
|
+ },
|
|
|
+ winner: e.winner_name
|
|
|
+ }
|
|
|
+ this.toProjectDetail(filters)
|
|
|
+ } else if (type === 'userScatter') {
|
|
|
+ const filters = {
|
|
|
+ buyerClass: [e.name],
|
|
|
+ winner: e.winner_name
|
|
|
+ }
|
|
|
+ this.toProjectDetail(filters)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ recoverKeyWordFilter (name) {
|
|
|
+ const filters = this.getKeyWordFilterFromName(name)
|
|
|
+ this.toProjectDetail(filters)
|
|
|
+ },
|
|
|
+ recoverBuyerClassFilter (name) {
|
|
|
+ const filters = {
|
|
|
+ buyerClass: [name]
|
|
|
+ }
|
|
|
+ this.toProjectDetail(filters)
|
|
|
+ },
|
|
|
+ recoverWinnerFilter (name) {
|
|
|
+ const filters = {
|
|
|
+ winner: name
|
|
|
+ }
|
|
|
+ this.toProjectDetail(filters)
|
|
|
+ },
|
|
|
+ recoverBuyerFilter (name) {
|
|
|
+ const filters = {
|
|
|
+ buyerName: name
|
|
|
+ }
|
|
|
+ this.toProjectDetail(filters)
|
|
|
+ },
|
|
|
+ recoverAreaCityFilter (areaName) {
|
|
|
+ const filters = {
|
|
|
+ area: {
|
|
|
+ [areaName]: []
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.toProjectDetail(filters)
|
|
|
+ },
|
|
|
+ toProjectDetail (filters = {}) {
|
|
|
+ // filter = {
|
|
|
+ // subscribe: [],
|
|
|
+ // area: {},
|
|
|
+ // buyerClass: [],
|
|
|
+ // industry: {},
|
|
|
+ // winner: '',
|
|
|
+ // sort: 0,
|
|
|
+ // buyerName: ''
|
|
|
+ // }
|
|
|
+ this.projectDetailFilters.initFilters = filters
|
|
|
+ this.tabActiveName = '2'
|
|
|
+ },
|
|
|
openBigPage (item) {
|
|
|
try {
|
|
|
// eslint-disable-next-line no-undef
|
|
@@ -1695,8 +1943,11 @@ export default {
|
|
|
if (item.button && item.button === '联系客服') {
|
|
|
this.contactCustomer(this)
|
|
|
} else {
|
|
|
- this.$refs.collectRef.noCallApiFn(item.source)
|
|
|
+ this.openLeaveSourceDialog(item.source)
|
|
|
}
|
|
|
+ },
|
|
|
+ openLeaveSourceDialog (source) {
|
|
|
+ this.$refs.collectRef.noCallApiFn(source)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1892,7 +2143,7 @@ i.el-icon-caret-bottom {
|
|
|
height: 52px;
|
|
|
font-size: 18px;
|
|
|
color: #1D1D1D;
|
|
|
- border-bottom: 1px solid #ECECEC;
|
|
|
+ // border-bottom: 1px solid #ECECEC;
|
|
|
&::before {
|
|
|
content: '';
|
|
|
position: absolute;
|
|
@@ -1985,4 +2236,30 @@ i.el-icon-caret-bottom {
|
|
|
background-color: #fff;
|
|
|
box-shadow: 0px 4px 16px 1px rgba(0, 0, 0, 0.06);
|
|
|
}
|
|
|
+
|
|
|
+.tabs {
|
|
|
+ ::v-deep {
|
|
|
+ .el-tabs__content {
|
|
|
+ overflow: unset;
|
|
|
+ }
|
|
|
+ .fixed-nav {
|
|
|
+ width: 920px;
|
|
|
+ box-shadow: inset 0 -1px 0 0 rgb(0, 0, 0, 0.05);
|
|
|
+ }
|
|
|
+ .el-tabs__header {
|
|
|
+ border-bottom: 1px solid #ECECEC;
|
|
|
+ }
|
|
|
+ .el-tabs__item {
|
|
|
+ height: 50px;
|
|
|
+ line-height: 50px;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #686868;
|
|
|
+ }
|
|
|
+ .el-tabs__nav-wrap {
|
|
|
+ &::after {
|
|
|
+ content: unset;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|