Merge branch 'main' of git.zdool.com:xs/ggfwjsc
This commit is contained in:
commit
c0f38a1d10
Binary file not shown.
After Width: | Height: | Size: 112 KiB |
Binary file not shown.
After Width: | Height: | Size: 112 KiB |
|
@ -0,0 +1,259 @@
|
|||
<template>
|
||||
<div ref="chart" style="width: 100%; height: 260px"></div>
|
||||
</template>
|
||||
|
||||
<script setup >
|
||||
import { onMounted, reactive, ref, onBeforeMount, defineProps } from "vue";
|
||||
// 局部引入echarts核心模块
|
||||
import * as echarts from "echarts";
|
||||
|
||||
const props = defineProps({
|
||||
list: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
year: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
});
|
||||
const data = reactive({
|
||||
list: [],
|
||||
wgcs: [100,140,230,100,130],
|
||||
wgje: [150,100,200,14,100],
|
||||
year: [2020,2021,2022,2023,2024],
|
||||
option: {},
|
||||
bg: [0,0,0,0,0],
|
||||
});
|
||||
|
||||
const chart = ref(); // 创建DOM引用
|
||||
|
||||
const getOption = () => {
|
||||
data.option = {
|
||||
|
||||
tooltip: {
|
||||
trigger: "axis",
|
||||
formatter: "{b0}<br />{a1}:{c1}次 <br />{a3}:{c3}万元 ",
|
||||
},
|
||||
legend: {
|
||||
data: ["违规次数", "违规金额"],
|
||||
top: "6%",
|
||||
right: "11%",
|
||||
textStyle: {
|
||||
fontSize: 16,
|
||||
color: "#ffffff",
|
||||
},
|
||||
},
|
||||
grid: {
|
||||
top: "23%",
|
||||
left: "1%",
|
||||
right: "10%",
|
||||
bottom: "5%",
|
||||
containLabel: true,
|
||||
},
|
||||
calculable: true,
|
||||
xAxis: [
|
||||
{
|
||||
type: "category",
|
||||
axisLabel: {
|
||||
//坐标轴刻度标签的相关设置
|
||||
textStyle: {
|
||||
color: "#ffffff",
|
||||
fontSize: 16,
|
||||
},
|
||||
},
|
||||
data: data.year,
|
||||
},
|
||||
{
|
||||
axisTick: false,
|
||||
type: "category",
|
||||
data: data.year,
|
||||
axisLabel: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
yAxis: [
|
||||
{
|
||||
type: "value",
|
||||
splitLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: "rgba(226, 226, 226, 0.3)",
|
||||
width: 1,
|
||||
},
|
||||
},
|
||||
axisLabel: {
|
||||
//坐标轴刻度标签的相关设置
|
||||
textStyle: {
|
||||
color: "#ffffff",
|
||||
fontSize: 16,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
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: 16,
|
||||
fontFamily: "MicrosoftYaHei",
|
||||
color: "#ffffff",
|
||||
lineHeight: 19,
|
||||
},
|
||||
},
|
||||
],
|
||||
series: [
|
||||
{
|
||||
z: 1,
|
||||
name: "上部1",
|
||||
type: "pictorialBar",
|
||||
symbolPosition: "end",
|
||||
data: data.wgcs,
|
||||
symbol: "diamond",
|
||||
symbolOffset: ["-55%", "-50%"],
|
||||
symbolSize: [15, 10],
|
||||
itemStyle: {
|
||||
borderColor: "#2fffa4",
|
||||
color: "rgba(142, 187, 255, 1)",
|
||||
},
|
||||
},
|
||||
{
|
||||
z: 1,
|
||||
name: "违规次数",
|
||||
type: "bar",
|
||||
barGap: 0.3 /*多个并排柱子设置柱子之间的间距*/,
|
||||
data: data.wgcs,
|
||||
barWidth: "30%",
|
||||
label: {
|
||||
show: true,
|
||||
color: "#ffffff",
|
||||
position: "top",
|
||||
},
|
||||
itemStyle: {
|
||||
color: {
|
||||
type: "linear",
|
||||
x: 0,
|
||||
x2: 1,
|
||||
y: 0,
|
||||
y2: 0,
|
||||
colorStops: [
|
||||
{ offset: 0, color: "rgba(142, 187, 255, .7)" },
|
||||
{ offset: 0.5, color: "rgba(142, 187, 255, .7)" },
|
||||
{ offset: 0.5, color: "rgba(142, 187, 255, .3)" },
|
||||
{ offset: 1, color: "rgba(142, 187, 255, .5)" },
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
z: 2,
|
||||
name: "上部1",
|
||||
type: "pictorialBar",
|
||||
symbolPosition: "end",
|
||||
data: data.wgje,
|
||||
symbol: "diamond",
|
||||
symbolOffset: ["62%", "-50%"],
|
||||
symbolSize: [15, 10],
|
||||
itemStyle: {
|
||||
borderColor: "#32ffee",
|
||||
color: "rgba(23, 237, 255, 1)",
|
||||
},
|
||||
},
|
||||
{
|
||||
z: 2,
|
||||
name: "违规金额",
|
||||
type: "bar",
|
||||
barGap: 0.3 /*多个并排柱子设置柱子之间的间距*/,
|
||||
data: data.wgje,
|
||||
barWidth: "30%",
|
||||
label: {
|
||||
show: true,
|
||||
color: "#ffffff",
|
||||
position: "top",
|
||||
formatter: function (data) {
|
||||
return data.value + "万";
|
||||
},
|
||||
},
|
||||
// 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)",
|
||||
// },
|
||||
// ]),
|
||||
// },
|
||||
itemStyle: {
|
||||
color: {
|
||||
type: "linear",
|
||||
x: 0,
|
||||
x2: 1,
|
||||
y: 0,
|
||||
y2: 0,
|
||||
colorStops: [
|
||||
{ offset: 0, color: "rgba(23, 237, 255, .7)" },
|
||||
{ offset: 0.5, color: "rgba(23, 237, 255, .7)" },
|
||||
{ offset: 0.5, color: "rgba(23, 237, 255, .3)" },
|
||||
{ offset: 1, color: "rgba(23, 237, 255, .5)" },
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
type: "bar",
|
||||
xAxisIndex: 1,
|
||||
yAxisIndex: 1,
|
||||
itemStyle: {
|
||||
color: "rgba(221, 242, 255, 0.1)",
|
||||
},
|
||||
data: data.bg.map(() => 100),
|
||||
barWidth: 40,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
const setChart = () => {
|
||||
// Vue3中: 需要引入
|
||||
var myChart = echarts.init(chart.value);
|
||||
|
||||
// 使用刚指定的配置项和数据显示图表。
|
||||
myChart.setOption(data.option);
|
||||
};
|
||||
|
||||
onBeforeMount(() => {
|
||||
setTimeout(() => {
|
||||
// data.list = props.list;
|
||||
// data.year = props.year;
|
||||
// data.list.forEach((item) => {
|
||||
// data.zgffrc.push((item.zgffrc / 10000).toFixed(0));
|
||||
// data.cxffrc.push((item.cxffrc / 10000).toFixed(0));
|
||||
// // data.bg.push("");
|
||||
// });
|
||||
// console.log(data.zgffrc,data.cxffrc);
|
||||
getOption();
|
||||
setChart();
|
||||
}, 600);
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
|
@ -0,0 +1,161 @@
|
|||
<template>
|
||||
<div ref="chart" style="width: 100%; height: 260px"></div>
|
||||
</template>
|
||||
|
||||
<script setup >
|
||||
import { onMounted, reactive, ref, onBeforeMount, defineProps } from "vue";
|
||||
// 局部引入echarts核心模块
|
||||
import * as echarts from "echarts";
|
||||
|
||||
const props = defineProps({
|
||||
list: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
year: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
});
|
||||
const chart = ref(); // 创建DOM引用
|
||||
const data = reactive({
|
||||
list: [6280,5924,1824],
|
||||
year: [2022,2023,2024],
|
||||
bg:[0,0,0],
|
||||
option: {},
|
||||
});
|
||||
|
||||
const getOption = () => {
|
||||
data.option = {
|
||||
|
||||
tooltip: {
|
||||
trigger: "axis",
|
||||
padding: [20, 10, 20, 10],
|
||||
formatter: "{b0}<br />{a0}:{c0} ",
|
||||
},
|
||||
grid: {
|
||||
top: "5%",
|
||||
left: "1%",
|
||||
right: "10%",
|
||||
bottom: "3%",
|
||||
containLabel: true,
|
||||
},
|
||||
|
||||
xAxis: {
|
||||
type: "category",
|
||||
// boundaryGap: false,
|
||||
data: data.year,
|
||||
// splitArea: {
|
||||
// show: true,
|
||||
// interval: '10',
|
||||
// areaStyle: {
|
||||
// color: ["rgba(255, 255, 255, 0.10)"],
|
||||
// width:10,
|
||||
// },
|
||||
// },
|
||||
axisLabel: {
|
||||
//坐标轴刻度标签的相关设置
|
||||
textStyle: {
|
||||
color: "#ffffff",
|
||||
fontSize: 16,
|
||||
},
|
||||
},
|
||||
},
|
||||
yAxis: {
|
||||
type: "value",
|
||||
splitLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: "rgba(226, 226, 226, 0.3)",
|
||||
width: 1,
|
||||
},
|
||||
},
|
||||
axisLabel: {
|
||||
//坐标轴刻度标签的相关设置
|
||||
textStyle: {
|
||||
color: "#ffffff",
|
||||
fontSize: 16,
|
||||
},
|
||||
},
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: "手工零星报销人数",
|
||||
type: "line",
|
||||
stack: "Total",
|
||||
symbol: "emptyCircle",
|
||||
|
||||
symbolSize: 10,
|
||||
label: {
|
||||
show: true,
|
||||
color: "#ffffff",
|
||||
position:'top',
|
||||
formatter: function (data) {
|
||||
return data.value;
|
||||
},
|
||||
},
|
||||
itemStyle: {
|
||||
borderColor: "#00FCFF",
|
||||
borderWidth: 1,
|
||||
color: "#00FCFF",
|
||||
},
|
||||
// areaStyle: {
|
||||
// color: "#F4F65B",
|
||||
// normal: {
|
||||
// //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
|
||||
// color: new echarts.graphic.LinearGradient(
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 1,
|
||||
// [
|
||||
// {
|
||||
// offset: 0,
|
||||
// // color: 'RGBA(184, 204, 241, 1)'
|
||||
// color: "rgba(0, 252, 255, 0.50)",
|
||||
// },
|
||||
// {
|
||||
// offset: 1,
|
||||
// color: "rgba(0, 252, 255, 0)",
|
||||
// },
|
||||
// ],
|
||||
// false
|
||||
// ),
|
||||
// shadowBlur: 0, //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
|
||||
// },
|
||||
// },
|
||||
|
||||
data: data.list,
|
||||
},
|
||||
{
|
||||
name: "背景",
|
||||
type: "bar",
|
||||
data: data.bg,
|
||||
showBackground: true,
|
||||
backgroundStyle: {
|
||||
color: "rgba(180, 180, 180, 0.2)",
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
const setChart = () => {
|
||||
// Vue3中: 需要引入
|
||||
var myChart = echarts.init(chart.value);
|
||||
|
||||
// 使用刚指定的配置项和数据显示图表。
|
||||
myChart.setOption(data.option);
|
||||
};
|
||||
|
||||
onBeforeMount(() => {
|
||||
setTimeout(() => {
|
||||
// data.list = props.list;
|
||||
// data.year = props.year;
|
||||
getOption();
|
||||
setChart();
|
||||
}, 600);
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="module">
|
||||
<div class="displayFlex left_bg">
|
||||
<div class="flex1" style="flex: 0.5">
|
||||
<div class="flex1">
|
||||
<div class="yd_title left_1">
|
||||
<div class="animate-border">
|
||||
<i></i>
|
||||
|
@ -9,7 +9,7 @@
|
|||
</div>
|
||||
<span class="text">
|
||||
<img
|
||||
v-if="leftchoose.first == '1' "
|
||||
v-if="leftchoose.first == '1'"
|
||||
src="@/assets/images/hygiene/yb_1.png"
|
||||
class="c"
|
||||
style="width: 160px"
|
||||
|
@ -44,19 +44,42 @@
|
|||
:list="data.medicalInsurance.ffje"
|
||||
:year="data.medicalInsurance.year"
|
||||
></ePie2>
|
||||
<div></div>
|
||||
<div class="left_1_xia">
|
||||
<!-- <div class="left_1_xia_item">
|
||||
<ePie3
|
||||
:list="data.medicalInsurance.ffrc"
|
||||
:year="data.medicalInsurance.year"
|
||||
></ePie3>
|
||||
<div class="historyimg">医保基金监管</div>
|
||||
</div> -->
|
||||
<div class="left_1_xia_item">
|
||||
<ePie4 :list="data.lmb.gxyrs" :year="data.lmb.year"></ePie4>
|
||||
<div class="historyimg">手工零星报销人数</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex1" style="margin-top: 10px">
|
||||
<div class="yd_title left_3">
|
||||
<div class="yd_title " :class="lmb=='糖尿病'? 'left_3': 'left_3_1'" @click="lmbqh">
|
||||
<!-- <div class="qh" @click="lmbqh">{{ lmb }}</div> -->
|
||||
<div class="animate-border">
|
||||
<i></i>
|
||||
<i></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sm_title_1"></div>
|
||||
<tnb :list="data.lmb.tnbrs" :year="data.lmb.year" v-if="showEchart"></tnb>
|
||||
<div class="sm_title_2"></div>
|
||||
<gxy :list="data.lmb.gxyrs" :year="data.lmb.year" v-if="showEchart"></gxy>
|
||||
<div class="sm_title_1" v-if="lmb != '糖尿病'"></div>
|
||||
<tnb
|
||||
:list="data.lmb.tnbrs"
|
||||
:year="data.lmb.year"
|
||||
v-if="showEchart && lmb != '糖尿病'"
|
||||
></tnb>
|
||||
<div class="sm_title_2" v-if="lmb != '高血压'"></div>
|
||||
<gxy
|
||||
:list="data.lmb.gxyrs"
|
||||
:year="data.lmb.year"
|
||||
v-if="showEchart && lmb != '高血压'"
|
||||
></gxy>
|
||||
</div>
|
||||
</div>
|
||||
<div class="displayFlex center_bg">
|
||||
|
@ -177,7 +200,11 @@
|
|||
<i></i>
|
||||
</div>
|
||||
</div>
|
||||
<eP7 :list="data.jktj.jktjrs" :year="data.jktj.year" v-if="showEchart"></eP7>
|
||||
<eP7
|
||||
:list="data.jktj.jktjrs"
|
||||
:year="data.jktj.year"
|
||||
v-if="showEchart"
|
||||
></eP7>
|
||||
</div>
|
||||
<div class="flex1">
|
||||
<div class="yd_title last">
|
||||
|
@ -205,6 +232,8 @@
|
|||
<script setup>
|
||||
import ePie from "./echarts_hygiene/pie.vue";
|
||||
import ePie2 from "./echarts_hygiene/pie2.vue";
|
||||
import ePie3 from "./echarts_hygiene/pie3.vue";
|
||||
import ePie4 from "./echarts_hygiene/pie4.vue";
|
||||
import eP2 from "./echarts_hygiene/eP2.vue";
|
||||
import eP3 from "./echarts_hygiene/eP3.vue";
|
||||
import eP7 from "./echarts_hygiene/eP7.vue";
|
||||
|
@ -216,12 +245,21 @@ import tnb from "./echarts_hygiene/tnb.vue";
|
|||
import gxy from "./echarts_hygiene/gxy.vue";
|
||||
import { ref, reactive, onMounted, onBeforeMount } from "vue";
|
||||
import http from "@/utils/request.js";
|
||||
const showEchart=ref(false)
|
||||
const lmb = ref("高血压");
|
||||
const showEchart = ref(false);
|
||||
const leftchoose = ref({
|
||||
first: "1",
|
||||
second: "1",
|
||||
third: "1",
|
||||
});
|
||||
const lmbqh = () => {
|
||||
if (lmb.value == "高血压") {
|
||||
lmb.value = "糖尿病";
|
||||
} else {
|
||||
lmb.value = "高血压";
|
||||
}
|
||||
console.log(lmb.value);
|
||||
};
|
||||
const change = (name, index) => {
|
||||
leftchoose.value[name] = index;
|
||||
};
|
||||
|
@ -272,9 +310,9 @@ onBeforeMount(async () => {
|
|||
getData();
|
||||
});
|
||||
onMounted(() => {
|
||||
setTimeout(()=>{
|
||||
startAutoScroll();
|
||||
},600)
|
||||
setTimeout(() => {
|
||||
startAutoScroll();
|
||||
}, 600);
|
||||
|
||||
// console.log(
|
||||
// mainRef.value.scrollTop,
|
||||
|
@ -293,7 +331,7 @@ const getData = async () => {
|
|||
data.fyglrs = res.data.fyglrs;
|
||||
data.jktj = res.data.jktj;
|
||||
data.jkhd = res.data.jkhd;
|
||||
showEchart.value=true;
|
||||
showEchart.value = true;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
@ -419,7 +457,6 @@ const getData = async () => {
|
|||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes one {
|
||||
0% {
|
||||
left: -100%;
|
||||
|
@ -550,7 +587,30 @@ const getData = async () => {
|
|||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.left_1_xia {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.left_1_xia_item {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.historyimg {
|
||||
margin-top: 10px;
|
||||
padding: 0 25px;
|
||||
background-image: url(@/assets/images/hygiene/xtgl_1.png);
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
font-size: 15px;
|
||||
color: #ffffff;
|
||||
line-height: 21px;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
// .left_2 {
|
||||
// background-image: url(@/assets/images/hygiene/left_title_2.png);
|
||||
// background-repeat: no-repeat;
|
||||
|
@ -558,9 +618,16 @@ const getData = async () => {
|
|||
// }
|
||||
|
||||
.left_3 {
|
||||
background-image: url(@/assets/images/hygiene/new_lmb.png);
|
||||
background-image: url(@/assets/images/hygiene/gxy_new.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
.left_3_1 {
|
||||
background-image: url(@/assets/images/hygiene/tnb_new.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.center_1 {
|
||||
|
@ -1141,7 +1208,7 @@ const getData = async () => {
|
|||
background-image: url(@/assets/images/hygiene/tnbrs.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
margin-top: 25px;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.sm_title_2 {
|
||||
|
|
Loading…
Reference in New Issue