城阳pc工作端前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

257 lines
6.4 KiB

2 years ago
<template>
<div>
<div class="visualizing laonianren">
<div class="visualizing-left">
<div>
<data-title title="党员年龄统计" />
</div>
<div id="dyLeftChart" style="height: 400px"></div>
</div>
<div class="visualizing-right">
<div>
<data-title title="党员文化程度统计" />
</div>
<div id="dyRightChart" style="height: 400px"></div>
</div>
</div>
</div>
</template>
<script>
import dataTitle from "@/views/dataBoard/renfang/visualizing/components/dataTitle.vue";
import * as echarts from "echarts";
function dataFormatter(arr) {
return arr.map((item) => {
return {
name: item.classification,
value: Number(item.classificationNum),
};
});
}
export default {
name: "dangyuan",
props: {
title: {
type: String,
default: "详情",
},
},
components: {
dataTitle,
},
data() {
return {
dyLeft: [],
dyRight: [],
};
},
created() {
const query = this.$route.query;
this.getData();
},
activated() {},
methods: {
getData() {
this.$http
.get("/actual/base/peopleRoomOverview/partyPie?type=0")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dyLeft = dataFormatter(res.data);
this.initLeftCharts();
})
.catch(() => {});
this.$http
.get("/actual/base/peopleRoomOverview/partyPie?type=1")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dyRight = dataFormatter(res.data);
this.initRightCharts();
})
.catch(() => {});
},
initLeftCharts() {
let div = document.getElementById("dyLeftChart");
this.myChart1 = echarts.init(div);
var option = {
color: ["#60bce1", "#04c78f", "#fdaa00", "#f23800"],
legend: {
orient: "vertical",
top: 20,
left: 10,
icon: "rect",
itemHeight: 14,
itemWidth: 14,
textStyle: {
color: "#ffffff",
rich: {
name: {
width: 90,
fontSize: 12,
color: "#dddee7",
},
value: {
width: 30,
align: "right",
fontSize: 18,
},
},
},
data: this.dyLeft,
formatter: (name) => {
if (this.dyLeft.length) {
const item = this.dyLeft.filter((item) => item.name === name)[0];
return `{name|${name}}{value| ${item.value}}`;
}
},
},
toolbox: {
show: false,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
restore: { show: true },
saveAsImage: { show: true },
},
},
series: [
{
name: "Nightingale Chart",
type: "pie",
radius: [30, 130],
center: ["50%", "50%"],
roseType: "area",
itemStyle: {
borderRadius: 0,
},
top: 20,
left: -40,
label: {
position: "inside",
formatter: "{d}%",
textStyle: {
color: "#ffffff",
fontSize: 12,
},
},
data: this.dyLeft,
},
],
};
this.myChart1.setOption(option);
this.myChart1.on("click", (a, b) => {
this.$router.push({
path: "/dataBoard/renfang/resi-class",
query: {
org_id: "7b6f9a9f9f38d5f9fa7ce94a93d6eb28",
type_id: "aged",
type_name: "党员",
pageType: "normal",
},
});
});
window.addEventListener("resize", () => this.myChart1.resize());
},
initRightCharts() {
let div = document.getElementById("dyRightChart");
this.myChart2 = echarts.init(div);
var option = {
color: ["#1b94fe", "#5a75ff", "#01c690", "#fdaa01"],
legend: {
orient: "vertical",
top: 20,
left: 10,
icon: "rect",
itemHeight: 14,
itemWidth: 14,
textStyle: {
color: "#ffffff",
rich: {
name: {
width: 80,
fontSize: 12,
color: "#dddee7",
},
value: {
width: 30,
align: "right",
fontSize: 18,
},
},
},
data: this.dyRight,
formatter: (name) => {
if (this.dyRight.length) {
const item = this.dyRight.filter(
(item) => item.name === name
)[0];
return `{name|${name}}{value| ${item.value}}`;
}
},
},
toolbox: {
show: false,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
restore: { show: true },
saveAsImage: { show: true },
},
},
series: [
{
name: "Nightingale Chart",
type: "pie",
radius: [30, 130],
center: ["50%", "50%"],
roseType: "area",
itemStyle: {
borderRadius: 0,
},
top: 20,
left: -40,
label: {
position: "inside",
formatter: "{d}%",
textStyle: {
color: "#ffffff",
fontSize: 12,
},
},
data: this.dyRight,
},
],
};
this.myChart1.on("click", (a, b) => {
this.$router.push({
path: "/dataBoard/renfang/resi-class",
query: {
org_id: "7b6f9a9f9f38d5f9fa7ce94a93d6eb28",
type_id: "aged",
type_name: "党员",
pageType: "normal",
},
});
});
this.myChart2.setOption(option);
window.addEventListener("resize", () => this.myChart2.resize());
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/dataBoard/renfang/index.scss"
scoped
></style>
<style lang="scss" scoped>
.laonianren {
padding: 140px 240px;
}
</style>