Browse Source

数据总览全屏

qymljy 2 years ago
parent
commit
488cd4335a

+ 20 - 1
src/HDrpManagement/customerData/index.vue

@@ -159,6 +159,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="typeTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户类型情况统计" :dataid="typeMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="customerType"></FullScroll>
                     </div>
@@ -236,6 +239,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="gradTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户等级情况统计" :dataid="gradMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="customerGrad"></FullScroll>
                     </div>
@@ -310,6 +316,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="contactTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户联系人情况统计" :dataid="contactMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="customerContact"></FullScroll>
                     </div>
@@ -384,6 +393,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="projectTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户关联项目情况统计" :dataid="projectMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="customerProject"></FullScroll>
                     </div>
@@ -458,6 +470,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="fllowTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户跟进情况统计" :dataid="fllowMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="customerFllow"></FullScroll>
                     </div>
@@ -639,6 +654,9 @@
                           @change="$event => {unfllowTableParam.content.enddate=unfllowMapParam.content.enddate;customerUnfllowInit();$refs.customerUnfllowTable.listData()}">
                       </el-date-picker>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="unfllowTableParam" :columns="tool.tabelCol($route.name).typeTable1.tablecols.splice(0,tool.tabelCol($route.name).typeTable1.tablecols.length - 1)" fileName="有效客户未跟进天数分析" :dataid="unfllowMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="projectUnfllow"></FullScroll>
                     </div>
@@ -748,9 +766,10 @@ import { DualAxes,Pie,measureTextWidth,Column,Line  } from '@antv/g2plot'
 import pageTable from './components/pageTable.vue'
 import borderTemp from '@/HDrpManagement/dataanalysis/components/border.vue'
 import FullScroll from '@/components/fullScroll/index.vue'
+import exportFile from '@/components/export_file/index'
 export default {
   name:'customerData',
-  components:{borderTemp,pageTable,FullScroll},
+  components:{borderTemp,pageTable,FullScroll,exportFile},
   data () {
     return {
       deplist:[],

+ 26 - 1
src/HDrpManagement/projectData/index.vue

@@ -127,6 +127,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="typeTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目类型分析" :dataid="typeMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="projectType"></FullScroll>
                     </div>
@@ -209,6 +212,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="gradTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目等级分析" :dataid="gradMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="projectGrad"></FullScroll>
                     </div>
@@ -299,6 +305,9 @@
                       </el-option>
                     </el-select>
                   </div>
+                  <div class="mt-10 inline-16">
+                    <exportFile class="inline-16" :param="scoreTableParam1" :columns="tool.tabelCol($route.name).projectTable2.tablecols.splice(0,tool.tabelCol($route.name).projectTable2.tablecols.length - 1)" fileName="项目评估分析" :dataid="scoreMapParam1.content.dataid"></exportFile>
+                  </div>
                   <div class="mt-10 inline-16" style="margin-left:10px">
                     <FullScroll domId="projectScore1"></FullScroll>
                   </div>
@@ -617,6 +626,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="fllowTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目跟进情况统计" :dataid="fllowMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="projectFllow1"></FullScroll>
                     </div>
@@ -699,6 +711,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="contactTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目联系人情况统计" :dataid="contactMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="projectContact"></FullScroll>
                     </div>
@@ -781,6 +796,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="customerTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目关联客户情况统计" :dataid="customerMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="projectContact"></FullScroll>
                     </div>
@@ -863,6 +881,9 @@
                         </el-option>
                       </el-select>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="scoreTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目评估情况统计" :dataid="scoreMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="projectContact"></FullScroll>
                     </div>
@@ -975,6 +996,9 @@
                           @change="unfllowTableParam.content.enddate=unfllowMapParam.content.enddate;customerUnfllowInit();$refs.customerUnfllowTable.listData()">
                       </el-date-picker>
                     </div>
+                    <div class="mt-10 inline-16">
+                      <exportFile class="inline-16" :param="unfllowTableParam" :columns="tool.tabelCol($route.name).projectTable1.tablecols.splice(0,tool.tabelCol($route.name).projectTable1.tablecols.length - 1)" fileName="有效项目未跟进天数分析" :dataid="unfllowMapParam.content.dataid"></exportFile>
+                    </div>
                     <div class="mt-10 inline-16" style="margin-left:10px">
                       <FullScroll domId="projectUnfllow"></FullScroll>
                     </div>
@@ -1160,9 +1184,10 @@ import pageTable from './components/pageTable.vue'
 import selectProject from './components/selectProject.vue'
 import borderTemp from '@/HDrpManagement/dataanalysis/components/border.vue'
 import FullScroll from '@/components/fullScroll/index.vue'
+import exportFile from '@/components/export_file/index'
 export default {
   name:'projectData',
-  components:{borderTemp,pageTable,selectProject,FullScroll},
+  components:{borderTemp,pageTable,selectProject,FullScroll,exportFile},
   data () {
     return {
       colorArr:['#3874f6','#00b32b','#ffae02','#f53f3f','#f2f2f2'],

+ 51 - 0
src/components/export_file/index.vue

@@ -0,0 +1,51 @@
+<template>
+  <el-button type="primary" size="small" @click="exportData" plain>导 出</el-button>
+</template>
+
+<script>
+export default {
+  props:['param','type','columns','columnsIndex','fileName','dataid'],
+  data(){
+    return{
+      columnsData:[]
+    }
+  },
+  methods:{
+    async exportData(){
+      let rs = []
+      this.columnsData = JSON.parse(JSON.stringify(this.columns))
+      if (this.columnsData) {
+        this.columns.filter(p=>{
+          rs.push({
+            fieldlabel:p.title,
+            fieldname:p.columnname
+          })
+        })
+      }
+      this.param.content.dataid = this.dataid
+      this.param.content.exportFields = rs
+      this.param.content.isExport = true
+      /*导出数据*/
+      const res = await this.$api.requested(this.param)
+      this.downFile(res.data[0].url,this.fileName)
+      this.param.content.isExport = false
+      this.param.content.exportFields = []
+    },
+    downFile(url, fileName) {
+      const x = new XMLHttpRequest()
+      x.open('GET', url, true)
+      x.responseType = 'blob'
+      x.onload = function() {
+        const url = window.URL.createObjectURL(x.response)
+        const a = document.createElement('a')
+        a.href = url
+        a.download = fileName
+        a.click()
+      }
+      x.send()
+    }
+  }
+}
+</script>
+<style>
+</style>

+ 3 - 2
src/views/clueData/modules/clueUnFollow.vue

@@ -20,7 +20,7 @@
               start-placeholder="开始月份"
               end-placeholder="结束月份">
           </el-date-picker>
-
+          <exportFile class="inline-16" :param="param" :columns="tablecols" fileName="有效线索未跟进天数分析" :dataid="param.content.dataid"></exportFile>
           <fullScreen class="inline-16" domId="clueUnFollowFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight" ></fullScreen>
         </div>
       </div>
@@ -62,10 +62,11 @@
 import tableTemplate from '@/views/salesData/components/table';
 import departmentSalesperson from "@/views/salesData/components/departmentSalesperson";
 import fullScreen from "@/views/salesData/components/fullScreen";
+import exportFile from '@/components/export_file/index'
 import {Column} from "@antv/g2plot";
 export default {
   name: "clueUnFollow",
-  components:{departmentSalesperson,tableTemplate,fullScreen},
+  components:{departmentSalesperson,tableTemplate,fullScreen,exportFile},
   props:['scrollHeight'],
   data(){
     return {

+ 3 - 1
src/views/salesData/modules/delayedShipmentAnalysis.vue

@@ -20,6 +20,7 @@
               start-placeholder="开始月份"
               end-placeholder="结束月份">
           </el-date-picker>
+          <exportFile class="inline-16" :param="param" :columns="tablecols" fileName="近12月延期出货情况分析" :dataid="param.content.dataid"></exportFile>
           <fullScreen class="inline-16" domId="delayedShipmentFull" @onFull="onFull" @backFull="backFull"></fullScreen>
         </div>
       </div>
@@ -90,10 +91,11 @@ import { Bar } from '@antv/g2plot';
 import departmentSalesperson from "@/views/salesData/components/departmentSalesperson";
 import tableTemplate from '@/views/salesData/components/table';
 import fullScreen from "@/views/salesData/components/fullScreen";
+import exportFile from '@/components/export_file/index'
 export default {
   name: "delayedShipmentAnalysis",
   props:['dataid','scrollHeight'],
-  components:{departmentSalesperson,tableTemplate,fullScreen},
+  components:{departmentSalesperson,tableTemplate,fullScreen,exportFile},
   data(){
     return {
       chartBar:null,

+ 4 - 1
src/views/salesData/modules/financialCollectionAnalysis.vue

@@ -6,6 +6,7 @@
         <div class="title"> 财务回款分析</div>
         <div style="float: right">
           <departmentSalesperson ref="departmentSalesperson" class="inline-16" @depSelect="depSelect" @personSelect="personSelect"></departmentSalesperson>
+          <exportFile class="inline-16" :param="tableParam" :columns="tablecols" fileName="财务回款分析" :dataid="tableParam.content.dataid"></exportFile>
           <fullScreen class="inline-16" domId="financialCollectionFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight"></fullScreen>
         </div>
       </div>
@@ -62,6 +63,7 @@ import departmentSalesperson from "@/views/salesData/components/departmentSalesp
 import financialCollectionDetail from "@/views/salesData/components/financialCollectionDetail";
 import fullScreen from "@/views/salesData/components/fullScreen";
 import tableTemplate from '@/views/salesData/components/table';
+import exportFile from '@/components/export_file/index'
 import {Bar, G2} from "@antv/g2plot";
 const G = G2.getEngine('canvas');
 export default {
@@ -71,7 +73,8 @@ export default {
     departmentSalesperson,
     tableTemplate,
     financialCollectionDetail,
-    fullScreen
+    fullScreen,
+    exportFile
   },
   data(){
     return {

+ 3 - 1
src/views/salesData/modules/orderType.vue

@@ -26,6 +26,7 @@
               start-placeholder="开始月份"
               end-placeholder="结束月份">
           </el-date-picker>
+          <exportFile class="inline-16" :param="param" :columns="tablecols" fileName="订单类型占比分析" :dataid="param.content.dataid"></exportFile>
           <fullScreen class="inline-16" domId="orderTypeFull" @onFull="onFull" @backFull="backFull"></fullScreen>
         </div>
       </div>
@@ -72,11 +73,12 @@
 import { Pie,G2,measureTextWidth } from '@antv/g2plot';
 import tableTemplate from '@/views/salesData/components/table';
 import fullScreen from "@/views/salesData/components/fullScreen";
+import exportFile from '@/components/export_file/index'
 const G = G2.getEngine('canvas');
 export default {
   name: "orderType",
   props:['dataid','scrollHeight'],
-  components:{tableTemplate,fullScreen},
+  components:{tableTemplate,fullScreen,exportFile},
   data(){
     return {
       chartPie:null,

+ 3 - 1
src/views/salesData/modules/shippingUninvoiceAnalysis.vue

@@ -6,6 +6,7 @@
         <div class="title"> 出货未开票分析</div>
         <div style="float: right;">
           <departmentSalesperson ref="departmentSalesperson" class="inline-16" @depSelect="depSelect" @personSelect="personSelect"></departmentSalesperson>
+          <exportFile class="inline-16" :param="param" :columns="tablecols" fileName="出货未开票分析" :dataid="param.content.dataid"></exportFile>
           <fullScreen class="inline-16" domId="shippingUninvoiceFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight" ></fullScreen>
         </div>
       </div>
@@ -76,11 +77,12 @@ import departmentSalesperson from "@/views/salesData/components/departmentSalesp
 import tableTemplate from '@/views/salesData/components/table';
 import shippingUninvoiceDetail from "@/views/salesData/components/shippingUninvoiceDetail";
 import fullScreen from "@/views/salesData/components/fullScreen";
+import exportFile from '@/components/export_file/index'
 import {Bar} from "@antv/g2plot";
 export default {
   name: "shippingUninvoiceAnalysis",
   props:['scrollHeight'],
-  components:{tableTemplate,departmentSalesperson,shippingUninvoiceDetail,fullScreen},
+  components:{tableTemplate,departmentSalesperson,shippingUninvoiceDetail,fullScreen,exportFile},
   data(){
     return {
       chartBar:null,