9 changed files with 1082 additions and 11 deletions
@ -0,0 +1,195 @@ |
|||
<template> |
|||
<div> |
|||
<div class="visualizing laonianren"> |
|||
<div class="visualizing-item"> |
|||
<div> |
|||
<data-title title="特殊人群享受服务情况统计" /> |
|||
</div> |
|||
<div id="resiServiceChart" 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: "teshurenqun", |
|||
props: { |
|||
title: { |
|||
type: String, |
|||
default: "", |
|||
}, |
|||
org_id: { |
|||
type: String, |
|||
default: "", |
|||
}, |
|||
}, |
|||
components: { |
|||
dataTitle, |
|||
}, |
|||
data() { |
|||
return { |
|||
lnrService: [], |
|||
}; |
|||
}, |
|||
created() { |
|||
const query = this.$route.query; |
|||
this.getData(); |
|||
}, |
|||
activated() {}, |
|||
methods: { |
|||
getData() { |
|||
this.$http |
|||
.get("/actual/base/peopleRoomOverview/findPeoplePie/SPECIAL_CROWD_FLAG") |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg); |
|||
} |
|||
this.lnrService = dataFormatter(res.data); |
|||
this.initResiServiceCharts(); |
|||
}) |
|||
.catch(() => {}); |
|||
}, |
|||
|
|||
initResiServiceCharts() { |
|||
let div = document.getElementById("resiServiceChart"); |
|||
this.myChart3 = echarts.init(div); |
|||
const option = { |
|||
color: [ |
|||
"#15a7ed", |
|||
"#22b998", |
|||
"#5f6ff4", |
|||
"#a66eeb", |
|||
"#faa834", |
|||
"#fd6200", |
|||
"#fb3905", |
|||
], |
|||
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.lnrService, |
|||
formatter: (name) => { |
|||
if (this.lnrService.length) { |
|||
const item = this.lnrService.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 }, |
|||
}, |
|||
}, |
|||
title: { |
|||
show: !this.lnrService || this.lnrService.length == 0, // 是否要展示“暂无数据”矢量图 |
|||
text: " {a|}", // 写入占位符a,以便后续填充内容 |
|||
x: "center", |
|||
y: "center", |
|||
subtext: "暂无数据", // 子标题 |
|||
itemGap: -10, // 设置主副标题间隔 |
|||
textStyle: { |
|||
rich: { |
|||
a: { |
|||
height: 128, // 设置图片高度 |
|||
width: 268, // 设置图片宽度 |
|||
backgroundColor: { |
|||
// 引入图片,作为背景图,填写相对路径 |
|||
image: require("@/assets/images/overview/zanwu.png"), |
|||
}, |
|||
}, |
|||
}, |
|||
}, |
|||
subtextStyle: { |
|||
// 配置副标题的文字样式 |
|||
fontSize: 12, |
|||
color: "#ffffff", |
|||
}, |
|||
}, |
|||
series: [ |
|||
{ |
|||
type: "pie", |
|||
radius: |
|||
this.lnrService && this.lnrService.length > 0 ? [30, 130] : [0, 0], |
|||
center: ["50%", "50%"], |
|||
roseType: "area", |
|||
itemStyle: { |
|||
borderRadius: 0, |
|||
}, |
|||
top: 20, |
|||
left: -40, |
|||
label: { |
|||
position: "inside", |
|||
formatter: "{d}%", |
|||
textStyle: { |
|||
color: "#ffffff", |
|||
fontSize: 12, |
|||
}, |
|||
}, |
|||
data: this.lnrService, |
|||
}, |
|||
], |
|||
}; |
|||
this.myChart3.setOption(option); |
|||
this.myChart3.on("click", (e) => { |
|||
this.$router.push({ |
|||
path: "/dataBoard/renfang/resi-class-new", |
|||
query: { |
|||
org_id: this.org_id, |
|||
type_id: "aged", |
|||
type_name: "特殊人群", |
|||
pageType: "normal", |
|||
type: "special", |
|||
serv_type: e.data.name, |
|||
}, |
|||
}); |
|||
}); |
|||
window.addEventListener("resize", () => this.myChart3.resize()); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style |
|||
lang="scss" |
|||
src="@/assets/scss/dataBoard/renfang/index.scss" |
|||
scoped |
|||
></style> |
|||
<style lang="scss" scoped> |
|||
.laonianren { |
|||
padding: 140px 240px; |
|||
} |
|||
</style> |
Loading…
Reference in new issue