|
@@ -142,7 +142,7 @@
|
|
|
<div class="chart-tips text-center">
|
|
|
注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。
|
|
|
</div>
|
|
|
- <common-table :tableInfo="years.tableData"></common-table>
|
|
|
+ <common-table :widths="{ '年份': 10 }" :tableInfo="years.tableData"></common-table>
|
|
|
</div>
|
|
|
|
|
|
<!-- 月度采购规模 -->
|
|
@@ -159,8 +159,8 @@
|
|
|
<div class="chart-tips text-center">
|
|
|
注:采购规模指中标金额,少数缺失的中标金额,用项目预算补充。
|
|
|
</div>
|
|
|
- <common-table :tableInfo="monthScale.tableData"></common-table>
|
|
|
- <div><span class="tip-red">*</span>按照“时间”排序,最多展示最近2年记录。</div>
|
|
|
+ <common-table :widths="{ '月份': 20, '月份_2': 20 }" :tableInfo="monthScale.tableData"></common-table>
|
|
|
+ <div v-if="canShowTip['月度采购规模统计']" class="tip-red-container"><span class="tip-red">*</span>按照“时间”排序,最多展示最近2年记录。</div>
|
|
|
</div>
|
|
|
|
|
|
<!-- 采购规模分布 -->
|
|
@@ -178,8 +178,8 @@
|
|
|
<div class="chart-tips" style="margin-bottom:10px;">
|
|
|
注:平均节支率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。
|
|
|
</div>
|
|
|
- <common-table class="sub-section" :tableInfo="buyScaleFb.tableData"></common-table>
|
|
|
- <div v-if="buyScaleFb.data.length > 10"><span class="tip-red">*</span>按照“项目数量”排序,最多展示前10条记录。</div>
|
|
|
+ <common-table class="sub-section" :widths="{'采购规模': 25}" :tableInfo="buyScaleFb.tableData"></common-table>
|
|
|
+ <div class="tip-red-container" v-if="canShowTip['采购规模']"><span class="tip-red">*</span>按照“项目数量”排序,最多展示前10条记录。</div>
|
|
|
</div>
|
|
|
<h2 v-if="bidType.show">各类招标方式占比</h2>
|
|
|
<!-- 各类招标方式占比 -->
|
|
@@ -197,8 +197,8 @@
|
|
|
</div>
|
|
|
<div v-if="savingsRate.show && savingsRate.tableData.rows" >
|
|
|
<!-- 列表数据-->
|
|
|
- <el-table :data="savingsRate.tableData.rows" border>
|
|
|
- <el-table-column label="行业" prop="行业" width="100px" align="center"></el-table-column>
|
|
|
+ <el-table class="merge-header-table" :data="savingsRate.tableData.rows" border>
|
|
|
+ <el-table-column label="行业" prop="行业" width="45" align="center"></el-table-column>
|
|
|
<el-table-column label="平均节支率" align="center">
|
|
|
<el-table-column
|
|
|
v-for="item in savingsRate.tableData.columns"
|
|
@@ -224,19 +224,19 @@
|
|
|
:options="projectScale.options"
|
|
|
:datas="projectScale.data"
|
|
|
></pie-chart>
|
|
|
- <common-table class="sub-section" :tableInfo="projectScale.tableData"></common-table>
|
|
|
+ <common-table class="sub-section" :widths="{'行业': 25}" :tableInfo="projectScale.tableData"></common-table>
|
|
|
</div>
|
|
|
<!-- 重点合作企业 -->
|
|
|
<h2 v-if="client.data.length > 0">重点合作企业</h2>
|
|
|
<div id="import-cooperative-ent" v-if="client.data.length > 0">
|
|
|
- <common-table class="sub-section" :tableInfo="client.tableData"></common-table>
|
|
|
- <div><span class="tip-red">*</span>按照“中标金额”排序,最多展示前100条记录。</div>
|
|
|
+ <common-table class="sub-section" :widths="{'行业': 15, '中标金额(万元)': 15, '项目数量(个)': 12, '平均节支率': 11, '最近合作日期': 20}" :tableInfo="client.tableData"></common-table>
|
|
|
+ <div v-if="canShowTip['重点合作客户']" class="tip-red-container"><span class="tip-red">*</span>按照“中标金额”排序,最多展示前100条记录。</div>
|
|
|
</div>
|
|
|
<!-- 首次合作企业 -->
|
|
|
<h2 v-if="firhz.data.length > 0">首次合作企业</h2>
|
|
|
<div class="sub-section" v-if="firhz.data.length > 0">
|
|
|
- <common-table class="sub-section" :tableInfo="firhz.tableData"></common-table>
|
|
|
- <div><span class="tip-red">*</span>按照“中标金额”排序,最多展示前100条记录。</div>
|
|
|
+ <common-table class="sub-section" :widths="{'行业': 15, '中标金额(万元)': 15, '项目数量(个)': 12, '平均节支率': 11, '最近合作日期': 20}" :tableInfo="firhz.tableData"></common-table>
|
|
|
+ <div v-if="canShowTip['首次合作企业']" class="tip-red-container"><span class="tip-red">*</span>按照“中标金额”排序,最多展示前100条记录。</div>
|
|
|
</div>
|
|
|
<!-- 合作企业注册资本分布 -->
|
|
|
<h2 v-if="capital.show">合作企业注册资本分布</h2>
|
|
@@ -271,14 +271,14 @@
|
|
|
</div>
|
|
|
<div v-if="area.show" style="height:120px;"></div>
|
|
|
<div v-if="area.show && area.tableData" >
|
|
|
- <common-table :tableInfo="area.tableData"></common-table>
|
|
|
- <div v-if="area.data.rows.length > 10"><span class="tip-red">*</span>按照“企业数量”排序,最多展示前10条记录。</div>
|
|
|
+ <common-table :widths="{ '注册地': 20, '平均节支率': 25 }" :tableInfo="area.tableData"></common-table>
|
|
|
+ <div v-if="canShowTip['合作企业注册地分布']" class="tip-red-container"><span class="tip-red">*</span>按照“企业数量”排序,最多展示前10条记录。</div>
|
|
|
</div>
|
|
|
<!-- 重点合作代理机构 -->
|
|
|
<h2 v-if="agency.show && agency.tableData.rows.length > 0">重点合作代理机构</h2>
|
|
|
<div class="sub-section" v-if="agency.show && agency.tableData.rows.length > 0">
|
|
|
- <common-table :tableInfo="agency.tableData"></common-table>
|
|
|
- <div><span class="tip-red">*</span>按照“项目数量”排序,最多展示前10条记录。</div>
|
|
|
+ <common-table :widths="{ '项目数量(个)': 20, '最近合作日期': 20 }" :tableInfo="agency.tableData"></common-table>
|
|
|
+ <div v-if="canShowTip['重点合作代理机构']" class="tip-red-container"><span class="tip-red">*</span>按照“项目数量”排序,最多展示前10条记录。</div>
|
|
|
</div>
|
|
|
</section>
|
|
|
<h1>二、招标动态</h1>
|
|
@@ -290,28 +290,28 @@
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="公告标题" prop="title" align="center"></el-table-column>
|
|
|
- <el-table-column label="中标单位" prop="buyer" align="center">
|
|
|
+ <el-table-column label="中标单位" prop="buyer" width="220" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
{{scope.row.winner ? scope.row.winner.join(',') : ''}}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="中标金额(万元)" align="center">
|
|
|
+ <el-table-column label="中标金额(万元)" width="80" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
{{ scope.row.bidamount ? calcMoney(scope.row.bidamount) : ''}}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="公告时间">
|
|
|
+ <el-table-column label="公告时间" width="100" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
{{
|
|
|
dateFormatter(
|
|
|
scope.row.publishtime ? scope.row.publishtime * 1000 : null,
|
|
|
- 'yyyy-MM-dd HH:mm'
|
|
|
+ 'yyyy/MM/dd'
|
|
|
)
|
|
|
}}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- <div>
|
|
|
+ <div v-if="canShowTip['招标动态']" class="tip-red-container">
|
|
|
<span class="tip-red">*</span>
|
|
|
按照“公告时间”排序,最多展示前100条记录,可使用“数据导出”服务查看更多公告信息。
|
|
|
</div>
|
|
@@ -437,7 +437,8 @@ export default {
|
|
|
data: [],
|
|
|
tableData: {
|
|
|
columns: ['采购规模', '项目数量(个)', '平均节支率'],
|
|
|
- rows: []
|
|
|
+ rows: [],
|
|
|
+ rowLength: 0
|
|
|
},
|
|
|
options: {
|
|
|
tooltip: {
|
|
@@ -495,7 +496,12 @@ export default {
|
|
|
client: {
|
|
|
show: false,
|
|
|
flag: false,
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ tableData: {
|
|
|
+ columns: ['行业', '企业名称', '中标金额(万元)', '项目数量(个)', '平均节支率', '最近合作日期'],
|
|
|
+ rows: [],
|
|
|
+ rowLength: 0
|
|
|
+ }
|
|
|
},
|
|
|
// 重点合作企业
|
|
|
firhz: {
|
|
@@ -504,7 +510,8 @@ export default {
|
|
|
data: [],
|
|
|
tableData: {
|
|
|
columns: ['行业', '企业名称', '中标金额(万元)', '项目数量(个)', '平均节支率', '最近合作日期'],
|
|
|
- rows: []
|
|
|
+ rows: [],
|
|
|
+ rowLength: 0
|
|
|
}
|
|
|
},
|
|
|
// 合作企业注册资本分布
|
|
@@ -573,18 +580,33 @@ export default {
|
|
|
data: [],
|
|
|
tableData: {
|
|
|
columns: ['招标代理机构', '项目数量(个)', '最近合作日期'],
|
|
|
- rows: []
|
|
|
+ rows: [],
|
|
|
+ rowLength: 0
|
|
|
}
|
|
|
},
|
|
|
//查询条件
|
|
|
analysisCondition: {},
|
|
|
// 招标动态
|
|
|
tableList: [],
|
|
|
+ tableListLength: 0,
|
|
|
computedPageNum: 1,
|
|
|
catalogueHtml: '',
|
|
|
allBool: []
|
|
|
}
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ canShowTip () {
|
|
|
+ return {
|
|
|
+ '月度采购规模统计': this.monthScale.data.columns.length > 3,
|
|
|
+ '采购规模': this.buyScaleFb.tableData.rowLength > 10,
|
|
|
+ '重点合作客户': this.client.tableData.rowLength > 100,
|
|
|
+ '首次合作客户': this.firhz.tableData.rowLength > 100,
|
|
|
+ '合作企业注册地分布': this.area.data.rows.length > 10,
|
|
|
+ '重点合作代理机构': this.agency.tableData.rowLength > 10,
|
|
|
+ '招标动态': this.tableListLength > 100
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
filters: {
|
|
|
formatSelectType: function (value) {
|
|
|
if(!value) return '-'
|
|
@@ -654,6 +676,7 @@ export default {
|
|
|
// 初始化招标动态
|
|
|
if(res.dynamicDetail) {
|
|
|
this.tableList = res.dynamicDetail
|
|
|
+ this.tableListLength = res?.dynamicCount || res.dynamicDetail.length
|
|
|
}
|
|
|
// 基本信息
|
|
|
this.formatBaseInfo(res)
|
|
@@ -1117,6 +1140,7 @@ export default {
|
|
|
if (data && Object.keys(data).length > 0) {
|
|
|
const rows = []
|
|
|
const columns = ['月份']
|
|
|
+ const yearCounts = {}
|
|
|
let count = 0
|
|
|
const allNum = []
|
|
|
const years = []
|
|
@@ -1149,10 +1173,12 @@ export default {
|
|
|
}
|
|
|
|
|
|
for (var key in data) {
|
|
|
- years.push(parseInt(key))
|
|
|
+ const nYear = parseInt(key)
|
|
|
+ years.push(nYear)
|
|
|
for (const n in data[key]) {
|
|
|
allNum.push(data[key][n])
|
|
|
}
|
|
|
+ yearCounts[nYear + '年'] = allNum.reduce((a,b) => a + b, 0)
|
|
|
}
|
|
|
years.sort((a, b) => {
|
|
|
return a - b
|
|
@@ -1185,7 +1211,10 @@ export default {
|
|
|
)
|
|
|
// console.log('数据最大值为:', maxNum)
|
|
|
if (count !== 0 && maxNum !== 0) {
|
|
|
- this.monthScale.data.columns = columns
|
|
|
+ // 过滤空数据
|
|
|
+ this.monthScale.data.columns = columns.filter(y => {
|
|
|
+ return yearCounts[y] > 0 || y === '月份'
|
|
|
+ })
|
|
|
this.monthScale.data.rows = rows
|
|
|
this.monthScale.show = true
|
|
|
this.monthScale.tableData = monthTableData
|
|
@@ -1219,7 +1248,8 @@ export default {
|
|
|
// 处理表格数据
|
|
|
const tableData = {
|
|
|
columns: ['采购规模', '项目数量(个)', '平均节支率'],
|
|
|
- rows: []
|
|
|
+ rows: [],
|
|
|
+ rowLength: 0
|
|
|
}
|
|
|
const data10 = arr.sort((a, b) => {
|
|
|
return b.project_count - a.project_count
|
|
@@ -1236,6 +1266,10 @@ export default {
|
|
|
|
|
|
this.buyScaleFb.flag = true
|
|
|
this.buyScaleFb.data = data
|
|
|
+
|
|
|
+ tableData.rowLength = tableData.rows.length
|
|
|
+ tableData.rows = tableData.rows.slice(0, 10)
|
|
|
+
|
|
|
this.buyScaleFb.tableData = tableData
|
|
|
this.buyScaleFb.show = true
|
|
|
this.allBool.push(true)
|
|
@@ -1594,7 +1628,8 @@ export default {
|
|
|
if (data && data.length > 0) {
|
|
|
const tableData = {
|
|
|
columns: ['行业', '企业名称', '中标金额(万元)', '项目数量(个)', '平均节支率', '最近合作日期'],
|
|
|
- rows: []
|
|
|
+ rows: [],
|
|
|
+ rowLength: 0
|
|
|
}
|
|
|
data.forEach((v, i) => {
|
|
|
v.parent = (v.amount / data[0].amount) * 100 + '%'
|
|
@@ -1615,6 +1650,10 @@ export default {
|
|
|
'最近合作日期': v.lastTime,
|
|
|
})
|
|
|
})
|
|
|
+
|
|
|
+ tableData.rowLength = tableData.rows.length
|
|
|
+ tableData.rows = tableData.rows.slice(0, 100)
|
|
|
+
|
|
|
this.client.tableData = tableData
|
|
|
this.client.data = data
|
|
|
this.client.flag = true
|
|
@@ -1632,7 +1671,8 @@ export default {
|
|
|
if (data && data.length > 0) {
|
|
|
const tableData = {
|
|
|
columns: ['行业', '企业名称', '中标金额(万元)', '项目数量(个)', '平均节支率', '最近合作日期'],
|
|
|
- rows: []
|
|
|
+ rows: [],
|
|
|
+ rowLength: 0
|
|
|
}
|
|
|
data.forEach((v, i) => {
|
|
|
v.parent = (v.amount / data[0].amount) * 100 + '%'
|
|
@@ -1653,6 +1693,10 @@ export default {
|
|
|
'最近合作日期': v.lastTime,
|
|
|
})
|
|
|
})
|
|
|
+
|
|
|
+ tableData.rowLength = tableData.rows.length
|
|
|
+ tableData.rows = tableData.rows.slice(0, 100)
|
|
|
+
|
|
|
this.firhz.tableData = tableData
|
|
|
this.firhz.data = data
|
|
|
this.firhz.flag = true
|
|
@@ -1670,7 +1714,8 @@ export default {
|
|
|
if (data && data.length > 0) {
|
|
|
const tableData = {
|
|
|
columns: ['招标代理机构', '项目数量(个)', '最近合作日期'],
|
|
|
- rows: []
|
|
|
+ rows: [],
|
|
|
+ rowLength: 0
|
|
|
}
|
|
|
const arr = []
|
|
|
data.forEach((v, i) => {
|
|
@@ -1688,14 +1733,16 @@ export default {
|
|
|
data.sort((a, b) => {
|
|
|
return b.project_count - a.project_count
|
|
|
}).forEach((v, i) => {
|
|
|
- if(i < 10) {
|
|
|
- tableData.rows.push({
|
|
|
- '招标代理机构': v.agency_name,
|
|
|
- '项目数量(个)': v.project_count,
|
|
|
- '最近合作日期': v.last_with_time,
|
|
|
- })
|
|
|
- }
|
|
|
+ tableData.rows.push({
|
|
|
+ '招标代理机构': v.agency_name,
|
|
|
+ '项目数量(个)': v.project_count,
|
|
|
+ '最近合作日期': v.last_with_time,
|
|
|
+ })
|
|
|
})
|
|
|
+
|
|
|
+ tableData.rowLength = tableData.rows.length
|
|
|
+ tableData.rows = tableData.rows.slice(0, 10)
|
|
|
+
|
|
|
this.agency.tableData = tableData
|
|
|
this.agency.data = arr
|
|
|
this.agency.flag = true
|