Forráskód Böngészése

feat:接口联调

zhangsiya 1 éve
szülő
commit
e9db4616a8
1 módosított fájl, 171 hozzáadás és 158 törlés
  1. 171 158
      apps/bigmember_pc/src/views/download-pdf/propReport.vue

+ 171 - 158
apps/bigmember_pc/src/views/download-pdf/propReport.vue

@@ -38,7 +38,7 @@
       </div>
       <div class="static-page--main">
         <div class="strong-text">报告解读:</div>
-        <p>1.本报告深度融合各政府采购、公共资源交易中心及企事业网站的招标采购信息,利用云计算、大数据和人工智能技术进行数据挖掘分析整理。</p>
+        <p>1.本报告深度融合各政府采购、公共资源交易中心及企事业网站的招标采购信息,利用云计算、大数据和人工智能技术进行数据挖掘分析整理。</p>
         <p> 2.八大分析维度深度透视,助您秒懂采购单位,精准分析需求偏好与供应商网络,抢占合作先机:</p>
         <p class="flex-text"><span>√</span>年度项目概览:全年度采购活动一目了然。</p>
         <p class="flex-text"><span>√</span>月度采购规模:洞察月度变化,捕捉采购节奏。</p>
@@ -159,125 +159,127 @@
           <div class="chart-tips text-center">
             注:采购规模指中标金额,少数缺失的中标金额,用项目预算补充。
           </div>
+          <common-table :tableInfo="monthScale.tableData"></common-table>
+          <div><span class="tip-red">*</span>按照“时间”排序,最多展示最近2年记录。</div>
         </div>
-        <common-table :tableInfo="monthScale.tableData"></common-table>
-        <div><span class="tip-red">*</span>按照“时间”排序,最多展示最近2年记录。</div>
 
-      </section>
-
-      <!-- 采购规模分布 -->
-      <h2>4.采购规模分布</h2>
-      <div class="sub-section" v-if="buyScaleFb.show">
-        <div style="padding: 0 12px 12px; font-size: 12px; color: #9b9ca3">
-          单位(元)
+        <!-- 采购规模分布 -->
+        <h2>4.采购规模分布</h2>
+        <div class="sub-section" v-if="buyScaleFb.show">
+          <div style="padding: 0 12px 12px; font-size: 12px; color: #9b9ca3">
+            单位(元)
+          </div>
+          <hot-chart
+            v-if="buyScaleFb.flag"
+            ref="hotChart"
+            :datas="buyScaleFb.data"
+            :options="buyScaleFb.options"
+          ></hot-chart>
+          <div class="chart-tips" style="margin-bottom:10px;">
+            注:平均节支率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。
+          </div>
+          <common-table class="sub-section" :tableInfo="buyScaleFb.tableData"></common-table>
+          <div><span class="tip-red">*</span>按照“项目数量”排序,最多展示前10条记录。</div>
         </div>
-        <hot-chart
-          v-if="buyScaleFb.flag"
-          ref="hotChart"
-          :datas="buyScaleFb.data"
-          :options="buyScaleFb.options"
-        ></hot-chart>
-        <div class="chart-tips" style="margin-bottom:10px;">
-          注:平均节支率=(全部项目预算-全部中标金额)/全部项目预算,是指价格减让部分与原价的比率,仅统计预算和中标金额同时存在的项目。
+        <h2>5.各类招标方式占比</h2>
+        <!-- 各类招标方式占比 -->
+        <div class="sub-section"  v-if="bidType.show">
+          <double-bar-chart :datas="bidType.data"></double-bar-chart>
         </div>
-        <common-table class="sub-section" :tableInfo="buyScaleFb.tableData"></common-table>
-        <div><span class="tip-red">*</span>按照“项目数量”排序,最多展示前10条记录。</div>
-      </div>
-      <h2>5.各类招标方式占比</h2>
-      <!-- 各类招标方式占比 -->
-      <div class="sub-section"  v-if="bidType.show">
-        <double-bar-chart :datas="bidType.data"></double-bar-chart>
-      </div>
-      <!-- 各行业项目平均节支率 -->
-      <h2>6.各行业项目平均节支率</h2>
-      <div class="sub-section"  v-if="savingsRate.show">
-        <line-chart
-          class="sub-section"
-          v-if="savingsRate.flag"
-          :options="savingsRate.options"
-          :datas="savingsRate.data"
-        ></line-chart>
-<!--        列表数据-->
-        <el-table v-if="savingsRate.tableData.rows" :data="savingsRate.tableData.rows" border>
-          <el-table-column label="行业" prop="行业" width="100px"  align="center"></el-table-column>
-          <el-table-column label="平均节支率"  align="center">
-            <el-table-column
-              v-for="item in savingsRate.tableData.columns"
-              align="center"
-              header-align="center"
-              type="index"
-              :label="item"
-              :prop="item"
-            >
-              <template slot-scope="scope">
-                {{scope.row[item]}}
-              </template>
+        <!-- 各行业项目平均节支率 -->
+        <h2>6.各行业项目平均节支率</h2>
+        <div class="sub-section"  v-if="savingsRate.show">
+          <line-chart
+            class="sub-section"
+            v-if="savingsRate.flag"
+            :options="savingsRate.options"
+            :datas="savingsRate.data"
+          ></line-chart>
+          <!--        列表数据-->
+          <el-table v-if="savingsRate.tableData.rows" :data="savingsRate.tableData.rows" border>
+            <el-table-column label="行业" prop="行业" width="100px"  align="center"></el-table-column>
+            <el-table-column label="平均节支率"  align="center">
+              <el-table-column
+                v-for="item in savingsRate.tableData.columns"
+                align="center"
+                header-align="center"
+                type="index"
+                :label="item"
+                :prop="item"
+              >
+                <template slot-scope="scope">
+                  {{scope.row[item]}}
+                </template>
+              </el-table-column>
             </el-table-column>
-          </el-table-column>
-        </el-table>
-      </div>
-      <!-- 各行业项目规模占比 -->
-      <h2>7.各行业项目规模占比</h2>
-      <div class="sub-section" v-if="projectScale.show">
-        <pie-chart
-          v-if="projectScale.flag"
-          :height="'326px'"
-          :options="projectScale.options"
-          :datas="projectScale.data"
-        ></pie-chart>
-        <common-table class="sub-section" :tableInfo="projectScale.tableData"></common-table>
-      </div>
-      <!-- 重点合作企业 -->
-      <h2>8.重点合作企业</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>
-      </div>
-      <!-- 首次合作企业 -->
-      <h2>9.首次合作企业</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>
-      </div>
-      <!-- 合作企业注册资本分布 -->
-      <h2>10.合作企业注册资本分布</h2>
-      <div class="sub-section" v-if="capital.show">
-        <bar-chart
-          v-if="capital.flag"
-          id="capital"
-          :options="capital.options"
-          :datas="capital.data"
-        ></bar-chart>
-      </div>
-      <!-- 合作企业年龄分布 -->
-      <h2>11.合作企业年龄分布</h2>
-      <div class="sub-section" v-if="age.show">
-        <bar-chart
-          v-if="age.flag"
-          id="age"
-          :options="age.options"
-          :datas="age.data"
-        ></bar-chart>
-      </div>
-      <!-- 合作企业注册地分布 -->
-      <h2 style="margin-top:610px;">12.合作企业注册地分布</h2>
-      <div  v-if="area.show">
-        <map-chart
-          v-if="area.flag"
-          id="area"
-          :options="area.options"
-          :datas="area.data"
-        ></map-chart>
-        <common-table :tableInfo="area.tableData"></common-table>
-        <div><span class="tip-red">*</span>按照“企业数量”排序,最多展示前10条记录。</div>
-      </div>
-      <!-- 重点合作代理机构 -->
-      <h2>13.重点合作代理机构</h2>
-      <div class="sub-section" v-if="agency.show">
-        <common-table :tableInfo="agency.tableData"></common-table>
-        <div><span class="tip-red">*</span>按照“项目数量”排序,最多展示前10条记录。</div>
-      </div>
+          </el-table>
+        </div>
+        <!-- 各行业项目规模占比 -->
+        <h2>7.各行业项目规模占比</h2>
+        <div class="sub-section" v-if="projectScale.show">
+          <pie-chart
+            v-if="projectScale.flag"
+            :height="'326px'"
+            :options="projectScale.options"
+            :datas="projectScale.data"
+          ></pie-chart>
+          <common-table class="sub-section" :tableInfo="projectScale.tableData"></common-table>
+        </div>
+        <!-- 重点合作企业 -->
+        <h2>8.重点合作企业</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>
+        </div>
+        <!-- 首次合作企业 -->
+        <h2>9.首次合作企业</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>
+        </div>
+        <!-- 合作企业注册资本分布 -->
+        <h2>10.合作企业注册资本分布</h2>
+        <div class="sub-section" v-if="capital.show">
+          <bar-chart
+            v-if="capital.flag"
+            id="capital"
+            :options="capital.options"
+            :datas="capital.data"
+          ></bar-chart>
+        </div>
+        <!-- 合作企业年龄分布 -->
+        <h2>11.合作企业年龄分布</h2>
+        <div class="sub-section" v-if="age.show">
+          <bar-chart
+            v-if="age.flag"
+            id="age"
+            :options="age.options"
+            :datas="age.data"
+          ></bar-chart>
+        </div>
+        <!-- 合作企业注册地分布 -->
+        <h2 style="margin-top:610px;">12.合作企业注册地分布</h2>
+        <div  v-if="area.show">
+          <map-chart
+            v-if="area.flag"
+            id="area"
+            :options="area.options"
+            :datas="area.data"
+          ></map-chart>
+          <common-table :tableInfo="area.tableData"></common-table>
+          <div><span class="tip-red">*</span>按照“企业数量”排序,最多展示前10条记录。</div>
+        </div>
+        <!-- 重点合作代理机构 -->
+        <h2>13.重点合作代理机构</h2>
+        <div class="sub-section" v-if="agency.show">
+          <common-table :tableInfo="agency.tableData"></common-table>
+          <div><span class="tip-red">*</span>按照“项目数量”排序,最多展示前10条记录。</div>
+        </div>
+      </section>
       <h1>二、招标动态</h1>
+      <!--联系二维码-->
+      <div class="split-line"></div>
+      <PageBottom />
     </div>
 
   </div>
@@ -295,8 +297,11 @@ import BlueProgressChart from '@/components/chart/BlueProgressChart'
 import { getUnitChart, getVipUnitChart } from '@/api/modules/'
 import ExportExcel from '@/components/export/excel'
 import CommonTable from '@/views/download-pdf/components/CommonTable'
+import PageBottom from '@/views/download-pdf/components/PageBottom.vue'
 import { bSort, dateFormatter, moneyUnit } from '@/utils/'
 import ComputedPageEdge from './utils'
+import { getPdfDetail } from '@/api/modules/'
+
 export default {
   components: {
     ExportExcel,
@@ -308,7 +313,8 @@ export default {
     ProChart,
     MapChart,
     BlueProgressChart,
-    CommonTable
+    CommonTable,
+    PageBottom
   },
   data () {
     return {
@@ -317,16 +323,18 @@ export default {
         buyer: ''
       },
       nowDate:  dateFormatter(new Date(),'yyyy年MM月dd日'),
-      filter: {
-        entId: '',
-        buyer: '中国移动通信集团',
-        match: '',
-        exactMatch: 0,
-        matchRange: 'purchasing',
-        scopeClass: '',
-        timeRange: '2018_2024',
-         buyerClass: ''
-      },
+      // 页面报告id
+      sid: '',
+      // filter: {
+      //   entId: '',
+      //   buyer: '中国移动通信集团',
+      //   match: '',
+      //   exactMatch: 0,
+      //   matchRange: 'purchasing',
+      //   scopeClass: '',
+      //   timeRange: '2018_2024',
+      //    buyerClass: ''
+      // },
       // 概况数据是否展示
       baseShow: false,
       // 概况数据
@@ -534,15 +542,32 @@ export default {
       },
       reqCount: 0,
       computedPageNum: 1,
-      catalogueHtml: ''
+      catalogueHtml: '',
+      allBool: []
     }
   },
+  watch: {
+    // allBool: {
+    //   handler(newval) {
+    //     if (newval.indexOf(true) !== -1) {
+    //       this.emptyShow = false
+    //     } else {
+    //       this.emptyShow = true
+    //     }
+    //   },
+    //   deep: true
+    // }
+  },
   created() {
-   this.info.buyer =  this.$route.query.buyerName || this.$route.query.id
+    if(this.$route.query.pid) {
+      this.sid = this.$route.query.pid
+      this.getData()
+    }
+   // this.info.buyer =  this.$route.query.buyerName || this.$route.query.id
   },
   mounted() {
     this.$nextTick(() => {
-      this.getChartData(this.filter)
+      // this.getChartData(this.filter)
     })
   },
   methods: {
@@ -553,6 +578,22 @@ export default {
       }
       return (money * 10e4) / 10e8
     },
+    // 获取报告数据
+    async getData () {
+      const sid =  this.sid
+      console.log(7777777)
+      console.log(sid)
+      const {data, error_code: code} = await getPdfDetail({sid})
+      if(data && code === 0) {
+        if (Object.keys(data).length > 0) {
+          this.showChart = true
+          this.initData('', data)
+        }
+        this.onAjaxLoaded()
+      } else {
+        this.showChart = false
+      }
+    },
     // 获取招标动态
     async getList() {
     },
@@ -644,34 +685,6 @@ export default {
         this.showChart = false
       }
     },
-    getSectionChartData(type, newval) {
-      const flagAjaxParams = {
-        buyer: decodeURIComponent(this.info.buyer)
-      }
-      Object.assign(flagAjaxParams, newval)
-      getUnitChart(flagAjaxParams).then((res) => {
-        if (res.error_code === 0) {
-          this.reqCount++
-          if (res.data && Object.keys(res.data).length > 0) {
-            this.showChart = true
-            this.initData('', res.data)
-            if (type === 'a') {
-              this.reqCount = 0
-              this.getSectionChartData('b', newval)
-            } else if (type === 'b') {
-              this.reqCount = 0
-              this.getSectionChartData('c', newval)
-            }
-          } else {
-            if (this.reqCount < 5) {
-              this.getSectionChartData(type, newval)
-            } else {
-              this.showChart = false
-            }
-          }
-        }
-      })
-    },
     /* ******** 配置项部分 ******* */
     configYears(options) {
       options.legend.show = true
@@ -1748,9 +1761,9 @@ export default {
     onAjaxLoaded() {
       const pageEdge = new ComputedPageEdge({
         firstPageNum: 4,
-        callback: ({ pageNum, catalogue }) => {
+        callback: ({ pageNum, catalogueHtml }) => {
           this.computedPageNum = pageNum
-          this.catalogueHtml = catalogue
+          this.catalogueHtml = catalogueHtml
         }
       })
       setTimeout(() => {