This commit is contained in:
duanxiaohai 2024-07-13 14:38:42 +08:00
commit 33b173447d
11 changed files with 340 additions and 39 deletions

View File

@ -144,6 +144,7 @@
<!-- <img src="@/assets/images/sjfx/right3D.png" alt="" class="right3d" /> --> <!-- <img src="@/assets/images/sjfx/right3D.png" alt="" class="right3d" /> -->
<right2 <right2
:list="data.analysis.push" :list="data.analysis.push"
@shuju="chooseXX"
v-if="showEchart && tab_choose[0].choose == '信息推送'" v-if="showEchart && tab_choose[0].choose == '信息推送'"
></right2> ></right2>
<ylXZZC <ylXZZC
@ -179,6 +180,12 @@
@close="close1" @close="close1"
> >
</DialogElderly> </DialogElderly>
<DialogMap
:dialogShowMap="dialogShowMap"
:title="mapTitle"
@close="close"
>
</DialogMap>
</div> </div>
</template> </template>
@ -193,6 +200,7 @@ import {
} from "vue"; } from "vue";
import DialogEnrol from "./dialog/dialogEnrol.vue"; import DialogEnrol from "./dialog/dialogEnrol.vue";
import DialogElderly from "./dialog/diaLogElderlyData.vue"; import DialogElderly from "./dialog/diaLogElderlyData.vue";
import DialogMap from "./dialog/dialogMap.vue";
import right2 from "./echart_analyze/right2.vue"; import right2 from "./echart_analyze/right2.vue";
import right1 from "./echart_analyze/right1.vue"; import right1 from "./echart_analyze/right1.vue";
import jypx from "./echart_analyze/jypx.vue"; import jypx from "./echart_analyze/jypx.vue";
@ -213,11 +221,13 @@ import ViewDataimg2 from "@/assets/images/sjfx/sjfx2.png";
import ViewDataimg3 from "@/assets/images/sjfx/sjfx3.png"; import ViewDataimg3 from "@/assets/images/sjfx/sjfx3.png";
import jypx1 from "@/assets/images/sjfx/pxrc.png"; import jypx1 from "@/assets/images/sjfx/pxrc.png";
import jypx2 from "@/assets/images/sjfx/gygws.png"; import jypx2 from "@/assets/images/sjfx/gygws.png";
import Map from "./echart_analyze/map.vue";
const showR = ref(false); //loading const showR = ref(false); //loading
// //
const dialogShowEnrol = ref(false); const dialogShowEnrol = ref(false);
const dialogShowElderly = ref(false); const dialogShowElderly = ref(false);
const dialogShowMap = ref(false);
const mapTitle = ref("");
const dataTab = reactive({ const dataTab = reactive({
url: "", url: "",
title: "", title: "",
@ -446,6 +456,7 @@ const showEnrol = () => {
}; };
const close = () => { const close = () => {
dialogShowEnrol.value = false; dialogShowEnrol.value = false;
dialogShowMap.value = false;
}; };
const showEnrol1 = () => { const showEnrol1 = () => {
dialogShowElderly.value = true; dialogShowElderly.value = true;
@ -469,6 +480,17 @@ const tab_change = (index, name) => {
} }
} }
}; };
const chooseXX = (name) => {
console.log(name);
if (name == "交通") {
mapTitle.value='交通';
dialogShowMap.value = true;
}
// tableType.title = village;
// tableType.columns = xz_column.value;
// tableType.url = "/api/ggfwyth/zcxxList";
// getTownDetail();
};
// //
const jypxList = reactive([ const jypxList = reactive([
{ {

View File

@ -0,0 +1,258 @@
<template>
<div class="dialogPage">
<el-dialog
v-model="dialogShowMap"
width="80vw"
:show-close="false"
center
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<template #header="{ close, titleId, titleClass }">
<div class="my-header">
<el-icon
size="26"
color="#fff"
@click="closeDialog"
>
<CircleCloseFilled />
</el-icon>
</div>
</template>
<div class="tabelPart">
<div class="bo">
<div class="title">
<div class="title_top">
<img
src="@/assets/images/table_l.png"
alt=""
style="margin-right: 10px"
/>
<div class="name">{{ title }}详情</div>
<img
src="@/assets/images/table_r.png"
alt=""
style="margin-left: 10px"
/>
</div>
<img
class="title_botton"
src="@/assets/images/table_c.png"
alt=""
/>
</div>
</div>
<div style="width: 100%; height: 600px">
<Map style="width:100%;height:100%;"></Map>
</div>
</div>
</el-dialog>
</div>
</template>
<script setup>
import {
onMounted,
reactive,
ref,
onBeforeMount,
defineProps,
watch,
nextTick,
} from "vue";
import { CircleCloseFilled } from "@element-plus/icons-vue";
import Map from "../echart_analyze/map.vue";
const props = defineProps({
dialogShowMap: {
type: Boolean,
default: () => {
return false;
},
},
title: {
type: String,
default: () => {
return "";
},
},
list1: {
type: Array,
default: () => {
return [];
},
},
list2: {
type: Array,
default: () => {
return [];
},
},
year: {
type: Array,
default: () => {
return [];
},
},
});
const emit = defineEmits(["close"]);
//
const dialogShowMap = ref();
const data = reactive({
title: "",
list1: [],
list2: [],
year: [],
option: {},
bg: [],
});
//
watch(
() => props.dialogShowMap,
(newVal, oldVal) => {
dialogShowMap.value = newVal;
}
);
watch(
() => props.list1,
(newVal, oldVal) => {
data.list1 = newVal;
}
);
watch(
() => props.list2,
(newVal, oldVal) => {
data.list2 = newVal;
}
);
watch(
() => props.year,
(newVal, oldVal) => {
data.year = newVal;
}
);
// 使
onMounted(() => {
data.title = props.title;
data.list1 = props.list1;
data.list2 = props.list2;
data.year = props.year;
});
const closeDialog = () => {
dialogShowMap.value = false;
emit("close");
};
</script>
<style lang="scss" scoped>
:deep(.el-dialog) {
--el-dialog-bg-color: none;
--el-dialog-width: 76% !important;
}
.my-header {
display: flex;
flex-direction: row-reverse;
}
.tabelPart {
padding: 16px;
background: linear-gradient(
270deg,
rgba(0, 77, 131, 0.69) 0%,
rgba(0, 51, 83, 0.77) 50%,
rgba(0, 77, 131, 0.74) 100%
),
radial-gradient(
66% 40% at 50% 0%,
rgba(1, 150, 243, 0.55) 0%,
rgba(0, 116, 255, 0) 100%
);
box-shadow: inset 0px 0px 56px 0px rgba(100, 191, 255, 0.5);
border: 2px solid;
border-image: linear-gradient(
180deg,
rgba(21, 150, 255, 1),
rgba(0, 157, 227, 0)
)
2 2;
:deep(.el-table) {
--el-table-bg-color: none;
--el-table-tr-bg-color: none;
--el-table-header-bg-color: none;
background: none;
border: none;
--el-table-text-color: #fff;
--el-table-header-text-color: #fff;
}
}
.pagePart {
height: 40px;
display: flex;
align-items: center;
justify-content: center;
:deep(.el-pagination) {
--el-pagination-button-disabled-bg-color: none;
--el-pagination-bg-color: none;
--el-pagination-button-bg-color: none;
--el-pagination-button-color: #fff;
color: #fff;
}
:deep(.el-pagination button:disabled) {
background-color: rgba(0, 116, 255, 0) !important;
}
:deep(.el-pagination > .is-last) {
color: #ffffff;
}
}
.bo {
width: 100%;
display: flex;
}
.title {
margin: 10px auto;
display: flex;
flex-direction: column;
&_top {
display: flex;
align-items: end;
img {
height: 33px;
width: 33px;
}
.name {
font-family: PangMenZhengDao, PangMenZhengDao;
font-weight: 600;
font-size: 33px;
color: #ffffff;
line-height: 38px;
text-align: center;
font-style: normal;
letter-spacing: 2px;
background: linear-gradient(180deg, #ffffff 0%, #51ffef 100%);
-webkit-background-clip: text;
/*将设置的背景颜色限制在文字中*/
-webkit-text-fill-color: transparent;
/*给文字设置成透明*/
}
}
&_botton {
margin-top: 5px;
height: 19px;
}
}
</style>

View File

@ -19,7 +19,12 @@ const init = () => {
// //
mapStyle: "amap://styles/blue", mapStyle: "amap://styles/blue",
// //
zoom: 12, zoom: 12.5,
labelDefault:{
textStyle:{
color:'#fffff',
}
}
}); });
// //
var trafficLayer = new AMap.TileLayer.Traffic({ var trafficLayer = new AMap.TileLayer.Traffic({
@ -41,5 +46,8 @@ onMounted(() => {
bottom:-100px; bottom:-100px;
display: none!important;; display: none!important;;
} }
::v-deep .amap-container {
/* 调整区域的字体颜色 */
color: #ff0000; /* 红色 */
}
</style> </style>

View File

@ -6,7 +6,7 @@
import { onMounted, onBeforeMount, reactive, ref } from "vue"; import { onMounted, onBeforeMount, reactive, ref } from "vue";
// echarts // echarts
import * as echarts from "echarts"; import * as echarts from "echarts";
const emit = defineEmits(["shuju"]);
const props = defineProps({ const props = defineProps({
list: { list: {
type: Array, type: Array,
@ -430,6 +430,9 @@ const getOption = () => {
const setChart = () => { const setChart = () => {
var myChart = echarts.init(chart.value); var myChart = echarts.init(chart.value);
myChart.setOption(data.option); myChart.setOption(data.option);
myChart.on("click", function (params) {
emit('shuju',params.name);
});
}; };
const getMaxCeilingValue = (arr) => { const getMaxCeilingValue = (arr) => {
let max = Math.max(...arr);// let max = Math.max(...arr);//

View File

@ -24,7 +24,7 @@ const data = reactive({
option: {}, option: {},
bg: [], bg: [],
}); });
const max=ref(100);
const getOption = () => { const getOption = () => {
data.option = { data.option = {
tooltip: { tooltip: {
@ -62,6 +62,7 @@ const getOption = () => {
}, },
yAxis: { yAxis: {
type: "value", type: "value",
max:max,
splitLine: { splitLine: {
show: true, show: true,
lineStyle: { lineStyle: {
@ -94,9 +95,10 @@ const getOption = () => {
symbol: "emptyCircle", symbol: "emptyCircle",
symbolSize: 10, symbolSize: 10,
label: { label: {
show: true, show: true,
color: "#ffffff", color: "#ffffff",
fontSize:17,
position:'top', position:'top',
formatter: function (data) { formatter: function (data) {
return data.value; return data.value;
@ -138,6 +140,9 @@ const getOption = () => {
], ],
}; };
}; };
const getMaxValue=(arr)=> {
return Math.max(...arr);
}
const setChart = () => { const setChart = () => {
// Vue3 // Vue3
var myChart = echarts.init(chart.value); var myChart = echarts.init(chart.value);
@ -150,6 +155,8 @@ onBeforeMount(() => {
setTimeout(() => { setTimeout(() => {
data.list = props.list; data.list = props.list;
data.year = props.month; data.year = props.month;
max.value=getMaxValue(data.list);
max.value=max.value+20;
// console.log(data.list,props.month,''); // console.log(data.list,props.month,'');
data.year.forEach(() => { data.year.forEach(() => {
data.bg.push(0); data.bg.push(0);

View File

@ -157,6 +157,7 @@ const getOption = () => {
show: true, show: true,
position: "top", position: "top",
color: "#ffffff", color: "#ffffff",
fontSize:'17',
formatter: function (data) { formatter: function (data) {
return data.value; return data.value;
}, },

View File

@ -121,6 +121,7 @@ const getOption = () => {
show: true, show: true,
position: "right", position: "right",
color: "#ffffff", color: "#ffffff",
fontSize: 17,
formatter: function (data) { formatter: function (data) {
return data.value; return data.value;
}, },
@ -148,6 +149,7 @@ const getOption = () => {
show: true, show: true,
position: "right", position: "right",
color: "#ffffff", color: "#ffffff",
fontSize: 17,
formatter: function (data) { formatter: function (data) {
return data.value; return data.value;
}, },

View File

@ -96,15 +96,15 @@
class="schoolbs" class="schoolbs"
@click="showDialog('学校', '/api/ggfwyth/schoolList')" @click="showDialog('学校', '/api/ggfwyth/schoolList')"
> >
<span class="spot">初中</span> <span class="spot font" >初中</span>
<span>{{ data.xxgk.czxxsl }}</span> <span class="font">{{ data.xxgk.czxxsl }}</span>
</div> </div>
<div <div
class="schoolbs" class="schoolbs"
@click="showDialog('学校', '/api/ggfwyth/schoolList')" @click="showDialog('学校', '/api/ggfwyth/schoolList')"
> >
<span class="spot">高中</span> <span class="spot font">高中</span>
<span>{{ data.xxgk.gzxxsl }}</span> <span class="font">{{ data.xxgk.gzxxsl }}</span>
</div> </div>
</div> </div>
<div class="grade"> <div class="grade">
@ -112,15 +112,15 @@
class="schoolbs" class="schoolbs"
@click="showDialog('学校', '/api/ggfwyth/schoolList')" @click="showDialog('学校', '/api/ggfwyth/schoolList')"
> >
<span class="spot">小学</span> <span class="spot font">小学</span>
<span>{{ data.xxgk.xxxxsl }}</span> <span class="font">{{ data.xxgk.xxxxsl }}</span>
</div> </div>
<div <div
class="schoolbs" class="schoolbs"
@click="showDialog('学校', '/api/ggfwyth/schoolList')" @click="showDialog('学校', '/api/ggfwyth/schoolList')"
> >
<span class="spot">中职</span> <span class="spot font">中职</span>
<span>{{ data.xxgk.zzxxsl }}</span> <span class="font">{{ data.xxgk.zzxxsl }}</span>
</div> </div>
</div> </div>
<div class="grade grade1"> <div class="grade grade1">
@ -128,16 +128,16 @@
class="schoolbs" class="schoolbs"
@click="showDialog('学校', '/api/ggfwyth/schoolList')" @click="showDialog('学校', '/api/ggfwyth/schoolList')"
> >
<span class="spot">幼儿园</span> <span class="spot font">幼儿园</span>
<span>{{ data.xxgk.yeyxxsl }}</span> <span class="font">{{ data.xxgk.yeyxxsl }}</span>
</div> </div>
<div class="schoolbs"> <div class="schoolbs">
<span <span
class="spot" class="spot font"
@click="showDialog('学校', '/api/ggfwyth/schoolList')" @click="showDialog('学校', '/api/ggfwyth/schoolList')"
>特殊教育</span >特殊教育</span
> >
<span>{{ data.xxgk.tsjyxxsl }}</span> <span class="font">{{ data.xxgk.tsjyxxsl }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -226,7 +226,7 @@
<img src="@/assets/eduImg/jyImg10.png" alt="" /> <img src="@/assets/eduImg/jyImg10.png" alt="" />
<img src="@/assets/eduImg/pp3.gif" alt="" class="ppImg" /> <img src="@/assets/eduImg/pp3.gif" alt="" class="ppImg" />
<div class="historyimg historyimg1"> <div class="historyimg historyimg1">
<span>绿色预警</span> <span style="fontSize:20px;">绿色预警</span>
</div> </div>
</div> </div>
<div class="earlyWarning1"> <div class="earlyWarning1">
@ -236,7 +236,7 @@
<img src="@/assets/eduImg/jyImg9.png" alt="" /> <img src="@/assets/eduImg/jyImg9.png" alt="" />
<img src="@/assets/eduImg/pp2.gif" alt="" class="ppImg" /> <img src="@/assets/eduImg/pp2.gif" alt="" class="ppImg" />
<div class="historyimg historyimg2"> <div class="historyimg historyimg2">
<span>黄色预警</span> <span style="fontSize:20px;">黄色预警</span>
</div> </div>
</div> </div>
<div class="earlyWarning1"> <div class="earlyWarning1">
@ -246,7 +246,7 @@
<img src="@/assets/eduImg/jyImg8.png" alt="" /> <img src="@/assets/eduImg/jyImg8.png" alt="" />
<img src="@/assets/eduImg/pp1.gif" alt="" class="ppImg" /> <img src="@/assets/eduImg/pp1.gif" alt="" class="ppImg" />
<div class="historyimg historyimg3"> <div class="historyimg historyimg3">
<span>红色预警</span> <span style="fontSize:20px;">红色预警</span>
</div> </div>
</div> </div>
</div> </div>
@ -1262,7 +1262,7 @@ onMounted(() => {
} }
.historyimg { .historyimg {
width: 133px; width: 140px;
height: 19px; height: 19px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
@ -1819,7 +1819,9 @@ onMounted(() => {
} }
} }
} }
.font{
font-size: 16px !important;
}
:deep(.el-table) { :deep(.el-table) {
background: rgba(32, 64, 115, 1); background: rgba(32, 64, 115, 1);
@ -1867,4 +1869,5 @@ onMounted(() => {
font-size: 18px !important; font-size: 18px !important;
} }
} }
</style> </style>

View File

@ -122,7 +122,7 @@
<div class="item"> <div class="item">
<img src="@/assets/images/hygiene/mjzrc.png" class="left" /> <img src="@/assets/images/hygiene/mjzrc.png" class="left" />
<div class="right"> <div class="right">
<div class="right_top">门急诊人次</div> <div class="right_top font">门急诊人次</div>
<img src="@/assets/images/hygiene/jt.png" class="right_center" /> <img src="@/assets/images/hygiene/jt.png" class="right_center" />
<div class="right_bottom">{{ data.mz.mjzrc }}</div> <div class="right_bottom">{{ data.mz.mjzrc }}</div>
</div> </div>
@ -130,7 +130,7 @@
<div class="item"> <div class="item">
<img src="@/assets/images/hygiene/zyrs.png" class="left" /> <img src="@/assets/images/hygiene/zyrs.png" class="left" />
<div class="right"> <div class="right">
<div class="right_top">住院人数</div> <div class="right_top font">住院人数</div>
<img src="@/assets/images/hygiene/jt.png" class="right_center" /> <img src="@/assets/images/hygiene/jt.png" class="right_center" />
<div class="right_bottom">{{ data.mz.zyrs }}</div> <div class="right_bottom">{{ data.mz.zyrs }}</div>
</div> </div>
@ -159,7 +159,7 @@
src="@/assets/images/hygiene/jd.gif" src="@/assets/images/hygiene/jd.gif"
alt="" alt=""
/> />
<div class="historyimg">建档份数</div> <div class="historyimg font">建档份数</div>
</div> </div>
</div> </div>
<div class="minTopPart2"> <div class="minTopPart2">
@ -210,14 +210,14 @@
<img src="@/assets/images/hygiene/fy.png" alt="" /> <img src="@/assets/images/hygiene/fy.png" alt="" />
<img src="@/assets/images/hygiene/fy1.png" alt="" class="fyMove" /> <img src="@/assets/images/hygiene/fy1.png" alt="" class="fyMove" />
<img src="@/assets/images/hygiene/fy.gif" class="historyMoveImg" /> <img src="@/assets/images/hygiene/fy.gif" class="historyMoveImg" />
<div class="historyimg">孕产妇系统管理人数</div> <div class="historyimg font" >孕产妇系统管理人数</div>
</div> </div>
<div class="history1"> <div class="history1">
<div class="va">{{ data.fyglrs.etrs }}</div> <div class="va">{{ data.fyglrs.etrs }}</div>
<img src="@/assets/images/hygiene/fy.png" alt="" /> <img src="@/assets/images/hygiene/fy.png" alt="" />
<img src="@/assets/images/hygiene/fy2.png" alt="" class="fyMove" /> <img src="@/assets/images/hygiene/fy2.png" alt="" class="fyMove" />
<img src="@/assets/images/hygiene/fy.gif" class="historyMoveImg" /> <img src="@/assets/images/hygiene/fy.gif" class="historyMoveImg" />
<div class="historyimg">0-6岁儿童系统管理人数</div> <div class="historyimg font" >0-6岁儿童系统管理人数</div>
</div> </div>
</div> </div>
</div> </div>
@ -1304,4 +1304,7 @@ const getData = async () => {
margin-top: 15px; margin-top: 15px;
margin-bottom: 10px; margin-bottom: 10px;
} }
.font{
font-size: 18px !important;
}
</style> </style>

View File

@ -565,15 +565,9 @@
@close="close" @close="close"
@handle="handlePagination" @handle="handlePagination"
> >
<template #pxkssj="{ currentCol, currentData }"> <!-- <template #pxkssj="{ currentCol, currentData }">
<div> <div>{{ currentData.pxkssj }}/{{ currentData.pxjssj }}</div>
{{ currentData.pxkssj.slice(0, 4) }}-{{ </template> -->
currentData.pxkssj.slice(4, 6)
}}-{{ currentData.pxkssj.slice(6, 8) }}/{{
currentData.pxjssj.slice(4, 6)
}}-{{ currentData.pxjssj.slice(6, 8) }}
</div>
</template>
<!-- <template #pxjssj="{ currentCol, currentData }"> <!-- <template #pxjssj="{ currentCol, currentData }">
<div> <div>
{{ currentData.pxjssj.slice(0, 4) }}-{{ {{ currentData.pxjssj.slice(0, 4) }}-{{
@ -673,7 +667,7 @@ const columnss = reactive({
{ {
label: "培训时间", label: "培训时间",
property: "pxkssj", property: "pxkssj",
type: "slot", // type: "slot",
}, },
// { // {
// label: "", // label: "",

View File

@ -459,7 +459,7 @@ onMounted(() => {
setTimeout(()=>{ setTimeout(()=>{
startAutoScroll(); startAutoScroll();
},600) },600)
startAutoSwitching(); // startAutoSwitching();
}); });
onBeforeMount(() => { onBeforeMount(() => {