update
This commit is contained in:
parent
8d08edf247
commit
216d4716fe
@ -47,6 +47,14 @@ const handleGoMounted = async () => {
|
|||||||
|
|
||||||
myChart = echarts.init(chartDom);
|
myChart = echarts.init(chartDom);
|
||||||
|
|
||||||
|
const rect = chartDom.getBoundingClientRect();
|
||||||
|
const width = rect.width;
|
||||||
|
const height = rect.height;
|
||||||
|
|
||||||
|
// 计算center位置(20%,50%)对应的实际像素
|
||||||
|
const centerX = width * 0.2;
|
||||||
|
const centerY = height * 0.5;
|
||||||
|
|
||||||
const option = {
|
const option = {
|
||||||
|
|
||||||
tooltip: { // 新增 tooltip 配置
|
tooltip: { // 新增 tooltip 配置
|
||||||
@ -69,8 +77,8 @@ const handleGoMounted = async () => {
|
|||||||
width: 83,
|
width: 83,
|
||||||
height: 83
|
height: 83
|
||||||
},
|
},
|
||||||
left: 31,
|
left: centerX - 41.5,
|
||||||
top: 24,
|
top: centerY - 41.5,
|
||||||
z: 10
|
z: 10
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import SmallTitle from '../smallTitle/smallTitle.vue'
|
import SmallTitle from '../smallTitle/smallTitle.vue'
|
||||||
import './CustomerAgeGroup.less'
|
import './CustomerAgeGroup.less'
|
||||||
import { onMounted, onBeforeUnmount } from 'vue';
|
import { onMounted, onBeforeUnmount, onUnmounted } from 'vue';
|
||||||
import * as echarts from 'echarts/core';
|
import * as echarts from 'echarts/core';
|
||||||
import { BarChart } from 'echarts/charts';
|
import { BarChart } from 'echarts/charts';
|
||||||
import {
|
import {
|
||||||
@ -31,7 +31,7 @@ const colorList = ['#A8DBFF', '#5DBBFF', '#0094FF', '#005CE5'];
|
|||||||
const categoryList: any = ["25以下", "25-35", "35-45", "45以上"]
|
const categoryList: any = ["25以下", "25-35", "35-45", "45以上"]
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
window.addEventListener('resize', resizeAllCharts)
|
||||||
const res: any = await handleGetData()
|
const res: any = await handleGetData()
|
||||||
|
|
||||||
const chartDom = document.getElementById('CustomerAgeGroup');
|
const chartDom = document.getElementById('CustomerAgeGroup');
|
||||||
@ -219,6 +219,17 @@ const handleGetData = async () => {
|
|||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 重绘所有图表的方法
|
||||||
|
const resizeAllCharts = () => {
|
||||||
|
// 获取当前显示的tab下的所有echarts实例
|
||||||
|
const charts = document.querySelectorAll(`#CustomerAgeGroup`)
|
||||||
|
charts.forEach(chart => {
|
||||||
|
const instance = echarts.getInstanceByDom(chart as HTMLElement)
|
||||||
|
if (instance) {
|
||||||
|
instance.resize()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const resizeChart = () => {
|
const resizeChart = () => {
|
||||||
myChart?.resize();
|
myChart?.resize();
|
||||||
@ -229,6 +240,11 @@ onBeforeUnmount(() => {
|
|||||||
myChart?.dispose();
|
myChart?.dispose();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
onUnmounted(() => {
|
||||||
|
window.removeEventListener('resize', resizeAllCharts)
|
||||||
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import {
|
|||||||
TransformComponent // 如果使用 dataset.source 需要此组件
|
TransformComponent // 如果使用 dataset.source 需要此组件
|
||||||
} from 'echarts/components';
|
} from 'echarts/components';
|
||||||
import { CanvasRenderer } from 'echarts/renderers';
|
import { CanvasRenderer } from 'echarts/renderers';
|
||||||
import { onBeforeUnmount, onMounted, watch } from 'vue';
|
import { nextTick, onBeforeUnmount, onMounted, onUnmounted, watch } from 'vue';
|
||||||
import { handleGetCustomerGroupRatio } from '../../service';
|
import { handleGetCustomerGroupRatio } from '../../service';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
|
||||||
@ -39,6 +39,7 @@ const props = defineProps<{
|
|||||||
currentService?: any;
|
currentService?: any;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
|
||||||
// 监听传入的选中服务区
|
// 监听传入的选中服务区
|
||||||
watch(
|
watch(
|
||||||
() => props.currentService,
|
() => props.currentService,
|
||||||
@ -188,9 +189,21 @@ const resizeChart = () => {
|
|||||||
myChart?.resize();
|
myChart?.resize();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 重绘所有图表的方法
|
||||||
|
const resizeAllCharts = () => {
|
||||||
|
// 获取当前显示的tab下的所有echarts实例
|
||||||
|
const charts = document.querySelectorAll(`#CustomerGroupBoxContent`)
|
||||||
|
charts.forEach(chart => {
|
||||||
|
const instance = echarts.getInstanceByDom(chart as HTMLElement)
|
||||||
|
if (instance) {
|
||||||
|
instance.resize()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
window.removeEventListener('resize', resizeChart);
|
|
||||||
myChart?.dispose();
|
myChart?.dispose();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -83,13 +83,10 @@ onMounted(async () => {
|
|||||||
width: 1,
|
width: 1,
|
||||||
opacity: 0.5
|
opacity: 0.5
|
||||||
},
|
},
|
||||||
data: res.seriesData,
|
data: [{ value: res.seriesData }],
|
||||||
symbol: 'none',
|
symbol: 'none',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: '#0289ED'
|
color: '#0289ED'
|
||||||
},
|
|
||||||
areaStyle: {
|
|
||||||
opacity: 0.1
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -107,7 +104,7 @@ const handleGetSectionFlowCount = async () => {
|
|||||||
|
|
||||||
}
|
}
|
||||||
const data = await handleGetProjectYearlyArrearageList(req)
|
const data = await handleGetProjectYearlyArrearageList(req)
|
||||||
console.log('datadatadatadatadatadata', data);
|
console.log('handleGetProjectYearlyArrearageListhandleGetProjectYearlyArrearageListhandleGetProjectYearlyArrearageList', data);
|
||||||
|
|
||||||
let category: any = []
|
let category: any = []
|
||||||
let seriesData: any = []
|
let seriesData: any = []
|
||||||
@ -123,16 +120,25 @@ const handleGetSectionFlowCount = async () => {
|
|||||||
if (prent > max) {
|
if (prent > max) {
|
||||||
max = prent
|
max = prent
|
||||||
}
|
}
|
||||||
category.push({ name: item.Account_Name, max: max })
|
})
|
||||||
|
|
||||||
|
list.forEach((item: any) => {
|
||||||
|
let prent: number = Number(((item.Account_Amount > 0 ? item.Payment_Amount / item.Account_Amount : 0) * 100).toFixed(2))
|
||||||
|
|
||||||
|
category.push({ name: `${item.Account_Name}(${prent}%)`, max: max })
|
||||||
seriesData.push(prent)
|
seriesData.push(prent)
|
||||||
// realData.push(item.data)
|
// realData.push(item.data)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('dsadjashdudftgsagsdfs', seriesData);
|
||||||
|
console.log('dsadjashdudftgsagsdfs', category);
|
||||||
|
|
||||||
let res: any = {
|
let res: any = {
|
||||||
category: category,// x轴的内容
|
category: category,// x轴的内容
|
||||||
seriesData: seriesData,// y轴的数据
|
seriesData: seriesData,// y轴的数据
|
||||||
realData: realData// 真实数据
|
realData: realData,// 真实数据
|
||||||
|
max: max
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,6 +42,13 @@ onMounted(async () => {
|
|||||||
|
|
||||||
const chartDom = document.getElementById('CoreCategory');
|
const chartDom = document.getElementById('CoreCategory');
|
||||||
if (!chartDom) return;
|
if (!chartDom) return;
|
||||||
|
const rect = chartDom.getBoundingClientRect();
|
||||||
|
const width = rect.width;
|
||||||
|
const height = rect.height;
|
||||||
|
|
||||||
|
// 计算center位置(20%,50%)对应的实际像素
|
||||||
|
const centerX = width * 0.2;
|
||||||
|
const centerY = height * 0.5;
|
||||||
|
|
||||||
myChart = echarts.init(chartDom);
|
myChart = echarts.init(chartDom);
|
||||||
|
|
||||||
@ -85,8 +92,8 @@ onMounted(async () => {
|
|||||||
width: 83,
|
width: 83,
|
||||||
height: 83
|
height: 83
|
||||||
},
|
},
|
||||||
left: '25',
|
left: centerX - 41.5,
|
||||||
top: '25',
|
top: centerY - 41.5,
|
||||||
z: 10
|
z: 10
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -114,7 +114,7 @@ const handleChangePageTab = (value: number) => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 分区一 -->
|
<!-- 分区一 -->
|
||||||
<div class="content169" v-show="selectPageTab === 1">
|
<div class="content169" v-if="selectPageTab === 1">
|
||||||
<div class="content169Left">
|
<div class="content169Left">
|
||||||
<!-- 消息轮播框 -->
|
<!-- 消息轮播框 -->
|
||||||
<NoticeListBox :currentService="currentService" />
|
<NoticeListBox :currentService="currentService" />
|
||||||
@ -155,6 +155,7 @@ const handleChangePageTab = (value: number) => {
|
|||||||
<!-- 核心经营数据 -->
|
<!-- 核心经营数据 -->
|
||||||
<CoreBusinessData :currentService="currentService" style="position: relative;z-index: 9;" />
|
<CoreBusinessData :currentService="currentService" style="position: relative;z-index: 9;" />
|
||||||
|
|
||||||
|
|
||||||
<!-- 地图 -->
|
<!-- 地图 -->
|
||||||
<PageMap @handleGetCurrentService="handleGetCurrentService" />
|
<PageMap @handleGetCurrentService="handleGetCurrentService" />
|
||||||
|
|
||||||
@ -335,6 +336,7 @@ const handleChangePageTab = (value: number) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- 分区三 -->
|
<!-- 分区三 -->
|
||||||
<div class="content1693st" v-if="selectPageTab === 3">
|
<div class="content1693st" v-if="selectPageTab === 3">
|
||||||
<div class="content1693stItem">
|
<div class="content1693stItem">
|
||||||
@ -414,6 +416,7 @@ const handleChangePageTab = (value: number) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- 分区四 -->
|
<!-- 分区四 -->
|
||||||
<div class="content1694st" v-if="selectPageTab === 4">
|
<div class="content1694st" v-if="selectPageTab === 4">
|
||||||
<div class="content1694stItem">
|
<div class="content1694stItem">
|
||||||
@ -490,6 +493,7 @@ const handleChangePageTab = (value: number) => {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<template v-if="false">
|
<template v-if="false">
|
||||||
<!-- 最初版隐藏 -->
|
<!-- 最初版隐藏 -->
|
||||||
<div class="content" v-if="pageType === 'center'">
|
<div class="content" v-if="pageType === 'center'">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user