Browse Source

数据总览样式调整

qymljy 2 years ago
parent
commit
edde31486d

+ 74 - 101
src/HDrpManagement/customerData/index.vue

@@ -107,7 +107,7 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
+                    <div class="mt-10 inline-15">
                       <label  class="search__label" >分析日期:</label>
                       <el-date-picker
                           :append-to-body="false"
@@ -120,7 +120,7 @@
                           @change="chart1Fun()">
                       </el-date-picker>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle" >
                       <FullScroll domId="customerAdd"></FullScroll>
                     </div>
                   </div>
@@ -159,10 +159,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="typeTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户类型情况统计" :dataid="typeMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile :param="typeTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户类型情况统计" :dataid="typeMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="customerType" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -239,10 +239,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="gradTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户等级情况统计" :dataid="gradMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="gradTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户等级情况统计" :dataid="gradMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="customerGrad" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -316,10 +316,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="contactTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户联系人情况统计" :dataid="contactMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="contactTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户联系人情况统计" :dataid="contactMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="customerContact" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -393,10 +393,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="projectTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户关联项目情况统计" :dataid="projectMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="projectTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户关联项目情况统计" :dataid="projectMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="customerProject" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -470,10 +470,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="fllowTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户跟进情况统计" :dataid="fllowMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="fllowTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户跟进情况统计" :dataid="fllowMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="customerFllow" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -547,7 +547,7 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
+                    <div class="mt-10 inline-15">
                       <label  class="search__label" >分析日期:</label>
                       <el-date-picker
                           :append-to-body="false"
@@ -560,7 +560,7 @@
                           @change="chart2Fun()">
                       </el-date-picker>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="customerFllow1"></FullScroll>
                     </div>
                   </div>
@@ -654,10 +654,10 @@
                           @change="$event => {unfllowTableParam.content.enddate=unfllowMapParam.content.enddate;unfllowTableParam.content.pageNumber = 1;customerUnfllowInit();$refs.customerUnfllowTable.listData()}">
                       </el-date-picker>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="unfllowTableParam" :columns="tool.tabelCol($route.name).typeTable1.tablecols.splice(0,tool.tabelCol($route.name).typeTable1.tablecols.length - 1)" fileName="有效客户未跟进天数分析" :dataid="unfllowMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="unfllowTableParam" :columns="tool.tabelCol($route.name).typeTable1.tablecols.splice(0,tool.tabelCol($route.name).typeTable1.tablecols.length - 1)" fileName="有效客户未跟进天数分析" :dataid="unfllowMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectUnfllow"></FullScroll>
                     </div>
                   </div>
@@ -732,7 +732,7 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
+                    <div class="mt-10 inline-15">
                       <label  class="search__label" >分析日期:</label>
                       <el-date-picker
                           :append-to-body="false"
@@ -745,7 +745,7 @@
                           @change="chart3Fun()">
                       </el-date-picker>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="customerBaojia"></FullScroll>
                     </div>
                   </div>
@@ -1128,32 +1128,26 @@ export default {
     async customerTypeInit (init) {
       let res = await this.$api.requested(this.typeMapParam)
       this.customerTypeData.map = res.data
-      console.log(this.customerTypeData,'客户数据');
       if (init) {
         this.customerTypeMap = new Pie(this.$refs.customerTypeEl, {
           appendPadding: 10,
           data:this.customerTypeData.map,
-          angleField: 'value',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
-          meta: {
-            value: {
-              formatter: (v) => `${v} ¥`,
-            },
-          },
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '客户总数';
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'客户总数'
             },
             content: {
               offsetY: 4,
@@ -1161,9 +1155,8 @@ export default {
                 fontSize: '32px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                const text = datum ? `${datum.ratio}%` : data[0].totalqty;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -1171,7 +1164,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }, { type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-single-selected' },{ type: 'element-active' }],
         });
         this.customerTypeMap.on('element:click',(v) => {
           if (v.data.data.key != this.typeTableParam.content.where.customerstype) {
@@ -1199,7 +1192,7 @@ export default {
         this.customerGradMap = new Pie(this.$refs.customerGradEl, {
           appendPadding: 10,
           data:this.customerGradData.map,
-          angleField: 'value',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
@@ -1211,15 +1204,15 @@ export default {
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '客户总数';
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'客户总数'
             },
             content: {
               offsetY: 4,
@@ -1227,9 +1220,8 @@ export default {
                 fontSize: '32px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                const text = datum ? `${datum.ratio}%` : data[0].totalqty;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -1237,7 +1229,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }, { type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }],
         });
         this.customerGradMap.on('element:click',(v) => {
           if (v.data.data.key != this.gradTableParam.content.where.grade) {
@@ -1265,27 +1257,22 @@ export default {
         this.customerContactMap = new Pie(this.$refs.customerContactEl, {
           appendPadding: 10,
           data:this.customerContactData.map,
-          angleField: 'value',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
-          meta: {
-            value: {
-              formatter: (v) => `${v} ¥`,
-            },
-          },
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '客户总数';
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'客户总数'
             },
             content: {
               offsetY: 4,
@@ -1293,9 +1280,8 @@ export default {
                 fontSize: '32px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                const text = datum ? `${datum.ratio}%` : data[0].totalqty;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -1303,7 +1289,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }, { type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }],
         });
         this.customerContactMap.on('element:click',(v) => {
           if (v.data.data.key != this.contactTableParam.content.where.iscontacts) {
@@ -1331,27 +1317,22 @@ export default {
         this.customerProjectMap = new Pie(this.$refs.customerProjectEl, {
           appendPadding: 10,
           data:this.customerProjectData.map,
-          angleField: 'value',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
-          meta: {
-            value: {
-              formatter: (v) => `${v} ¥`,
-            },
-          },
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '客户总数';
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'客户总数'
             },
             content: {
               offsetY: 4,
@@ -1359,9 +1340,8 @@ export default {
                 fontSize: '32px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                const text = datum ? `${datum.ratio}%` : data[0].totalqty;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -1369,7 +1349,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }, { type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }],
         });
         this.customerProjectMap.on('element:click',(v) => {
           if (v.data.data.key != this.projectTableParam.content.where.isproject) {
@@ -1401,27 +1381,22 @@ export default {
         this.customerFllowMap = new Pie(this.$refs.customerFllowEl, {
           appendPadding: 10,
           data:this.customerFllowData.map,
-          angleField: 'value',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
-          meta: {
-            value: {
-              formatter: (v) => `${v} ¥`,
-            },
-          },
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '客户总数';
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'客户总数'
             },
             content: {
               offsetY: 4,
@@ -1429,10 +1404,8 @@ export default {
                 fontSize: '32px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                console.log(data,'总数',datum,'当前');
-                const text = datum ? `${datum.ratio}%` : data[0].totalqty;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -1440,7 +1413,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }, { type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }],
         });
         this.customerFllowMap.on('element:click',(v) => {
           if (v.data.data.key != this.fllowTableParam.content.where.isfollowup) {

+ 1913 - 0
src/HDrpManagement/customerData/indexCopy.vue

@@ -0,0 +1,1913 @@
+
+<template>
+  <normalLayout style="background: #f8f8f8;">
+    <template #refresh>
+      <div style="margin-right:15px">
+        <el-button style="font-size:14px !important;color: #3874f6" type="text" size="small" @click="$refs.scroll.wrap.scrollTop=0">返回顶部</el-button>
+      </div>
+      <!-- <i class="el-icon-refresh-right" @click="refresh" v-loading.fullscreen.lock="fullscreenLoading"></i> -->
+    </template>
+    <template #content>
+      <div style="padding: 16px;">
+        <el-scrollbar ref="scroll">
+          <div style="height:calc(100vh - 230px);padding:5rem">
+            <div class=" inline-16">
+              <label  class="search__label" >部门:</label>
+              <el-cascader
+                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 class="data-all">
+              <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>
+                  </div>
+                  <div class="data-item">
+                    <p>{{ tool.formatAmount(dataAll.tradedCustomers)}}</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.participateProject) }}</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>
+                <div class="data-right">
+                  <div class="data-item" v-for="item in dataAll.data" :key="item.rowindex">
+                    <p>{{ tool.formatAmount(item.qty) }}</p>
+                    <p>
+                      {{ item.value}}
+                      <el-tooltip class="item" effect="dark" content="无分类客户数:统计没有客户分类信息的客户数量" placement="top" v-if="item.value == '无分类客户'">
+                        <img style="vertical-align: middle" src="@/assets/icons/prompt_icon.svg" alt="">
+                      </el-tooltip>
+                      <el-tooltip class="item" effect="dark" content="A核心客户:客户分类为A核心客户的数量" placement="top" v-else-if="item.value == 'A核心客户'">
+                        <img style="vertical-align: middle" src="@/assets/icons/prompt_icon.svg" alt="">
+                      </el-tooltip>
+                      <el-tooltip class="item" effect="dark" content="B重要客户:客户分类为B重要客户的数量" placement="top" v-else-if="item.value == 'B重要客户'">
+                        <img style="vertical-align: middle" src="@/assets/icons/prompt_icon.svg" alt="">
+                      </el-tooltip>
+                      <el-tooltip class="item" effect="dark" content="C普通客户:客户分类为C普通客户的数量" placement="top" v-else-if="item.value == 'C普通客户'">
+                        <img style="vertical-align: middle" src="@/assets/icons/prompt_icon.svg" alt="">
+                      </el-tooltip>
+                      <el-tooltip class="item" effect="dark" content="D一般客户:客户分类为D一般客户的数量" placement="top" v-else-if="item.value == 'D一般客户'">
+                        <img style="vertical-align: middle" src="@/assets/icons/prompt_icon.svg" alt="">
+                      </el-tooltip>
+                    </p>
+                  </div>
+                </div>
+              </div>
+
+            </div>
+            <!--12月客户新增-->
+            <div class="data-panel" id="customerAdd">
+              <div class="panel-content-wrapper" >
+                <div class="panel-header">
+                  <div class="title">近12月客户新增分析</div>
+                  <div class="panel-select">
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >部门:</label>
+                      <el-cascader
+                        :append-to-body="false"
+                        ref="selectdep"
+                        size="small"
+                        v-model="chartParam1.content.dataid"
+                        :options="deplist"
+                        :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
+                        @change="$event => {if($event.length) {chartParam1.content.type=1;chartParam1.content.username='';chart1Fun()} else {chartParam1.content.dataid='';chartParam1.content.type='';chartParam1.content.username='';chart1Fun()}}"></el-cascader>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >业务员:</label>
+                      <el-select v-model="chartParam1.content.username" filterable placeholder="请选择" size="small"
+                        :popper-append-to-body="false"
+                        @change="$event => {if($event) {chartParam1.content.type=0;chartParam1.content.dataid=$event;chartParam1.content.depname='';chart1Fun()} else {chartParam1.content.dataid='';chartParam1.content.type='';chartParam1.content.depname='';chart1Fun()}}"
+                        >
+                        <el-option
+                            v-for="item in personnelList"
+                            :key="item.index"
+                            :label="item.name"
+                            :value="item.userid">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-15">
+                      <label  class="search__label" >分析日期:</label>
+                      <el-date-picker
+                          :append-to-body="false"
+                          v-model="chartParam1.content.enddate"
+                          format="yyyy-MM-dd"
+                          value-format="yyyy-MM-dd"
+                          type="date"
+                          size="small"
+                          placeholder="选择日期"
+                          @change="chart1Fun()">
+                      </el-date-picker>
+                    </div>
+                    <div style="display: inline-block;vertical-align: middle" >
+                      <FullScroll domId="customerAdd"></FullScroll>
+                    </div>
+                  </div>
+                </div>
+                <div ref="chart1" style="height:calc(100% - 55px)"></div>
+              </div>
+            </div>
+            <!--客户类型-->
+            <div class="data-panel" id="customerType">
+              <div class="panel-content-wrapper" >
+                <div class="panel-header">
+                  <div class="title">客户类型情况统计</div>
+                  <div class="panel-select">
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >部门:</label>
+                      <el-cascader
+                        :append-to-body="false"
+                        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.customerTypeTable.listData();customerTypeInit()} else {typeMapParam.content.type='';typeMapParam.content.dataid='';typeTableParam.content.dataid='';typeTableParam.content.type='';typeTableParam.content.username='';typeTableParam.content.pageNumber=1;$refs.customerTypeTable.listData();customerTypeInit()}}"></el-cascader>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >业务员:</label>
+                      <el-select v-model="typeTableParam.content.username" filterable placeholder="请选择" size="small"
+                      :popper-append-to-body="false"
+                      @change="$event => {if($event) {typeMapParam.content.type=0;typeMapParam.content.dataid=$event;typeTableParam.content.type=0;typeTableParam.content.dataid=$event;typeTableParam.content.depname='';typeTableParam.content.pageNumber=1;$refs.customerTypeTable.listData();customerTypeInit()} else {typeMapParam.content.type='';typeMapParam.content.dataid='';typeTableParam.content.dataid='';typeTableParam.content.type='';typeTableParam.content.depname='';typeTableParam.content.pageNumber=1;$refs.customerTypeTable.listData();customerTypeInit()}}"
+                      >
+                        <el-option
+                            v-for="item in personnelList"
+                            :key="item.index"
+                            :label="item.name"
+                            :value="item.userid">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-15">
+                      <exportFile :param="typeTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户类型情况统计" :dataid="typeMapParam.content.dataid"></exportFile>
+                    </div>
+                    <div style="display: inline-block;vertical-align: middle">
+                      <FullScroll domId="customerType" @onFull="onFull" @backFull="backFull"></FullScroll>
+                    </div>
+                  </div>
+                </div>
+                <div class="panel-content">
+                  <div ref="customerTypeEl" style="width:30%"></div>
+                  <div class="panel-table" style="width:70%">
+                    <pageTable
+                      ref="customerTypeTable"
+                      :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
+                      :param="typeTableParam"
+                      :custom="true"
+                    >
+                      <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>
+                        </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>
+                        </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>
+                          <span style="color:#fa8c16" v-else-if="scope.data.data[[scope.data.columnname]] == '已成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#333333" v-else-if="scope.data.data[[scope.data.columnname]] == '多次成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else-if="scope.data.columnname === 'status'">
+                          <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '潜在'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#52c41a" v-else-if="scope.data.data[[scope.data.columnname]] == '合作中'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#999999" v-else-if="scope.data.data[[scope.data.columnname]] == '已终止'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else-if="scope.data.columnname == 'scale'">
+                          {{scope.data.data.scale ? scope.data.data.scale + scope.data.data.unitname : '' }}
+                        </div>
+                        <div v-else>
+                          {{ scope.data.data[scope.data.columnname] }}
+                        </div>
+                      </template>
+                    </pageTable>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!--客户等级-->
+            <div class="data-panel" id="customerGrad">
+              <div class="panel-content-wrapper" >
+                <div class="panel-header">
+                  <div class="title">客户等级情况统计</div>
+                  <div class="panel-select">
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >部门:</label>
+                      <el-cascader
+                        :append-to-body="false"
+                        ref="selectdep"
+                        size="small"
+                        v-model="gradTableParam.content.dataid"
+                        :options="deplist"
+                        :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
+                        @change="$event => {if($event.length) {gradMapParam.content.type=1;gradMapParam.content.dataid=$event[$event.length - 1];gradTableParam.content.type=1;gradTableParam.content.username='';gradTableParam.content.pageNumber = 1;$refs.customerGradTable.listData();customerGradInit()} else {gradMapParam.content.type='';gradMapParam.content.dataid='';gradTableParam.content.dataid='';gradTableParam.content.type='';gradTableParam.content.username='';gradTableParam.content.pageNumber = 1;$refs.customerGradTable.listData();customerGradInit()}}"></el-cascader>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >业务员:</label>
+                      <el-select v-model="gradTableParam.content.username" filterable placeholder="请选择" size="small"
+                      :popper-append-to-body="false"
+                      @change="$event => {if($event) {gradMapParam.content.type=0;gradMapParam.content.dataid=$event;gradTableParam.content.type=0;gradTableParam.content.dataid=$event;gradTableParam.content.depname='';gradTableParam.content.pageNumber = 1;$refs.customerGradTable.listData();customerGradInit()} else {gradMapParam.content.type='';gradMapParam.content.dataid='';gradTableParam.content.dataid='';gradTableParam.content.type='';gradTableParam.content.depname='';gradTableParam.content.pageNumber = 1;$refs.customerGradTable.listData();customerGradInit()}}"
+                      >
+                        <el-option
+                            v-for="item in personnelList"
+                            :key="item.index"
+                            :label="item.name"
+                            :value="item.userid">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="gradTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户等级情况统计" :dataid="gradMapParam.content.dataid"></exportFile>
+                    </div>
+                    <div style="display: inline-block;vertical-align: middle">
+                      <FullScroll domId="customerGrad" @onFull="onFull" @backFull="backFull"></FullScroll>
+                    </div>
+                  </div>
+                </div>
+                <div class="panel-content">
+                  <div ref="customerGradEl" style="width:30%"></div>
+                  <div class="panel-table" style="width:70%">
+                    <pageTable
+                      ref="customerGradTable"
+                      :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
+                      :param="gradTableParam"
+                      :custom="true"
+                    >
+                      <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>
+                        </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>
+                        </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>
+                          <span style="color:#fa8c16" v-else-if="scope.data.data[[scope.data.columnname]] == '已成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#333333" v-else-if="scope.data.data[[scope.data.columnname]] == '多次成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else-if="scope.data.columnname === 'status'">
+                          <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '潜在'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#52c41a" v-else-if="scope.data.data[[scope.data.columnname]] == '合作中'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#999999" v-else-if="scope.data.data[[scope.data.columnname]] == '已终止'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else>
+                          {{ scope.data.data[scope.data.columnname] }}
+                        </div>
+                      </template>
+                    </pageTable>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!--客户联系人-->
+            <div class="data-panel" id="customerContact">
+              <div class="panel-content-wrapper" >
+                <div class="panel-header">
+                  <div class="title">客户联系人情况统计</div>
+                  <div class="panel-select">
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >部门:</label>
+                      <el-cascader
+                        :append-to-body="false"
+                        ref="selectdep"
+                        size="small"
+                        v-model="contactTableParam.content.dataid"
+                        :options="deplist"
+                        :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
+                        @change="$event => {if($event.length) {contactMapParam.content.type=1;contactMapParam.content.dataid=$event[$event.length - 1];contactTableParam.content.type=1;contactTableParam.content.username='';contactTableParam.content.pageNumber = 1;$refs.customerContactTable.listData();customerContactInit()} else {contactMapParam.content.type='';contactMapParam.content.dataid='';contactTableParam.content.dataid='';contactTableParam.content.type='';contactTableParam.content.username='';contactTableParam.content.pageNumber = 1;$refs.customerContactTable.listData();customerContactInit()}}"></el-cascader>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >业务员:</label>
+                      <el-select v-model="contactTableParam.content.username" filterable placeholder="请选择" size="small"
+                      :popper-append-to-body="false"
+                      @change="$event => {if($event) {contactMapParam.content.type=0;contactMapParam.content.dataid=$event;contactTableParam.content.type=0;contactTableParam.content.dataid=$event;contactTableParam.content.depname='';contactTableParam.content.pageNumber = 1;$refs.customerContactTable.listData();customerContactInit()} else {contactMapParam.content.type='';contactMapParam.content.dataid='';contactTableParam.content.dataid='';contactTableParam.content.type='';contactTableParam.content.depname='';contactTableParam.content.pageNumber = 1;$refs.customerContactTable.listData();customerContactInit()}}"
+                      >
+                        <el-option
+                            v-for="item in personnelList"
+                            :key="item.index"
+                            :label="item.name"
+                            :value="item.userid">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="contactTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户联系人情况统计" :dataid="contactMapParam.content.dataid"></exportFile>
+                    </div>
+                    <div style="display: inline-block;vertical-align: middle">
+                      <FullScroll domId="customerContact" @onFull="onFull" @backFull="backFull"></FullScroll>
+                    </div>
+                  </div>
+                </div>
+                <div class="panel-content">
+                  <div ref="customerContactEl" style="width:30%"></div>
+                  <div class="panel-table" style="width:70%">
+                    <pageTable
+                      ref="customerContactTable"
+                      :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
+                      :param="contactTableParam"
+                      :custom="true"
+                    >
+                      <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>
+                        </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>
+                        </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>
+                          <span style="color:#fa8c16" v-else-if="scope.data.data[[scope.data.columnname]] == '已成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#333333" v-else-if="scope.data.data[[scope.data.columnname]] == '多次成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else-if="scope.data.columnname === 'status'">
+                          <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '潜在'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#52c41a" v-else-if="scope.data.data[[scope.data.columnname]] == '合作中'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#999999" v-else-if="scope.data.data[[scope.data.columnname]] == '已终止'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else>
+                          {{ scope.data.data[scope.data.columnname] }}
+                        </div>
+                      </template>
+                    </pageTable>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!--客户关联项目-->
+            <div class="data-panel" id="customerProject">
+              <div class="panel-content-wrapper" >
+                <div class="panel-header">
+                  <div class="title">客户关联项目情况统计</div>
+                  <div class="panel-select">
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >部门:</label>
+                      <el-cascader
+                        :append-to-body="false"
+                        ref="selectdep"
+                        size="small"
+                        v-model="projectTableParam.content.dataid"
+                        :options="deplist"
+                        :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
+                        @change="$event => {if($event.length) {projectMapParam.content.type=1;projectMapParam.content.dataid=$event[$event.length - 1];projectTableParam.content.type=1;projectTableParam.content.username='';projectTableParam.content.pageNumber = 1;$refs.customerProjectTable.listData();customerFllowInit()} else {projectMapParam.content.type='';projectMapParam.content.dataid='';projectTableParam.content.dataid='';projectTableParam.content.type='';projectTableParam.content.username='';projectTableParam.content.pageNumber = 1;$refs.customerProjectTable.listData();customerFllowInit()}}"></el-cascader>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >业务员:</label>
+                      <el-select v-model="projectTableParam.content.username" filterable placeholder="请选择" size="small"
+                      :popper-append-to-body="false"
+                      @change="$event => {if($event) {projectMapParam.content.type=0;projectMapParam.content.dataid=$event;projectTableParam.content.type=0;projectTableParam.content.dataid=$event;projectTableParam.content.depname='';projectTableParam.content.pageNumber = 1;$refs.customerProjectTable.listData();customerFllowInit()} else {projectMapParam.content.type='';projectMapParam.content.dataid='';projectTableParam.content.dataid='';projectTableParam.content.type='';projectTableParam.content.depname='';projectTableParam.content.pageNumber = 1;$refs.customerProjectTable.listData();customerFllowInit()}}"
+                      >
+                        <el-option
+                            v-for="item in personnelList"
+                            :key="item.index"
+                            :label="item.name"
+                            :value="item.userid">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="projectTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户关联项目情况统计" :dataid="projectMapParam.content.dataid"></exportFile>
+                    </div>
+                    <div style="display: inline-block;vertical-align: middle">
+                      <FullScroll domId="customerProject" @onFull="onFull" @backFull="backFull"></FullScroll>
+                    </div>
+                  </div>
+                </div>
+                <div class="panel-content">
+                  <div ref="customerProjectEl" style="width:30%"></div>
+                  <div class="panel-table" style="width:70%">
+                    <pageTable
+                      ref="customerProjectTable"
+                      :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
+                      :param="projectTableParam"
+                      :custom="true"
+                    >
+                      <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>
+                        </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>
+                        </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>
+                          <span style="color:#fa8c16" v-else-if="scope.data.data[[scope.data.columnname]] == '已成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#333333" v-else-if="scope.data.data[[scope.data.columnname]] == '多次成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else-if="scope.data.columnname === 'status'">
+                          <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '潜在'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#52c41a" v-else-if="scope.data.data[[scope.data.columnname]] == '合作中'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#999999" v-else-if="scope.data.data[[scope.data.columnname]] == '已终止'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else>
+                          {{ scope.data.data[scope.data.columnname] }}
+                        </div>
+                      </template>
+                    </pageTable>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!--客户跟进情况-->
+            <div class="data-panel" id="customerFllow">
+              <div class="panel-content-wrapper" >
+                <div class="panel-header">
+                  <div class="title">客户跟进情况统计</div>
+                  <div class="panel-select">
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >部门:</label>
+                      <el-cascader
+                        :append-to-body="false"
+                        ref="selectdep"
+                        size="small"
+                        v-model="fllowTableParam.content.dataid"
+                        :options="deplist"
+                        :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
+                        @change="$event => {if($event.length) {fllowMapParam.content.type=1;fllowMapParam.content.dataid=$event[$event.length - 1];fllowTableParam.content.type=1;fllowTableParam.content.username='';fllowTableParam.content.pageNumber = 1;$refs.customerFllowTable.listData();customerFllowInit()} else {fllowMapParam.content.type='';fllowMapParam.content.dataid='';fllowTableParam.content.dataid='';fllowTableParam.content.type='';fllowTableParam.content.username='';fllowTableParam.content.pageNumber = 1;$refs.customerFllowTable.listData();customerFllowInit()}}"></el-cascader>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >业务员:</label>
+                      <el-select v-model="fllowTableParam.content.username" filterable placeholder="请选择" size="small"
+                      :popper-append-to-body="false"
+                      @change="$event => {if($event) {fllowMapParam.content.type=0;fllowMapParam.content.dataid=$event;fllowTableParam.content.type=0;fllowTableParam.content.dataid=$event;fllowTableParam.content.depname='';fllowTableParam.content.pageNumber = 1;$refs.customerFllowTable.listData();customerFllowInit()} else {fllowMapParam.content.type='';fllowMapParam.content.dataid='';fllowTableParam.content.dataid='';fllowTableParam.content.type='';fllowTableParam.content.depname='';fllowTableParam.content.pageNumber = 1;$refs.customerFllowTable.listData();customerFllowInit()}}"
+                      >
+                        <el-option
+                            v-for="item in personnelList"
+                            :key="item.index"
+                            :label="item.name"
+                            :value="item.userid">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="fllowTableParam" :columns="tool.tabelCol($route.name).typeTable.tablecols" fileName="客户跟进情况统计" :dataid="fllowMapParam.content.dataid"></exportFile>
+                    </div>
+                    <div style="display: inline-block;vertical-align: middle">
+                      <FullScroll domId="customerFllow" @onFull="onFull" @backFull="backFull"></FullScroll>
+                    </div>
+                  </div>
+                </div>
+                <div class="panel-content">
+                  <div ref="customerFllowEl" style="width:30%"></div>
+                  <div class="panel-table" style="width:70%">
+                    <pageTable
+                      ref="customerFllowTable"
+                      :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
+                      :param="fllowTableParam"
+                      :custom="true"
+                    >
+                      <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>
+                        </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>
+                        </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>
+                          <span style="color:#fa8c16" v-else-if="scope.data.data[[scope.data.columnname]] == '已成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#333333" v-else-if="scope.data.data[[scope.data.columnname]] == '多次成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else-if="scope.data.columnname === 'status'">
+                          <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '潜在'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#52c41a" v-else-if="scope.data.data[[scope.data.columnname]] == '合作中'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#999999" v-else-if="scope.data.data[[scope.data.columnname]] == '已终止'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else>
+                          {{ scope.data.data[scope.data.columnname] }}
+                        </div>
+                      </template>
+                    </pageTable>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!--12月客户跟进分析-->
+            <div class="data-panel" id="customerFllow1">
+              <div class="panel-content-wrapper" >
+                <div class="panel-header">
+                  <div class="title">近12月客户跟进分析</div>
+                  <div class="panel-select">
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >部门:</label>
+                      <el-cascader
+                        :append-to-body="false"
+                        ref="selectdep"
+                        size="small"
+                        v-model="chartParam2.content.dataid"
+                        :options="deplist"
+                        :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
+                        @change="$event => {if($event.length) {chartParam2.content.type=1;chartParam2.content.username='';chart2Fun()} else {chartParam2.content.dataid='';chartParam2.content.type='';chartParam2.content.username='';chart2Fun()}}"></el-cascader>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >业务员:</label>
+                      <el-select v-model="chartParam2.content.username" filterable placeholder="请选择" size="small"
+                        :popper-append-to-body="false"
+                        @change="$event => {if($event) {chartParam2.content.type=0;chartParam2.content.dataid=$event;chartParam2.content.depname='';chart2Fun()} else {chartParam2.content.dataid='';chartParam2.content.type='';chartParam2.content.depname='';chart2Fun()}}"
+                        >
+                        <el-option
+                            v-for="item in personnelList"
+                            :key="item.index"
+                            :label="item.name"
+                            :value="item.userid">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-15">
+                      <label  class="search__label" >分析日期:</label>
+                      <el-date-picker
+                          :append-to-body="false"
+                          v-model="chartParam2.content.enddate"
+                          format="yyyy-MM-dd"
+                          value-format="yyyy-MM-dd"
+                          type="date"
+                          size="small"
+                          placeholder="选择日期"
+                          @change="chart2Fun()">
+                      </el-date-picker>
+                    </div>
+                    <div style="display: inline-block;vertical-align: middle">
+                      <FullScroll domId="customerFllow1"></FullScroll>
+                    </div>
+                  </div>
+                </div>
+                <div ref="chart2" style="height:calc(100% - 55px)"></div>
+              </div>
+            </div>
+            <!--有效客户未跟进情况-->
+            <div class="data-panel" style="height:800px" id="projectUnfllow">
+              <div class="panel-content-wrapper" >
+                <div class="panel-header">
+                  <div class="title">有效客户未跟进天数分析</div>
+                  <div class="panel-select">
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >部门:</label>
+                      <el-cascader
+                        :append-to-body="false"
+                        ref="selectdep"
+                        size="small"
+                        v-model="unfllowTableParam.content.dataid"
+                        :options="deplist"
+                        :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
+                        @change="$event => {if($event.length) {unfllowMapParam.content.type=1;unfllowMapParam.content.dataid=$event[$event.length - 1];unfllowTableParam.content.type=1;unfllowTableParam.content.username='';unfllowTableParam.content.pageNumber = 1;$refs.customerUnfllowTable.listData();customerUnfllowInit()} else {unfllowMapParam.content.type='';unfllowMapParam.content.dataid='';unfllowTableParam.content.dataid='';unfllowTableParam.content.type='';unfllowTableParam.content.username='';unfllowTableParam.content.pageNumber = 1;$refs.customerUnfllowTable.listData();customerUnfllowInit()}}"></el-cascader>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >业务员:</label>
+                      <el-select v-model="unfllowTableParam.content.username" filterable placeholder="请选择" size="small"
+                      :popper-append-to-body="false"
+                      @change="$event => {if($event) {unfllowMapParam.content.type=0;unfllowMapParam.content.dataid=$event;unfllowTableParam.content.type=0;unfllowTableParam.content.dataid=$event;unfllowTableParam.content.depname='';unfllowTableParam.content.pageNumber = 1;$refs.customerUnfllowTable.listData();customerUnfllowInit()} else {unfllowMapParam.content.type='';unfllowMapParam.content.dataid='';unfllowTableParam.content.dataid='';unfllowTableParam.content.type='';unfllowTableParam.content.depname='';unfllowTableParam.content.pageNumber = 1;$refs.customerUnfllowTable.listData();customerUnfllowInit()}}"
+                      >
+                        <el-option
+                            v-for="item in personnelList"
+                            :key="item.index"
+                            :label="item.name"
+                            :value="item.userid">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >客户类型:</label>
+                      <el-select v-model="unfllowTableParam.content.where.type" placeholder="请选择" size="small"
+                      :popper-append-to-body="false"
+                      @change="$event => {if($event) {unfllowMapParam.content.where.type=$event;unfllowTableParam.content.pageNumber = 1;$refs.customerUnfllowTable.listData();customerUnfllowInit()} else {unfllowMapParam.content.where.type='';unfllowTableParam.content.pageNumber = 1;$refs.customerUnfllowTable.listData();customerUnfllowInit()}}"
+                      clearable>
+                        <el-option
+                            v-for="item in customerTypeList"
+                            :key="item.rowindex"
+                            :label="item.value"
+                            :value="item.value">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >客户等级:</label>
+                      <el-select v-model="unfllowTableParam.content.where.grade" placeholder="请选择" size="small"
+                      :popper-append-to-body="false"
+                      @change="$event => {if($event) {unfllowMapParam.content.where.grade=$event;unfllowTableParam.content.pageNumber = 1;$refs.customerUnfllowTable.listData();customerUnfllowInit()} else {unfllowMapParam.content.where.grade='';unfllowTableParam.content.pageNumber = 1;$refs.customerUnfllowTable.listData();customerUnfllowInit()}}"
+                      clearable>
+                        <el-option
+                            v-for="item in customerGrade"
+                            :key="item.rowindex"
+                            :label="item.value"
+                            :value="item.value">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >成交状态:</label>
+                      <el-select v-model="unfllowTableParam.content.where.tradingstatus" placeholder="请选择" size="small"
+                      :popper-append-to-body="false"
+                      @change="$event => {if($event) {unfllowMapParam.content.where.tradingstatus=$event;unfllowTableParam.content.pageNumber = 1;$refs.customerUnfllowTable.listData();customerUnfllowInit()} else {unfllowMapParam.content.where.tradingstatus='';unfllowTableParam.content.pageNumber = 1;$refs.customerUnfllowTable.listData();customerUnfllowInit()}}"
+                      clearable>
+                        <el-option
+                            v-for="item in tradingstatus"
+                            :key="item.rowindex"
+                            :label="item.value"
+                            :value="item.value">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >分析日期:</label>
+                      <el-date-picker
+                          :append-to-body="false"
+                          v-model="unfllowMapParam.content.enddate"
+                          format="yyyy-MM-dd"
+                          value-format="yyyy-MM-dd"
+                          type="date"
+                          size="small"
+                          placeholder="选择日期"
+                          @change="$event => {unfllowTableParam.content.enddate=unfllowMapParam.content.enddate;unfllowTableParam.content.pageNumber = 1;customerUnfllowInit();$refs.customerUnfllowTable.listData()}">
+                      </el-date-picker>
+                    </div>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="unfllowTableParam" :columns="tool.tabelCol($route.name).typeTable1.tablecols.splice(0,tool.tabelCol($route.name).typeTable1.tablecols.length - 1)" fileName="有效客户未跟进天数分析" :dataid="unfllowMapParam.content.dataid"></exportFile>
+                    </div>
+                    <div style="display: inline-block;vertical-align: middle">
+                      <FullScroll domId="projectUnfllow"></FullScroll>
+                    </div>
+                  </div>
+                </div>
+                <div style="height:calc(100% - 55px)">
+                  <div ref="customerUnfllowEl" style="height:30%"></div>
+                <div style="font-size:16px;color:#333333;margin:10px 0">{{ unfllowStatus ? unfllowStatus : '全部' }}</div>
+                  <div :style="{height:windowWidth>1521 || isFull?'calc(70% - 100px)':'calc(66% - 100px)'}">
+                    <pageTable
+                      ref="customerUnfllowTable"
+                      :tablecols="tool.tabelCol($route.name).typeTable1.tablecols.splice(0,tool.tabelCol($route.name).typeTable1.tablecols.length - 1)"
+                      :param="unfllowTableParam"
+                      :custom="true"
+                    >
+                      <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>
+                        </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>
+                        </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>
+                          <span style="color:#fa8c16" v-else-if="scope.data.data[[scope.data.columnname]] == '已成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#333333" v-else-if="scope.data.data[[scope.data.columnname]] == '多次成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else-if="scope.data.columnname === 'status'">
+                          <span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '潜在'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#52c41a" v-else-if="scope.data.data[[scope.data.columnname]] == '合作中'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                          <span style="color:#999999" v-else-if="scope.data.data[[scope.data.columnname]] == '已终止'">{{scope.data.data[[scope.data.columnname]]}}</span>
+                        </div>
+                        <div v-else>
+                          {{ scope.data.data[scope.data.columnname] }}
+                        </div>
+                      </template>
+                    </pageTable>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!--12月客户报价分析-->
+            <div class="data-panel" id="customerBaojia">
+              <div class="panel-content-wrapper" >
+                <div class="panel-header">
+                  <div class="title">近12月客户报价分析</div>
+                  <div class="panel-select">
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >部门:</label>
+                      <el-cascader
+                        :append-to-body="false"
+                        ref="selectdep"
+                        size="small"
+                        v-model="projectParam.content.dataid"
+                        :options="deplist"
+                        :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
+                        @change="$event => {if($event.length) {projectParam.content.type=1;projectParam.content.username='';chart3Fun()} else {projectParam.content.dataid='';projectParam.content.type='';projectParam.content.username='';chart3Fun()}}"></el-cascader>
+                    </div>
+                    <div class="mt-10 inline-16">
+                      <label  class="search__label" >业务员:</label>
+                      <el-select v-model="projectParam.content.username" filterable placeholder="请选择" size="small"
+                      :popper-append-to-body="false"
+                        @change="$event => {if($event) {projectParam.content.type=0;projectParam.content.dataid=$event;projectParam.content.depname='';chart3Fun()} else {projectParam.content.dataid='';projectParam.content.type='';projectParam.content.depname='';chart3Fun()}}"
+                        >
+                        <el-option
+                            v-for="item in personnelList"
+                            :key="item.index"
+                            :label="item.name"
+                            :value="item.userid">
+                        </el-option>
+                      </el-select>
+                    </div>
+                    <div class="mt-10 inline-15">
+                      <label  class="search__label" >分析日期:</label>
+                      <el-date-picker
+                          :append-to-body="false"
+                          v-model="projectParam.content.enddate"
+                          format="yyyy-MM-dd"
+                          value-format="yyyy-MM-dd"
+                          type="date"
+                          size="small"
+                          placeholder="选择日期"
+                          @change="chart3Fun()">
+                      </el-date-picker>
+                    </div>
+                    <div style="display: inline-block;vertical-align: middle">
+                      <FullScroll domId="customerBaojia"></FullScroll>
+                    </div>
+                  </div>
+                </div>
+                <div ref="chart3" style="height:calc(100% - 55px)"></div>
+              </div>
+            </div>
+          </div>
+        </el-scrollbar>
+      </div>
+
+    </template>
+  </normalLayout>
+</template>
+
+<script>
+import { DualAxes,Pie,measureTextWidth,Column,Line  } from '@antv/g2plot'
+import pageTable from './components/pageTable.vue'
+import borderTemp from '@/HDrpManagement/dataanalysis/components/border.vue'
+import FullScroll from '@/components/fullScroll/index.vue'
+import exportFile from '@/components/export_file/index'
+export default {
+  name:'customerData',
+  components:{borderTemp,pageTable,FullScroll,exportFile},
+  data () {
+    return {
+      isFull:false,
+      deplist:[],
+      personnelList:[],
+      windowWidth: document.documentElement.clientWidth,  //实时屏幕宽度
+      depmentParam:{
+        "id": 20230620102004,
+        "content": {
+        }
+      },
+      customerLead:[],
+      depment:'',
+      dataAll:{
+        data:{}
+      },
+      unfllowStatus:'',
+      person:'',
+      dualAxes:'',
+      customerTypeMap:'',
+      uvBillData:[],
+      transformData:[],
+      tradingstatus:[
+        {
+          value:'未成交'
+        },
+        {
+          value:'已成交'
+        },
+        {
+          value:'多次成交'
+        }
+      ],
+      customerTypeList:[],
+      customerGrade:[],
+
+      //近12月客户新增
+      chartParam1: {
+        "id": 20231015202504,
+        "content": {
+            "depname":'',
+            "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+            "type": '',
+            "dataid": '',
+            "enddate": `${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}`
+        }
+      },
+      //近12月跟进分析
+      chartMap:'',
+      chartMapData:[],
+      chartParam2: {
+        "id": 20231017152704,
+        "content": {
+            "depname":'',
+            "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+            "type": '',
+            "dataid": '',
+            "enddate": `${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}`
+        }
+      },
+      //近12月客户报价
+      projectMap:'',
+      projectMapData:[],
+      projectParam: {
+        "id": 20231018131604,
+        "content": {
+            "depname":'',
+            "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+            "type": '',
+            "dataid": '',
+            "enddate": `${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}`
+        }
+      },
+      //客户类型
+      typeMapParam: {
+        "id": 20231015203704,
+        "content": {
+          "depname":'',
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "type": '',
+          "dataid": ''
+        }
+      },
+      typeTableParam:{
+        "id": 20231018164504,
+        "content": {
+          "type": '',
+          "dataid": '',
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "pageSize":20,
+          "pageNumber":1,
+          "where": {
+              "customerstype":""// 客户各种类型 以及 无类型  ------ 客户类型情况统计列表使用该字段
+          }
+        }
+      },
+      customerTypeData:{
+        map:[],
+        table:[]
+      },
+      //客户等级
+      customerGradMap:'',
+      gradMapParam: {
+        "id": 20231017140904,
+        "content": {
+          "depname":'',
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "type": '',
+          "dataid": ''
+        }
+      },
+      gradTableParam:{
+        "id": 20231018164504,
+        "content": {
+          "type": '',
+          "dataid": '',
+          "pageSize":20,
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "pageNumber":1,
+          "where": {
+              "grade": "", // 1 2 3 4 5 无等级  ------客户等级统计列表使用该字段
+          }
+        }
+      },
+      customerGradData:{
+        map:[],
+        table:[]
+      },
+      //客户联系人
+      customerContactMap:'',
+      contactMapParam: {
+        "id": 20231017141904,
+        "content": {
+          "depname":'',
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "type": '',
+          "dataid": ''
+        }
+      },
+      contactTableParam:{
+        "id": 20231018164504,
+        "content": {
+          "type": '',
+          "dataid": '',
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "pageSize":20,
+          "pageNumber":1,
+          "where": {
+              "iscontacts": "", //无联系人 有联系人  ------客户联系人情况统计列表使用该字段
+          }
+        }
+      },
+      customerContactData:{
+        map:[],
+        table:[]
+      },
+      //客户关联项目
+      customerProjectMap:'',
+      projectMapParam: {
+        "id": 20231017143504,
+        "content": {
+          "depname":'',
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "type": '',
+          "dataid": ''
+        }
+      },
+      projectTableParam:{
+        "id": 20231018164504,
+        "content": {
+          "type": '',
+          "dataid": '',
+          "pageSize":20,
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "pageNumber":1,
+          "where": {
+              "isproject": "", //无关联项目 有关联项目  ------客户关联项目情况统计列表使用该字段
+          }
+        }
+      },
+      customerProjectData:{
+        map:[],
+        table:[]
+      },
+      //客户跟进情况
+      customerFllowMap:'',
+      fllowMapParam: {
+        "id": 20231017151304,
+        "content": {
+          "depname":'',
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "type": '',
+          "dataid": ''
+        }
+      },
+      fllowTableParam:{
+        "id": 20231018164504,
+        "content": {
+          "type": '',
+          "dataid": '',
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "pageSize":20,
+          "pageNumber":1,
+          "where": {
+              "isfollowup": "", // 有跟进 无跟进------客户跟进情况统计列表使用该字段
+          }
+        }
+      },
+      customerFllowData:{
+        map:[],
+        table:[]
+      },
+      //未跟进情况
+      customerUnfllowMap:'',
+      unfllowMapParam: {
+        "id": 20231017162504,
+        "content": {
+          "type": '',
+          "dataid": '',
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "dataType":"",// 默认为 客户类型
+          "where": {
+              "tradingstatus": "",//成交状态
+              "type": "",//客户类型
+              "grade": ""//客户等级
+          }
+        }
+      },
+      unfllowTableParam:{
+        "id": 20231018093704,
+        "content": {
+          "type": '',
+          "dataid": '',
+          "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
+          "pageSize":20,
+          "pageNumber":1,
+          "where": {
+            "tradingstatus": "",//成交状态
+            "type": "",//客户类型
+            "grade": "",//客户等级
+            "dateType": ""// 时间阶段
+          }
+        }
+      },
+      customerUnfllowData:{
+        map:[],
+        table:[]
+      },
+    }
+  },
+  methods:{
+    goDetail (data) {
+      this.$router.push({
+        path:'/customerDetail',
+        query:{
+          id:data.sa_customersid,
+        }
+      })
+      this.$store.dispatch('changeDetailDrawer',true)
+    },
+    //获取数据总览
+    async getdataAll () {
+      let res = await this.$api.requested({
+        id:20231015170504,
+        content:{}
+      })
+      this.dataAll = res.data
+      console.log(this.dataAll,'数据总览');
+    },
+    async departmentrtment() {
+      const res = await this.$api.requested(this.depmentParam)
+      this.deplist = this.createMenu(res.data.dep)
+      this.personnelList = res.data.hr
+    },
+    //12月新增初始化
+    async chart1Fun (init) {
+      let param = JSON.parse(JSON.stringify(this.chartParam1))
+      if (param.content.dataid instanceof Array) {
+        param.content.dataid = param.content.dataid[param.content.dataid.length - 1]
+      }
+      let res = await this.$api.requested(param)
+      this.uvBillData = res.data.histogram
+      /*res.data.lineChart.forEach(item => item[`同比增长率`] = item.value)*/
+      this.transformData = res.data.lineChart
+      if (init) {
+        this.dualAxes = new DualAxes(this.$refs.chart1, {
+          data: [this.uvBillData,this.transformData],
+          xField: 'date',
+          yField: ['value', 'value'],
+          geometryOptions: [
+            {
+              geometry: 'column',
+              isGroup: true,
+              seriesField: 'key',
+            },
+            {
+              geometry: 'line',
+              lineStyle: {
+                lineWidth: 2,
+              },
+              seriesField: 'key',
+            },
+          ],
+          tooltip: {
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.key == '同比增长率'? datum.value + '%' : datum.value };
+            },
+          },
+        });
+        this.dualAxes.render()
+      } else {
+        this.dualAxes.changeData([this.uvBillData,this.transformData])
+      }
+    },
+    //12月跟进初始化
+    async chart2Fun (init) {
+      let param = JSON.parse(JSON.stringify(this.chartParam2))
+      if (param.content.dataid instanceof Array) {
+        param.content.dataid = param.content.dataid[param.content.dataid.length - 1]
+      }
+      let res = await this.$api.requested(param)
+      console.log(res.data,'近12月跟进');
+      this.chartMapData = res.data
+     /* this.chartMapData.tbzzl.forEach(item => item.key = '同比增长率(%)')*/
+      if (init) {
+        this.chartMap = new DualAxes(this.$refs.chart2, {
+          data: [this.chartMapData.followup, this.chartMapData.tbzzl],
+          xField: 'date',
+          yField: ['value', 'value'],
+          geometryOptions: [
+            {
+              geometry: 'column',
+              seriesField:'key',
+              isGroup: 'true',
+              color: '#5B8FF9',
+            },
+            {
+              geometry: 'line',
+              seriesField:'key',
+              color: '#5AD8A6',
+            },
+          ],
+          tooltip: {
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.key == '同比增长率'? datum.value + '%' : datum.value };
+            },
+          },
+        });
+
+        this.chartMap.render();
+      } else {
+        this.chartMap.changeData([this.chartMapData.followup, this.chartMapData.tbzzl])
+      }
+    },
+    //客户类型图初始化
+    async customerTypeInit (init) {
+      let res = await this.$api.requested(this.typeMapParam)
+      this.customerTypeData.map = res.data
+      if (init) {
+        this.customerTypeMap = new Pie(this.$refs.customerTypeEl, {
+          appendPadding: 10,
+          data:this.customerTypeData.map,
+          angleField: 'ratio',
+          colorField: 'key',
+          radius: 1,
+          innerRadius: 0.64,
+          /*meta: {
+            value: {
+              formatter: (v) => `${v} ¥`,
+            },
+          },*/
+          label:{
+            formatter: (datum) => `${datum.ratio}%`
+          },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
+          statistic: {
+            title: {
+              offsetY: -4,
+              /*customHtml: (container, view, datum) => {
+                const { width, height } = container.getBoundingClientRect();
+                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
+                const text = datum ? `${datum.key}` : '客户总数';
+                return this.renderStatistic(d, text, { fontSize: 28 });
+              },*/
+              content:'客户总数'
+            },
+            content: {
+              offsetY: 4,
+              style: {
+                fontSize: '32px',
+              },
+              customHtml: (container, view, datum, data) => {
+                /*const { width } = container.getBoundingClientRect();
+                const text = datum ? `${datum.ratio}%` : data[0].totalqty;
+                return this.renderStatistic(width, text, { fontSize: 32 });*/
+                const text = data[0].totalqty
+                return text
+              },
+            },
+          },
+          legend: {
+            position:'left'
+          },
+          // 添加 中心统计文本 交互
+          interactions: [{ type: 'element-single-selected' },{ type: 'element-active' }],
+        });
+        this.customerTypeMap.on('element:click',(v) => {
+          if (v.data.data.key != this.typeTableParam.content.where.customerstype) {
+            this.typeTableParam.content.pageNumber = 1
+            this.typeTableParam.content.where.customerstype = v.data.data.key
+            this.$refs.customerTypeTable.listData()
+          } else {
+            this.typeTableParam.content.pageNumber = 1
+            this.typeTableParam.content.where.customerstype = ''
+            this.$refs.customerTypeTable.listData()
+          }
+        })
+        this.customerTypeMap.render();
+      } else {
+        this.customerTypeMap.changeData(this.customerTypeData.map)
+      }
+
+    },
+    //客户等级图初始化
+    async customerGradInit (init) {
+      let res = await this.$api.requested(this.gradMapParam)
+      this.customerGradData.map = res.data
+      console.log(this.customerGradData,'客户数据');
+      if (init) {
+        this.customerGradMap = new Pie(this.$refs.customerGradEl, {
+          appendPadding: 10,
+          data:this.customerGradData.map,
+          angleField: 'value',
+          colorField: 'key',
+          radius: 1,
+          innerRadius: 0.64,
+          meta: {
+            value: {
+              formatter: (v) => `${v} ¥`,
+            },
+          },
+          label:{
+            formatter: (datum) => `${datum.ratio}%`
+          },
+          statistic: {
+            title: {
+              offsetY: -4,
+             /* customHtml: (container, view, datum) => {
+                const { width, height } = container.getBoundingClientRect();
+                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
+                const text = datum ? `${datum.key}` : '客户总数';
+                return this.renderStatistic(d, text, { fontSize: 28 });
+              },*/
+              content:'客户总数'
+            },
+            content: {
+              offsetY: 4,
+              style: {
+                fontSize: '32px',
+              },
+              customHtml: (container, view, datum, data) => {
+                /*const { width } = container.getBoundingClientRect();
+                const text = datum ? `${datum.ratio}%` : data[0].totalqty;
+                return this.renderStatistic(width, text, { fontSize: 32 });*/
+                const text = data[0].totalqty
+                return text
+              },
+            },
+          },
+          legend: {
+            position:'left'
+          },
+          // 添加 中心统计文本 交互
+          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }],
+        });
+        this.customerGradMap.on('element:click',(v) => {
+          if (v.data.data.key != this.gradTableParam.content.where.grade) {
+            this.gradTableParam.content.where.grade = v.data.data.key
+            this.gradTableParam.content.pageNumber = 1
+            this.$refs.customerGradTable.listData()
+          } else {
+            this.gradTableParam.content.where.grade = ''
+            this.gradTableParam.content.pageNumber = 1
+            this.$refs.customerGradTable.listData()
+          }
+        })
+        this.customerGradMap.render();
+      } else {
+        this.customerGradMap.changeData(this.customerGradData.map)
+      }
+
+    },
+    //客户联系人图初始化
+    async customerContactInit (init) {
+      let res = await this.$api.requested(this.contactMapParam)
+      this.customerContactData.map = res.data
+      console.log(this.customerContactData,'客户数据');
+      if (init) {
+        this.customerContactMap = new Pie(this.$refs.customerContactEl, {
+          appendPadding: 10,
+          data:this.customerContactData.map,
+          angleField: 'value',
+          colorField: 'key',
+          radius: 1,
+          innerRadius: 0.64,
+          meta: {
+            value: {
+              formatter: (v) => `${v} ¥`,
+            },
+          },
+          label:{
+            formatter: (datum) => `${datum.ratio}%`
+          },
+          statistic: {
+            title: {
+              offsetY: -4,
+              customHtml: (container, view, datum) => {
+                const { width, height } = container.getBoundingClientRect();
+                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
+                const text = datum ? `${datum.key}` : '客户总数';
+                return this.renderStatistic(d, text, { fontSize: 28 });
+              },
+            },
+            content: {
+              offsetY: 4,
+              style: {
+                fontSize: '32px',
+              },
+              customHtml: (container, view, datum, data) => {
+                const { width } = container.getBoundingClientRect();
+                const text = datum ? `${datum.ratio}%` : data[0].totalqty;
+                return this.renderStatistic(width, text, { fontSize: 32 });
+              },
+            },
+          },
+          legend: {
+            position:'left'
+          },
+          // 添加 中心统计文本 交互
+          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }, { type: 'pie-statistic-active' }],
+        });
+        this.customerContactMap.on('element:click',(v) => {
+          if (v.data.data.key != this.contactTableParam.content.where.iscontacts) {
+            this.contactTableParam.content.where.iscontacts = v.data.data.key
+            this.contactTableParam.content.pageNumber = 1
+            this.$refs.customerContactTable.listData()
+          } else {
+            this.contactTableParam.content.where.iscontacts = ''
+            this.contactTableParam.content.pageNumber = 1
+            this.$refs.customerContactTable.listData()
+          }
+        })
+        this.customerContactMap.render();
+      } else {
+        this.customerContactMap.changeData(this.customerContactData.map)
+      }
+
+    },
+    //客户关联项目图初始化
+    async customerProjectInit (init) {
+      let res = await this.$api.requested(this.projectMapParam)
+      this.customerProjectData.map = res.data
+      console.log(this.customerProjectData,'关联项目数据');
+      if (init) {
+        this.customerProjectMap = new Pie(this.$refs.customerProjectEl, {
+          appendPadding: 10,
+          data:this.customerProjectData.map,
+          angleField: 'value',
+          colorField: 'key',
+          radius: 1,
+          innerRadius: 0.64,
+          meta: {
+            value: {
+              formatter: (v) => `${v} ¥`,
+            },
+          },
+          label:{
+            formatter: (datum) => `${datum.ratio}%`
+          },
+          statistic: {
+            title: {
+              offsetY: -4,
+              customHtml: (container, view, datum) => {
+                const { width, height } = container.getBoundingClientRect();
+                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
+                const text = datum ? `${datum.key}` : '客户总数';
+                return this.renderStatistic(d, text, { fontSize: 28 });
+              },
+            },
+            content: {
+              offsetY: 4,
+              style: {
+                fontSize: '32px',
+              },
+              customHtml: (container, view, datum, data) => {
+                const { width } = container.getBoundingClientRect();
+                const text = datum ? `${datum.ratio}%` : data[0].totalqty;
+                return this.renderStatistic(width, text, { fontSize: 32 });
+              },
+            },
+          },
+          legend: {
+            position:'left'
+          },
+          // 添加 中心统计文本 交互
+          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }, { type: 'pie-statistic-active' }],
+        });
+        this.customerProjectMap.on('element:click',(v) => {
+          if (v.data.data.key != this.projectTableParam.content.where.isproject) {
+            this.projectTableParam.content.where.isproject = v.data.data.key
+            this.projectTableParam.content.pageNumber = 1
+            this.$refs.customerProjectTable.listData()
+          } else {
+            this.projectTableParam.content.where.isproject = ''
+            this.projectTableParam.content.pageNumber = 1
+            this.$refs.customerProjectTable.listData()
+          }
+        })
+        this.customerProjectMap.render();
+      } else {
+        this.customerProjectMap.changeData(this.customerProjectData.map)
+      }
+
+    },
+    //客户跟进情况图初始化
+    async customerFllowInit (init) {
+      let param = JSON.parse(JSON.stringify(this.fllowMapParam))
+      if (param.content.dataid instanceof Array) {
+        param.content.dataid = param.content.dataid[param.content.dataid.length - 1]
+      }
+      let res = await this.$api.requested(param)
+      this.customerFllowData.map = res.data
+      console.log(this.customerFllowData,'关联项目数据');
+      if (init) {
+        this.customerFllowMap = new Pie(this.$refs.customerFllowEl, {
+          appendPadding: 10,
+          data:this.customerFllowData.map,
+          angleField: 'value',
+          colorField: 'key',
+          radius: 1,
+          innerRadius: 0.64,
+          meta: {
+            value: {
+              formatter: (v) => `${v} ¥`,
+            },
+          },
+          label:{
+            formatter: (datum) => `${datum.ratio}%`
+          },
+          statistic: {
+            title: {
+              offsetY: -4,
+              customHtml: (container, view, datum) => {
+                const { width, height } = container.getBoundingClientRect();
+                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
+                const text = datum ? `${datum.key}` : '客户总数';
+                return this.renderStatistic(d, text, { fontSize: 28 });
+              },
+            },
+            content: {
+              offsetY: 4,
+              style: {
+                fontSize: '32px',
+              },
+              customHtml: (container, view, datum, data) => {
+                const { width } = container.getBoundingClientRect();
+                console.log(data,'总数',datum,'当前');
+                const text = datum ? `${datum.ratio}%` : data[0].totalqty;
+                return this.renderStatistic(width, text, { fontSize: 32 });
+              },
+            },
+          },
+          legend: {
+            position:'left'
+          },
+          // 添加 中心统计文本 交互
+          interactions: [{ type: 'element-single-selected' }, { type: 'element-active' }, { type: 'pie-statistic-active' }],
+        });
+        this.customerFllowMap.on('element:click',(v) => {
+          if (v.data.data.key != this.fllowTableParam.content.where.isfollowup) {
+            this.fllowTableParam.content.where.isfollowup = v.data.data.key
+            this.fllowTableParam.content.pageNumber = 1
+            this.$refs.customerFllowTable.listData()
+          } else {
+            this.fllowTableParam.content.where.isfollowup = ''
+            this.fllowTableParam.content.pageNumber = 1
+            this.$refs.customerFllowTable.listData()
+          }
+        })
+        this.customerFllowMap.render();
+      } else {
+        this.customerFllowMap.changeData(this.customerFllowData.map)
+      }
+
+    },
+    //客户未跟进情况图初始化
+    async customerUnfllowInit (init) {
+      this.unfllowMapParam.content.date = new Date().getTime()
+      let res = await this.$api.requested(this.unfllowMapParam)
+      this.customerUnfllowData.map = res.data
+      console.log(this.customerUnfllowData,'未跟进数据');
+      if (init) {
+        this.customerUnfllowMap = new Column(this.$refs.customerUnfllowEl, {
+          data:this.customerUnfllowData.map,
+          isGroup: true,
+          xField: 'datetype',
+          yField: 'value',
+          seriesField: 'key',
+          /** 设置颜色 */
+          //color: ['#1ca9e6', '#f88c24'],
+          /** 设置间距 */
+          // marginRatio: 0.1,
+          label: {
+            // 可手动配置 label 数据标签位置
+            position: 'middle', // 'top', 'middle', 'bottom'
+            // 可配置附加的布局方法
+            layout: [
+              // 柱形图数据标签位置自动调整
+              { type: 'interval-adjust-position' },
+              // 数据标签防遮挡
+              { type: 'interval-hide-overlap' },
+              // 数据标签文颜色自动调整
+              { type: 'adjust-color' },
+            ],
+          },
+          interactions: [{ type: 'element-highlight-by-x' }],
+        });
+        this.customerUnfllowMap.on('element:click',(v) => {
+          console.log(v);
+          if (v.data.data.datetype == this.unfllowTableParam.content.where.dateType) {
+            this.unfllowStatus = ''
+            this.unfllowTableParam.content.where.dateType = ''
+            this.unfllowTableParam.content.pageNumber = 1
+          } else {
+            this.unfllowStatus = v.data.data.datetype
+            this.unfllowTableParam.content.where.dateType = v.data.data.datetype
+            this.unfllowTableParam.content.pageNumber = 1
+          }
+          this.$refs.customerUnfllowTable.listData()
+        })
+        this.customerUnfllowMap.render()
+      } else {
+        this.customerUnfllowMap.changeData(this.customerUnfllowData.map)
+      }
+
+    },
+    //客户报价情况图初始化
+    async chart3Fun (init) {
+      let param = JSON.parse(JSON.stringify(this.projectParam))
+      if (param.content.dataid instanceof Array) {
+        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, {
+          data:this.projectMapData,
+          xField: 'date',
+          yField: 'value',
+          seriesField: 'key',
+          xAxis: {
+            type: 'time',
+          },
+          yAxis: {
+            // label: {
+            //   // 数值格式化为千分位
+            //   formatter: (v) => `${v}`.replace(/\d{1,3}(?=(\d{3})+$)/g, (s) => `${s},`),
+            // },
+          },
+        });
+
+        this.projectMap.render()
+      } else {
+        this.projectMap.changeData(this.projectMapData)
+      }
+    },
+    renderStatistic(containerWidth, text, style) {
+      const textWidth = measureTextWidth(text, style);
+      const textHeight = style.lineHeight || style.fontSize
+      const R = containerWidth / 2;
+      // r^2 = (w / 2)^2 + (h - offsetY)^2
+      let scale = 1;
+      if (containerWidth < textWidth) {
+        scale = Math.min(Math.sqrt(Math.abs(Math.pow(R, 2) / (Math.pow(textWidth / 2, 2) + Math.pow(textHeight, 2)))), 1);
+      }
+      const textStyleStr = `width:${containerWidth}px;`;
+      return `<div style="${textStyleStr};font-size:${scale}em;line-height:${scale < 1 ? 1 : 'inherit'};">${text}</div>`;
+    },
+    createMenu (array) {
+      var that = this
+      let arr = []
+      function convertToElementTree(node) {
+        // 新节点
+        if (node.subdep.length === 0){
+          var elNode = {
+            label: node["depname"],
+            parentid:node['parentid'],
+            parentname:node['parentname'],
+            departmentid:node["departmentid"],
+            value:node["departmentid"],
+            remarks:node["remarks"],
+            isused:node["isused"],
+            changedate:node['changedate'],
+            changeby:node['changeby'],
+            createdate:node['createdate'],
+            createby:node['createby'],
+            depno:node['depno'],
+            disabled:that.pageOnlyRead,
+          }
+        }else {
+          var elNode = {
+            label: node["depname"],
+            parentid:node['parentid'],
+            parentname:node['parentname'],
+            departmentid:node["departmentid"],
+            value:node["departmentid"],
+            remarks:node["remarks"],
+            isused:node["isused"],
+            changedate:node['changedate'],
+            changeby:node['changeby'],
+            createdate:node['createdate'],
+            createby:node['createby'],
+            depno:node['depno'],
+            disabled:that.pageOnlyRead,
+            children: []
+          }
+        }
+        if (node.subdep && node.subdep.length > 0) {
+          // 如果存在子节点
+          for (var index = 0; index < node.subdep.length; index++) {
+            // 遍历子节点, 把每个子节点看做一颗独立的树, 传入递归构造子树, 并把结果放回到新node的children中
+            elNode.children.push(convertToElementTree(node.subdep[index]));
+          }
+        }
+        return elNode;
+      }
+      array.forEach((element) => {
+        arr.push(convertToElementTree(element))
+      });
+      return arr
+    },
+    selectDep (val) {
+      let id = val[val.length - 1]
+      if (val.length) {
+        this.chartParam1.content.dataid = id
+        this.chartParam1.content.type = 1
+        this.chartParam1.content.username = ''
+        this.chartParam1.content.depname = ''
+        this.chart1Fun()
+
+        this.chartParam2.content.dataid = id
+        this.chartParam2.content.type = 1
+        this.chartParam2.content.username = ''
+        this.chart2Fun()
+
+        this.projectParam.content.dataid = id
+        this.projectParam.content.type = 1
+        this.projectParam.content.username = ''
+        this.chart3Fun()
+
+        this.typeMapParam.content.dataid = id
+        this.typeMapParam.content.type = 1
+        this.customerTypeInit()
+        this.typeTableParam.content.dataid = id
+        this.typeTableParam.content.type = 1
+        this.typeTableParam.content.username = ''
+        this.$refs.customerTypeTable.listData()
+
+        this.gradMapParam.content.dataid = id
+        this.gradMapParam.content.type = 1
+        this.customerGradInit()
+        this.gradTableParam.content.dataid = id
+        this.gradTableParam.content.type = 1
+        this.gradTableParam.content.username = ''
+        this.$refs.customerGradTable.listData()
+
+
+        this.contactMapParam.content.dataid = id
+        this.contactMapParam.content.type = 1
+        this.customerContactInit()
+        this.contactTableParam.content.dataid = id
+        this.contactTableParam.content.type = 1
+        this.contactTableParam.content.username = ''
+        this.$refs.customerContactTable.listData()
+
+        this.projectMapParam.content.dataid = id
+        this.projectMapParam.content.type = 1
+        this.customerProjectInit()
+        this.projectTableParam.content.dataid = id
+        this.projectTableParam.content.type = 1
+        this.projectTableParam.content.username = ''
+        this.$refs.customerProjectTable.listData()
+
+        this.fllowMapParam.content.dataid = id
+        this.fllowMapParam.content.type = 1
+        this.customerFllowInit()
+        this.fllowTableParam.content.dataid = id
+        this.fllowTableParam.content.type = 1
+        this.fllowTableParam.content.username = ''
+        this.$refs.customerFllowTable.listData()
+
+        this.unfllowMapParam.content.dataid = id
+        this.unfllowMapParam.content.type = 1
+        this.customerUnfllowInit()
+        this.unfllowTableParam.content.dataid = id
+        this.unfllowTableParam.content.type = 1
+        this.unfllowTableParam.content.username = ''
+        this.$refs.customerUnfllowTable.listData()
+      } else {
+        let name = JSON.parse(sessionStorage.getItem('accountinfo')).name
+        this.chartParam1.content.dataid = ''
+        this.chartParam1.content.type =''
+        this.chartParam1.content.username =name
+        this.chartParam1.content.depname = ''
+        this.chart1Fun()
+
+        this.chartParam2.content.dataid = ''
+        this.chartParam2.content.type =''
+        this.chartParam2.content.username =name
+        this.chart2Fun()
+
+        this.projectParam.content.dataid = ''
+        this.projectParam.content.type =''
+        this.projectParam.content.username =name
+        this.chart3Fun()
+
+        this.typeMapParam.content.dataid = ''
+        this.typeMapParam.content.type =''
+        this.customerTypeInit()
+        this.typeTableParam.content.dataid = ''
+        this.typeTableParam.content.type =''
+        this.typeTableParam.content.username = name
+        this.$refs.customerTypeTable.listData()
+
+        this.gradMapParam.content.dataid = ''
+        this.gradMapParam.content.type =''
+        this.customerGradInit()
+        this.gradTableParam.content.dataid = ''
+        this.gradTableParam.content.type =''
+        this.gradTableParam.content.username = name
+        console.log(this.gradTableParam.content.username,'除非');
+        this.$refs.customerGradTable.listData()
+
+
+        this.contactMapParam.content.dataid = ''
+        this.contactMapParam.content.type =''
+        this.customerContactInit()
+        this.contactTableParam.content.dataid = ''
+        this.contactTableParam.content.type =''
+        this.contactTableParam.content.username = name
+        this.$refs.customerContactTable.listData()
+
+        this.projectMapParam.content.dataid = ''
+        this.projectMapParam.content.type =''
+        this.customerProjectInit()
+        this.projectTableParam.content.dataid = ''
+        this.projectTableParam.content.type =''
+        this.projectTableParam.content.username = name
+        this.$refs.customerProjectTable.listData()
+
+        this.fllowMapParam.content.dataid = ''
+        this.fllowMapParam.content.type =''
+        this.customerFllowInit()
+        this.fllowTableParam.content.dataid = ''
+        this.fllowTableParam.content.type =''
+        this.fllowTableParam.content.username = name
+        this.$refs.customerFllowTable.listData()
+
+        this.unfllowMapParam.content.dataid = ''
+        this.unfllowMapParam.content.type =''
+        this.customerUnfllowInit()
+        this.unfllowTableParam.content.dataid = ''
+        this.unfllowTableParam.content.type =''
+        this.unfllowTableParam.content.username = name
+        this.$refs.customerUnfllowTable.listData()
+      }
+    },
+    async getCustomerType () {
+      const siteid = JSON.parse(sessionStorage.getItem('active_account')).siteid
+      const res = await this.$api.requested({
+        "classname": "sysmanage.develop.optiontype.optiontype",
+        "method": "optiontypeselect",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "typename": "customertypemx",
+          "parameter": {
+            "siteid": siteid
+          }
+        }
+      })
+      this.customerTypeList = res.data
+      console.log(this.customerTypeList,'客户类型');
+
+      this.$store.dispatch('optiontypeselect','agentgrade').then(res=>{
+        this.customerGrade = res.data
+      })
+    },
+    /*全屏*/
+    onFull(){
+      this.isFull = true
+    },
+    /*退出全屏*/
+    backFull(){
+      this.isFull = false
+    }
+  },
+  async mounted () {
+    this.departmentrtment()
+    this.getdataAll()
+    this.chart1Fun(true)
+    this.chart2Fun(true)
+    this.customerTypeInit(true)
+    this.customerGradInit(true)
+    this.customerContactInit(true)
+    this.customerProjectInit(true)
+    this.customerFllowInit(true)
+    this.customerUnfllowInit(true)
+    this.chart3Fun(true)
+    this.getCustomerType()
+    let baseWidth = 1920
+    document.querySelector('html').style.fontSize = `${100 / baseWidth}vw`
+
+    /* 获取客户等级 */
+    let res2 = await this.$store.dispatch('optiontypeselect','customergrade')
+    this.customerLead = res2.data
+    console.log(this.customerLead,'客户等级');
+
+    console.log(`${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}`);
+
+    var that = this;
+    // <!--把window.onresize事件挂在到mounted函数上-->
+    window.onresize = () => {
+      return (() => {
+        window.fullWidth = document.documentElement.clientWidth;
+        that.windowWidth = window.fullWidth; // 宽
+        console.log(that.windowWidth,'屏幕宽度')
+      })()
+    };
+  }
+}
+
+</script>
+<style>
+.basic__layout__panel {
+  height: 100% !important;
+}
+</style>
+<style scoped>
+
+*{
+  box-sizing: border-box;
+}
+.data-all {
+  padding: 16px;
+  width: 100%;
+  border-radius: 5rem;
+  border: 1rem;
+  box-shadow: 0rem 2rem 5rem 0rem rgba(0, 0, 0, 0.15);
+  background: #FFFFFF;
+  margin-top: 16px;
+}
+.data-all .data-left {
+  border-right: 1rem solid rgb(136,136,146);
+}
+.data-all .data-right {
+  padding-left: 50rem;
+}
+.data-all .data-left,.data-right {
+  display: flex;
+}
+.data-all .data-item {
+  width: 186rem;
+  margin-bottom: 20px;
+}
+.data-all .data-item p:nth-child(1) {
+  font-size: 26px;
+  font-weight: 5px;
+  font-family: 'ArialMT', 'Arial', sans-serif;
+  color: rgba(0, 0, 0, 0.85);
+}
+.data-all .data-item p:nth-child(2) {
+  font-size: 14px;
+  font-weight: 5px;
+  font-family: 'PingFangSC-Regular', 'PingFang SC', sans-serif;
+  color: rgba(0, 0, 0, 0.65)
+}
+.data-all .data-all-wrapper {
+  display: flex;
+}
+.data-panel {
+  padding: 16px;
+  margin-top: 16px;
+  height: 500px;
+  border-radius: 5rem;
+  border: 1rem;
+  box-shadow: 0rem 2rem 5rem 0rem rgba(0, 0, 0, 0.15);
+  background: #FFFFFF;
+}
+.data-panel .panel-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: 10px;
+}
+.title {
+  min-width: 220px;
+}
+.title::before {
+  content:'';
+  border-left: 4px #3874f6 solid;
+  padding-right: 10px;
+}
+.panel-content-wrapper {
+  background:#ffffff;
+  height: 100%;
+}
+.panel-content {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  height: calc(100% - 53px);
+}
+.panel-content div:first-child {
+  padding: 0 5px;
+}
+.search__label {
+  margin-right: 5px !important;
+}
+.mt-10 {
+  margin-right: 15px !important;
+}
+.panel-table {
+  height: 100%;
+}
+</style>

+ 93 - 103
src/HDrpManagement/projectData/index.vue

@@ -127,10 +127,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="typeTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目类型分析" :dataid="typeMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="typeTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目类型分析" :dataid="typeMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectType" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -212,10 +212,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="gradTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目等级分析" :dataid="gradMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="gradTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目等级分析" :dataid="gradMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectGrad" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -273,6 +273,7 @@
                   项目评估分析
                   <el-tooltip class="item" effect="dark" placement="top">
                     <template #content>
+                      项目指标分类比例:
                       <div v-for="(item,index) in projectScoreDescript" :key="index">
                         <span>{{ item.name }}:</span>
                         <span>{{ item.range }}</span>
@@ -305,10 +306,10 @@
                       </el-option>
                     </el-select>
                   </div>
-                  <div class="mt-10 inline-16">
-                    <exportFile class="inline-16" :param="scoreTableParam1" :columns="tool.tabelCol($route.name).projectTable2.tablecols.splice(0,tool.tabelCol($route.name).projectTable2.tablecols.length - 1)" fileName="项目评估分析" :dataid="scoreMapParam1.content.dataid"></exportFile>
+                  <div class="mt-10 inline-15">
+                    <exportFile  :param="scoreTableParam1" :columns="tool.tabelCol($route.name).projectTable2.tablecols.splice(0,tool.tabelCol($route.name).projectTable2.tablecols.length - 1)" fileName="项目评估分析" :dataid="scoreMapParam1.content.dataid"></exportFile>
                   </div>
-                  <div class="mt-10 inline-16" style="margin-left:10px">
+                  <div style="display: inline-block;vertical-align: middle">
                     <FullScroll domId="projectScore1"></FullScroll>
                   </div>
                 </div>
@@ -418,7 +419,7 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
+                    <div class="mt-10 inline-15">
                       <label  class="search__label" >分析日期:</label>
                       <el-date-picker
                           :append-to-body="false"
@@ -431,7 +432,7 @@
                           @change="addFun()">
                       </el-date-picker>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectAdd"></FullScroll>
                     </div>
                   </div>
@@ -470,7 +471,7 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
+                    <div class="mt-10 inline-15">
                       <label  class="search__label" >分析日期:</label>
                       <el-date-picker
                           :append-to-body="false"
@@ -483,7 +484,7 @@
                           @change="baobeiFun()">
                       </el-date-picker>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectBaobei"></FullScroll>
                     </div>
                   </div>
@@ -522,7 +523,7 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
+                    <div class="mt-10 inline-15">
                       <label  class="search__label" >分析日期:</label>
                       <el-date-picker
                           :append-to-body="false"
@@ -535,7 +536,7 @@
                           @change="baojiaFun()">
                       </el-date-picker>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectBaojia"></FullScroll>
                     </div>
                   </div>
@@ -574,7 +575,7 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
+                    <div class="mt-10 inline-15">
                       <label  class="search__label" >分析日期:</label>
                       <el-date-picker
                           :append-to-body="false"
@@ -587,7 +588,7 @@
                           @change="fllowFun()">
                       </el-date-picker>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectFllow"></FullScroll>
                     </div>
                   </div>
@@ -626,10 +627,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="fllowTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目跟进情况统计" :dataid="fllowMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile :param="fllowTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目跟进情况统计" :dataid="fllowMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectFllow1" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -711,10 +712,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="contactTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目联系人情况统计" :dataid="contactMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="contactTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目联系人情况统计" :dataid="contactMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectContact" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -796,10 +797,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="customerTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目关联客户情况统计" :dataid="customerMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="customerTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目关联客户情况统计" :dataid="customerMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectCustomer" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -881,10 +882,10 @@
                         </el-option>
                       </el-select>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="scoreTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目评估情况统计" :dataid="scoreMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="scoreTableParam" :columns="tool.tabelCol($route.name).projectTable.tablecols" fileName="项目评估情况统计" :dataid="scoreMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectScore" @onFull="onFull" @backFull="backFull"></FullScroll>
                     </div>
                   </div>
@@ -996,10 +997,10 @@
                           @change="unfllowTableParam.content.enddate=unfllowMapParam.content.enddate;unfllowTableParam.content.pageNumber = 1;customerUnfllowInit();$refs.customerUnfllowTable.listData()">
                       </el-date-picker>
                     </div>
-                    <div class="mt-10 inline-16">
-                      <exportFile class="inline-16" :param="unfllowTableParam" :columns="tool.tabelCol($route.name).projectTable1.tablecols.splice(0,tool.tabelCol($route.name).projectTable1.tablecols.length - 1)" fileName="有效项目未跟进天数分析" :dataid="unfllowMapParam.content.dataid"></exportFile>
+                    <div class="mt-10 inline-15">
+                      <exportFile  :param="unfllowTableParam" :columns="tool.tabelCol($route.name).projectTable1.tablecols.splice(0,tool.tabelCol($route.name).projectTable1.tablecols.length - 1)" fileName="有效项目未跟进天数分析" :dataid="unfllowMapParam.content.dataid"></exportFile>
                     </div>
-                    <div class="mt-10 inline-16" style="margin-left:10px">
+                    <div style="display: inline-block;vertical-align: middle">
                       <FullScroll domId="projectUnfllow"></FullScroll>
                     </div>
                   </div>
@@ -1573,27 +1574,22 @@ export default {
         this.typeMap = new Pie(this.$refs.typeEl, {
           appendPadding: 10,
           data:this.typeData.map,
-          angleField: 'qty',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
-          meta: {
-            value: {
-              formatter: (v) => `${v} ¥`,
-            },
-          },
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '项目总数'
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'项目总数'
             },
             content: {
               offsetY: 4,
@@ -1601,9 +1597,8 @@ export default {
                 fontSize: '24px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                const text = datum ? `${datum.ratio}%` : data[0] ? data[0].qty : 0;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -1611,7 +1606,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-single-selected' },{ type: 'element-active' },{ type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-single-selected' },{ type: 'element-active' }],
         });
         this.typeMap.on('element:click',(v) => {
           if (v.data.data.value != this.typeTableParam.content.where.projecttype) {
@@ -1639,22 +1634,22 @@ export default {
         this.gradMap = new Pie(this.$refs.gradEl, {
           appendPadding: 10,
           data:this.gradData.map,
-          angleField: 'qty',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '项目总数'
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'项目总数'
             },
             content: {
               offsetY: 4,
@@ -1662,9 +1657,8 @@ export default {
                 fontSize: '24px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                const text = datum ? `${datum.ratio}%` : data[0] ? data[0].qty : 0;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -1672,7 +1666,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-selected' },{ type: 'element-active' },{ type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
         });
         this.gradMap.on('element:click',(v) => {
           if (v.data.data.key != this.gradTableParam.content.where.grade) {
@@ -1883,22 +1877,22 @@ export default {
         this.projectFllowMap = new Pie(this.$refs.projectFllowEl, {
           appendPadding: 10,
           data:this.projectFllowData.map,
-          angleField: 'value',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '项目总数'
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'项目总数'
             },
             content: {
               offsetY: 4,
@@ -1906,9 +1900,8 @@ export default {
                 fontSize: '24px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                const text = datum ? `${datum.ratio}%` : data[0] ? data[0].totalqty : 0;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -1916,7 +1909,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-selected' },{ type: 'element-active' },{ type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
         });
         this.projectFllowMap.on('element:click',(v) => {
           if (v.data.data.value != this.fllowTableParam.content.where.isfollowup) {
@@ -1944,22 +1937,22 @@ export default {
         this.projectContactMap = new Pie(this.$refs.projectContactEl, {
           appendPadding: 10,
           data:this.projectContactData.map,
-          angleField: 'value',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '项目总数'
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'项目总数'
             },
             content: {
               offsetY: 4,
@@ -1967,9 +1960,8 @@ export default {
                 fontSize: '24px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                const text = datum ? `${datum.ratio}%` : data[0] ? data[0].totalqty : 0;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -1977,7 +1969,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-selected' },{ type: 'element-active' },{ type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
         });
         this.projectContactMap.on('element:click',(v) => {
           if (v.data.data.key != this.contactTableParam.content.where.iscontacts) {
@@ -2005,22 +1997,22 @@ export default {
         this.projectCustomerMap = new Pie(this.$refs.projectCustomerEl, {
           appendPadding: 10,
           data:this.projectCustomerData.map,
-          angleField: 'value',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '项目总数'
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'项目总数'
             },
             content: {
               offsetY: 4,
@@ -2028,9 +2020,8 @@ export default {
                 fontSize: '24px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                const text = datum ? `${datum.ratio}%` : data[0] ? data[0].totalqty : 0;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -2038,7 +2029,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-selected' },{ type: 'element-active' },{ type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
         });
         this.projectCustomerMap.on('element:click',(v) => {
           if (v.data.data.key != this.customerTableParam.content.where.iscustomers) {
@@ -2066,22 +2057,22 @@ export default {
         this.projectScoreMap = new Pie(this.$refs.projectScoreEl, {
           appendPadding: 10,
           data:this.projectScoreData.map,
-          angleField: 'value',
+          angleField: 'ratio',
           colorField: 'key',
           radius: 1,
           innerRadius: 0.64,
           label:{
             formatter: (datum) => `${datum.ratio}%`
           },
+          tooltip:{
+            formatter: (datum) => {
+              return { name: datum.key, value: datum.ratio + '%' };
+            },
+          },
           statistic: {
             title: {
               offsetY: -4,
-              customHtml: (container, view, datum) => {
-                const { width, height } = container.getBoundingClientRect();
-                const d = Math.sqrt(Math.pow(width / 2, 2) + Math.pow(height / 2, 2));
-                const text = datum ? `${datum.key}` : '项目总数'
-                return this.renderStatistic(d, text, { fontSize: 28 });
-              },
+              content:'项目总数'
             },
             content: {
               offsetY: 4,
@@ -2089,9 +2080,8 @@ export default {
                 fontSize: '24px',
               },
               customHtml: (container, view, datum, data) => {
-                const { width } = container.getBoundingClientRect();
-                const text = datum ? `${datum.ratio}%` : data[0] ? data[0].totalqty : 0;
-                return this.renderStatistic(width, text, { fontSize: 32 });
+                const text = data[0].totalqty
+                return text
               },
             },
           },
@@ -2099,7 +2089,7 @@ export default {
             position:'left'
           },
           // 添加 中心统计文本 交互
-          interactions: [{ type: 'element-highlight-by-x ' },{ type: 'element-active' },{ type: 'pie-statistic-active' }],
+          interactions: [{ type: 'element-highlight-by-x ' },{ type: 'element-active' }],
         });
         this.projectScoreMap.on('element:click',(v) => {
           if (v.data.data.key != this.scoreTableParam.content.where.istask) {

+ 8 - 2
src/HManagement/accountManage/modules/teamInformation/add.vue

@@ -8,6 +8,7 @@
         direction="rtl"
         append-to-body
         :show-close="false"
+        @close="onClose"
        >
       <div class="drawer__panel">
         <el-row :gutter="20">
@@ -77,7 +78,7 @@
         </el-row>
       </div>
       <div class="fixed__btn__panel">
-        <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" @click="onClose" class="normal-btn-width">取 消</el-button>
 <!--        <el-button size="small" type="primary"  class="normal-btn-width">确 定</el-button>-->
       </div>
     </el-drawer>
@@ -148,10 +149,15 @@ export default {
       this.param.content.pageNumber = val
       this.listData()
     },
+    onClose(){
+      this.drawer = false
+      this.param.content.where.condition = ''
+      this.param.content.pageNumber = 1
+    }
   }
 }
 </script>
 
 <style scoped>
 
-</style>
+</style>

+ 4 - 0
src/style/style.css

@@ -108,6 +108,10 @@ ul{
   display: inline-block !important;
   margin-right: 10px !important;
 }
+.inline-15{
+  display: inline-block !important;
+  margin-right: 15px !important;
+}
 .inline-24{
   display: inline-block !important;
   margin-right: 24px !important;

+ 2 - 5
src/views/clueData/modules/clueAdd.vue

@@ -10,12 +10,11 @@
           <div class="inline-16 mt-10">
             <departmentSalesperson id="department" ref="departmentSalesperson"  @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
-          <div class="mt-10">
+          <div class="mt-10 inline-15">
             <span class="search__label inline-16">分析日期:</span>
             <el-date-picker
                 v-model="enddate"
                 :append-to-body="!isFull"
-                style="margin-right: 10px !important;"
                 type="date"
                 :clearable="false"
                 @change="changeDate"
@@ -27,9 +26,7 @@
                 end-placeholder="结束月份">
             </el-date-picker>
           </div>
-         <div class="inline-16 mt-10">
-           <fullScreen  domId="clueAddAnalysisFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight"></fullScreen>
-         </div>
+         <fullScreen  domId="clueAddAnalysisFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight"></fullScreen>
         </div>
       </div>
       <div class="chart">

+ 2 - 5
src/views/clueData/modules/clueChange.vue

@@ -10,12 +10,11 @@
           <div class="inline-16 mt-10">
             <departmentSalesperson ref="departmentSalesperson"  @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
-          <div class="mt-10">
+          <div class="mt-10 inline-15">
             <span class="search__label inline-16">分析日期:</span>
             <el-date-picker
                 :append-to-body="!isFull"
                 v-model="enddate"
-                style="margin-right: 10px !important;"
                 type="date"
                 :clearable="false"
                 @change="changeDate"
@@ -27,9 +26,7 @@
                 end-placeholder="结束月份">
             </el-date-picker>
           </div>
-          <div class="inline-16 mt-10">
-            <fullScreen  domId="clueChangeFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight"></fullScreen>
-          </div>
+          <fullScreen  domId="clueChangeFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight"></fullScreen>
         </div>
       </div>
       <div class="chart">

+ 2 - 5
src/views/clueData/modules/clueFollow.vue

@@ -11,12 +11,11 @@
           <div class="inline-16 mt-10">
             <departmentSalesperson ref="departmentSalesperson"  @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
-          <div class="mt-10">
+          <div class="mt-10 inline-15">
             <span class="search__label inline-16">分析日期:</span>
             <el-date-picker
                 :append-to-body="!isFull"
                 v-model="enddate"
-                style="margin-right: 10px !important;"
                 type="date"
                 :clearable="false"
                 @change="changeDate"
@@ -28,9 +27,7 @@
                 end-placeholder="结束月份">
             </el-date-picker>
           </div>
-          <div class="inline-16 mt-10">
-            <fullScreen  domId="clueFollowFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight"></fullScreen>
-          </div>
+          <fullScreen  domId="clueFollowFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight"></fullScreen>
         </div>
       </div>
       <div class="chart">

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

@@ -10,12 +10,11 @@
           <div class="inline-16 mt-10">
             <departmentSalesperson ref="departmentSalesperson"  @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
-          <div class="mt-10">
+          <div class="mt-10 inline-16">
             <span class="search__label inline-16">分析日期:</span>
             <el-date-picker
                 v-model="enddate"
                 :append-to-body="!isFull"
-                style="margin-right: 10px !important;"
                 type="date"
                 :clearable="false"
                 @change="changeDate"
@@ -27,12 +26,10 @@
                 end-placeholder="结束月份">
             </el-date-picker>
           </div>
-          <div class="inline-16 mt-10">
+          <div class="inline-15 mt-10">
             <exportFile :param="param" :columns="tablecols" fileName="有效线索未跟进天数分析" :dataid="param.content.dataid"></exportFile>
           </div>
-          <div class="inline-16 mt-10">
-            <fullScreen  domId="clueUnFollowFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight" ></fullScreen>
-          </div>
+          <fullScreen  domId="clueUnFollowFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight" ></fullScreen>
         </div>
       </div>
       <div class="chart">

+ 2 - 2
src/views/salesData/components/fullScreen.vue

@@ -1,7 +1,7 @@
 <template>
   <div style="height: 35px" ref="fullScreen">
-    <img style="width: 16px; height: 16px;vertical-align: middle" @click="enterFullscreen" src="@/assets/icons/fullScroll.svg" title="全屏" v-if="isFull">
-    <img style="width: 16px; height: 16px;vertical-align: middle" @click="backFullscreen" src="@/assets/icons/fullBack.svg" title="退出全屏" v-else>
+    <img style="width: 16px; height: 16px;line-height:16px;vertical-align: middle" @click="enterFullscreen" src="@/assets/icons/fullScroll.svg" title="全屏" v-if="isFull">
+    <img style="width: 16px; height: 16px;line-height:16px;vertical-align: middle" @click="backFullscreen" src="@/assets/icons/fullBack.svg" title="退出全屏" v-else>
   </div>
 </template>
 

+ 19 - 5
src/views/salesData/modules/customerAccountBalanceAnalysis.vue

@@ -56,10 +56,10 @@
                   end-placeholder="结束月份">
               </el-date-picker>
             </div>
-            <div class="mt-10 inline-16">
+            <div class="mt-10 inline-15">
               <accountBalanceDetail v-if="!isFull"  ref="accountBalanceDetail" :type="param.content.type" :dataid="param.content.dataid" :enddate="param.content.enddate" :accountno="param.content.accountno"></accountBalanceDetail>
             </div>
-            <fullScreen class="inline-16" domId="customerAccountBalanceFull" @onFull="onFull" @backFull="backFull"></fullScreen>
+            <fullScreen domId="customerAccountBalanceFull" @onFull="onFull" @backFull="backFull"></fullScreen>
           </div>
         </div>
         <div style="height: 400px;position: relative;">
@@ -159,8 +159,8 @@ export default {
       this.balance = res.data.balance.map((item)=>{
         return {
           "date":item.date,
-          "name":item.name,
-          "value":Math.round((item.value * 100)/100)
+          "name":item.name + '(万元)',
+          "value":Math.round(((item.value/10000) * 100)/100)
         }
       })
       this.tbzzl = res.data.tbzzl.map((item)=>{
@@ -177,11 +177,18 @@ export default {
         data: [this.balance,this.tbzzl],
         xField: 'date',
         yField: ['value','value'],
+        /*yAxis:[{},{max:20}],*/
         geometryOptions: [
           {
             geometry: 'column',
             isGroup: true,
             seriesField: 'name',
+           /* label: {
+              // 可手动配置 label 数据标签位置
+              position: 'top', // 'top', 'bottom', 'middle',
+              // 配置样式
+              formatter: (item) =>'¥'+this.tool.formatAmount(item.value,2) ,
+            },*/
            /* label: {
               layout: [{ type: 'hide-overlap' }], // 隐藏重叠label
               style: {
@@ -193,6 +200,12 @@ export default {
           {
             geometry: 'line',
             seriesField: 'name',
+           /* label: {
+              // 可手动配置 label 数据标签位置
+              position: 'top', // 'top', 'bottom', 'middle',
+              // 配置样式
+              formatter: (item) => item.value + '%',
+            },*/
           /*  label: {
               layout: [{ type: 'hide-overlap' }], // 隐藏重叠label
               style: {
@@ -206,11 +219,12 @@ export default {
           formatter: (datum) => {
             return {
               name:datum.name,
-              value:datum.name != '同比增长率'?'¥' + this.tool.formatAmount(datum.value,2) :datum.value + '%'
+              value:datum.name != '同比增长率'?'¥'+this.tool.formatAmount(datum.value,2):datum.value + '%'
             }
           }
         }
       });
+
       this.chartCustomerLine.render();
       this.queryModel(val)
     },

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

@@ -10,12 +10,11 @@
           <div class="inline-16 mt-10">
             <departmentSalesperson ref="departmentSalesperson"  @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
-          <div class="mt-10">
+          <div class="mt-10 inline-16">
             <span class="search__label inline-16">分析日期:</span>
             <el-date-picker
                 :append-to-body="!isFull"
                 v-model="enddate"
-                style="margin-right: 10px !important;"
                 type="date"
                 :clearable="false"
                 @change="changeDate"
@@ -27,12 +26,10 @@
                 end-placeholder="结束月份">
             </el-date-picker>
           </div>
-          <div class="inline-16 mt-10">
+          <div class="inline-15 mt-10">
             <exportFile  :param="param" :columns="tablecols" fileName="近12月延期出货情况分析" :dataid="param.content.dataid"></exportFile>
           </div>
-          <div class="inline-16 mt-10">
-            <fullScreen domId="delayedShipmentFull" @onFull="onFull" @backFull="backFull"></fullScreen>
-          </div>
+          <fullScreen domId="delayedShipmentFull" @onFull="onFull" @backFull="backFull"></fullScreen>
         </div>
       </div>
       <div class="chart">

+ 3 - 3
src/views/salesData/modules/digitalSigns.vue

@@ -10,9 +10,9 @@
       </el-button-group>
     </div>
     <div class="container-div">
-      <boxLine title="订单" ref="order"  :style="{width:windowWidth > 1880? '49%':'100%',marginRight: windowWidth > 1880?'1%':'0',marginBottom:windowWidth > 1880?'1%':'1%'}"></boxLine>
-      <boxLine title="出货" ref="shipment"  :style="{width:windowWidth > 1880? '50%':'100%',marginBottom:windowWidth > 1880?'1%':'1%'}"></boxLine>
-      <boxLine title="开票" ref="invoicing"  :style="{width:windowWidth > 1880? '49%':'100%',marginRight: windowWidth > 1880?'1%':'0',marginBottom:windowWidth > 1880?'0':'1%'}"></boxLine>
+      <boxLine title="订单" ref="order"  :style="{width:windowWidth > 1880? '49%':'100%',marginRight: windowWidth > 1880?'1%':'0',marginBottom:windowWidth > 1880?'16px':'16px'}"></boxLine>
+      <boxLine title="出货" ref="shipment"  :style="{width:windowWidth > 1880? '50%':'100%',marginBottom:windowWidth > 1880?'16px':'16px'}"></boxLine>
+      <boxLine title="开票" ref="invoicing"  :style="{width:windowWidth > 1880? '49%':'100%',marginRight: windowWidth > 1880?'1%':'0',marginBottom:windowWidth > 1880?'0':'16px'}"></boxLine>
       <boxLine title="回款" ref="returned"  :style="{width:windowWidth > 1880? '50%':'100%'}"></boxLine>
     </div>
   </div>

+ 15 - 9
src/views/salesData/modules/financialCollectionAnalysis.vue

@@ -1,13 +1,19 @@
 <template>
   <div class="div-box-new-margin" style="margin-bottom: 16px" >
     <div class="div-border-box" id="financialCollectionFull">
-      <div class="content-new-content">
-        <div class="div-line"></div>
-        <div class="title"> 财务回款分析</div>
-        <div style="float: right">
-          <departmentSalesperson ref="departmentSalesperson" class="inline-16" @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
-          <exportFile class="inline-16" :param="tableParam" :columns="tablecols" fileName="财务回款分析" :dataid="tableParam.content.dataid"></exportFile>
-          <fullScreen class="inline-16" domId="financialCollectionFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight"></fullScreen>
+      <div class="out">
+        <div>
+          <div class="div-line div-line-right"></div>
+          <div class="title" style="min-width: 220px;"> 财务回款分析</div>
+        </div>
+        <div class="in">
+          <div class="inline-16 mt-10">
+            <departmentSalesperson ref="departmentSalesperson"  @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>
+          </div>
+          <fullScreen  domId="financialCollectionFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight"></fullScreen>
         </div>
       </div>
       <div class="chart">
@@ -118,9 +124,9 @@ export default {
       const res = await this.$api.requested(this.param)
       this.chartData = res.data.map(item=>{
         return {
-          key: item.key,
+          key: item.key + '(万元)',
           type: item.type,
-          value: Math.round(((item.value)*100)/100)
+          value: Math.round(((item.value/10000)*100)/100)
         }
       })
       this.chartBar.changeData(this.chartData)

+ 7 - 10
src/views/salesData/modules/invoiceAmountAnalysis.vue

@@ -11,23 +11,20 @@
           <div class="inline-16 mt-10">
             <departmentSalesperson ref="departmentSalesperson"  @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
-          <div class="mt-10">
+          <div class="mt-10 inline-15">
             <span class="search__label inline-16">年度:</span>
             <el-date-picker
                 :append-to-body="!isFull"
                 v-model="yearNow"
                 @change="changeDate"
                 :picker-options="pickerOptions"
-                style="margin-right: 10px"
                 :clearable="false"
                 type="year"
                 size="small"
                 placeholder="选择年">
             </el-date-picker>
           </div>
-          <div class="inline-16 mt-10">
-            <fullScreen  domId="invoiceAmountAnalysisFull" @onFull="onFull" @backFull="backFull"></fullScreen>
-          </div>
+          <fullScreen  domId="invoiceAmountAnalysisFull" @onFull="onFull" @backFull="backFull"></fullScreen>
         </div>
       </div>
 
@@ -83,16 +80,16 @@ export default {
       const res = await this.$api.requested(this.param)
       let amount = res.data.map(item=>{
         return {
-          "value":Math.round(((item.amount)*100)/100),
+          "value":Math.round(((item.amount/10000)*100)/100),
           "date":item.date,
-          "type":'本期金额'
+          "type":'本期金额(万元)'
         }
       })
       let oldamount = res.data.map(item=>{
         return {
           "date":item.date,
-          "value":Math.round(((item.oldamount)*100)/100),
-          "type":'去年同期金额'
+          "value":Math.round(((item.oldamount/10000)*100)/100),
+          "type":'去年同期金额(万元)'
         }
       })
       this.list = amount.concat(oldamount)
@@ -111,7 +108,7 @@ export default {
         yField: ['value','tbzzl'],
         meta:{
           tbzzl:{
-            alias:'同比增长率(%)'
+            alias:'同比增长率'
           }
         },
         geometryOptions: [

+ 31 - 20
src/views/salesData/modules/orderTrendAnalysis.vue

@@ -10,23 +10,20 @@
           <div class="inline-16 mt-10">
             <departmentSalesperson ref="departmentSalesperson" class="inline-16" @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
-          <div class="mt-10">
+          <div class="mt-10 inline-15">
             <span class="search__label inline-16">年度:</span>
             <el-date-picker
                 :append-to-body="!isFull"
                 v-model="yearNow"
                 @change="changeDate"
                 :picker-options="pickerOptions"
-                style="margin-right: 10px"
                 :clearable="false"
                 type="year"
                 size="small"
                 placeholder="选择年">
             </el-date-picker>
           </div>
-          <div class="inline-16 mt-10">
-            <fullScreen class="inline-16" domId="orderTrendFull" @onFull="onFull" @backFull="backFull" ></fullScreen>
-          </div>
+          <fullScreen domId="orderTrendFull" @onFull="onFull" @backFull="backFull" ></fullScreen>
         </div>
       </div>
       <div class="chart">
@@ -84,50 +81,64 @@ export default {
       this.list2 = res.data.map(item=>{
         return {
           "date":item.date,
-          "value":Math.round(((item.oldamount)*100)/100),
-          "type":'去年同期金额'
+          "value":Math.round(((item.oldamount/10000)*100)/100),
+          "type":'去年同期金额(万元)'
+        }
+      })
+      let list3 = res.data.map(item=>{
+        return {
+          "value":Math.round(((item.amount/10000)*100)/100),
+          "date":item.date,
+          "type":'本期金额(万元)',
         }
       })
       this.list1 = res.data.map(item=>{
         return {
-          "value":Math.round(((item.amount)*100)/100),
           "date":item.date,
-          "type":'本期金额',
-          "tbzzl":Math.round(((item.tbzzl * 100)*100)/100)
+          "type":'同比增长率',
+          "value":Math.round(((item.tbzzl * 100)*100)/100)
         }
       })
-      this.list = this.list1.concat(this.list2)
+      this.list = this.list2.concat(list3)
 
-      this.chartDualAxes.changeData([this.list,this.list])
+      this.chartDualAxes.changeData([this.list,this.list1])
     },
     renderPie(val){
       this.chartDualAxes = new DualAxes('orderAnalysisChart', {
         data: [this.list,this.list],
         xField: 'date',
-        yField: ['value','tbzzl'],
-        meta:{
-          tbzzl:{
-            alias:'同比增长率(%)'
-          }
-        },
+        yField: ['value','value'],
         geometryOptions: [
           {
             geometry: 'column',
             isGroup: true,
             seriesField: 'type',
+           /* label: {
+              // 可手动配置 label 数据标签位置
+              position: 'top', // 'top', 'bottom', 'middle',
+              // 配置样式
+              formatter: (item) =>'¥'+this.tool.formatAmount(item.value,2) ,
+            },*/
           },
           {
             geometry: 'line',
             lineStyle: {
               lineWidth: 2,
             },
+            seriesField: 'type',
+           /* label: {
+              // 可手动配置 label 数据标签位置
+              position: 'top', // 'top', 'bottom', 'middle',
+              // 配置样式
+              formatter: (item) => item.value + '%',
+            },*/
           },
         ],
         tooltip: {
           formatter: (datum) => {
             return {
-              name:datum.type === undefined?'同比增长率':datum.type,
-              value:datum.value === undefined?datum.tbzzl + '%':'¥' + this.tool.formatAmount(datum.value,2)
+              name:datum.type ,
+              value:datum.type != '同比增长率'?'¥'+this.tool.formatAmount(datum.value,2):datum.value + '%'
             }
           }
         }

+ 42 - 30
src/views/salesData/modules/orderType.vue

@@ -1,34 +1,45 @@
 <template>
   <div class="div-box-new-margin">
     <div class="div-border-box" id="orderTypeFull">
-      <div class="content-new-content">
-        <div class="div-line"></div>
-        <div class="title"> 订单类型占比分析</div>
-        <div style="float: right">
-          <el-button-group class="inline-16">
-            <el-button size="small" :type="type === '金额'?'primary':''" @click="changeType('金额')">金额</el-button>
-            <el-button size="small" :type="type === '数量'?'primary':''" @click="changeType('数量')">数量</el-button>
-          </el-button-group>
-          <el-button-group >
-            <el-button size="small" :type="dateType === '本年'?'primary':''" @click="changeTypeDate('本年')">本年</el-button>
-            <el-button size="small" :type="dateType === '本月'?'primary':''" @click="changeTypeDate('本月')">本月</el-button>
-          </el-button-group>
-          <el-date-picker
-              v-model="monthDate"
-              type="monthrange"
-              :append-to-body="!isFull"
-              @change="changMonth"
-              :clearable="false"
-              style="margin-left:10px;margin-right: 10px"
-              format="yyyy-MM"
-              value-format="yyyy-MM"
-              size="small"
-              range-separator="至"
-              start-placeholder="开始月份"
-              end-placeholder="结束月份">
-          </el-date-picker>
-          <exportFile class="inline-16" :param="param" :columns="tablecols" fileName="订单类型占比分析" :dataid="param.content.dataid"></exportFile>
-          <fullScreen class="inline-16" domId="orderTypeFull" @onFull="onFull" @backFull="backFull"></fullScreen>
+      <div class="out">
+        <div>
+          <div class="div-line div-line-right"></div>
+          <div class="title" style="min-width: 220px;"> 订单类型占比分析</div>
+        </div>
+
+        <div class="in">
+          <div class="inline-16 mt-10">
+            <el-button-group >
+              <el-button size="small" :type="type === '金额'?'primary':''" @click="changeType('金额')">金额</el-button>
+              <el-button size="small" :type="type === '数量'?'primary':''" @click="changeType('数量')">数量</el-button>
+            </el-button-group>
+          </div>
+          <div class="inline-16 mt-10">
+            <el-button-group >
+              <el-button size="small" :type="dateType === '本年'?'primary':''" @click="changeTypeDate('本年')">本年</el-button>
+              <el-button size="small" :type="dateType === '本月'?'primary':''" @click="changeTypeDate('本月')">本月</el-button>
+            </el-button-group>
+          </div>
+          <div class="inline-16 mt-10">
+            <el-date-picker
+                v-model="monthDate"
+                type="monthrange"
+                :append-to-body="!isFull"
+                @change="changMonth"
+                :clearable="false"
+                format="yyyy-MM"
+                value-format="yyyy-MM"
+                size="small"
+                range-separator="至"
+                start-placeholder="开始月份"
+                end-placeholder="结束月份">
+            </el-date-picker>
+          </div>
+          <div class="inline-15 mt-10">
+            <exportFile  :param="param" :columns="tablecols" fileName="订单类型占比分析" :dataid="param.content.dataid"></exportFile>
+          </div>
+
+          <fullScreen  domId="orderTypeFull" @onFull="onFull" @backFull="backFull"></fullScreen>
         </div>
       </div>
       <div class="chart" style="height: 416px">
@@ -179,7 +190,8 @@ export default {
           "totalamount": this.totalamount,//值
           "type": item.type,
           "rowindex": item.rowindex,
-          "ratio": Math.round(((item.ratio * 100)*100)/100) //比例
+          "ratio": Math.round(((item.ratio * 100)*100)/100), //比例
+          "value":item.value
         }
       })
       this.chartPie.changeData(this.chartData)
@@ -216,7 +228,7 @@ export default {
             return { name: datum.type, value: datum.ratio + '%' };
           },
         },
-        interactions: [{ type: 'element-single-selected' }],
+        interactions: [{ type: 'element-single-selected' },{ type: 'element-active' }],
         statistic: {
           title: {
             offsetY: -4,

+ 9 - 5
src/views/salesData/modules/quotationAnalysis.vue

@@ -18,7 +18,7 @@
             <div class="inline-16 mt-10">
               <departmentSalesperson ref="departmentSalesperson" class="inline-16" @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
             </div>
-            <div class="mt-10">
+            <div class="mt-10 inline-15">
               <span class="search__label inline-16">分析日期:</span>
               <el-date-picker
                   v-model="endDate"
@@ -29,15 +29,12 @@
                   format="yyyy-MM-dd"
                   value-format="yyyy-MM-dd"
                   size="small"
-                  style="margin-right: 10px"
                   range-separator="至"
                   start-placeholder="开始月份"
                   end-placeholder="结束月份">
               </el-date-picker>
             </div>
-            <div class="inline-16 mt-10">
-              <fullScreen  domId="quotationAnalysisFull" @onFull="onFull" @backFull="backFull"></fullScreen>
-            </div>
+            <fullScreen  domId="quotationAnalysisFull" @onFull="onFull" @backFull="backFull"></fullScreen>
           </div>
         </div>
         <div class="chart">
@@ -160,6 +157,13 @@ export default {
         xField: 'date',
         yField: valueKey,
         seriesField: seriesKey,
+        /*label: {
+          // 可手动配置 label 数据标签位置
+          position: 'top', // 'top', 'bottom', 'middle',
+          // 配置样式
+          layout: [{ type: 'hide-overlap' }],
+         /!* formatter: (item) => item.value + '%',*!/
+        },*/
       });
       this.chartLine.render()
       this.queryQuotationModel(val)

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

@@ -19,22 +19,19 @@
           <div class="inline-16 mt-10">
             <departmentSalesperson ref="departmentSalesperson" @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
-          <div class="mt-10">
+          <div class="mt-10 inline-15">
             <span class="search__label inline-16">年度:</span>
             <el-date-picker
                 :append-to-body="!isFull"
                 v-model="yearNow"
                 @change="changeDate"
                 :picker-options="pickerOptions"
-                style="margin-right: 10px"
                 type="year"
                 size="small"
                 placeholder="选择年">
             </el-date-picker>
           </div>
-          <div class="inline-16 mt-10">
-            <fullScreen  domId="shippingTrendFull" @onFull="onFull" @backFull="backFull"></fullScreen>
-          </div>
+          <fullScreen  domId="shippingTrendFull" @onFull="onFull" @backFull="backFull"></fullScreen>
         </div>
       </div>
       <div class="chart">
@@ -90,16 +87,16 @@ export default {
       const res = await this.$api.requested(this.param)
       const amount = res.data.map(item=>{
         return {
-          "value":Math.round(((item.amount)*100)/100),
+          "value":Math.round(((item.amount/10000)*100)/100),
           "date":item.date,
-          "type":'本期金额'
+          "type":'本期金额(万元)'
         }
       })
       const oldamount = res.data.map(item=>{
         return {
-          "value":Math.round(((item.oldamount)*100)/100),
+          "value":Math.round(((item.oldamount/10000)*100)/100),
           "date":item.date,
-          "type":'去年同期金额'
+          "type":'去年同期金额(万元)'
         }
       })
       this.list = amount.concat(oldamount)
@@ -130,18 +127,30 @@ export default {
             geometry: 'column',
             isGroup: true,
             seriesField: 'type',
+            /*label: {
+              // 可手动配置 label 数据标签位置
+              position: 'top', // 'top', 'bottom', 'middle',
+              // 配置样式
+              formatter: (item) =>'¥'+this.tool.formatAmount(item.value,2) ,
+            },*/
           },
           {
             geometry: 'line',
             isGroup: true,
             seriesField: 'type',
+            /*label: {
+              // 可手动配置 label 数据标签位置
+              position: 'top', // 'top', 'bottom', 'middle',
+              // 配置样式
+              formatter: (item) => item.value + '%',
+            },*/
           },
         ],
         tooltip: {
           formatter: (datum) => {
             return {
               name:datum.type,
-              value:datum.type == '去年同期金额' || datum.type == '本期金额'  ?'¥' + this.tool.formatAmount(datum.value,2):datum.value + '%'
+              value:datum.type == '去年同期金额(万元)' || datum.type == '本期金额(万元)'  ?'¥' + this.tool.formatAmount(datum.value,2):datum.value + '%'
             }
           }
         }

+ 16 - 10
src/views/salesData/modules/shippingUninvoiceAnalysis.vue

@@ -1,13 +1,19 @@
 <template>
   <div class="div-box-new-margin">
     <div class="div-border-box" id="shippingUninvoiceFull">
-      <div class="content-new-content">
-        <div class="div-line"></div>
-        <div class="title"> 出货未开票分析</div>
-        <div style="float: right;">
-          <departmentSalesperson ref="departmentSalesperson" class="inline-16" @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
-          <exportFile class="inline-16" :param="param" :columns="tablecols" fileName="出货未开票分析" :dataid="param.content.dataid"></exportFile>
-          <fullScreen class="inline-16" domId="shippingUninvoiceFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight" ></fullScreen>
+      <div class="out">
+        <div>
+          <div class="div-line div-line-right"></div>
+          <div class="title" style="min-width: 220px;"> 出货未开票分析</div>
+        </div>
+        <div class="in">
+          <div class="inline-16 mt-10">
+            <departmentSalesperson ref="departmentSalesperson"  @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>
+          </div>
+          <fullScreen domId="shippingUninvoiceFull" @onFull="onFull" @backFull="backFull" :scrollHeight="scrollHeight" ></fullScreen>
         </div>
       </div>
       <div class="chart">
@@ -135,9 +141,9 @@ export default {
       this.chartData = res.data[0].Trend
       this.chartData = this.chartData.map(item=>{
         return {
-          "value": Math.round(((item.value)*100)/100),
-          "key": item.key,
-          "type":"出货未开票金额"
+          "value": Math.round(((item.value/10000)*100)/100),
+          "key": item.key + '(万元)',
+          "type":"出货未开票金额(万元)"
         }
       })
       this.chartBar.changeData(this.chartData)

+ 10 - 13
src/views/salesData/modules/uninvoiceAmountAnalysis.vue

@@ -10,12 +10,11 @@
           <div class="inline-16 mt-10">
             <departmentSalesperson ref="departmentSalesperson"  @depSelect="depSelect" @personSelect="personSelect" :isFull="isFull"></departmentSalesperson>
           </div>
-          <div class="mt-10">
+          <div class="mt-10 inline-15">
             <span class="search__label inline-16">分析日期:</span>
             <el-date-picker
                 :append-to-body="!isFull"
                 v-model="endDate"
-                style="margin-right: 10px !important;"
                 type="date"
                 :clearable="false"
                 @change="changeDate"
@@ -27,9 +26,7 @@
                 end-placeholder="结束月份">
             </el-date-picker>
           </div>
-          <div class="inline-16 mt-10">
-            <fullScreen  domId="uninvoiceAmountFull" @onFull="onFull" @backFull="backFull"></fullScreen>
-          </div>
+          <fullScreen  domId="uninvoiceAmountFull" @onFull="onFull" @backFull="backFull"></fullScreen>
         </div>
       </div>
       <div class="chart">
@@ -51,16 +48,16 @@ const meta = {
     alias: '日期',
   },
   zerotothree: {
-    alias: '0-3月出货未开票金额',
+    alias: '0-3月出货未开票金额(万元)',
   },
   threetosix: {
-    alias: '3-6月出货未开票金额',
+    alias: '3-6月出货未开票金额(万元)',
   },
   twelveup:{
-    alias: '6-12月出货未开票金额'
+    alias: '6-12月出货未开票金额(万元)'
   },
   sixtotwelve:{
-    alias: '一年以上出货未开票金额'
+    alias: '一年以上出货未开票金额(万元)'
   },
 };
 export default {
@@ -106,11 +103,11 @@ export default {
       const res = await this.$api.requested(this.param)
       this.list = res.data.map(item=>{
         return {
-          "zerotothree":Math.round(((item.zerotothree)*100)/100),
-          "threetosix":Math.round(((item.threetosix)*100)/100),
+          "zerotothree":Math.round(((item.zerotothree/10000)*100)/100),
+          "threetosix":Math.round(((item.threetosix/10000)*100)/100),
           "date":item.date,
-          "twelveup":Math.round(((item.twelveup)*100)/100),
-          "sixtotwelve":Math.round(((item.sixtotwelve)*100)/100)
+          "twelveup":Math.round(((item.twelveup/10000)*100)/100),
+          "sixtotwelve":Math.round(((item.sixtotwelve/10000)*100)/100)
         }
       })
       this.chartLine.changeData(this.processData(this.list, ['zerotothree', 'threetosix','twelveup','sixtotwelve'], meta))