Просмотр исходного кода

Merge branch 'mergeBranch' into nextUpdate

# Conflicts:
#	src/HDrpManagement/customerData/index.vue
#	src/HDrpManagement/projectData/index.vue
#	src/views/salesData/modules/orderTrendAnalysis.vue
qymljy 2 лет назад
Родитель
Сommit
6622015b91
27 измененных файлов с 743 добавлено и 150 удалено
  1. 3 1
      src/HDrpManagement/contractManage/components/productDetailList/productDetailList.vue
  2. 3 1
      src/HDrpManagement/contractManage/components/productList/productBillno.vue
  3. 3 1
      src/HDrpManagement/contractManage/components/toolList/toolList.vue
  4. 154 42
      src/HDrpManagement/customerData/index.vue
  5. 227 53
      src/HDrpManagement/projectData/index.vue
  6. 17 3
      src/HManagement/clueManage/clue_private/index.vue
  7. 15 3
      src/HManagement/marketing2/agent/index.vue
  8. 9 2
      src/SDrpManagement/salerPrivatecustomer/index.vue
  9. 2 2
      src/components/export_file/index.vue
  10. 51 0
      src/components/export_file/index1.vue
  11. 5 3
      src/views/clueData/index.vue
  12. 33 3
      src/views/clueData/modules/clueAdd.vue
  13. 11 0
      src/views/clueData/modules/clueChange.vue
  14. 34 3
      src/views/clueData/modules/clueFollow.vue
  15. 12 1
      src/views/clueData/modules/clueUnFollow.vue
  16. 12 5
      src/views/clueData/modules/digitalSigns.vue
  17. 3 2
      src/views/salesData/components/departmentSalesperson.vue
  18. 38 2
      src/views/salesData/modules/customerAccountBalanceAnalysis.vue
  19. 3 0
      src/views/salesData/modules/delayedShipmentAnalysis.vue
  20. 8 2
      src/views/salesData/modules/financialCollectionAnalysis.vue
  21. 19 3
      src/views/salesData/modules/invoiceAmountAnalysis.vue
  22. 18 4
      src/views/salesData/modules/orderTrendAnalysis.vue
  23. 11 5
      src/views/salesData/modules/orderType.vue
  24. 10 0
      src/views/salesData/modules/quotationAnalysis.vue
  25. 19 3
      src/views/salesData/modules/shippingTrendAnalysis.vue
  26. 8 2
      src/views/salesData/modules/shippingUninvoiceAnalysis.vue
  27. 15 4
      src/views/salesData/modules/uninvoiceAmountAnalysis.vue

+ 3 - 1
src/HDrpManagement/contractManage/components/productDetailList/productDetailList.vue

@@ -19,6 +19,7 @@
                     @addSuccess="addProducts" @addProduct="addProduct" @uploadData="uploadData" @closeDrawer="closeDrawer"
                      ref="addProduct"
         ></addProduct>
+        <exportFile v-if="tool.checkAuth($route.name,'export')" :param="params" :columns="tablecols" fileName="产品明细折扣"></exportFile>
       </div>
       <div class="produtMag-panel">
       </div>
@@ -106,8 +107,9 @@ import addProduct from '@/template/addProduct'
 import previewImage from '@/components/previewImage/index'
 import uploadAllData from '@/components/uploadAllData/index'
 import tableLayout from '@/components/dynamic-table/index2'
+import exportFile from '@/components/export_file/index1'
 export default {
-  components: {addProduct,previewImage,uploadAllData,tableLayout},
+  components: {addProduct,previewImage,uploadAllData,tableLayout,exportFile},
   name: '',
   props:["data","isLeader"],
   data() {

+ 3 - 1
src/HDrpManagement/contractManage/components/productList/productBillno.vue

@@ -18,6 +18,7 @@
                             @addSuccess="queryProuctAdds" @addAll="addAll" ref="addProduct" @addProduct="queryProuctAdd" @uploadData="queryUploadData" v-if="tool.checkAuth($route.name,'productBillManage') && data.status === '新建' && isLeader"
         >
         </addProductContract>
+        <exportFile v-if="tool.checkAuth($route.name,'export')" :param="params" :columns="tablecols" fileName="产品明细折扣"></exportFile>
         <slot name="cooperate"></slot>
       </div>
       <tableLayout checkbox="true" :layout="tablecols" :data="list" :width="true" :opwidth="200" height="calc(100vh - 380px)" :custom="true" fixedName="operation countPrice" @selectionChange="selectionChange">
@@ -99,8 +100,9 @@ import addProduct from './addProduct'
 import previewImage from '@/components/previewImage/index'
 import addProductContract from '@/template/addProductContract/index'
 import uploadAllData from '@/components/uploadAllData/index'
+import exportFile from '@/components/export_file/index1'
 export default {
-  components: {addProduct,previewImage,addProductContract,uploadAllData,tableLayout},
+  components: {addProduct,previewImage,addProductContract,uploadAllData,tableLayout,exportFile},
   name: '',
   props:["data","isLeader"],
   data() {

+ 3 - 1
src/HDrpManagement/contractManage/components/toolList/toolList.vue

@@ -18,6 +18,7 @@
                  @addProduct="addTool" @uploadData="uploadData" @closeDrawer="listData();$emit('onSuccess')"
                  v-if="tool.checkAuth($route.name,'toolListManage') && data.status == '新建' && isLeader" class="inline-16"
         ></addTool>
+        <exportFile v-if="tool.checkAuth($route.name,'export')" :param="params" :columns="tablecols" fileName="工具清单"></exportFile>
       </div>
       <tableLayout checkbox="true" :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 380px)" :custom="true" fixedName="operation  countPrice" @selectionChange="selectionChange">
         <template v-slot:customcol="scope">
@@ -86,8 +87,9 @@ import previewImage from '@/components/previewImage/index'
 import addTool from '@/template/addTool/index'
 import uploadAllData from '@/components/uploadAllData/index'
 import tableLayout from '@/components/dynamic-table/index2'
+import exportFile from '@/components/export_file/index1'
 export default {
-  components: {addProduct,previewImage,addTool,uploadAllData,tableLayout},
+  components: {addProduct,previewImage,addTool,uploadAllData,tableLayout,exportFile},
   name: '',
   props:["data","isLeader"],
   data() {

+ 154 - 42
src/HDrpManagement/customerData/index.vue

@@ -16,6 +16,7 @@
               <el-cascader
                 ref="selectdep"
                 size="small"
+                placement="bottom"
                 v-model="depment"
                 :options="deplist"
                 :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
@@ -24,18 +25,29 @@
               ></el-cascader>
             </div>
             <div class="data-all">
-              <div style="margin-bottom:20px">客户</div>
+              <div style="margin-bottom:20px">客户数据概况</div>
               <div class="data-all-wrapper">
                 <div class="data-left">
                   <div class="data-item">
                     <p>{{ tool.formatAmount(dataAll.total)|| 0 }}</p>
-                    <p>客户总数</p>
+                    <p>
+                      客户总数
+                      <el-tooltip class="item" effect="dark" content="客户总数:包含我的客户、公海客户数量" placement="top">
+                        <img style="vertical-align: middle" src="@/assets/icons/prompt_icon.svg" alt="">
+                      </el-tooltip>
+                    </p>
+                  </div>
+                  <div class="data-item">
+                    <p>{{ tool.formatAmount(dataAll.customerpoolqty)}}</p>
+                    <p>
+                      公海客户数
+                    </p>
                   </div>
                   <div class="data-item">
                     <p>{{ tool.formatAmount(dataAll.tradedCustomers)}}</p>
                     <p>
                       成交客户数
-                      <el-tooltip class="item" effect="dark" content="成交客户:已成交状态的客户数量" placement="top">
+                      <el-tooltip class="item" effect="dark" content="成交客户:已成交、多次成交状态的客户数量" placement="top">
                         <img style="vertical-align: middle" src="@/assets/icons/prompt_icon.svg" alt="">
                       </el-tooltip>
                     </p>
@@ -86,6 +98,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="chartParam1.content.dataid"
@@ -138,6 +151,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="typeTableParam.content.dataid"
@@ -168,8 +182,8 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="customerTypeEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="customerTypeEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
                     <pageTable
                       ref="customerTypeTable"
                       :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
@@ -178,13 +192,13 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -218,6 +232,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="gradTableParam.content.dataid"
@@ -248,8 +263,8 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="customerGradEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="customerGradEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
                     <pageTable
                       ref="customerGradTable"
                       :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
@@ -258,13 +273,13 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -295,6 +310,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="contactTableParam.content.dataid"
@@ -325,8 +341,8 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="customerContactEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="customerContactEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
                     <pageTable
                       ref="customerContactTable"
                       :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
@@ -335,13 +351,13 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -372,6 +388,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="projectTableParam.content.dataid"
@@ -402,8 +419,8 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="customerProjectEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="customerProjectEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
                     <pageTable
                       ref="customerProjectTable"
                       :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
@@ -412,13 +429,13 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -449,6 +466,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="fllowTableParam.content.dataid"
@@ -479,8 +497,8 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="customerFllowEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="customerFllowEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
                     <pageTable
                       ref="customerFllowTable"
                       :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
@@ -489,13 +507,13 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -526,6 +544,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="chartParam2.content.dataid"
@@ -578,6 +597,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="unfllowTableParam.content.dataid"
@@ -674,13 +694,13 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)">详情</el-button>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -711,6 +731,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="projectParam.content.dataid"
@@ -1018,6 +1039,15 @@ export default {
         map:[],
         table:[]
       },
+      dataAllParam:{
+        "id": 20231015170504,
+        "content" :{
+          "dataid": '',
+          "type":"",
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+        }
+      },
+      newFollowup:[]
     }
   },
   methods:{
@@ -1032,10 +1062,7 @@ export default {
     },
     //获取数据总览
     async getdataAll () {
-      let res = await this.$api.requested({
-        id:20231015170504,
-        content:{}
-      })
+      let res = await this.$api.requested(this.dataAllParam)
       this.dataAll = res.data
       console.log(this.dataAll,'数据总览');
     },
@@ -1051,7 +1078,24 @@ export default {
         param.content.dataid = param.content.dataid[param.content.dataid.length - 1]
       }
       let res = await this.$api.requested(param)
-      this.uvBillData = res.data.histogram
+      /*this.uvBillData = res.data.histogram*/
+      let lastYear = []
+      let nowYear = []
+      let k=0
+      for (var i=0;i<res.data.histogram.length;i++){
+        if (res.data.histogram[i].key === '去年同期新增'){
+          lastYear[k]=res.data.histogram[i]
+          k++
+        }
+      }
+      let x=0
+      for (var i=0;i<res.data.histogram.length;i++){
+        if (res.data.histogram[i].key === '本期新增'){
+          nowYear[x]=res.data.histogram[i]
+          x++
+        }
+      }
+      this.uvBillData = lastYear.concat(nowYear)
       /*res.data.lineChart.forEach(item => item[`同比增长率`] = item.value)*/
       this.transformData = res.data.lineChart
       if (init) {
@@ -1064,6 +1108,10 @@ export default {
               geometry: 'column',
               isGroup: true,
               seriesField: 'key',
+              color:['#62daab','#6395fa'],
+              label:{
+                position:top
+              }
             },
             {
               geometry: 'line',
@@ -1071,6 +1119,13 @@ export default {
                 lineWidth: 2,
               },
               seriesField: 'key',
+              color: '#F6903D',
+              smooth: true,
+              label:{
+                formatter: (datum) =>{
+                  return  datum.value + '%'
+                }
+              }
             },
           ],
           tooltip: {
@@ -1093,23 +1148,60 @@ export default {
       let res = await this.$api.requested(param)
       console.log(res.data,'近12月跟进');
       this.chartMapData = res.data
+      let lastYear = []
+      let nowYear = []
+      let k=0
+      for (var i=0;i< this.chartMapData .followup.length;i++){
+        if ( this.chartMapData .followup[i].key === '去年同期跟进'){
+          lastYear[k]= this.chartMapData .followup[i]
+          k++
+        }
+      }
+      let x=0
+      for (var i=0;i< this.chartMapData .followup.length;i++){
+        if ( this.chartMapData .followup[i].key === '本期跟进'){
+          nowYear[x] =  this.chartMapData .followup[i]
+          x++
+        }
+      }
+      console.log(nowYear,'nowYear')
+      console.log(lastYear,'lastYear')
+      this.newFollowup = lastYear.concat(nowYear)
+      console.log(this.newFollowup,'newFollowup')
+      /*this.lineChart = res.data.tbzzl.map(item=>{
+        return {
+          date: item.date,
+          type:"同比增长率",
+          value: item.value
+        }
+      })*/
      /* this.chartMapData.tbzzl.forEach(item => item.key = '同比增长率(%)')*/
       if (init) {
         this.chartMap = new DualAxes(this.$refs.chart2, {
-          data: [this.chartMapData.followup, this.chartMapData.tbzzl],
+          data: [this.newFollowup, this.chartMapData.tbzzl],
           xField: 'date',
           yField: ['value', 'value'],
           geometryOptions: [
             {
               geometry: 'column',
               seriesField:'key',
-              isGroup: 'true',
-              color:['#6395fa','#62daab'],
+              isGroup: true,
+              color:['#62daab','#6395fa'],
+              label:{
+                position:top
+              }
             },
             {
               geometry: 'line',
               seriesField:'key',
-              color:['#657798'],
+              color: '#F6903D',
+              smooth: true,
+              label:{
+                position:top,
+                formatter: (datum) =>{
+                  return  datum.value + '%'
+                }
+              }
             },
           ],
           tooltip: {
@@ -1121,7 +1213,7 @@ export default {
 
         this.chartMap.render();
       } else {
-        this.chartMap.changeData([this.chartMapData.followup, this.chartMapData.tbzzl])
+        this.chartMap.changeData([this.newFollowup, this.chartMapData.tbzzl])
       }
     },
     //客户类型图初始化
@@ -1167,7 +1259,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-single-selected' },{ type: 'element-active' }],
@@ -1238,7 +1330,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }],
@@ -1304,7 +1396,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }],
@@ -1370,7 +1462,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }],
@@ -1440,7 +1532,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }],
@@ -1520,7 +1612,6 @@ export default {
         param.content.dataid = param.content.dataid[param.content.dataid.length - 1]
       }
       let res = await this.$api.requested(param)
-      console.log(res.data,'近12月报价');
       this.projectMapData = res.data
       if (init) {
         this.projectMap = new Line(this.$refs.chart3, {
@@ -1529,7 +1620,7 @@ export default {
           yField: 'value',
           seriesField: 'key',
           xAxis: {
-            type: 'time',
+            /*type: 'time',*/
           },
           yAxis: {
             // label: {
@@ -1537,6 +1628,10 @@ export default {
             //   formatter: (v) => `${v}`.replace(/\d{1,3}(?=(\d{3})+$)/g, (s) => `${s},`),
             // },
           },
+          label:{
+            layout: [],
+          },
+          smooth: true,
         });
 
         this.projectMap.render()
@@ -1612,6 +1707,12 @@ export default {
     selectDep (val) {
       let id = val[val.length - 1]
       if (val.length) {
+        /*数据总览*/
+        this.dataAllParam.content.dataid = id
+        this.dataAllParam.content.type = 1
+        this.dataAllParam.content.username = ''
+        this.getdataAll()
+
         this.chartParam1.content.dataid = id
         this.chartParam1.content.type = 1
         this.chartParam1.content.username = ''
@@ -1677,7 +1778,14 @@ export default {
         this.unfllowTableParam.content.username = ''
         this.$refs.customerUnfllowTable.listData()
       } else {
+
         let name = JSON.parse(sessionStorage.getItem('accountinfo')).name
+        /*数据总览*/
+        this.dataAllParam.content.dataid = ''
+        this.dataAllParam.content.type = ''
+        this.dataAllParam.content.username =name
+        this.getdataAll()
+
         this.chartParam1.content.dataid = ''
         this.chartParam1.content.type =''
         this.chartParam1.content.username =name
@@ -1832,9 +1940,13 @@ export default {
 }
 .data-all .data-left {
   border-right: 1rem solid rgb(136,136,146);
+  display: flex;
+  flex-wrap: wrap;
 }
 .data-all .data-right {
   padding-left: 50rem;
+  display: flex;
+  flex-wrap: wrap;
 }
 .data-all .data-left,.data-right {
   display: flex;

+ 227 - 53
src/HDrpManagement/projectData/index.vue

@@ -17,6 +17,7 @@
               <label  class="search__label" >部门:</label>
               <el-cascader
                 ref="selectdep"
+                placement="bottom"
                 size="small"
                 v-model="depment"
                 :options="deplist"
@@ -26,7 +27,7 @@
               ></el-cascader>
             </div>
             <div class="data-all">
-              <div style="margin-bottom:20px">项目</div>
+              <div style="margin-bottom:20px">项目数据概况</div>
               <div class="data-all-wrapper">
                 <div class="data-left">
                   <div class="data-item">
@@ -43,7 +44,7 @@
                     </p>
                   </div>
                   <div class="data-item">
-                    <p>{{ tool.formatAmount(dataAll.startproject) }}</p>
+                    <p>{{ dataAll.startproject?tool.formatAmount(dataAll.startproject):0 }}</p>
                     <p>
                       进行中项目数
                       <el-tooltip class="item" effect="dark" content="参与项目客户数:参与有下订单的项目的关联客户数" placement="top">
@@ -106,12 +107,14 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="typeTableParam.content.dataid"
                         :options="deplist"
                         :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
-                        @change="$event => {if($event.length) {typeMapParam.content.type=1;typeMapParam.content.dataid=$event[$event.length - 1];typeTableParam.content.type=1;typeTableParam.content.username='';typeTableParam.content.pageNumber = 1;$refs.typeTable.listData();typeInit()} else {typeMapParam.content.type='';typeMapParam.content.dataid='';typeTableParam.content.dataid='';typeTableParam.content.type='';typeTableParam.content.username='';typeTableParam.content.pageNumber = 1;$refs.typeTable.listData();typeInit()}}"></el-cascader>
+                        @change="$event => {if($event.length) {typeMapParam.content.type=1;typeMapParam.content.dataid=$event[$event.length - 1];typeTableParam.content.type=1;typeTableParam.content.username='';typeTableParam.content.pageNumber = 1;$refs.typeTable.listData();typeInit()} else {typeMapParam.content.type='';typeMapParam.content.dataid='';typeTableParam.content.dataid='';typeTableParam.content.type='';typeTableParam.content.username='';typeTableParam.content.pageNumber = 1;$refs.typeTable.listData();typeInit()}}">
+                      </el-cascader>
                     </div>
                     <div class="mt-10 inline-16">
                       <label  class="search__label" >业务员:</label>
@@ -136,8 +139,10 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="typeEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="typeEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+<!--                  <div ref="typeEl" style="width:30%"></div>-->
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
+<!--                  <div class="panel-table" style="width:70%">-->
                     <pageTable
                       ref="typeTable"
                       :tablecols="tool.tabelCol($route.name).projectTable.tablecols"
@@ -147,7 +152,7 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
@@ -156,7 +161,7 @@
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -191,6 +196,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="gradTableParam.content.dataid"
@@ -221,8 +227,8 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="gradEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="gradEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
                     <pageTable
                       ref="gradTable"
                       :tablecols="tool.tabelCol($route.name).projectTable.tablecols"
@@ -232,7 +238,7 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
@@ -241,7 +247,7 @@
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -287,6 +293,8 @@
                     <label  class="search__label" >部门:</label>
                     <el-cascader
                       ref="selectdep"
+                      placement="bottom"
+                      :append-to-body="false"
                       size="small"
                       v-model="scoreTableParam1.content.dataid"
                       :options="deplist"
@@ -352,7 +360,7 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)">详情</el-button>
@@ -364,7 +372,7 @@
                           {{ tool.formatAmount(scope.data.data.dealamount,2,'¥') }}
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -400,6 +408,7 @@
                         ref="selectdep"
                         size="small"
                         :append-to-body="false"
+                        placement="bottom"
                         v-model="addParam.content.dataid"
                         :options="deplist"
                         :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
@@ -450,6 +459,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="baobeiParam.content.dataid"
@@ -502,6 +512,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="baojiaParam.content.dataid"
@@ -554,6 +565,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="fllowParam.content.dataid"
@@ -606,6 +618,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="fllowTableParam.content.dataid"
@@ -636,8 +649,8 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="projectFllowEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="projectFllowEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
                     <pageTable
                       ref="projectFllowTable"
                       :tablecols="tool.tabelCol($route.name).projectTable.tablecols"
@@ -647,7 +660,7 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
@@ -656,7 +669,7 @@
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -691,6 +704,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="contactTableParam.content.dataid"
@@ -721,8 +735,8 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="projectContactEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="projectContactEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
                     <pageTable
                       ref="projectContactTable"
                       :tablecols="tool.tabelCol($route.name).projectTable.tablecols"
@@ -732,7 +746,7 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
@@ -741,7 +755,7 @@
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -776,6 +790,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="customerTableParam.content.dataid"
@@ -806,8 +821,8 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="projectCustomerEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="projectCustomerEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
                     <pageTable
                       ref="projectCustomerTable"
                       :tablecols="tool.tabelCol($route.name).projectTable.tablecols"
@@ -817,7 +832,7 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
@@ -826,7 +841,7 @@
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -861,6 +876,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="scoreTableParam.content.dataid"
@@ -891,8 +907,8 @@
                   </div>
                 </div>
                 <div class="panel-content">
-                  <div ref="projectScoreEl" style="width:30%"></div>
-                  <div class="panel-table" style="width:70%">
+                  <div ref="projectScoreEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
+                  <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
                     <pageTable
                       ref="projectScoreTable"
                       :tablecols="tool.tabelCol($route.name).projectTable.tablecols"
@@ -902,7 +918,7 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
@@ -911,7 +927,7 @@
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -945,6 +961,7 @@
                       <label  class="search__label" >部门:</label>
                       <el-cascader
                         :append-to-body="false"
+                        placement="bottom"
                         ref="selectdep"
                         size="small"
                         v-model="unfllowTableParam.content.dataid"
@@ -1020,7 +1037,7 @@
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
                           <el-button type="text" size="small" @click="goDetail(scope.data.data)">详情</el-button>
@@ -1029,7 +1046,7 @@
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
-                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
+                          <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname === 'tradingstatus'">
                           <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
@@ -1089,8 +1106,10 @@
                     <label  class="search__label" >部门:</label>
                     <el-cascader
                       clearable
+                      :append-to-body="false"
                       ref="selectdep"
                       size="small"
+                      placement="bottom"
                       v-model="dateParam.content.dataid"
                       :options="deplist"
                       :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
@@ -1192,6 +1211,7 @@ export default {
   data () {
     return {
       isFull:false,
+      isAppend:true,
       colorArr:['#3874f6','#00b32b','#ffae02','#f53f3f','#f2f2f2'],
       windowWidth: document.documentElement.clientWidth,  //实时屏幕宽度
       deplist:[],
@@ -1509,7 +1529,15 @@ export default {
           }
         }
       },
-      dateList:{}
+      dateList:{},
+      dataAllParam:{
+        "id": 20231018110404,
+        "content" :{
+          "dataid": '',
+          "type":"",
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+        }
+      },
     }
   },
   methods:{
@@ -1524,10 +1552,7 @@ export default {
     },
     //获取数据总览
     async getdataAll () {
-      let res = await this.$api.requested({
-        id:20231018110404,
-        content:{}
-      })
+      let res = await this.$api.requested(this.dataAllParam)
       this.dataAll = res.data
       console.log(this.dataAll,'数据总览');
     },
@@ -1579,6 +1604,12 @@ export default {
           radius: 1,
           innerRadius: 0.64,
           label:{
+            /*type: 'inner',
+            offset: '-50%',
+            style: {
+              textAlign: 'center',
+            },
+            autoRotate: false,*/
             formatter: (datum) => `${datum.ratio}%`
           },
           tooltip:{
@@ -1609,7 +1640,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-single-selected' },{ type: 'element-active' }],
@@ -1675,7 +1706,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
@@ -1709,6 +1740,9 @@ export default {
           seriesField: 'key',
           minBarWidth: 20,
           maxBarWidth: 40,
+          label:{
+            position:top
+          },
           legend: {
             position: 'top-left',
           },
@@ -1740,7 +1774,24 @@ export default {
         param.content.dataid = param.content.dataid[param.content.dataid.length - 1]
       }
       let res = await this.$api.requested(param)
-      this.addData.arr1 = res.data.histogram
+      /*this.addData.arr1 = res.data.histogram*/
+      let lastYear = []
+      let nowYear = []
+      let k=0
+      for (var i=0;i<res.data.histogram.length;i++){
+        if (res.data.histogram[i].key === '去年同期新增'){
+          lastYear[k]=res.data.histogram[i]
+          k++
+        }
+      }
+      let x=0
+      for (var i=0;i<res.data.histogram.length;i++){
+        if (res.data.histogram[i].key === '本期新增'){
+          nowYear[x]=res.data.histogram[i]
+          x++
+        }
+      }
+      this.addData.arr1 = lastYear.concat(nowYear)
       res.data.lineChart.forEach(item => item[`同比增长率`] = item.value)
       this.addData.arr2 = res.data.lineChart
       if (init) {
@@ -1753,12 +1804,24 @@ export default {
               geometry: 'column',
               isGroup: true,
               seriesField: 'key',
+              color:['#62daab','#6395fa'],
+              label:{
+                position:top
+              }
             },
             {
               geometry: 'line',
               lineStyle: {
                 lineWidth: 2,
               },
+              color: '#F6903D',
+              smooth: true,
+              label:{
+                position:top,
+                formatter: (datum) =>{
+                  return  datum.value + '%'
+                }
+              }
             },
           ],
           tooltip: {
@@ -1779,7 +1842,24 @@ export default {
         param.content.dataid = param.content.dataid[param.content.dataid.length - 1]
       }
       let res = await this.$api.requested(param)
-      this.baobeiData.arr1 = res.data.histogram
+      /*this.baobeiData.arr1 = res.data.histogram*/
+      let lastYear = []
+      let nowYear = []
+      let k=0
+      for (var i=0;i<res.data.histogram.length;i++){
+        if (res.data.histogram[i].key === '去年同期报备'){
+          lastYear[k]=res.data.histogram[i]
+          k++
+        }
+      }
+      let x=0
+      for (var i=0;i<res.data.histogram.length;i++){
+        if (res.data.histogram[i].key === '本期报备'){
+          nowYear[x]=res.data.histogram[i]
+          x++
+        }
+      }
+      this.baobeiData.arr1 = lastYear.concat(nowYear)
       res.data.lineChart.forEach(item => item[`同比增长率`] = item.value)
       this.baobeiData.arr2 = res.data.lineChart
       if (init) {
@@ -1792,12 +1872,24 @@ export default {
               geometry: 'column',
               isGroup: true,
               seriesField: 'key',
+              color:['#62daab','#6395fa'],
+              label:{
+                position:top
+              }
             },
             {
               geometry: 'line',
               lineStyle: {
                 lineWidth: 2,
               },
+              color: '#F6903D',
+              smooth: true,
+              label:{
+                position:top,
+                formatter: (datum) =>{
+                  return  datum.value + '%'
+                }
+              }
             },
           ],
           tooltip: {
@@ -1819,6 +1911,23 @@ export default {
       }
       let res = await this.$api.requested(param)
       this.fllowData = res.data
+      let lastYear = []
+      let nowYear = []
+      let k=0
+      for (var i=0;i<res.data.followup.length;i++){
+        if (res.data.followup[i].key === '去年同期跟进'){
+          lastYear[k]=res.data.followup[i]
+          k++
+        }
+      }
+      let x=0
+      for (var i=0;i<res.data.followup.length;i++){
+        if (res.data.followup[i].key === '本期跟进'){
+          nowYear[x]=res.data.followup[i]
+          x++
+        }
+      }
+      this.fllowData.followup = lastYear.concat(nowYear)
       this.fllowData.tbzzl.forEach(item => item.key = '同比增长率')
       console.log(res.data,'跟进数据');
       if (init) {
@@ -1831,12 +1940,21 @@ export default {
               geometry: 'column',
               seriesField:'key',
               isGroup: 'true',
-              color:['#6395fa','#62daab'],
+              color:['#62daab','#6395fa'],
+              label:{
+                position:top
+              }
             },
             {
               geometry: 'line',
               seriesField:'key',
-              color:['#657798'],
+              color: '#F6903D',
+              smooth: true,
+              label:{
+                formatter: (datum) =>{
+                  return  datum.value + '%'
+                }
+              }
             },
           ],
           tooltip: {
@@ -1858,15 +1976,18 @@ export default {
       }
       let res = await this.$api.requested(param)
       this.baojiaData = res.data
-      console.log(res.data,'报价数据');
+
       if (init) {
         this.baojiaMap = new Line(this.$refs.baojiaEl, {
           data:this.baojiaData,
           xField: 'date',
           yField: 'value',
           seriesField: 'key',
+          label:{
+            layout: [],
+          },
           xAxis: {
-            type: 'time',
+            /*type: 'time',*/
           },
           yAxis: {
             // label: {
@@ -1874,6 +1995,7 @@ export default {
             //   formatter: (v) => `${v}`.replace(/\d{1,3}(?=(\d{3})+$)/g, (s) => `${s},`),
             // },
           },
+          smooth: true,
         })
         this.baojiaMap.render()
       } else {
@@ -1924,7 +2046,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
@@ -1990,7 +2112,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
@@ -2056,7 +2178,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
@@ -2122,7 +2244,7 @@ export default {
             },
           },
           legend: {
-            position:'left'
+            position:'bottom'
           },
           // 添加 中心统计文本 交互
           interactions: [{ type: 'element-highlight-by-x ' },{ type: 'element-active' }],
@@ -2166,13 +2288,17 @@ export default {
           xField: 'datetype',
           yField: 'value',
           seriesField: 'key',
+          label:{
+            position:top
+          },
           /** 设置颜色 */
           //color: ['#1ca9e6', '#f88c24'],
           /** 设置间距 */
+
           // marginRatio: 0.1,
-          label: {
+          /*label: {
             // 可手动配置 label 数据标签位置
-            position: 'middle', // 'top', 'middle', 'bottom'
+            position: 'top', // 'top', 'middle', 'bottom'
             // 可配置附加的布局方法
             layout: [
               // 柱形图数据标签位置自动调整
@@ -2182,7 +2308,7 @@ export default {
               // 数据标签文颜色自动调整
               { type: 'adjust-color' },
             ],
-          },
+          },*/
           interactions: [{ type: 'element-highlight-by-x' }],
         });
         this.customerUnfllowMap.on('element:click',(v) => {
@@ -2280,6 +2406,13 @@ export default {
     selectDep (val) {
       let id = val[val.length - 1]
       if (val.length) {
+        /*数据总览*/
+        this.dataAllParam.content.dataid = id
+        this.dataAllParam.content.type = 1
+        this.dataAllParam.content.username = ''
+        this.getdataAll()
+
+        /*项目类型分析*/
         this.typeMapParam.content.dataid = id
         this.typeMapParam.content.type = 1
         this.typeInit()
@@ -2288,6 +2421,7 @@ export default {
         this.typeTableParam.content.username = ''
         this.$refs.typeTable.listData()
 
+        /*项目等级分析*/
         this.gradMapParam.content.dataid = id
         this.gradMapParam.content.type = 1
         this.gradInit()
@@ -2296,6 +2430,7 @@ export default {
         this.gradTableParam.content.username = ''
         this.$refs.gradTable.listData()
 
+        /*项目评估分析*/
         this.scoreMapParam1.content.dataid = id
         this.scoreMapParam1.content.type = 1
         this.scoreInit()
@@ -2304,26 +2439,31 @@ export default {
         this.scoreTableParam1.content.username = ''
         this.$refs.scoreTable.listData()
 
+        /*近12月项目新增分析*/
         this.addParam.content.dataid = id
         this.addParam.content.type = 1
         this.addParam.content.username = ''
         this.addFun()
 
+        /*近12月项目报备分析*/
         this.baobeiParam.content.dataid = id
         this.baobeiParam.content.type = 1
         this.baobeiParam.content.username = ''
-        this.baojiaFun()
+        this.baobeiFun()
 
+        /*近12月项目跟进分析*/
         this.fllowParam.content.dataid = id
         this.fllowParam.content.type = 1
         this.fllowParam.content.username = ''
         this.fllowFun()
 
+        /*近12月项目报价分析*/
         this.baojiaParam.content.dataid = id
         this.baojiaParam.content.type = 1
         this.baojiaParam.content.username = ''
         this.baojiaFun()
 
+        /*近12月项目跟进分析*/
         this.fllowMapParam.content.dataid = id
         this.fllowMapParam.content.type = 1
         this.fllowInit()
@@ -2332,6 +2472,7 @@ export default {
         this.fllowTableParam.content.username = ''
         this.$refs.projectFllowTable.listData()
 
+        /*项目联系人情况统计*/
         this.contactMapParam.content.dataid = id
         this.contactMapParam.content.type = 1
         this.contactInit()
@@ -2340,6 +2481,7 @@ export default {
         this.contactTableParam.content.username = ''
         this.$refs.projectContactTable.listData()
 
+        /*项目关联客户情况统计*/
         this.customerMapParam.content.dataid = id
         this.customerMapParam.content.type = 1
         this.customerInit()
@@ -2348,6 +2490,7 @@ export default {
         this.customerTableParam.content.username = ''
         this.$refs.projectCustomerTable.listData()
 
+        /*项目评估情况统计*/
         this.scoreMapParam.content.dataid = id
         this.scoreMapParam.content.type = 1
         this.projectScoreInit()
@@ -2356,6 +2499,7 @@ export default {
         this.scoreTableParam.content.username = ''
         this.$refs.projectScoreTable.listData()
 
+        /*有效项目未跟进天数分析*/
         this.unfllowMapParam.content.dataid = id
         this.unfllowMapParam.content.type = 1
         this.customerUnfllowInit()
@@ -2364,13 +2508,21 @@ export default {
         this.unfllowTableParam.content.username = ''
         this.$refs.customerUnfllowTable.listData()
 
+        /*项目生命周期分析*/
         this.dateParam.content.dataid = id
         this.dateParam.content.type = 1
         this.dateParam.content.username = ''
         this.getDate()
 
       } else {
+        /*项目类型分析*/
         let name = JSON.parse(sessionStorage.getItem('accountinfo')).name
+        /*数据总览*/
+        this.dataAllParam.content.dataid = ''
+        this.dataAllParam.content.type = ''
+        this.dataAllParam.content.username = name
+        this.getdataAll()
+
         this.typeMapParam.content.dataid = ''
         this.typeMapParam.content.type = ''
         this.typeInit()
@@ -2379,6 +2531,7 @@ export default {
         this.typeTableParam.content.username = name
         this.$refs.typeTable.listData()
 
+        /*项目等级分析*/
         this.gradMapParam.content.dataid = ''
         this.gradMapParam.content.type = ''
         this.gradInit()
@@ -2387,6 +2540,7 @@ export default {
         this.gradTableParam.content.username = name
         this.$refs.gradTable.listData()
 
+        /*项目评估分析*/
         this.scoreMapParam1.content.dataid = ''
         this.scoreMapParam1.content.type = ''
         this.scoreInit()
@@ -2395,26 +2549,31 @@ export default {
         this.scoreTableParam1.content.username = name
         this.$refs.scoreTable.listData()
 
+        /*近12月项目新增分析*/
         this.addParam.content.dataid = ''
         this.addParam.content.type = ''
         this.addParam.content.username = name
         this.addFun()
 
+        /*近12月项目报备分析*/
         this.baobeiParam.content.dataid = ''
         this.baobeiParam.content.type = ''
         this.baobeiParam.content.username = name
-        this.baojiaFun()
+        this.baobeiFun()
 
+        /*近12月项目跟进分析*/
         this.fllowParam.content.dataid = ''
         this.fllowParam.content.type = ''
         this.fllowParam.content.username = name
         this.fllowFun()
 
+        /*近12月项目报价分析*/
         this.baojiaParam.content.dataid = ''
         this.baojiaParam.content.type = ''
         this.baojiaParam.content.username = name
         this.baojiaFun()
 
+        /*近12月项目跟进分析*/
         this.fllowMapParam.content.dataid = ''
         this.fllowMapParam.content.type = ''
         this.fllowInit()
@@ -2423,6 +2582,7 @@ export default {
         this.fllowTableParam.content.username = name
         this.$refs.projectFllowTable.listData()
 
+        /*项目联系人情况统计*/
         this.contactMapParam.content.dataid = ''
         this.contactMapParam.content.type = ''
         this.contactInit()
@@ -2431,6 +2591,7 @@ export default {
         this.contactTableParam.content.username = name
         this.$refs.projectContactTable.listData()
 
+        /*项目关联客户情况统计*/
         this.customerMapParam.content.dataid = ''
         this.customerMapParam.content.type = ''
         this.customerInit()
@@ -2439,6 +2600,7 @@ export default {
         this.customerTableParam.content.username = name
         this.$refs.projectCustomerTable.listData()
 
+        /*项目评估情况统计*/
         this.scoreMapParam.content.dataid = ''
         this.scoreMapParam.content.type = ''
         this.projectScoreInit()
@@ -2447,6 +2609,7 @@ export default {
         this.scoreTableParam.content.username = name
         this.$refs.projectScoreTable.listData()
 
+        /*有效项目未跟进天数分析*/
         this.unfllowMapParam.content.dataid = ''
         this.unfllowMapParam.content.type = ''
         this.customerUnfllowInit()
@@ -2455,6 +2618,7 @@ export default {
         this.unfllowTableParam.content.username = name
         this.$refs.customerUnfllowTable.listData()
 
+        /*项目生命周期分析*/
         this.dateParam.content.dataid = ''
         this.dateParam.content.type = ''
         this.dateParam.content.username = name
@@ -2485,11 +2649,19 @@ export default {
     /*全屏*/
     onFull(){
       this.isFull = true
+      this.isAppend = false
     },
     /*退出全屏*/
     backFull(){
       this.isFull = false
+      this.isAppend = true
+    },
+    /*级联*/
+    format (labels, selectedData) {
+      const index = labels.length - 1;
+      return labels[index];
     }
+
   },
   async mounted () {
     this.getProjectScoreDescript()
@@ -2688,4 +2860,6 @@ export default {
 .panel-table {
   height: 100%;
 }
+
+
 </style>

+ 17 - 3
src/HManagement/clueManage/clue_private/index.vue

@@ -13,11 +13,13 @@
       :options="options"
       :detailPath="{path:'/clueDetail_private'}"
       :specialKey="[{key:'leader',value:'name'}]"
+      :isExport="false"
       @listCreate="list"
       @listData="listdata"
       @checkboxCallBack="checkboxCallBack"
     >
-      <div slot="titleRight" >
+      <div slot="titleRight">
+        <export_file class="inline-16" :param="param" fileName="线索管理" :columns="tablecols"></export_file>
         <distributionSaler type="线索管理" v-if="tool.checkAuth($route.name,'distributionSaler')" @onSuccess="$refs.basicLayout.listData($refs.basicLayout.param.content.pageNumber = 1)" class="inline-16"></distributionSaler>
         <changeSite v-if="tool.checkAuth($route.name,'changeSite')" class="inline-16" :selectList="selectList" @onSuccess="$refs.basicLayout.listData($refs.basicLayout.param.content.pageNumber = 1)"></changeSite>
       </div>
@@ -110,11 +112,13 @@
 import distribution from '@/HManagement/clueManage/clue_public/modules/distribution'
 import distributionSaler from '@/HManagement/clueManage/clue_public/modules/distribution_saler.vue'
 import changeSite from '@/HManagement/clueManage/clue_private/modules/changeSite.vue'
+import export_file from '@/components/export_file/index'
 export default {
   components:{
     distribution,
     distributionSaler,
-    changeSite
+    changeSite,
+    export_file
   },
   data () {
     return {
@@ -132,7 +136,14 @@ export default {
       tradefields:[],
       selectList:[],
       tagData:[],
-      tag:''
+      tag:'',
+      tablecols:[],
+      param:{
+        id:'20221101094302',
+        content:{
+          isExport:0,
+        }
+      }
     }
   },
   provide() {
@@ -145,6 +156,9 @@ export default {
     this.statusList = res2.data
     const res3 = await this.$store.dispatch('optiontypeselect','tradefield')
     this.tradefields = res3.data
+    console.log(this.tool.tabelCol(this.$route.name).cluePrivateSalerTable.tablecols)
+    this.tablecols = this.tool.tabelCol(this.$route.name).cluePrivateSalerTable.tablecols
+    console.log(this.tablecols)
     this.query_arealist()
     this.tagList()
   },

+ 15 - 3
src/HManagement/marketing2/agent/index.vue

@@ -16,7 +16,8 @@
         :isExport="false"
         @listCreate="list">
         <div slot="titleRight">
-          <importFile
+          <exportFile :param="param" :columns="tablecols" fileName="合作伙伴档案"></exportFile>
+<!--          <importFile
             ref="importFile"
             class="inline-16"
             :bindData="{ownertable:'sa_agents',ownerid:$route.query.id,usetype:'default'}"
@@ -24,7 +25,7 @@
             @clearUrl="errorUrl = null"
             @onSuccess="bindImportOrder"
             v-if="tool.checkAuth($route.name,'export')"
-          ></importFile>
+          ></importFile>-->
         </div>
         <template #custom>
           <div class="mt-10">
@@ -130,6 +131,8 @@ import editArea from './area/modules/edit_area'
 import startArea from './area/modules/start_area'
 import delArea from './area/modules/del_area'
 import importFile from './importFile.vue'
+
+import exportFile from '@/components/export_file/index'
 import { log } from '@antv/g2plot/lib/utils'
 
 export default {
@@ -139,7 +142,8 @@ export default {
     editArea,
     delArea,
     startArea,
-    importFile
+    importFile,
+    exportFile
   },
   data () {
     return {
@@ -159,6 +163,8 @@ export default {
           label:'意向'
         },
       ],
+      tablecols:[],
+      param:{}
     }
   },
   provide () {
@@ -169,6 +175,7 @@ export default {
   created () {
     this.userstatus()
     this.queryType()
+    this.tablecols = this.tool.tabelCol(this.$route.name).agentTable.tablecols
   },
   methods:{
     async userstatus() {
@@ -196,6 +203,7 @@ export default {
         this.errorUrl = res.data
       }
       this.tool.showMessage(res,() => {
+        this.param = this.$refs.basicLayout.param
         this.$refs.basicLayout.listData()
       })
     },
@@ -204,6 +212,7 @@ export default {
       this.$refs['basicLayout'].param.content.where.type = this.type
       this.$refs['basicLayout'].param.content.where.cooperationstatus = this.cooperations
        this.$refs['basicLayout'].param.content.pageNumber = 1
+      this.param = this.$refs.basicLayout.param
       this.$refs['basicLayout'].listData()
     },
     onClick (data) {
@@ -213,6 +222,7 @@ export default {
         this.$refs['basicLayout'].param.content.isAll = 1
         this.$refs['basicLayout'].param.content.sa_saleareaids = []
         this.$refs['basicLayout'].param.content.containssub = 1
+        this.param = this.$refs.basicLayout.param
         this.$refs['basicLayout'].listData()
       } else {
         this.areaInfo = data
@@ -220,6 +230,7 @@ export default {
         this.$refs['basicLayout'].param.content.sa_saleareaids = [data.sa_saleareaid]
         this.$refs['basicLayout'].param.content.containssub = 1
         this.$refs['basicLayout'].param.content.isAll = 0
+        this.param = this.$refs.basicLayout.param
         this.$refs['basicLayout'].listData()
         this.$store.dispatch('sendDataToForm',data)
       }
@@ -243,6 +254,7 @@ export default {
     },
     list(param) {
       param.content.isAll = 0
+      this.param = param
     },
     /*合作伙伴类型*/
     async queryType(){

+ 9 - 2
src/SDrpManagement/salerPrivatecustomer/index.vue

@@ -12,7 +12,8 @@
       :detailPath="{path:'/customerDetail',param:{tabIndex:tabIndex,portrait:''}}"
      >
       <template #titleRight>
-        <el-button type="primary" size="small" @click="onExport" plain>导 出</el-button>
+<!--        <el-button type="primary" size="small" @click="onExport" plain>导 出</el-button>-->
+        <exportFile :param="param" :columns="tablecols" fileName="我的客户"></exportFile>
       </template>
       <template #custom>
         <div class="mt-10">
@@ -177,8 +178,10 @@
 </template>
 
 <script>
+import exportFile from '@/components/export_file/index1'
 export default {
   name: "index",
+  components:{exportFile},
   data() {
     return {
       value:'',
@@ -189,6 +192,7 @@ export default {
       tabIndex:"1",
       options:[],
       listData:[],
+      tablecols:[],
       option:{
         typeData:[],
         customerClassification:[],
@@ -238,7 +242,8 @@ export default {
       },
       depment:'',
       deplist:[],
-      dateSelect:''
+      dateSelect:'',
+      param:{}
     }
   },
   mounted() {
@@ -260,6 +265,7 @@ export default {
       this.$refs.list.param.content.deleted = 0
       this.$refs.list.param.content.isend = 0
       this.$refs.list.param.content.nocache = true
+      this.param = this.$refs.list.param
       this.$refs['list'].listData()
       // this.$store.dispatch('sendDataToForm',)
     },
@@ -485,6 +491,7 @@ export default {
     this.queryUserInfo()
     this.querytemplet()
     this.departmentrtment()
+    this.tablecols = this.tool.tabelCol(this.$route.name).salerPrivatecustomerTable.tablecols
   },
 }
 </script>

+ 2 - 2
src/components/export_file/index.vue

@@ -24,11 +24,11 @@ export default {
       }
       this.param.content.dataid = this.dataid
       this.param.content.exportFields = rs
-      this.param.content.isExport = true
+      this.param.content.isExport = 1
       /*导出数据*/
       const res = await this.$api.requested(this.param)
       this.downFile(res.data[0].url,this.fileName)
-      this.param.content.isExport = false
+      this.param.content.isExport = 0
       this.param.content.exportFields = []
     },
     downFile(url, fileName) {

+ 51 - 0
src/components/export_file/index1.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 = 1
+      /*导出数据*/
+      const res = await this.$api.requested(this.param)
+      this.downFile(res.data,this.fileName)
+      this.param.content.isExport = 0
+    },
+    downFile(url, fileName) {
+      console.log(url,'url')
+      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>

+ 5 - 3
src/views/clueData/index.vue

@@ -11,7 +11,7 @@
             <div class="inline-16">
               <label  class="search__label" >部门:</label>
 <!--              <el-cascader ref="selectdep" size="small" v-model="departmentid" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep"  clearable></el-cascader>-->
-              <el-cascader class="inline-16" ref="selectdep" size="small" v-model="depment" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep" clearable></el-cascader>
+              <el-cascader class="inline-16" placement="bottom" ref="selectdep" size="small" v-model="depment" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep" clearable></el-cascader>
             </div>
           </div>
           <!--  数字看板      -->
@@ -74,7 +74,8 @@ export default {
     otherMethod(dataid){
       const userName = JSON.parse(sessionStorage.getItem('active_account')).name
       /*数字看板*/
-      this.$refs.digitalSigns.listData()
+      this.$refs.digitalSigns.param.content.type = '0'
+      this.$refs.digitalSigns.listData(dataid)
       /*线索新增*/
       this.$refs.clueAdd.$refs.departmentSalesperson.depment = ''
       this.$refs.clueAdd.$refs.departmentSalesperson.deplist = this.deplist
@@ -107,7 +108,8 @@ export default {
     /*其他页面调用图表*/
     otherModel(dataid,type){
       /*数字看板*/
-      this.$refs.digitalSigns.listData()
+      this.$refs.digitalSigns.param.content.type = type
+      this.$refs.digitalSigns.listData(dataid)
       /*线索新增*/
       this.$refs.clueAdd.$refs.departmentSalesperson.depment = type == '1'?dataid:''
       this.$refs.clueAdd.$refs.departmentSalesperson.deplist = this.deplist

+ 33 - 3
src/views/clueData/modules/clueAdd.vue

@@ -59,7 +59,8 @@ export default {
       histogram:[],
       lineChart:[],
       heightChart:'100%',
-      isFull:false
+      isFull:false,
+      newHistogram:[]
     }
   },
   methods:{
@@ -71,6 +72,22 @@ export default {
       this.param.content.enddate = this.enddate
       const res = await this.$api.requested(this.param)
       this.histogram = res.data.histogram
+      let lastYear = []
+      let nowYear = []
+      let k=0
+      for (var i=0;i<this.histogram.length;i++){
+        if (this.histogram[i].type === '去年同期新增'){
+          lastYear[k]=this.histogram[i]
+          k++
+        }
+      }
+      let x=0
+      for (var i=0;i<this.histogram.length;i++){
+        if (this.histogram[i].type === '本期新增'){
+          nowYear[x]=this.histogram[i]
+          x++
+        }
+      }
       this.lineChart = res.data.lineChart.map(item=>{
         return {
           date: item.date,
@@ -78,11 +95,12 @@ export default {
           value: item.value
         }
       })
-      this.chartDualAxes.changeData([this.histogram,this.lineChart])
+      this.newHistogram = lastYear.concat(nowYear)
+      this.chartDualAxes.changeData([this.newHistogram,this.lineChart])
     },
     renderPie(val){
       this.chartDualAxes = new DualAxes('clueAddAnalysisChart', {
-        data:[this.histogram,this.lineChart],
+        data:[this.newHistogram,this.lineChart],
         xField: 'date',
         yField: ['value','value'],
         seriesField: 'type',
@@ -91,10 +109,22 @@ export default {
             geometry: 'column',
             isGroup: true,
             seriesField: 'type',
+            color:['#62daab','#6395fa'],
+            label: {
+              position:top
+            },
           },
           {
             geometry: 'line',
             seriesField: 'type',
+            color: '#F6903D',
+            smooth: true,
+            label:{
+              position:top,
+              formatter: (datum) =>{
+                return  datum.value + '%'
+              }
+            },
             lineStyle: {
               lineWidth: 2,
             },

+ 11 - 0
src/views/clueData/modules/clueChange.vue

@@ -90,6 +90,10 @@ export default {
             geometry: 'line',
             isGroup: true,
             seriesField: 'key',
+            label:{
+              position:top
+            },
+            smooth: true,
           },
           {
             geometry: 'line',
@@ -97,6 +101,13 @@ export default {
             lineStyle: {
               lineWidth: 2,
             },
+            smooth: true,
+            label:{
+              position:top,
+              formatter: (datum) =>{
+                return  datum.value + '%'
+              }
+            }
           },
         ],
         tooltip: {

+ 34 - 3
src/views/clueData/modules/clueFollow.vue

@@ -60,7 +60,8 @@ export default {
       histogram:[],
       lineChart:[],
       heightChart:'100%',
-      isFull:false
+      isFull:false,
+      newHistogram:[]
     }
   },
   methods:{
@@ -72,6 +73,23 @@ export default {
       this.param.content.enddate = this.enddate
       const res = await this.$api.requested(this.param)
       this.histogram = res.data.histogram
+      console.log(this.histogram)
+      let lastYear = []
+      let nowYear = []
+      let k=0
+      for (var i=0;i<this.histogram.length;i++){
+        if (this.histogram[i].key === '去年同期跟进'){
+          lastYear[k]=this.histogram[i]
+          k++
+        }
+      }
+      let x=0
+      for (var i=0;i<this.histogram.length;i++){
+        if (this.histogram[i].key === '本期跟进'){
+          nowYear[x]=this.histogram[i]
+          x++
+        }
+      }
       this.lineChart = res.data.lineChart.map(item=>{
         return {
           date: item.date,
@@ -79,11 +97,12 @@ export default {
           value: item.value
         }
       })
-      this.chartDualAxes.changeData([this.histogram,this.lineChart])
+      this.newHistogram = lastYear.concat(nowYear)
+      this.chartDualAxes.changeData([this.newHistogram,this.lineChart])
     },
     renderPie(val){
       this.chartDualAxes = new DualAxes('clueFollowAnalysisChart', {
-        data:[this.histogram,this.lineChart],
+        data:[this.newHistogram,this.lineChart],
         xField: 'date',
         yField: ['value','value'],
         geometryOptions: [
@@ -91,10 +110,22 @@ export default {
             geometry: 'column',
             isGroup: true,
             seriesField: 'key',
+            color:['#62daab','#6395fa'],
+            label: {
+              position:top
+            },
           },
           {
             geometry: 'line',
             seriesField: 'key',
+            color: '#F6903D',
+            smooth: true,
+            label:{
+              position:top,
+              formatter: (datum) =>{
+                return  datum.value + '%'
+              }
+            },
             lineStyle: {
               lineWidth: 2,
             },

+ 12 - 1
src/views/clueData/modules/clueUnFollow.vue

@@ -42,6 +42,14 @@
             <p v-if="scope.column.columnname === 'province'">
               {{scope.column.data.province !== '' && scope.column.data.city !== '' && scope.column.data.county !== ''?scope.column.data.province+scope.column.data.city+scope.column.data.county:'--'}}
             </p>
+            <div v-else-if="scope.column.columnname == 'status'">
+              <span style="color:#999999" v-if="scope.column.data[[scope.column.columnname]] == '已过期'">{{scope.column.data[[scope.column.columnname]]}}</span>
+              <span style="color:#52c41a" v-else-if="scope.column.data[[scope.column.columnname]] == '跟进中'">{{scope.column.data[[scope.column.columnname]]}}</span>
+              <span style="color:#3874f6" v-else-if="scope.column.data[[scope.column.columnname]] == '待跟进'">{{scope.column.data[[scope.column.columnname]]}}</span>
+              <span style="color:#333333" v-else-if="scope.column.data[[scope.column.columnname]] == '已无效'">{{scope.column.data[[scope.column.columnname]]}}</span>
+              <span style="color:#fa8c16" v-else-if="scope.column.data[[scope.column.columnname]] == '已转化'">{{scope.column.data[[scope.column.columnname]]}}</span>
+              <span v-else>{{scope.column.data[[scope.column.columnname]]}}</span>
+            </div>
             <p v-else-if="scope.column.columnname === 'unqty'">
               <span> {{scope.column.data[scope.column.columnname] == 0?0:scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</span>
             </p>
@@ -167,7 +175,10 @@ export default {
         xField: 'key',
         yField: 'value',
         seriesField: 'type',
-        interactions: [{ type: 'element-single-selected' }]
+        interactions: [{ type: 'element-single-selected' }],
+        label: {
+          position:top
+        },
       });
       /*this.chartColumn.on('tooltip:change',ev=>{
         this.hoverData = ev.data.items[0]

+ 12 - 5
src/views/clueData/modules/digitalSigns.vue

@@ -1,11 +1,15 @@
 <template>
   <div class="div-box-new-margin">
     <div class="div-box-new">
-      <div style="font-size: 16px;color: #333333">线索</div>
+      <div style="font-size: 16px;color: #333333;margin-bottom: 20px">线索数据概况</div>
       <div class="div-border-new">
         <div class="item">
           <p class="title">{{list.total}}</p>
-          <p class="content-font-new">线索总数</p>
+          <span class="content-font-new">线索总数</span>
+          <el-tooltip placement="top">
+            <div slot="content">线索总数:包含待分配、已分配线索数。</div>
+            <img style="vertical-align: middle" width="14px" height="14px" src="../../../assets/icons/prompt_icon.svg" >
+          </el-tooltip>
         </div>
         <div class="item">
           <p class="title">{{ list.dfp }}</p>
@@ -110,12 +114,15 @@ export default {
       param:{
         "id": 20231014114204,
         "content": {
+          "type": 0,
+          "dataid": '',
         }
       }
     }
   },
   methods:{
-    async listData(){
+    async listData(val){
+      this.param.content.dataid = val
       const res = await this.$api.requested(this.param)
       this.list = res.data
     }
@@ -127,7 +134,7 @@ export default {
   .div-box-new{
     margin-top: 16px;
     width: 100%;
-    height: 210px;
+   /* height: 210px;*/
     border-radius: 2px;
     border: 1px solid #e9e9e9;
     background-color: #ffffff;
@@ -136,7 +143,7 @@ export default {
     padding: 16px
   }
   .div-border-new{
-    margin:0 30px 0 30px;
+    /*margin:0 30px 0 30px;*/
     height: 150px
   }
   .div-border-new .item{

+ 3 - 2
src/views/salesData/components/departmentSalesperson.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <span class="search__label inline-16">部门:</span>
-    <el-cascader  class="inline-16" ref="selectdep" size="small" v-model="depment" :options="deplist" :append-to-body="!isFull"
+    <el-cascader  class="inline-16" ref="selectdep" size="small" v-model="depment" :options="deplist" :append-to-body="!isFull"  placement="bottom"
                   :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep" ></el-cascader>
     <span class="search__label inline-16">业务员:</span>
     <el-select  v-model="person" filterable placeholder="请选择" size="small" class="inline-16"  @change="selectPerson"  :popper-append-to-body="!isFull">
@@ -18,7 +18,7 @@
 <script>
 export default {
   name: "departmentSalesperson",
-  props:['isFull'],
+  props:['isFull','placement'],
   /*props:['dataid','deplist','personnelList'],*/
   data(){
     return {
@@ -33,6 +33,7 @@ export default {
     selectDep(val){
       this.person = ''
       this.depmentid = val[val.length -1]
+      console.log(this.depmentid,'depmentid')
       this.$emit('depSelect',this.depmentid)
     },
     selectPerson(val){

+ 38 - 2
src/views/salesData/modules/customerAccountBalanceAnalysis.vue

@@ -156,11 +156,32 @@ export default {
       this.param.content.enddate = this.endDate
       const res = await this.$api.requested(this.param)
       this.accountList = res.data.accountclass
-      this.balance = res.data.balance.map((item)=>{
+      let lastYear = []
+      let nowYear = []
+      let k=0
+      for (var i=0;i<res.data.balance.length;i++){
+        if (res.data.balance[i].name === '去年同期金额'){
+          lastYear[k]=res.data.balance[i]
+          k++
+        }
+      }
+      let x=0
+      for (var i=0;i<res.data.balance.length;i++){
+        if (res.data.balance[i].name === '本年金额'){
+          nowYear[x]=res.data.balance[i]
+          x++
+        }
+      }
+      console.log(lastYear,'lastYear')
+      console.log(nowYear,'nowYear')
+      let balance = lastYear.concat(nowYear)
+      this.balance = balance.map((item)=>{
+        let value = item.value/10000
         return {
           "date":item.date,
           "name":item.name + '(万元)',
-          "value":Math.round(((item.value/10000) * 100)/100)
+          "value":value
+          /*"value":item.value*/
         }
       })
       this.tbzzl = res.data.tbzzl.map((item)=>{
@@ -183,6 +204,13 @@ export default {
             geometry: 'column',
             isGroup: true,
             seriesField: 'name',
+            color:['#62daab','#6395fa'],
+            label:{
+              position:top,
+              formatter: (datum) =>{
+                return '¥' + this.tool.formatAmount(datum.value,2)
+              }
+            }
            /* label: {
               // 可手动配置 label 数据标签位置
               position: 'top', // 'top', 'bottom', 'middle',
@@ -200,6 +228,13 @@ export default {
           {
             geometry: 'line',
             seriesField: 'name',
+            color: '#F6903D',
+            smooth: true,
+            label:{
+              formatter: (datum) =>{
+                return  datum.value + '%'
+              }
+            }
            /* label: {
               // 可手动配置 label 数据标签位置
               position: 'top', // 'top', 'bottom', 'middle',
@@ -217,6 +252,7 @@ export default {
         ],
         tooltip: {
           formatter: (datum) => {
+            console.log(datum.value)
             return {
               name:datum.name,
               value:datum.name != '同比增长率'?'¥'+this.tool.formatAmount(datum.value,2):datum.value + '%'

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

@@ -169,6 +169,9 @@ export default {
         xField: 'value',
         yField: 'key',
         seriesField: 'type',
+       label:{
+         position:top
+       },
         legend: {
           position: 'top-left',
         },

+ 8 - 2
src/views/salesData/modules/financialCollectionAnalysis.vue

@@ -8,7 +8,7 @@
         </div>
         <div class="in">
           <div class="inline-16 mt-10">
-            <departmentSalesperson ref="departmentSalesperson"  @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
+            <departmentSalesperson ref="departmentSalesperson" placement="left-start"  @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
           <div class="inline-15 mt-10">
             <exportFile  :param="tableParam" :columns="tablecols" fileName="财务回款分析" :dataid="tableParam.content.dataid"></exportFile>
@@ -123,10 +123,11 @@ export default {
       this.param.content.dataid = val || this.dataid
       const res = await this.$api.requested(this.param)
       this.chartData = res.data.map(item=>{
+        let value = item.value/10000
         return {
           key: item.key + '(万元)',
           type: item.type,
-          value: Math.round(((item.value/10000)*100)/100)
+          value: value
         }
       })
       this.chartBar.changeData(this.chartData)
@@ -138,6 +139,11 @@ export default {
         xField: 'value',
         yField: 'type',
         seriesField: 'key',
+        label:{
+          formatter: (datum) =>{
+            return  '¥'+this.tool.formatAmount(datum.value,2)
+          }
+        },
         tooltip: {
           formatter: (datum) => {
             return {

+ 19 - 3
src/views/salesData/modules/invoiceAmountAnalysis.vue

@@ -79,20 +79,22 @@ export default {
       this.param.content.year = new Date(this.yearNow).getFullYear()
       const res = await this.$api.requested(this.param)
       let amount = res.data.map(item=>{
+        let value = item.amount/10000
         return {
-          "value":Math.round(((item.amount/10000)*100)/100),
+          "value":value,
           "date":item.date,
           "type":'本期金额(万元)'
         }
       })
       let oldamount = res.data.map(item=>{
+        let value = item.oldamount/10000
         return {
           "date":item.date,
-          "value":Math.round(((item.oldamount/10000)*100)/100),
+          "value":value,
           "type":'去年同期金额(万元)'
         }
       })
-      this.list = amount.concat(oldamount)
+      this.list = oldamount.concat(amount)
       this.list1 = res.data.map(item=>{
         return {
           "date":item.date,
@@ -116,12 +118,26 @@ export default {
             geometry: 'column',
             isGroup: true,
             seriesField: 'type',
+            color:['#62daab','#6395fa'],
+            label:{
+              position:top,
+              formatter: (datum) =>{
+                return '¥' + this.tool.formatAmount(datum.value,2)
+              }
+            }
           },
           {
             geometry: 'line',
             lineStyle: {
               lineWidth: 2,
             },
+            color: '#F6903D',
+            smooth: true,
+            label:{
+              formatter: (datum) =>{
+                return  datum.tbzzl + '%'
+              }
+            }
           },
         ],
         tooltip: {

+ 18 - 4
src/views/salesData/modules/orderTrendAnalysis.vue

@@ -79,15 +79,17 @@ export default {
       this.param.content.year = new Date(this.yearNow).getFullYear()
       const res = await this.$api.requested(this.param)
       this.list2 = res.data.map(item=>{
+        let value = item.oldamount/10000
         return {
           "date":item.date,
-          "value":Math.round(((item.oldamount/10000)*100)/100),
+          "value":value,
           "type":'去年同期金额(万元)'
         }
       })
       let list3 = res.data.map(item=>{
+        let value = item.amount/10000
         return {
-          "value":Math.round(((item.amount/10000)*100)/100),
+          "value":value,
           "date":item.date,
           "type":'本期金额(万元)',
         }
@@ -113,7 +115,13 @@ export default {
             geometry: 'column',
             isGroup: true,
             seriesField: 'type',
-            color:['#62daab','#6395fa']
+            color:['#62daab','#6395fa'],
+            label:{
+              position:top,
+              formatter: (datum) =>{
+                return '¥' + this.tool.formatAmount(datum.value,2)
+              }
+            }
            /* label: {
               // 可手动配置 label 数据标签位置
               position: 'top', // 'top', 'bottom', 'middle',
@@ -123,11 +131,17 @@ export default {
           },
           {
             geometry: 'line',
-            color:['#657798'],
             lineStyle: {
               lineWidth: 2,
             },
             seriesField: 'type',
+            color: '#F6903D',
+            smooth: true,
+            label:{
+              formatter: (datum) =>{
+                return  datum.value + '%'
+              }
+            }
            /* label: {
               // 可手动配置 label 数据标签位置
               position: 'top', // 'top', 'bottom', 'middle',

+ 11 - 5
src/views/salesData/modules/orderType.vue

@@ -43,8 +43,8 @@
         </div>
       </div>
       <div class="chart" style="height: 416px">
-        <div id="orderTypeChart" style="height: 400px;width: 30%;float: left;margin-right: 2%" :style="{height:heightChart,width:'30%',float:'left',marginRight:'2%'}"></div>
-        <div style="float: right;width: 68%">
+        <div id="orderTypeChart" style="height: 400px;" :style="{height:heightChart,width:windowWidth < 1505?'54%':windowWidth<1805?'54%':windowWidth<2500?'45%':'30%',float:'left'}"></div>
+        <div style="float: right;" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
           <tableTemplate style="margin-top: 10px" ref="table" :layout="tablecols" :data="list" :opwidth="200" :custom="true" :height="heightTable" fixedName="operation">
             <template v-slot:customcol="scope">
               <p v-if="scope.column.columnname === 'operation'">
@@ -67,7 +67,7 @@
                 @size-change="handleSizeChange"
                 @current-change="handleCurrentChange"
                 :current-page="currentPage"
-                :pager-count="7"
+                :pager-count="3"
                 :page-sizes="[20, 50,100, 200]"
                 :page-size="20"
                 layout="total,sizes, prev, pager, next, jumper"
@@ -89,7 +89,7 @@ import exportFile from '@/components/export_file/index'
 const G = G2.getEngine('canvas');
 export default {
   name: "orderType",
-  props:['dataid','scrollHeight'],
+  props:['dataid','scrollHeight','windowWidth'],
   components:{tableTemplate,fullScreen,exportFile},
   data(){
     return {
@@ -214,13 +214,19 @@ export default {
         radius: 1,
         innerRadius: 0.6,
         legend:{
-          position:'left',
+          position:'bottom',
           style:{
             marginLeft:'80px'
           }
 
         },
         label:{
+          /*type: 'inner',
+          offset: '-50%',
+          style: {
+            textAlign: 'center',
+          },
+          autoRotate: false,*/
           formatter: (datum) => `${datum.ratio}%`,
         },
         tooltip: {

+ 10 - 0
src/views/salesData/modules/quotationAnalysis.vue

@@ -157,6 +157,13 @@ export default {
         xField: 'date',
         yField: valueKey,
         seriesField: seriesKey,
+        smooth: true,
+        label:{
+          // 可手动配置 label 数据标签位置
+          position: 'top', // 'top', 'bottom', 'middle',
+          // 配置样式
+          layout: [],
+        }
         /*label: {
           // 可手动配置 label 数据标签位置
           position: 'top', // 'top', 'bottom', 'middle',
@@ -173,14 +180,17 @@ export default {
     },
     /*选择部门*/
     depSelect(val){
+      console.log(val,'val3333')
       this.plotParam.content.type = 1
       this.plotParam.content.dataid = val
+      this.dataid = val
       this.queryQuotationModel()
     },
     /*选择业务员*/
     personSelect(val){
       this.plotParam.content.type = 0
       this.plotParam.content.dataid = val
+      this.dataid = val
       this.queryQuotationModel()
     },
     /*全屏*/

+ 19 - 3
src/views/salesData/modules/shippingTrendAnalysis.vue

@@ -86,20 +86,22 @@ export default {
       this.param.content.year = new Date(this.yearNow).getFullYear()
       const res = await this.$api.requested(this.param)
       const amount = res.data.map(item=>{
+        let value = item.amount/10000
         return {
-          "value":Math.round(((item.amount/10000)*100)/100),
+          "value":value,
           "date":item.date,
           "type":'本期金额(万元)'
         }
       })
       const oldamount = res.data.map(item=>{
+        let value = item.oldamount/10000
         return {
-          "value":Math.round(((item.oldamount/10000)*100)/100),
+          "value":value,
           "date":item.date,
           "type":'去年同期金额(万元)'
         }
       })
-      this.list = amount.concat(oldamount)
+      this.list = oldamount.concat(amount)
       const tbzzl = res.data.map(item=>{
         return {
           "value":Math.round(((item.tbzzl * 100)*100)/100),
@@ -127,6 +129,13 @@ export default {
             geometry: 'column',
             isGroup: true,
             seriesField: 'type',
+            color:['#62daab','#6395fa'],
+            label:{
+              position:top,
+              formatter: (datum) =>{
+                return '¥' + this.tool.formatAmount(datum.value,2)
+              }
+            }
             /*label: {
               // 可手动配置 label 数据标签位置
               position: 'top', // 'top', 'bottom', 'middle',
@@ -138,6 +147,13 @@ export default {
             geometry: 'line',
             isGroup: true,
             seriesField: 'type',
+            color: ['#F6903D','#f7c122'],
+            smooth: true,
+            label:{
+              formatter: (datum) =>{
+                return  datum.value + '%'
+              }
+            }
             /*label: {
               // 可手动配置 label 数据标签位置
               position: 'top', // 'top', 'bottom', 'middle',

+ 8 - 2
src/views/salesData/modules/shippingUninvoiceAnalysis.vue

@@ -8,7 +8,7 @@
         </div>
         <div class="in">
           <div class="inline-16 mt-10">
-            <departmentSalesperson ref="departmentSalesperson"  @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
+            <departmentSalesperson ref="departmentSalesperson" placement="left-start" @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
           <div class="inline-15 mt-10">
             <exportFile  :param="param" :columns="tablecols" fileName="出货未开票分析" :dataid="param.content.dataid"></exportFile>
@@ -140,8 +140,9 @@ export default {
       }
       this.chartData = res.data[0].Trend
       this.chartData = this.chartData.map(item=>{
+        let value = item.value/10000
         return {
-          "value": Math.round(((item.value/10000)*100)/100),
+          "value": value,
           "key": item.key + '(万元)',
           "type":"出货未开票金额(万元)"
         }
@@ -154,6 +155,11 @@ export default {
         xField: 'value',
         yField: 'key',
         seriesField: 'type',
+        label:{
+          formatter: (datum) =>{
+            return  '¥'+this.tool.formatAmount(datum.value,2)
+          }
+        },
         legend: {
           position: 'top-left',
         },

+ 15 - 4
src/views/salesData/modules/uninvoiceAmountAnalysis.vue

@@ -102,12 +102,16 @@ export default {
       this.param.content.enddate = this.endDate
       const res = await this.$api.requested(this.param)
       this.list = res.data.map(item=>{
+        let zerotothree = item.zerotothree/10000
+        let threetosix = item.threetosix/10000
+        let sixtotwelve = item.sixtotwelve/10000
+        let twelveup = item.twelveup/10000
         return {
-          "zerotothree":Math.round(((item.zerotothree/10000)*100)/100),
-          "threetosix":Math.round(((item.threetosix/10000)*100)/100),
+          "zerotothree":zerotothree,
+          "threetosix":threetosix,
           "date":item.date,
-          "sixtotwelve":Math.round(((item.sixtotwelve/10000)*100)/100),
-          "twelveup":Math.round(((item.twelveup/10000)*100)/100),
+          "sixtotwelve":sixtotwelve,
+          "twelveup":twelveup,
         }
       })
       this.chartLine.changeData(this.processData(this.list, ['zerotothree', 'threetosix','sixtotwelve','twelveup'], meta))
@@ -118,6 +122,13 @@ export default {
         xField: 'date',
         yField: valueKey,
         seriesField: seriesKey,
+        label:{
+          layout: [],
+          formatter: (datum) =>{
+            return '¥' + this.tool.formatAmount(datum.value,2)
+          }
+        },
+        smooth: true,
         tooltip: {
           formatter: (datum) => {
             return {