ソースを参照

feat: 报告表格样式修复

zhangyuhan 1 年間 前
コミット
a9409017d8

+ 33 - 0
apps/bigmember_pc/src/assets/style/page/pdf.scss

@@ -332,6 +332,36 @@ p {
   padding-bottom: 30px;
   padding-bottom: 30px;
 }
 }
 
 
+
+.report-content {
+
+  ::v-deep {
+    .merge-header-table {
+      thead.is-group th.el-table__cell,
+      th {
+        background: #d2e7f7;
+      }
+    }
+  }
+
+  .chart-tips {
+    font-size: 14px !important;
+    color: #999 !important;
+  }
+  .tip-red-container {
+    margin-top: 8px;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    font-size: 12px;
+    line-height: 22px;
+    .tip-red {
+      margin-top: 4px;
+      line-height: 22px;
+    }
+  }
+}
+
 ::v-deep {
 ::v-deep {
   .el-table th{
   .el-table th{
     background: #d2e7f7;
     background: #d2e7f7;
@@ -347,6 +377,9 @@ p {
       align-items: center;
       align-items: center;
       display: flex;
       display: flex;
     }
     }
+    .level-1 {
+      font-weight: bold;
+    }
     .level-2{
     .level-2{
       padding-left:30px;
       padding-left:30px;
     }
     }

+ 11 - 0
apps/bigmember_pc/src/views/download-pdf/components/CommonTable.vue

@@ -8,6 +8,7 @@
         type="index"
         type="index"
         :label="item"
         :label="item"
         :prop="item"
         :prop="item"
+        :width="widths[item] || ''"
       >
       >
         <template slot="header" slot-scope="scope">
         <template slot="header" slot-scope="scope">
         {{scope.column.label && scope.column.label.includes('_') ? scope.column.label.split('_')[0] : scope.column.label}}
         {{scope.column.label && scope.column.label.includes('_') ? scope.column.label.split('_')[0] : scope.column.label}}
@@ -23,6 +24,10 @@
 <script>
 <script>
 export default {
 export default {
   props: {
   props: {
+    widths: {
+      type: Object,
+      default: () => ({})
+    },
     tableInfo: {
     tableInfo: {
       type: Object,
       type: Object,
       default: () => {
       default: () => {
@@ -49,6 +54,12 @@ export default {
     table{
     table{
       width: 100% !important;
       width: 100% !important;
     }
     }
+    th.el-table__cell {
+      padding: 8px 0;
+    }
+    td.el-table__cell {
+      padding: 4px 0;
+    }
   }
   }
 
 
   .el-table__empty-block {
   .el-table__empty-block {

+ 6 - 6
apps/bigmember_pc/src/views/download-pdf/components/DetailList.vue

@@ -1,27 +1,27 @@
 <template>
 <template>
   <div>
   <div>
     <el-table :data="list" border>
     <el-table :data="list" border>
-      <el-table-column label="序号" width="50">
+      <el-table-column label="序号" width="50" align="center">
         <template slot-scope="scope">
         <template slot-scope="scope">
           {{ scope.$index + 1 }}
           {{ scope.$index + 1 }}
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="项目名称">
+      <el-table-column label="项目名称" align="center">
         <template slot-scope="scope">
         <template slot-scope="scope">
           {{ scope.row.name }}
           {{ scope.row.name }}
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="项目金额(万元)">
+      <el-table-column label="项目金额(万元)" width="100" align="center">
         <template slot-scope="scope">
         <template slot-scope="scope">
           {{ scope.row.money || '--' }}
           {{ scope.row.money || '--' }}
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="采购单位">
+      <el-table-column label="采购单位" align="center">
         <template slot-scope="scope">
         <template slot-scope="scope">
           {{ scope.row.buyer || '--' }}
           {{ scope.row.buyer || '--' }}
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="中标单位">
+      <el-table-column label="中标单位" align="center">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <span v-if="scope.row.winners && Array.isArray(scope.row.winners)">
           <span v-if="scope.row.winners && Array.isArray(scope.row.winners)">
             <span class="winner-item" v-for="item in scope.row.winners">{{
             <span class="winner-item" v-for="item in scope.row.winners">{{
@@ -31,7 +31,7 @@
           <span v-else>--</span>
           <span v-else>--</span>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="成交时间">
+      <el-table-column label="成交时间" width="120" align="center">
         <template slot-scope="scope">
         <template slot-scope="scope">
           {{
           {{
             scope.row.dealTime
             scope.row.dealTime

+ 50 - 31
apps/bigmember_pc/src/views/download-pdf/entReport.vue

@@ -138,7 +138,7 @@
           <div class="chart-tips">
           <div class="chart-tips">
             注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。
             注:项目金额指所有项目的中标金额之和,少数缺失的中标金额,用项目预算补充。
           </div>
           </div>
-          <CommonTable :tableInfo="annual.tableData"></CommonTable>
+          <CommonTable :widths="{ '年份': 10 }"  :tableInfo="annual.tableData"></CommonTable>
         </div>
         </div>
         <h2 v-if="monthZb.show">月度中标金额统计</h2>
         <h2 v-if="monthZb.show">月度中标金额统计</h2>
         <div class="sub-section" v-if="monthZb.show">
         <div class="sub-section" v-if="monthZb.show">
@@ -148,8 +148,8 @@
             :datas="monthZb.data"
             :datas="monthZb.data"
           ></line-chart>
           ></line-chart>
           <div class="chart-tips">注:少数缺失的中标金额,用项目预算补充。</div>
           <div class="chart-tips">注:少数缺失的中标金额,用项目预算补充。</div>
-          <CommonTable :tableInfo="monthZb.tableData"></CommonTable>
-          <div><span class="tip-red">*</span>按照“时间”排序,最多展示最近2年记录。</div>
+          <CommonTable :widths="{ '月份': 20, '月份_2': 20 }" :tableInfo="monthZb.tableData"></CommonTable>
+          <div v-if="canShowTip['月度中标金额统计']" class="tip-red-container"><span class="tip-red">*</span>按照“时间”排序,最多展示最近2年记录。</div>
         </div>
         </div>
         <h2 v-if="areaFb.show">市场区域分布</h2>
         <h2 v-if="areaFb.show">市场区域分布</h2>
 
 
@@ -159,8 +159,8 @@
             :options="areaFb.options"
             :options="areaFb.options"
             :datas="areaFb.data"
             :datas="areaFb.data"
           ></map-chart>
           ></map-chart>
-          <CommonTable style="margin-top: 20px;" :tableInfo="areaFb.tableData"></CommonTable>
-          <div><span class="tip-red">*</span>按照“项目金额”排序,最多展示前10条记录。</div>
+          <CommonTable style="margin-top: 20px;" :widths="{ '地区': 20 }" :tableInfo="areaFb.tableData"></CommonTable>
+          <div v-if="canShowTip['市场区域分布']" class="tip-red-container"><span class="tip-red">*</span>按照“项目金额”排序,最多展示前10条记录。</div>
         </div>
         </div>
         <!-- 各类客户平均折扣率 -->
         <!-- 各类客户平均折扣率 -->
         <h2 v-if="rateFb.show">各类客户平均折扣率</h2>
         <h2 v-if="rateFb.show">各类客户平均折扣率</h2>
@@ -175,8 +175,8 @@
           </div>
           </div>
         </div>
         </div>
         <div v-if="rateFb.show">
         <div v-if="rateFb.show">
-          <el-table v-if="rateFb.tableData.rows" :data="rateFb.tableData.rows" border>
-            <el-table-column label="客户类型" prop="客户类型" width="100px"  align="center"></el-table-column>
+          <el-table class="merge-header-table" v-if="rateFb.tableData.rows" :data="rateFb.tableData.rows" border>
+            <el-table-column label="客户类型" prop="客户类型" width="45"  align="center"></el-table-column>
             <el-table-column label="平均折扣率"  align="center">
             <el-table-column label="平均折扣率"  align="center">
               <el-table-column
               <el-table-column
                 v-for="item in rateFb.tableData.columns"
                 v-for="item in rateFb.tableData.columns"
@@ -205,18 +205,18 @@
           <div class="chart-tips">
           <div class="chart-tips">
             注:各客户类型占比以中标金额计算,最多展示占比排名前十的客户类型。
             注:各客户类型占比以中标金额计算,最多展示占比排名前十的客户类型。
           </div>
           </div>
-          <CommonTable :tableInfo="clientFb.tableData"></CommonTable>
+          <CommonTable :widths="{'客户类型': 25}" :tableInfo="clientFb.tableData"></CommonTable>
         </div>
         </div>
         <!-- 重点客户 -->
         <!-- 重点客户 -->
         <h2 v-if="keyClient.show && keyClient.topTableData.rows.length > 0">重点合作客户</h2>
         <h2 v-if="keyClient.show && keyClient.topTableData.rows.length > 0">重点合作客户</h2>
         <div v-if="keyClient.show && keyClient.topTableData.rows.length > 0">
         <div v-if="keyClient.show && keyClient.topTableData.rows.length > 0">
-          <CommonTable :tableInfo="keyClient.topTableData"></CommonTable>
-          <div><span class="tip-red">*</span>按照“中标金额”排序,最多展示前100条记录。</div>
+          <CommonTable :widths="{'客户类型': 15, '中标金额(万元)': 15, '中标数量(个)': 12,  '平均折扣率': 11,  '最近合作日期': 20 }" :tableInfo="keyClient.topTableData"></CommonTable>
+          <div v-if="canShowTip['重点合作客户']" class="tip-red-container"><span class="tip-red">*</span>按照“中标金额”排序,最多展示前100条记录。</div>
         </div>
         </div>
         <h2 v-if="keyClient.show && keyClient.firstTableData.rows.length > 0">首次合作客户</h2>
         <h2 v-if="keyClient.show && keyClient.firstTableData.rows.length > 0">首次合作客户</h2>
         <div v-if="keyClient.show && keyClient.firstTableData.rows.length > 0">
         <div v-if="keyClient.show && keyClient.firstTableData.rows.length > 0">
-          <CommonTable :tableInfo="keyClient.firstTableData"></CommonTable>
-          <div><span class="tip-red">*</span>按照“中标金额”排序,最多展示前100条记录。</div>
+          <CommonTable  :widths="{'客户类型': 15, '中标金额(万元)': 15, '中标数量(个)': 12,  '平均折扣率': 11,  '最近合作日期': 20 }" :tableInfo="keyClient.firstTableData"></CommonTable>
+          <div v-if="canShowTip['首次合作客户']"class="tip-red-container"><span class="tip-red">*</span>按照“中标金额”排序,最多展示前100条记录。</div>
         </div>
         </div>
       </section>
       </section>
       <section>
       <section>
@@ -229,24 +229,24 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
           <el-table-column label="公告标题" prop="title" align="center"></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>
-          <el-table-column label="中标金额(万元)" align="center">
+          <el-table-column label="采购单位" prop="buyer" align="center" width="220"></el-table-column>
+          <el-table-column label="中标金额(万元)" align="center" width="80">
             <template slot-scope="scope">
             <template slot-scope="scope">
               {{ scope.row.bidamount ? calcMoney(scope.row.bidamount) : ''}}
               {{ scope.row.bidamount ? calcMoney(scope.row.bidamount) : ''}}
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-          <el-table-column label="发布时间">
+          <el-table-column label="发布时间" width="100" align="center">
             <template slot-scope="scope">
             <template slot-scope="scope">
               {{
               {{
                 dateFormatter(
                 dateFormatter(
                   scope.row.firsttime ? scope.row.firsttime * 1000 : null,
                   scope.row.firsttime ? scope.row.firsttime * 1000 : null,
-                  'yyyy-MM-dd HH:mm'
+                  'yyyy/MM/dd'
                 )
                 )
               }}
               }}
             </template>
             </template>
           </el-table-column>
           </el-table-column>
         </el-table>
         </el-table>
-        <div>
+        <div class="tip-red-container" v-if="canShowTip['中标动态']">
           <span class="tip-red">*</span>
           <span class="tip-red">*</span>
           按照“公告时间”排序,最多展示前100条记录,可使用“数据导出”服务查看更多公告信息。
           按照“公告时间”排序,最多展示前100条记录,可使用“数据导出”服务查看更多公告信息。
         </div>
         </div>
@@ -311,7 +311,7 @@ export default {
           rows: []
           rows: []
         },
         },
         tableData: {
         tableData: {
-          columns: ['日期', '项目数量(个)', '项目金额(万元)'],
+          columns: ['年份', '项目数量(个)', '项目金额(万元)'],
           rows: []
           rows: []
         },
         },
         options: {
         options: {
@@ -425,11 +425,13 @@ export default {
         data: [],
         data: [],
         topTableData: {
         topTableData: {
           columns: ['客户类型','客户名称', '中标金额(万元)', '中标数量(个)', '平均折扣率', '最近合作日期'],
           columns: ['客户类型','客户名称', '中标金额(万元)', '中标数量(个)', '平均折扣率', '最近合作日期'],
-          rows: []
+          rows: [],
+          rowLength: 0
         },
         },
         firstTableData: {
         firstTableData: {
           columns: ['客户类型','客户名称', '中标金额(万元)', '中标数量(个)', '平均折扣率', '最近合作日期'],
           columns: ['客户类型','客户名称', '中标金额(万元)', '中标数量(个)', '平均折扣率', '最近合作日期'],
-          rows: []
+          rows: [],
+          rowLength: 0
         }
         }
       },
       },
       getEntPortraitInfoTimes: 0,
       getEntPortraitInfoTimes: 0,
@@ -449,6 +451,7 @@ export default {
       dynamicKey: new Date().getTime(), // 筛选重新渲染动态数据
       dynamicKey: new Date().getTime(), // 筛选重新渲染动态数据
       // 中标动态
       // 中标动态
       tableList: [],
       tableList: [],
+      tableListLength: 0,
       // 工商信息
       // 工商信息
       entContent: [],
       entContent: [],
       computedPageNum: 1,
       computedPageNum: 1,
@@ -490,6 +493,15 @@ export default {
     },
     },
     entName () {
     entName () {
       return this.analysisCondition.entName
       return this.analysisCondition.entName
+    },
+    canShowTip () {
+      return {
+        '月度中标金额统计': this.monthZb.data.columns.length > 3,
+        '市场区域分布': this.areaFb.data.rows.length > 10,
+        '重点合作客户': this.keyClient.topTableData.rowLength > 100,
+        '首次合作客户': this.keyClient.firstTableData.rowLength > 100,
+        '中标动态': this.tableListLength > 100
+      }
     }
     }
   },
   },
   created() {
   created() {
@@ -579,6 +591,7 @@ export default {
       // 初始化中标动态
       // 初始化中标动态
       if(dataSet.dynamicDetail) {
       if(dataSet.dynamicDetail) {
         this.tableList = dataSet.dynamicDetail
         this.tableList = dataSet.dynamicDetail
+        this.tableListLength = dataSet?.dynamicCount || dataSet.dynamicDetail.length
       }
       }
       if(dataSet.entInfo) {
       if(dataSet.entInfo) {
         this.getEntDetail(dataSet.entInfo)
         this.getEntDetail(dataSet.entInfo)
@@ -691,14 +704,14 @@ export default {
             项目金额: Math.round(item.Money / 10000)
             项目金额: Math.round(item.Money / 10000)
           })
           })
           tableRows.push({
           tableRows.push({
-            日期: parseInt(key),
+            '年份': parseInt(key),
             '项目数量(个)': item.Count,
             '项目数量(个)': item.Count,
             '项目金额(万元)': Math.round(item.Money / 10000)
             '项目金额(万元)': Math.round(item.Money / 10000)
           })
           })
           /* eslint-enable */
           /* eslint-enable */
         }
         }
         rows = bSort(rows, '日期')
         rows = bSort(rows, '日期')
-        tableRows = bSort(tableRows, '日期')
+        tableRows = bSort(tableRows, '年份')
         // 数据总量为0,不赋值
         // 数据总量为0,不赋值
         if (count !== 0) {
         if (count !== 0) {
           this.annual.data.rows = rows
           this.annual.data.rows = rows
@@ -721,26 +734,26 @@ export default {
       const columns = ['月份']
       const columns = ['月份']
       // 月份表格数据
       // 月份表格数据
       const monthTableData = {
       const monthTableData = {
-        columns: ['月份', '采购规模(万元)', '月份_2', '采购规模(万元)_2'],
+        columns: ['月份', '项目金额(万元)', '月份_2', '项目金额(万元)_2'],
         rows: []
         rows: []
       }
       }
       const nowYear = new Date().getFullYear()
       const nowYear = new Date().getFullYear()
       for(let i=1; i< 13; i++) {
       for(let i=1; i< 13; i++) {
         let obj = {
         let obj = {
           '月份': '',
           '月份': '',
-          '采购规模(万元)': 0,
+          '项目金额(万元)': 0,
           '月份_2': '',
           '月份_2': '',
-          '采购规模(万元)_2': 0
+          '项目金额(万元)_2': 0
         }
         }
         if(data[nowYear]) {
         if(data[nowYear]) {
           const value = data[nowYear][i] ?  (data[nowYear][i] / 10000).fixed(2) : 0
           const value = data[nowYear][i] ?  (data[nowYear][i] / 10000).fixed(2) : 0
           obj['月份'] =  nowYear + '年' + i + '月'
           obj['月份'] =  nowYear + '年' + i + '月'
-          obj['采购规模(万元)'] =  value
+          obj['项目金额(万元)'] =  value
         }
         }
         if(data[nowYear-1]) {
         if(data[nowYear-1]) {
           const value2 = data[nowYear-1][i] ?  (data[nowYear-1][i] / 10000).fixed(2) : 0
           const value2 = data[nowYear-1][i] ?  (data[nowYear-1][i] / 10000).fixed(2) : 0
           obj['月份_2'] =  nowYear -1 + '年' + i + '月'
           obj['月份_2'] =  nowYear -1 + '年' + i + '月'
-          obj['采购规模(万元)_2'] =  value2
+          obj['项目金额(万元)_2'] =  value2
         }
         }
         monthTableData.rows.push(obj)
         monthTableData.rows.push(obj)
       }
       }
@@ -996,9 +1009,9 @@ export default {
       }
       }
       this.allBool.push(true)
       this.allBool.push(true)
       // 重点客户表格数据
       // 重点客户表格数据
-      const iRows = []
+      let iRows = []
       // 首次客户表格数据
       // 首次客户表格数据
-      const fRows = []
+      let fRows = []
       if ($.isArray(data)) {
       if ($.isArray(data)) {
         const reData = data.slice(0, 100)
         const reData = data.slice(0, 100)
         reData.forEach((list) => {
         reData.forEach((list) => {
@@ -1036,8 +1049,14 @@ export default {
         })
         })
       }
       }
       this.keyClient.data = []
       this.keyClient.data = []
-      this.keyClient.topTableData.rows = iRows
-      this.keyClient.firstTableData.rows = fRows
+
+      iRows = iRows.sort((a,b) => b['中标金额(万元)']-a['中标金额(万元)'])
+      fRows = fRows.sort((a,b) => b['中标金额(万元)']-a['中标金额(万元)'])
+
+      this.keyClient.topTableData.rowLength = iRows.length
+      this.keyClient.topTableData.rows = iRows.slice(0, 100)
+      this.keyClient.firstTableData.rowLength = fRows.length
+      this.keyClient.firstTableData.rows = fRows.slice(0, 100)
       this.keyClient.show = iRows.length > 0
       this.keyClient.show = iRows.length > 0
     },
     },
     /* *********** 配置项 *********** */
     /* *********** 配置项 *********** */

+ 15 - 8
apps/bigmember_pc/src/views/download-pdf/marketReport.vue

@@ -177,15 +177,15 @@
               width="460px"
               width="460px"
               :chartData="sections.timeScatter.year.count"
               :chartData="sections.timeScatter.year.count"
             />
             />
-            <common-table :tableInfo="sections.timeScatter.year.count"></common-table>
+            <common-table :widths="{'年份': 10}" :tableInfo="getYearData(sections.timeScatter.year.count)"></common-table>
 
 
             <h5>(2)月度分布</h5>
             <h5>(2)月度分布</h5>
             <MarketTimeScatter
             <MarketTimeScatter
               width="460px"
               width="460px"
               :chartData="sections.timeScatter.month.count"
               :chartData="sections.timeScatter.month.count"
             />
             />
-            <common-table :tableInfo="getNearYearData(sections.timeScatter.month.count)"></common-table>
-            <div> <span class="tip-red">*</span>按照“时间”排序,最多展示最近1年记录。</div>
+            <common-table :widths="{'月份': 10}" :tableInfo="getNearYearData(sections.timeScatter.month.count)"></common-table>
+            <div class="tip-red-container"> <span class="tip-red">*</span>按照“时间”排序,最多展示最近1年记录。</div>
           </div>
           </div>
         </div>
         </div>
         <h3>1.3.2项目金额</h3>
         <h3>1.3.2项目金额</h3>
@@ -203,15 +203,15 @@
               width="460px"
               width="460px"
               :chartData="sections.timeScatter.year.amount"
               :chartData="sections.timeScatter.year.amount"
             />
             />
-            <common-table :tableInfo="sections.timeScatter.year.amount"></common-table>
+            <common-table :widths="{'年份': 10}" :tableInfo="getYearData(sections.timeScatter.year.amount)"></common-table>
 
 
             <h5>(2)月度分布</h5>
             <h5>(2)月度分布</h5>
             <MarketTimeScatter
             <MarketTimeScatter
               width="460px"
               width="460px"
               :chartData="sections.timeScatter.month.amount"
               :chartData="sections.timeScatter.month.amount"
             />
             />
-            <common-table :tableInfo="getNearYearData(sections.timeScatter.month.amount)"></common-table>
-            <div> <span class="tip-red">*</span>按照“时间”排序,最多展示最近1年记录。</div>
+            <common-table :widths="{'月份': 10}" :tableInfo="getNearYearData(sections.timeScatter.month.amount)"></common-table>
+            <div class="tip-red-container"> <span class="tip-red">*</span>按照“时间”排序,最多展示最近1年记录。</div>
           </div>
           </div>
         </div>
         </div>
         <h2>1.4地区分布</h2>
         <h2>1.4地区分布</h2>
@@ -1989,6 +1989,13 @@ export default {
         count
         count
       }
       }
     },
     },
+    getYearData (valObj) {
+      const result = valObj
+      return Object.assign({}, result, {
+        columns: valObj.columns.map(v => v === '日期' ? '年份' : v) || [],
+        rows: valObj.rows.map(v => Object.assign({'年份': v['日期']}, v))
+      })
+    },
     // 近一年数据处理
     // 近一年数据处理
     getNearYearData (valObj) {
     getNearYearData (valObj) {
       if(valObj && Object.keys(valObj).length > 0) {
       if(valObj && Object.keys(valObj).length > 0) {
@@ -1997,8 +2004,8 @@ export default {
         const min = rows.length - 12
         const min = rows.length - 12
         const resultRows = rows.slice(min, max)
         const resultRows = rows.slice(min, max)
         return {
         return {
-          columns: valObj.columns || [],
-          rows: resultRows
+          columns: valObj.columns.map(v => v === '日期' ? '月份' : v) || [],
+          rows: resultRows.map(v => Object.assign({'月份': v['日期']}, v))
         }
         }
       }
       }
     },
     },

+ 85 - 38
apps/bigmember_pc/src/views/download-pdf/propReport.vue

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