Merge branch 'main' of git.zdool.com:xs/ggfwjsc

This commit is contained in:
lnn19986213 2024-04-17 15:30:21 +08:00
commit 5544832753
27 changed files with 1701 additions and 367 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -1,150 +0,0 @@
<template>
<div ref="chart" style="width:100%;height:300px;"></div>
</template>
<script setup >
import {onMounted, reactive, ref} from "vue";
// echarts
import * as echarts from 'echarts'
const chart =ref(); // DOM
var plantCap = [{
name: '中国工程院 \n\n 院士'
}, {
name: '计算机应用 \n\n 专家'
}, {
name: '浙江大学计算机 \n\n 科学与技术学院 \n\n 教授'
}, {
name: '国家数码喷印工程 \n\n 技术研究中心 \n\n 首席科学家'
}, {
name: '浙江大学信息 \n\n 学部主任'
}, {
name: '博士生导师'
}];
var datalist = [{
offset: [10, 73],
symbolSize: 90,
opacity: .95,
color: '#C58F5A'
}, {
offset: [40, 63],
symbolSize: 90,
opacity: .88,
color: '#076097'
}, {
offset: [80, 73],
symbolSize: 130,
opacity: .84,
color: '#BF74CF'
}, {
offset: [20, 23],
symbolSize: 140,
opacity: .84,
color: '#2D90ED'
}, {
offset: [60, 23],
symbolSize: 95,
opacity: .84,
color: '#079773'
}, {
offset: [90, 33],
symbolSize: 80,
opacity: .84,
color: '#C89D4A'
}];
var datas = [];
for (var i = 0; i < plantCap.length; i++) {
var item = plantCap[i];
var itemToStyle = datalist[i];
datas.push({
name: item.name,
value: itemToStyle.offset,
symbolSize: itemToStyle.symbolSize,
label: {
normal: {
textStyle: {
fontSize: 12
}
}
},
itemStyle: {
normal: {
color: itemToStyle.color,
opacity: itemToStyle.opacity
}
},
})
}
let option = {
grid: {
show: false,
top: 10,
bottom: 10
},
xAxis: [{
gridIndex: 0,
type: 'value',
show: false,
min: 0,
max: 100,
nameLocation: 'middle',
nameGap: 5
}],
yAxis: [{
gridIndex: 0,
min: 0,
show: false,
max: 100,
nameLocation: 'middle',
nameGap: 30
}],
series: [{
type: 'scatter',
symbol: 'circle',
symbolSize: 120,
label: {
normal: {
show: true,
formatter: '{b}',
color: '#fff',
textStyle: {
fontSize: '20'
}
},
},
itemStyle: {
normal: {
color: '#00acea'
}
},
data: datas
}]
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value)
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
window.addEventListener('resize',()=>{
myChart.resize()
})
})
</script>
<style scoped>
</style>

View File

@ -0,0 +1,159 @@
<template>
<div
ref="chart"
style="width: 100%; height: calc(100% - 46px); min-height: 250px"
></div>
</template>
<script setup>
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(null); // DOM
const data1 = [
"龙游县人民医院",
"龙游县中医院",
"龙游县横山镇中心卫生院",
"龙游县溪水镇中心卫生院",
"龙游县龙游街道社区卫生服务中心",
"龙游县塔石镇中心卫生院",
"龙游县罗家县中心卫生院",
"龙游县社阳乡卫生院",
"龙游妇幼保健院",
"龙游妇幼保健院",
"龙游妇幼保健院",
"龙游妇幼保健院",
"龙游妇幼保健院",
];
const data2 = [
"200",
"200",
"120",
"200",
"420",
"100",
"100",
"100",
"120",
"333",
];
let option = {
grid: {
left: "0%",
right: "10%",
bottom: "1%",
top: "6%",
containLabel: true,
},
tooltip: {
trigger: "axis", //axis , item
},
// backgroundColor: '#002D54',
xAxis: {
type: "value",
splitLine: {
lineStyle: {
color: "rgba(77, 128, 254, 0.2)",
type: "line",
},
},
axisTick: {
show: true,
},
splitLine: {
show: false,
},
axisLabel: {
// x
show: false,
textStyle: {
color: "#00c0fa",
fontSize: 16,
},
},
},
yAxis: [
{
type: "category",
inverse: true,
axisLabel: {
show: true,
textStyle: {
color: "#ccc",
fontSize: "11",
},
},
splitLine: {
show: false,
},
axisTick: {
show: false,
},
axisLine: {
show: false,
},
data: data1,
},
],
series: [
{
name: "道路指数",
type: "bar",
zlevel: 1,
label: {
show: true,
position: "right", //
color: "#ccc",
fontSize: 12,
distance: 10, //
// formatter: '{c}%' //
}, //
itemStyle: {
normal: {
borderWidth: 1,
// borderColor: "rgba(0, 183, 255, 1)",
borderRadius: [0, 0, 50, 0], //
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{ offset: 0, color: "rgba(0, 183, 255, 0)" },
{ offset: 1, color: "rgba(0, 183, 255, 1)" },
]),
},
},
barWidth: 10,
data: data2,
},
],
};
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
myChart.on("scroll", function (event) {
// bargap
var bargap = event.scrollData / 10000; // 1%0.5bargap
myChart.setOption({
yAxis: {
axisLabel: {
bargap: bargap,
},
},
});
});
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped></style>

View File

@ -0,0 +1,207 @@
<template>
<div
ref="chart"
style="width: 100%; height: calc(100% - 76px); min-height: 205px"
></div>
</template>
<script setup >
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(); // DOM
const data1 = [
"龙游县人民医院",
"龙游县中医院",
"龙游县横山镇中心卫生院",
"龙游县溪水镇中心卫生院",
"龙游县龙游街道社区卫生服务中心",
"龙游县塔石镇中心卫生院",
"龙游县罗家县中心卫生院",
];
let option = {
tooltip: {
trigger: "axis",
// formatter: "{b0}<br />{a0}:{c0} <br />{a1}:{c1} ",
},
grid: {
top: "20%",
left: "1%",
right: "10%",
bottom: "0%",
containLabel: true,
},
calculable: true,
xAxis: [
{
type: "category",
axisLabel: {
formatter: function (params) {
var str = ""; //
var paramsLen = params.length; //
var len = 4; //
var rowNumber = Math.ceil(paramsLen / len); //
if (paramsLen > len) {
//len
for (var i = 0; i < rowNumber; i++) {
var temp = ""; //
var start = i * len; //
var end = start + len; //
if (i == rowNumber - 1) {
//
temp = params.substring(start, paramsLen);
} else {
//
temp = params.substring(start, end) + "\n";
}
str += temp; //
}
} else {
//
str = params;
}
return str; //
},
textStyle: {
color: "#ccc",
},
// rotate: 60,
},
data: data1,
},
],
yAxis: [
{
type: "value",
splitLine: {
show: true,
lineStyle: {
color: "rgba(226, 226, 226, 0.3)",
width: 1,
},
},
axisLabel: {
//
textStyle: {
color: "#ccc",
},
},
},
],
series: [
{
name: "职工医疗保险发放人次",
type: "bar",
data: [2.0, 4.9, 7.0, 23.2, 25.6,7,8],
barWidth: 20,
itemStyle: {
normal: {
color: function (params) {
let colorList = [
["rgba(23, 237, 255, 1)", "rgba(23, 237, 255, 0.20)"],
["rgba(142, 187, 255, 1)", "rgba(142, 187, 255, 0.20)"],
["rgba(255, 243, 119, 1)", "rgba(255, 242, 142, 0.20)"],
];
if (params.dataIndex == 0) {
return new echarts.graphic.LinearGradient(
0,
0,
0,
1, //y->y2
[
{
offset: 0,
color: "rgba(23, 237, 255, 1)",
},
{
offset: 1,
color: "rgba(23, 237, 255, 0.20)",
},
],
false
);
} else if (params.dataIndex % 3 == 0) {
return new echarts.graphic.LinearGradient(
0,
0,
0,
1, //y->y2
[
{
offset: 0,
color: "rgba(23, 237, 255, 1)",
},
{
offset: 1,
color: "rgba(23, 237, 255, 0.20)",
},
],
false
);
} else if (params.dataIndex % 2 == 0) {
return new echarts.graphic.LinearGradient(
0,
0,
0,
1, //y->y2
[
{
offset: 0,
color: "rgba(255, 243, 119, 1)",
},
{
offset: 1,
color: "rgba(255, 242, 142, 0.20)",
},
],
false
);
} else {
return new echarts.graphic.LinearGradient(
0,
0,
0,
1, //y->y2
[
{
offset: 0,
color: "rgba(142, 187, 255, 1)",
},
{
offset: 1,
color: "rgba(142, 187, 255, 0.20)",
},
],
false
);
}
},
},
},
},
],
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped>
</style>

View File

@ -0,0 +1,149 @@
<template>
<div ref="chart" style="width: 100%; height:100%;"></div>
</template>
<script setup>
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(); // DOM
const datas = {
value: 92.96,
text: "留 守 儿 童"
}
let option = {
series: [
//
{
type: "pie",
center: ["60%", "55%"],
radius: ["50%", "82%"],
hoverAnimation: false,
clockWise: false,
itemStyle: {
normal: {
borderWidth: 1,
borderColor: "rgba(193, 229, 255, .1)",
color: new echarts.graphic.LinearGradient(1, 1, 1, 0, [
{
offset: 1,
color: "rgba(127, 242, 255, .2)",
},
{
offset: 0,
color: "rgba(109, 195, 255, 0)",
},
]),
},
},
tooltip: {
show: false,
},
label: {
show: false,
},
data: [100],
},
/*内心原型图,展示整体数据概览*/
{
name: 'pie',
type: 'pie',
roundCap: true,
clockWise: true,
startAngle: 180,
labelLine: {
show: false
},
radius: ['50%', '70%'],
hoverAnimation: false,
center: ['60%', '55%'],
data: [
{
value: datas.value,
label: {
normal: {
position: 'center',
show: true,
textStyle: {
fontSize: '24',
fontWeight: 'normal',
color: '#fff',
lineHeight: 30,
rich: {
cell: {
fontSize: '24',
fontWeight: 'normal',
color: '#fff',
},
text: {
fontSize: 16,
fontFamily: 'FZLanTingHeiS-L-GB',
color: '#fff',
}
}
}
}
},
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
offset: 0,
color: 'rgba(0, 255, 250, 0.29)'
},
{
offset: 0.5,
color: 'rgba(0, 255, 250, 0.8)'
}, {
offset: 1,
color: 'rgba(0, 255, 250, 1)'
}]),
shadowColor: 'rgba(1,1,1,0.5)',
shadowBlur: 1
}
}
},
{
value: 100 - datas.value,
name: '',
itemStyle: {
normal: {
color: '#095b9b', //
label: {
show: false
},
labelLine: {
show: false
}
},
emphasis: {
color: '#095b9b' //
}
}
}]
}
]
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped></style>

View File

@ -0,0 +1,146 @@
<template>
<div
ref="chart"
style="width: 100%; height: calc(100% - 66px); min-height: 320px"
></div>
</template>
<script setup >
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(); // DOM
const data1 = [
"龙游县人民医院",
"龙游县中医院",
"龙游县横山镇中心卫生院",
"龙游县溪水镇中心卫生院",
"龙游县龙游街道社区卫生服务中心",
"龙游县塔石镇中心卫生院",
"龙游县罗家县中心卫生院",
];
let option = {
tooltip: {
trigger: "axis",
// formatter: "{b0}<br />{a0}:{c0} <br />{a1}:{c1} ",
},
grid: {
top: "13%",
left: "1%",
right: "10%",
bottom: "0%",
containLabel: true,
},
calculable: true,
xAxis: [
{
type: "category",
axisLabel: {
formatter: function (params) {
var str = ""; //
var paramsLen = params.length; //
var len = 5; //
var rowNumber = Math.ceil(paramsLen / len); //
if (paramsLen > len) {
//len
for (var i = 0; i < rowNumber; i++) {
var temp = ""; //
var start = i * len; //
var end = start + len; //
if (i == rowNumber - 1) {
//
temp = params.substring(start, paramsLen);
} else {
//
temp = params.substring(start, end) + "\n";
}
str += temp; //
}
} else {
//
str = params;
}
return str; //
},
textStyle: {
color: "#ccc",
},
rotate: 40,
},
data: data1,
},
],
yAxis: [
{
name:'在册数',
type: "value",
splitLine: {
show: true,
lineStyle: {
color: "rgba(226, 226, 226, 0.3)",
width: 1,
},
},
axisLabel: {
//
textStyle: {
color: "#ccc",
},
},
axisLine: {
//y线
show: false,
lineStyle: {
color: "#ffffff",
width: 1,
type: "solid",
},
},
},
],
series: [
{
name: "职工医疗保险发放人次",
type: "bar",
data: [2.0, 4.9, 7.0, 23.2, 25.6],
barWidth: 20,
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: "rgba(23, 237, 255, 1)",
},
{
offset: 1,
color: "rgba(23, 237, 255, 0.20)",
},
]),
},
},
],
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped>
</style>

View File

@ -0,0 +1,123 @@
<template>
<div ref="chart" style="width: 100%; height: calc(100% - 46px);min-height:205px;"></div>
</template>
<script setup >
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(); // DOM
let option = {
tooltip: {
trigger: "axis",
padding: [20, 10, 20, 10],
// formatter: "{b0}<br />{a1}:{c1} <br />{a2}:{c2} ",
},
legend: {
data: ["高血压", "糖尿病"],
top: "5%",
right: "11%",
textStyle: {
fontSize: 12,
color: "#ccc",
},
},
grid: {
top:'18%',
left: "1%",
right: "10%",
bottom: "3%",
containLabel: true,
},
xAxis: {
type: "category",
// boundaryGap: false,
data: ["2019", "2020", "2021", "2022", "2023"],
axisLabel: {
//
textStyle: {
color: "#ccc",
},
},
},
yAxis: {
type: "value",
splitLine: {
show: true,
lineStyle: {
color: "rgba(226, 226, 226, 0.3)",
width: 1,
},
},
axisLabel: {
//
textStyle: {
color: "#ccc",
},
},
},
series: [
{
name: "背景",
type: "bar",
data: [0, 0, 0, 0, 0],
showBackground: true,
backgroundStyle: {
color: "rgba(180, 180, 180, 0.2)",
},
},
{
name: "高血压",
type: "line",
stack: "Total",
symbol: "emptyCircle",
symbolSize: 10,
itemStyle: {
borderColor: "#00FCFF",
borderWidth: 1,
color: "#00FCFF",
},
data: [120, 132, 101, 134, 90],
},
{
name: "糖尿病",
type: "line",
stack: "Total",
symbol: "emptyCircle",
symbolSize: 10,
itemStyle: {
borderColor: "#2468FF",
borderWidth: 1,
color: "#2468FF",
},
data: [150, 232, 201, 154, 190],
},
],
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped>
</style>

View File

@ -0,0 +1,208 @@
<template>
<div
ref="chart"
style="width: 100%; height: calc(100% - 36px); min-height: 205px"
></div>
</template>
<script setup >
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(); // DOM
const data1 = [
"龙游县人民医院",
"龙游县中医院",
"龙游县横山镇中心卫生院",
"龙游县溪水镇中心卫生院",
"龙游县龙游街道社区卫生服务中心",
"龙游县塔石镇中心卫生院",
"龙游县罗家县中心卫生院",
];
let option = {
tooltip: {
trigger: "axis",
// formatter: "{b0}<br />{a0}:{c0} <br />{a1}:{c1} ",
},
grid: {
top: "10%",
left: "1%",
right: "10%",
bottom: "0%",
containLabel: true,
},
calculable: true,
xAxis: [
{
type: "category",
axisLabel: {
formatter: function (params) {
var str = ""; //
var paramsLen = params.length; //
var len = 6; //
var rowNumber = Math.ceil(paramsLen / len); //
if (paramsLen > len) {
//len
for (var i = 0; i < rowNumber; i++) {
var temp = ""; //
var start = i * len; //
var end = start + len; //
if (i == rowNumber - 1) {
//
temp = params.substring(start, paramsLen);
} else {
//
temp = params.substring(start, end) + "\n";
}
str += temp; //
}
} else {
//
str = params;
}
return str; //
},
textStyle: {
color: "#ccc",
},
rotate: 30,
},
data: data1,
},
],
yAxis: [
{
type: "value",
splitLine: {
show: true,
lineStyle: {
color: "rgba(226, 226, 226, 0.3)",
width: 1,
},
},
axisLabel: {
//
textStyle: {
color: "#ccc",
},
},
},
],
series: [
{
name: "职工医疗保险发放人次",
type: "bar",
data: [2.0, 4.9, 7.0, 23.2, 25.6,9,9],
barWidth: 20,
itemStyle: {
normal: {
color: function (params) {
let colorList = [
["rgba(23, 237, 255, 1)", "rgba(23, 237, 255, 0.20)"],
["rgba(142, 187, 255, 1)", "rgba(142, 187, 255, 0.20)"],
["rgba(255, 243, 119, 1)", "rgba(255, 242, 142, 0.20)"],
];
if (params.dataIndex == 0) {
return new echarts.graphic.LinearGradient(
0,
0,
0,
1, //y->y2
[
{
offset: 0,
color: "rgba(23, 237, 255, 1)",
},
{
offset: 1,
color: "rgba(23, 237, 255, 0.20)",
},
],
false
);
} else if (params.dataIndex % 3 == 0) {
return new echarts.graphic.LinearGradient(
0,
0,
0,
1, //y->y2
[
{
offset: 0,
color: "rgba(23, 237, 255, 1)",
},
{
offset: 1,
color: "rgba(23, 237, 255, 0.20)",
},
],
false
);
} else if (params.dataIndex % 2 == 0) {
return new echarts.graphic.LinearGradient(
0,
0,
0,
1, //y->y2
[
{
offset: 0,
color: "rgba(255, 243, 119, 1)",
},
{
offset: 1,
color: "rgba(255, 242, 142, 0.20)",
},
],
false
);
} else {
return new echarts.graphic.LinearGradient(
0,
0,
0,
1, //y->y2
[
{
offset: 0,
color: "rgba(142, 187, 255, 1)",
},
{
offset: 1,
color: "rgba(142, 187, 255, 0.20)",
},
],
false
);
}
},
},
},
},
],
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped>
</style>

View File

@ -0,0 +1,165 @@
<template>
<div ref="chart" style="width: 100%; height: calc(100% - 46px);min-height:155px;"></div>
</template>
<script setup >
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(); // DOM
let option = {
tooltip: {
trigger: "axis",
formatter: "{b0}<br />{a0}:{c0} <br />{a1}:{c1} ",
},
legend: {
top: "8%",
right: "11%",
textStyle: {
fontSize: 12,
color: "#ccc",
},
},
grid: {
left: "1%",
right: "10%",
bottom: "0%",
containLabel: true,
},
calculable: true,
xAxis: [
{
type: "category",
axisLabel: {
//
textStyle: {
color: "#ccc",
},
},
data: ["2019", "2020", "2021", "2022", "2023"],
},
{
axisTick: false,
type: "category",
data: ["2019", "2020", "2021", "2022", "2023"],
axisLabel: {
show: false,
},
},
],
yAxis: [
{
type: "value",
splitLine: {
show: true,
lineStyle: {
color: "rgba(226, 226, 226, 0.3)",
width: 1,
},
},
axisLabel: {
//
textStyle: {
color: "#ccc",
},
},
},
{
type: "value",
min: 0,
max: 100,
splitLine: {
show: false,
lineStyle: {
type: "solid",
color: "rgb(221, 242, 255,0.1)",
},
},
axisLine: {
show: false,
lineStyle: {
type: "dotted",
},
},
axisLabel: {
show: false,
fontSize: 14,
fontFamily: "MicrosoftYaHei",
color: "#DEF1FF",
lineHeight: 19,
},
},
],
series: [
{
name: "职工医疗保险发放人次",
type: "bar",
data: [2.0, 4.9, 7.0, 23.2, 25.6],
barWidth: "18%",
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: "rgba(142, 187, 255, 1)",
},
{
offset: 1,
color: "rgba(142, 187, 255, 0.20)",
},
]),
},
},
{
name: "城乡医疗保险发放人次",
type: "bar",
data: [2.6, 5.9, 9.0, 26.4, 28.7],
barWidth: "18%",
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: "rgba(23, 237, 255, 1)",
},
{
offset: 1,
color: "rgba(23, 237, 255, 0.20)",
},
]),
},
},
{
type: "bar",
xAxisIndex: 1,
yAxisIndex: 1,
itemStyle: {
color: "rgba(221, 242, 255, 0.1)",
},
data: ["2019", "2020", "2021", "2022", "2023"].map(() => 100),
barWidth: 50,
},
],
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped>
</style>

View File

@ -0,0 +1,122 @@
<template>
<div ref="chart" style="width: 100%; height: calc(100% - 46px);min-height:155px;"></div>
</template>
<script setup >
import { onMounted, reactive, ref } from "vue";
// echarts
import * as echarts from "echarts";
const chart = ref(); // DOM
let option = {
tooltip: {
trigger: "axis",
padding: [20, 10, 20, 10],
formatter: "{b0}<br />{a1}:{c1} <br />{a2}:{c2} ",
},
legend: {
data: ["职工医疗保险金额", "城乡医疗保险金额"],
top: "8%",
right: "11%",
textStyle: {
fontSize: 12,
color: "#ccc",
},
},
grid: {
left: "1%",
right: "10%",
bottom: "3%",
containLabel: true,
},
xAxis: {
type: "category",
// boundaryGap: false,
data: ["1月", "2月", "3月", "4月", "5月"],
axisLabel: {
//
textStyle: {
color: "#ccc",
},
},
},
yAxis: {
type: "value",
splitLine: {
show: true,
lineStyle: {
color: "rgba(226, 226, 226, 0.3)",
width: 1,
},
},
axisLabel: {
//
textStyle: {
color: "#ccc",
},
},
},
series: [
{
name: "背景",
type: "bar",
data: [0, 0, 0, 0, 0],
showBackground: true,
backgroundStyle: {
color: "rgba(180, 180, 180, 0.2)",
},
},
{
name: "职工医疗保险金额",
type: "line",
stack: "Total",
symbol: "emptyCircle",
symbolSize: 10,
itemStyle: {
borderColor: "#00FCFF",
borderWidth: 1,
color: "#00FCFF",
},
data: [120, 132, 101, 134, 90],
},
{
name: "城乡医疗保险金额",
type: "line",
stack: "Total",
symbol: "emptyCircle",
symbolSize: 10,
itemStyle: {
borderColor: "#2468FF",
borderWidth: 1,
color: "#2468FF",
},
data: [150, 232, 201, 154, 190],
},
],
};
// 使
onMounted(() => {
// domecharts
// var myChart = echarts.init(document.getElementById('main'));
// Vue3
var myChart = echarts.init(chart.value);
// init(); // vue3.2this
// 使
myChart.setOption(option);
// :
// window.addEventListener("resize", () => {
// myChart.resize();
// });
});
</script>
<style scoped>
</style>

View File

@ -1,273 +1,315 @@
<template>
<div class="module">
<div class="module_left">
<div class="displayFlex">
<div class="flex1">
<div class="yd_title">
<span class="text">助乡兴趣点</span>
</div>
<ePie></ePie>
</div>
<div class="flex1">
<div class="yd_title">
<span class="text">基本信息</span>
</div>
<div class="basicInformation">
<div class="basicInformation_item">
<img class="icon" src="../assets/img_01.png" alt="" />
<div class="right">
<div class="label">
<span>学历</span>
</div>
<p>浙江大学研究生</p>
</div>
</div>
<div class="basicInformation_item">
<img class="icon" src="../assets/img_01.png" alt="" />
<div class="right">
<div class="label">
<span>性格</span>
</div>
<p>沉稳</p>
</div>
</div>
<div class="basicInformation_item">
<img class="icon" src="../assets/img_01.png" alt="" />
<div class="right">
<div class="label">
<span>分类</span>
</div>
<p>乡贤代表</p>
</div>
</div>
<div class="basicInformation_item">
<img class="icon" src="../assets/img_01.png" alt="" />
<div class="right">
<div class="label">
<span>所属行业</span>
</div>
<p>计算机<br />应用专家</p>
</div>
</div>
<div class="basicInformation_item">
<img class="icon" src="../assets/img_01.png" alt="" />
<div class="right">
<div class="label">
<span>家属情况</span>
</div>
<p>父母去世姨妈 在象</p>
</div>
</div>
<div class="basicInformation_item">
<img class="icon" src="../assets/img_01.png" alt="" />
<div class="right">
<div class="label">
<span>对乡情感</span>
</div>
<p>积极参与</p>
</div>
</div>
</div>
<div class="displayFlex left_bg">
<div class="flex1" style="flex: 0.8">
<div class="yd_title left_1">
<span class="text">
<img
v-if="leftchoose.first == '1'"
src="@/assets/images/hygiene/yb_1.png"
style="width: 130px; height: 30px; cursor: pointer"
/>
<img
v-else
src="@/assets/images/hygiene/yb_1_1.png"
style="width: 130px; height: 30px; cursor: pointer"
@click="change('first', '1')"
/>
<img
v-if="leftchoose.first == '2'"
src="@/assets/images/hygiene/yb_2.png"
style="width: 130px; height: 30px; cursor: pointer"
/>
<img
v-else
src="@/assets/images/hygiene/yb_1_1.png"
style="width: 130px; height: 30px; cursor: pointer"
@click="change('first', '2')"
/>
</span>
</div>
<ePie v-if="leftchoose.first == '1'"></ePie>
<ePie2 v-else></ePie2>
</div>
<div class="displayFlex">
<div class="flex1">
<div class="yd_title">
<span class="text">活动数据分析</span>
</div>
<eGraph></eGraph>
</div>
<div class="flex1">
<div class="yd_title">
<span class="text">走访日志</span>
</div>
<div class="visitLog">
<div class="visitLog_item">
<img
src="../assets/img_02.png"
width="48px"
height="51px"
alt=""
/>
<div class="visitLog_item_box">
<h4>故居走访</h4>
<p>走访人员陈思思</p>
<p>走访时间2023-03-19 09:00:03</p>
</div>
<span class="check">点击查看</span>
</div>
<div class="visitLog_item">
<img
src="../assets/img_02.png"
width="48px"
height="51px"
alt=""
/>
<div class="visitLog_item_box">
<h4>节日走访</h4>
<p>走访人员陈思思</p>
<p>走访时间2023-03-19 09:00:03</p>
</div>
<span class="check">点击查看</span>
</div>
<div class="visitLog_item">
<img
src="../assets/img_02.png"
width="48px"
height="51px"
alt=""
/>
<div class="visitLog_item_box">
<h4>新年走访</h4>
<p>走访人员陈思思</p>
<p>走访时间2023-03-19 09:00:03</p>
</div>
<span class="check">点击查看</span>
</div>
</div>
</div>
<div class="flex1" style="margin-top: 10px">
<div class="yd_title left_2"></div>
<eP2></eP2>
</div>
<div class="displayFlex">
<div class="flex1">
<div class="yd_title">
<span class="text">个人经历</span>
</div>
<div class="history">
<p>2002年至2009年担任浙江大学计算机学院和软件学院院长</p>
<p>1984年获得浙江大学计算机应用专业硕士学位之后留校任教</p>
<p>1990年获得浙江大学计算机应用专业博士学位</p>
<p>1994年至1996年担任浙江大学计算机系副系主任</p>
<p>1997年至2002年担任浙江大学计算机系系主任</p>
<p>2002年至2009年担任浙江大学计算机学院和软件学院院长</p>
</div>
</div>
<div class="flex1">
<div class="yd_title">
<span class="text">职位</span>
</div>
<eBubble></eBubble>
</div>
<div class="flex1" style="margin-top: 10px">
<div class="yd_title left_3"></div>
<eP3></eP3>
</div>
<div></div>
</div>
<!-- <div class="module_right">
<div class="flex1">
<div class="yd_title">
<span class="text">关注标签</span>
<div class="displayFlex center_bg">
<div class="flex1" style="flex: 0.8">
<div class="yd_title center_1"></div>
<div class="minTopPart">
<div class="mtpImg1"></div>
<div class="mtpImg2"></div>
<div class="mtpText2">33.67</div>
</div>
<div class="concernLabel">
<span>计算机</span>
<span>大数据</span>
<span>互联网</span>
</div>
</div>
<div class="flex1">
<div class="yd_title">
<span class="text">助乡属性</span>
</div>
<div class="property">
<div class="property_box">
<h5>助乡方式</h5>
<p>科技助乡</p>
</div>
<div class="property_box">
<h5>助乡意向</h5>
<p>积极</p>
</div>
</div>
<div class="activity">
<h5>助乡活动</h5>
<div class="activity_content">
<div class="activity_box">
<p>
2021.2象山县委统战部和象山电视台工作人员前往杭州浙江大学拍摄天南地北象山人
</p>
<div class="minTopPart2">
<div class="left">
<div class="leftImg"><eP4></eP4></div>
<div class="left_me">
<div>建档率</div>
<div>92.96%</div>
</div>
<div class="activity_box">
<p>
2020.8.29陈纯院士参加在象山举办的浙江省海外高层次人才联谊会并作院士报告
</p>
</div>
<div class="right">
<div class="rightImg"></div>
<div class="right_me">
<div>家庭医生</div>
<div>2000</div>
</div>
</div>
</div>
</div>
<div class="flex1">
<div class="yd_title">
<span class="text">信息监测</span>
</div>
<div class="monitor">
<div class="monitor_box">
<img src="../assets/img_10.png" alt="" />
<div class="monitor_box_text">
<h4>智汇青春 有梦当燃这场全国大赛决赛在西子湖畔收官</h4>
<p>2023-03-18</p>
</div>
</div>
<div class="monitor_box">
<img src="../assets/img_09.png" alt="" />
<div class="monitor_box_text">
<h4>智汇青春 有梦当燃这场全国大赛决赛在西子湖畔收官</h4>
<p>2023-03-18</p>
</div>
</div>
<div class="flex1" style="margin-top: 20px">
<div class="yd_title familyPlanning"></div>
<!-- 计划生育 -->
<!-- <div style="width: 100%; "> -->
<eP5></eP5>
<!-- </div> -->
</div>
</div>
<div class="displayFlex right_bg">
<div class="flex1" style="flex:0.9">
<div class="yd_title mechanism"></div>
<eP6></eP6>
</div>
<div class="flex1" style="flex:1.1;">
<div class="yd_title service"></div>
<eP7></eP7>
</div>
<div >
<div class="yd_title last"></div>
<div class="table">
<div class="item" >3月2日健康日在龙中公园进行健康活动宣</div>
<div class="item" >3月2日健康日在龙中公园进行健康活动宣</div>
<div class="item" >3月2日健康日在龙中公园进行健康活动宣</div>
<div class="item" >3月2日健康日在龙中公园进行健康活动宣</div>
<div class="item" >3月2日健康日在龙中公园进行健康活动宣</div>
</div>
</div>
</div> -->
</div>
</div>
</template>
<script setup>
// import eBubble from "./echarts/bubble.vue";
// import ePie from "./echarts/pie.vue";
// import ePie2 from "./echarts/pie2.vue";
// import eGraph from "./echarts/graph.vue";
import ePie from "./echarts_hygiene/pie.vue";
import ePie2 from "./echarts_hygiene/pie2.vue";
import eP2 from "./echarts_hygiene/eP2.vue";
import eP3 from "./echarts_hygiene/eP3.vue";
import eP7 from "./echarts_hygiene/eP7.vue";
import eP6 from "./echarts_hygiene/eP6.vue";
import eP5 from "./echarts_hygiene/eP5.vue";
import eP4 from "./echarts_hygiene/eP4.vue";
import { ref, onMounted, onBeforeMount } from "vue";
const leftchoose = ref({
first: "1",
second: "1",
third: "1",
});
const change = (name, index) => {
leftchoose.value[name] = index;
};
</script>
<style lang="scss" scoped>
.displayFlex {
box-sizing: border-box;
height: 100%;
display: flex;
flex-direction: column;
width: 100%;
// flex: 1;
width: 33.333333333%;
}
.flex1 {
flex: 1;
padding: 0 38px;
// padding: 0 28px;
box-sizing: border-box;
}
.flex2 {
// flex: 1;
// padding: 0 38px;
box-sizing: border-box;
}
.module {
display: flex;
.module_left {
display: flex;
}
// .module_right {
// flex: 0 0 25%;
// }
width: 100%;
height: calc(100vh - 112px);
}
.yd_title {
background-image: url(@/assets/img_04.png);
background-repeat: no-repeat;
background-size: 100% 100%;
// background-image: url(@/assets/img_04.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
box-sizing: border-box;
width: 100%;
width: 94%;
height: 36px;
position: relative;
.text {
display: flex;
position: absolute;
font-size: 16px;
font-family: SourceHanSansCN;
font-weight: bold;
color: #ffffff;
position: absolute;
left: 33px;
right: 5px;
top: 3px;
}
}
.familyPlanning {
background-image: url(@/assets/images/hygiene/center_title_2.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.mechanism {
background-image: url(@/assets/images/hygiene/right_title_1.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.service {
background-image: url(@/assets/images/hygiene/right_title_2.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.last {
background-image: url(@/assets/images/hygiene/right_title_3.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.serviceBox {
display: flex;
flex-direction: column;
box-sizing: border-box;
.serviceimg {
width: 182px;
height: 35px;
}
.serviceTop {
display: flex;
justify-content: space-between;
padding: 10px 36px 0px 20px;
box-sizing: border-box;
.visit {
display: flex;
flex-direction: column;
align-items: center;
}
.medicalService {
display: flex;
flex-direction: column;
align-items: center;
.ylimg {
width: 200px;
height: 220px;
}
.medicalServiceTop {
position: relative;
span {
position: absolute;
left: 39px;
top: 35%;
font-weight: bold;
font-size: 32px;
color: #ffffff;
line-height: 41px;
letter-spacing: 1px;
text-align: center;
font-style: normal;
font-family: DINAlternate, DINAlternate;
}
}
}
}
}
.mealAssistance {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.mealAssistanceimg {
width: 495px;
height: 35px;
}
}
.left_1 {
background-image: url(@/assets/images/hygiene/left_title_1.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left_2 {
background-image: url(@/assets/images/hygiene/left_title_2.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left_3 {
background-image: url(@/assets/images/hygiene/left_title_3.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.center_1 {
background-image: url(@/assets/images/hygiene/center_title_1.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left_bg {
width: 642px;
// height: 100%;
box-sizing: border-box;
padding-left: 50px;
margin-right: 28px;
background-image: url(@/assets/images/left_bg.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.center_bg {
width: 582px;
// height: 100%;
box-sizing: border-box;
padding-left: 10px;
margin-right: 28px;
background-image: url(@/assets/images/center_bg.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.right_bg {
width: 642px;
box-sizing: border-box;
padding-left: 10px;
margin-right: 28px;
background-image: url(@/assets/images/right_bg.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.basicInformation {
display: flex;
flex-direction: row;
flex-wrap: wrap;
padding-top: 22px;
.basicInformation_item {
flex: 0 0 50%;
padding: 0 2px;
@ -276,10 +318,12 @@
box-sizing: border-box;
display: flex;
align-items: center;
.icon {
width: 79px;
height: 47px;
}
.right {
margin-left: 4px;
@ -289,6 +333,7 @@
background-repeat: no-repeat;
background-position: bottom;
margin-bottom: 4px;
span {
font-size: 12px;
font-weight: 400;
@ -297,6 +342,7 @@
margin-left: 2px;
}
}
p {
font-size: 16px;
font-weight: bold;
@ -316,12 +362,15 @@
margin-top: 16px;
padding: 15px 8px;
box-sizing: border-box;
img {
display: inline-block;
margin-right: 10px;
}
.visitLog_item_box {
flex: auto;
h4 {
font-size: 18px;
font-family: MicrosoftYaHei;
@ -329,6 +378,7 @@
color: #0096ff;
margin-bottom: 2px;
}
p {
font-size: 12px;
font-family: SourceHanSansCN;
@ -337,6 +387,7 @@
margin-top: 6px;
}
}
.check {
font-size: 12px;
font-family: SourceHanSansCN;
@ -349,6 +400,42 @@
.history {
padding-top: 12px;
display: flex;
justify-content: space-around;
.history1 {
font-size: 26px;
color: #ffffff;
line-height: 30px;
letter-spacing: 1px;
text-align: center;
font-style: normal;
font-family: PangMenZhengDao;
display: flex;
flex-direction: column;
align-items: center;
.unit {
font-weight: 500;
font-size: 14px;
color: #9cdeff;
line-height: 20px;
text-align: left;
font-style: normal;
font-family: PingFangSC, PingFang SC;
}
.historyimg {
width: 182px;
height: 35px;
}
}
img {
width: 154px;
height: 136px;
}
p {
margin-top: 12px;
font-size: 12px;
@ -364,6 +451,7 @@
align-items: center;
justify-content: center;
margin: 12px 0 20px;
span {
text-align: center;
background: rgba(0, 89, 130, 0.73);
@ -377,9 +465,11 @@
margin: 0 10px;
}
}
.property {
display: flex;
padding: 14px 0 10px;
.property_box {
background-image: url(@/assets/img_05.png);
background-size: 100% 100%;
@ -388,12 +478,14 @@
height: 91px;
margin: 0 12px;
text-align: center;
h5 {
font-size: 14px;
font-weight: 400;
color: #ffffff;
margin: 9px 0 16px;
}
p {
font-size: 21px;
font-weight: bold;
@ -401,6 +493,7 @@
}
}
}
.activity {
h5 {
font-size: 14px;
@ -410,9 +503,11 @@
border-bottom: 2px solid rgba(0, 164, 250, 1);
margin-bottom: 17px;
}
.activity_content {
margin: 0 -6px 12px;
display: flex;
.activity_box {
width: 50%;
display: inline-block;
@ -420,6 +515,7 @@
box-sizing: border-box;
background-color: rgba(15, 28, 54, 1);
padding: 12px 12px 19px;
p {
font-size: 14px;
font-weight: 400;
@ -430,26 +526,31 @@
}
}
}
.monitor {
.monitor_box {
display: flex;
padding: 8px 0;
border-bottom: 2px solid rgba(255, 255, 255, 0.67);
img {
width: 115px;
height: 84px;
margin-right: 21px;
}
.monitor_box_text {
display: flex;
flex-direction: column;
justify-content: space-between;
h4 {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 20px;
}
p {
font-size: 14px;
font-weight: 400;
@ -459,4 +560,108 @@
}
}
}
.minTopPart {
width: 498px;
height: 99px;
background-image: url(@/assets/images/hygiene/shang.png);
background-repeat: no-repeat;
background-size: 100% 100%;
margin: 50px auto;
position: relative;
.mtpImg1 {
width: 152px;
height: 164px;
background-image: url(@/assets/images/hygiene/shang_left.png);
background-repeat: no-repeat;
background-size: 100% 100%;
position: absolute;
top: -30px;
left: 63px;
}
.mtpImg2 {
width: 140px;
height: 24px;
background-image: url(@/assets/minTop2.png);
background-repeat: no-repeat;
background-size: 100% 100%;
position: absolute;
top: 59px;
right: 50px;
}
.mtpText2 {
width: 140px;
height: 30px;
position: absolute;
top: 14px;
right: 50px;
text-align: center;
line-height: 30px;
font-weight: 600;
font-size: 26px;
color: #ffffff;
}
}
.minTopPart2 {
width: 498px;
height: 118px;
background-image: url(@/assets/images/hygiene/xia.png);
background-repeat: no-repeat;
background-size: 100% 100%;
margin: 0px auto;
position: relative;
display: flex;
margin-top: 80px;
.left {
display: flex;
align-items: center;
justify-content: center;
margin-left: 60px;
margin-top: -10px;
.leftImg {
width: 105px;
height: 105px;
}
.left_me {
margin-left: 10px;
display: flex;
flex-direction: column;
color: #ccc;
}
}
.right {
display: flex;
align-items: center;
// justify-content: center;
margin-left: 40px;
.rightImg {
width: 81px;
height: 81px;
background-image: url(@/assets/images/hygiene/xia_right.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.right_me {
margin-left: 10px;
display: flex;
flex-direction: column;
color: #ccc;
}
}
}
.table {
width: 95%;
height: 200px;
height: calc(100% - 75px);
// background: red;
overflow-y: auto;
.item {
margin-top: 10px;
padding: 16px 20px;
background-image: url(@/assets/images/hygiene/table_bg.png);
background-repeat: no-repeat;
background-size: 100% 100%;
color: #ffffff;
}
}
</style>