This commit is contained in:
duanxiaohai 2024-07-13 14:37:59 +08:00
parent e980395004
commit 8200544ce3
3 changed files with 640 additions and 6 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="module"> <div class="module">
<div class="displayFlex left_bg"> <div class="displayFlex left_bg">
<div class="flex11"> <div class="flex11" @click="showEnrol1()">
<div class="yd_title left_1"> <div class="yd_title left_1">
<div class="animate-border"> <div class="animate-border">
<i></i> <i></i>
@ -106,7 +106,7 @@
v-for="option in data.options" v-for="option in data.options"
:key="option.value" :key="option.value"
:class="jz === option.value ? 'choose_1' : 'choose_2'" :class="jz === option.value ? 'choose_1' : 'choose_2'"
@click="jzChange(option.value,option.label)" @click="jzChange(option.value, option.label)"
class="choose_0" class="choose_0"
> >
{{ option.label }} {{ option.label }}
@ -173,6 +173,12 @@
@close="close" @close="close"
> >
</DialogEnrol> </DialogEnrol>
<DialogElderly
:dialogShowElderly="dialogShowElderly"
:dataElderly="dataElderly"
@close="close1"
>
</DialogElderly>
</div> </div>
</template> </template>
@ -186,6 +192,7 @@ import {
computed, computed,
} from "vue"; } from "vue";
import DialogEnrol from "./dialog/dialogEnrol.vue"; import DialogEnrol from "./dialog/dialogEnrol.vue";
import DialogElderly from "./dialog/diaLogElderlyData.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";
@ -210,6 +217,7 @@ 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 dataTab = reactive({ const dataTab = reactive({
url: "", url: "",
title: "", title: "",
@ -307,6 +315,131 @@ const dataEnrol = reactive({
}, },
], ],
}); });
const dataElderly = reactive({
title: "老年人数据分析",
//
kidName: [
"第一幼儿园",
"第二幼儿园",
"第三幼儿园",
"第四幼儿园",
"第五幼儿园",
"第六幼儿园",
"第七幼儿园",
"第八幼儿园",
],
//
kidZs1: [100, 105, 369, 523, 651, 225, 664, 245],
kidBm1: [100, 105, 369, 523, 651, 225, 664, 245],
//
kidZs2: [100, 105, 369, 523, 651, 225, 664, 245],
kidBm2: [100, 105, 369, 523, 651, 225, 664, 245],
//
kidZs3: [100, 105, 369, 523, 651, 225, 664, 245],
kidBm3: [100, 105, 369, 523, 651, 225, 664, 245],
//
kidZs4: [100, 105, 369, 523, 651, 225, 664, 245],
kidBm4: [100, 105, 369, 523, 651, 225, 664, 245],
//
primaryName: [
"第一小学",
"第二小学",
"第三小学",
"第四小学",
"第五小学",
"第六小学",
],
primaryZs: [231, 544, 343, 444, 335, 632],
primaryBm: [231, 544, 343, 444, 335, 632],
//
middleName: ["第一初中", "第二初中", "第三初中", "第四初中"],
middleZs: [231, 544, 343, 444],
//
highName: ["第一高中", "第二高中", "第三高中"],
highZs: [231, 335, 632],
//
schoolNmae: [
{
name: "60-69年岁段",
id: 0,
},
{
name: "70-79年岁段",
id: 1,
},
{
name: "80-89年岁段",
id: 2,
},
{
name: "90-99年岁段",
id: 3,
},
{
name: "100-109年岁段",
id: 4,
},
],
//
schoolNmae1: [
{
name: "高血压",
id: 0,
},
{
name: "医保支出万元以上",
id: 1,
},
{
name: "大病住院",
id: 2,
},
{
name: "糖尿病",
id: 3,
},
{
name: "高血脂",
id: 4,
},
{
name: "高血糖",
id: 5,
},
{
name: "残疾",
id: 6,
},
{
name: "低保",
id: 7,
},
{
name: "特困",
id: 8,
},
{
name: "其他疾病",
id: 9,
},
],
schoolYear: [2022, 2023, 2024],
schoolData: [
{
id: 0,
bm: [335, 654, 365],
zs: [335, 654, 521],
},
{
id: 1,
zs: [335, 654, 521],
},
{
id: 2,
zs: [355, 652, 721],
},
],
});
const showEnrol = () => { const showEnrol = () => {
dialogShowEnrol.value = true; dialogShowEnrol.value = true;
@ -314,6 +447,12 @@ const showEnrol = () => {
const close = () => { const close = () => {
dialogShowEnrol.value = false; dialogShowEnrol.value = false;
}; };
const showEnrol1 = () => {
dialogShowElderly.value = true;
};
const close1 = () => {
dialogShowElderly.value = false;
};
// //
const tab_choose = ref([ const tab_choose = ref([
@ -345,9 +484,9 @@ const jypxList = reactive([
]); ]);
// tap // tap
const jz = ref("1"); const jz = ref("1");
const jzChange = (value,label) => { const jzChange = (value, label) => {
jz.value = value; jz.value = value;
data.jzfxName=label; data.jzfxName = label;
data.list = data.dataAnalysis[value - 1]; data.list = data.dataAnalysis[value - 1];
}; };
const showEchart = ref(false); const showEchart = ref(false);
@ -358,7 +497,7 @@ const data = reactive({
}, },
list1: {}, list1: {},
list2: {}, list2: {},
jzfxName:'特困', jzfxName: "特困",
options: [ options: [
{ value: "1", label: "特困" }, { value: "1", label: "特困" },
{ value: "2", label: "低保" }, { value: "2", label: "低保" },
@ -687,7 +826,7 @@ onBeforeUnmount(() => {
} }
.left_1 { .left_1 {
background-image: url(@/assets/images/sjfx/lnrsjfx.png); background-image: url(@/assets/images/sjfx/lnsjfx.png);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -0,0 +1,495 @@
<template>
<div class="dialogPage">
<el-dialog
v-model="dialogShowElderly"
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">{{ data.dataElderly.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 class="tabChoose">
<div :class="data.tab == '0' ? 'choosed' : 'tabs'">
<span @click="changeTab('0')">城区幼儿园招生情况</span>
</div>
<div :class="data.tab == '1' ? 'choosed' : 'tabs'">
<span @click="changeTab('1')">城区义务教育</span>
</div>
<div :class="data.tab == '2' ? 'choosed' : 'tabs'">
<span @click="changeTab('2')">学校历年匹配情况</span>
</div>
</div> -->
<!-- <div
v-if="data.tab == '0'"
style="width: 100%; height: 700px; overflow: hidden;"
>
<div style="width: 49%; height: 350px; float: left;position: relative;">
<div class="titleSmall1"></div>
<zsbm
:list1="data.dataElderly.kidZs1"
:list2="data.dataElderly.kidBm1"
:year="data.dataElderly.kidName"
></zsbm>
</div>
<div style="width: 49%; height: 350px; float: right;position: relative;">
<div class="titleSmall2"></div>
<zsbm
:list1="data.dataElderly.kidZs2"
:list2="data.dataElderly.kidBm2"
:year="data.dataElderly.kidName"
></zsbm>
</div>
<div style="width: 49%; height: 350px; float: left;position: relative;">
<div class="titleSmall3"></div>
<zsbm
:list1="data.dataElderly.kidZs3"
:list2="data.dataElderly.kidBm3"
:year="data.dataElderly.kidName"
></zsbm>
</div>
<div style="width: 49%; height: 350px; float: right;position: relative;">
<div class="titleSmall4"></div>
<zsbm
:list1="data.dataElderly.kidZs4"
:list2="data.dataElderly.kidBm4"
:year="data.dataElderly.kidName"
></zsbm>
</div>
</div>
<div
v-else-if="data.tab == '1'"
style="width: 100%; height: 700px; overflow: hidden;"
>
<div style="width: 49%; height: 350px; float: left;position: relative;">
<div class="titleSmall5"></div>
<zsbm
:list1="data.dataElderly.primaryZs"
:list2="data.dataElderly.primaryBm"
:year="data.dataElderly.primaryName"
></zsbm>
</div>
<div style="width: 49%; height: 350px; float: right;position: relative;">
<div class="titleSmall6"></div>
<zs
:list1="data.dataElderly.middleZs"
:year="data.dataElderly.middleName"
></zs>
</div>
<div style="width: 49%; height: 350px; float: left;position: relative;">
<div class="titleSmall7"></div>
<zs
:list1="data.dataElderly.highZs"
:year="data.dataElderly.highName"
></zs>
</div>
</div> -->
<div style="width: 100%; height: 700px; overflow: hidden">
<div class="selectLint">
<div class="selectBox">
<el-select
v-model="data.value2"
placeholder="请选择"
size="large"
@change="selectChange1"
>
<el-option
v-for="item in data.dataElderly.schoolNmae1"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</div>
<div class="selectBox">
<el-select
v-model="data.value1"
placeholder="请选择"
size="large"
@change="selectChange1"
>
<el-option
v-for="item in data.dataElderly.schoolNmae"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</div>
</div>
<div
style="width: 86%; margin-left: 7%; height: 600px; overflow: hidden"
v-if="data.pickNum == 0"
>
<pick1
:list1="data.selectList1"
:list2="data.selectList2"
:year="data.dataElderly.schoolYear"
></pick1>
</div>
<div
style="width: 86%; margin-left: 7%; height: 600px; overflow: hidden"
v-else-if="data.pickNum == 1"
>
<pick2
:list1="data.selectList1"
:year="data.dataElderly.schoolYear"
></pick2>
</div>
</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 zs from "./echarts/echartsZs.vue";
import zsbm from "./echarts/echartZsbm.vue";
import pick1 from "./echarts/echartPick1.vue";
import pick2 from "./echarts/echartPick2.vue";
const props = defineProps({
dialogShowElderly: {
type: Boolean,
default: () => {
return false;
},
},
dataElderly: {
type: Object,
required: true,
},
});
const emit = defineEmits(["close"]);
//
const dialogShowElderly = ref();
const data = reactive({
dataElderly: {},
value1: "", //
value2: "", //
selectList1: [],
selectList2: [],
pickNum: 0,
});
//
watch(
() => props.dialogShowElderly,
(newVal, oldVal) => {
dialogShowElderly.value = newVal;
}
);
watch(
() => props.dataElderly,
(newVal, oldVal) => {
data.dataElderly = props.dataElderly;
}
);
// 使
onMounted(() => {
dialogShowElderly.value = props.dialogShowElderly; //
data.dataElderly = props.dataElderly; //
data.value1 = data.dataElderly.schoolNmae[0].name; //
data.value2 = data.dataElderly.schoolNmae1[0].name; //
selectChange1(0); //
});
const selectChange1 = (e) => {
console.log(e,55555);
if (data.dataElderly.schoolData[e] && data.dataElderly.schoolData[e].bm) {
data.pickNum = 0;
data.selectList1 = data.dataElderly.schoolData[e].zs;
data.selectList2 = data.dataElderly.schoolData[e].bm;
} else {
data.pickNum = 1;
data.selectList1 = data.dataElderly.schoolData[e].zs;
}
};
//
const closeDialog = () => {
dialogShowElderly.value = false;
emit("close");
};
</script>
<style lang="scss" scoped>
:deep(.el-dialog) {
--el-dialog-bg-color: none;
--el-dialog-width: 76% !important;
--el-dialog-margin-top: 7vh;
}
.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;
}
// .tabChoose {
// width: 100%;
// margin-bottom: 36px;
// display: flex;
// align-items: center;
// justify-content: center;
// span {
// font-size: 20px;
// line-height: 36px;
// cursor: pointer;
// }
// .tabs {
// width: 252px;
// text-align: center;
// font-size: 20px;
// color: rgba(255, 255, 255, 0.7);
// line-height: 29px;
// letter-spacing: 2px;
// text-shadow: 0px 2px 4px #00405f;
// }
// .choosed {
// width: 252px;
// text-align: center;
// font-size: 20px;
// color: #fff;
// line-height: 29px;
// letter-spacing: 2px;
// text-shadow: 0px 2px 4px #00405f,
// inset 0px -2px 2px rgba(255, 255, 255, 0.65);
// background-image: url(@/assets/dialogTab.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
// }
// }
}
.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;
}
}
// .titleSmall1 {
// position: absolute;
// width: 350px;
// height: 30px;
// left: 10%;
// background-image: url(@/assets/images/sjfx/enrol/title1.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
// }
// .titleSmall2 {
// position: absolute;
// width: 350px;
// height: 30px;
// left: 10%;
// background-image: url(@/assets/images/sjfx/enrol/title2.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
// }
// .titleSmall3 {
// position: absolute;
// width: 350px;
// height: 30px;
// left: 10%;
// background-image: url(@/assets/images/sjfx/enrol/title3.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
// }
// .titleSmall4 {
// position: absolute;
// width: 350px;
// height: 30px;
// left: 10%;
// background-image: url(@/assets/images/sjfx/enrol/title4.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
// }
// .titleSmall5 {
// position: absolute;
// width: 350px;
// height: 30px;
// left: 10%;
// background-image: url(@/assets/images/sjfx/enrol/title5.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
// }
// .titleSmall6 {
// position: absolute;
// width: 350px;
// height: 30px;
// left: 10%;
// background-image: url(@/assets/images/sjfx/enrol/title6.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
// }
// .titleSmall7 {
// position: absolute;
// width: 350px;
// height: 30px;
// left: 10%;
// background-image: url(@/assets/images/sjfx/enrol/title7.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
// }
.selectLint {
width: 86%;
display: flex;
margin: 30px 7% 10px;
//justify-content: space-between;
flex-direction: row-reverse;
.selectBox {
width: 14%;
background-image: url(@/assets/eduImg/jyImg7.png);
background-repeat: no-repeat;
background-size: 100% 100%;
margin-right: 10px;
}
}
</style>
<style lang="scss">
.selectBox {
.el-select--large .el-select__wrapper {
font-size: 18px !important;
}
.el-select__wrapper {
background-color: rgba(255, 255, 255, 0) !important;
}
.el-select__placeholder {
color: #fff !important;
}
.el-select__caret {
color: #fff !important;
font-size: 18px !important;
}
}
</style>