1330 lines
31 KiB
Vue
1330 lines
31 KiB
Vue
<template>
|
|
<div class="module">
|
|
<div class="displayFlex left_bg">
|
|
<div class="flex11" >
|
|
<div class="yd_title left_1" @click="showEnrol1()">
|
|
<div class="animate-border">
|
|
<i></i>
|
|
<i></i>
|
|
</div>
|
|
</div>
|
|
<div class="hypertension">
|
|
<pie3dMt1 :list="data.analysis.lnr"></pie3dMt1>
|
|
<edxs
|
|
:list="data.whistleblower.culeTotal.data"
|
|
:month="data.whistleblower.culeTotal.time"
|
|
></edxs>
|
|
</div>
|
|
</div>
|
|
<div class="flex1">
|
|
<div class="yd_title left_2">
|
|
<div class="animate-border">
|
|
<i></i>
|
|
<i></i>
|
|
</div>
|
|
</div>
|
|
<div class="ViewData">
|
|
<div class="ViewDatalist">
|
|
<div
|
|
class="ViewDataTop"
|
|
v-for="(item, index) in data.ViewData"
|
|
:key="item.name"
|
|
@click="onViewData(item.name, index)"
|
|
>
|
|
<div
|
|
class="ViewDataTopimg"
|
|
:class="{ ViewDataBottomimg: item.show }"
|
|
>
|
|
{{ item.value }}
|
|
</div>
|
|
<div
|
|
class="ViewDataTopimg_1"
|
|
:class="{ ViewDataBottomimg_1: item.show }"
|
|
></div>
|
|
<span> {{ item.name }}</span>
|
|
</div>
|
|
</div>
|
|
<eP2 :list="data.DataViewing" :year="data.leftCenterYear"></eP2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="displayFlex center_bg">
|
|
<div class="flex1">
|
|
<div class="yd_title center_0" >
|
|
<div class="animate-border">
|
|
<i></i>
|
|
<i></i>
|
|
</div>
|
|
</div>
|
|
<div class="minTopTitle"></div>
|
|
<div class="minTopNum">
|
|
<!-- <div
|
|
class="numItem"
|
|
v-for="(item, index) in minData.minTop"
|
|
:key="index"
|
|
>
|
|
{{ item }}
|
|
</div> -->
|
|
<FlipClock :list="minData.minTop"></FlipClock>
|
|
</div>
|
|
<div style="overflow: hidden">
|
|
<div class="minPie">
|
|
<div class="minPieImg" style="letter-spacing: 1px">
|
|
集聚类型分布
|
|
</div>
|
|
<Pie3dMt :list="minData.minPieData1"></Pie3dMt>
|
|
</div>
|
|
<div class="minPie">
|
|
<div class="minPieImg">年龄分布</div>
|
|
<Pie3dMt2 :list="minData.minPieData2"></Pie3dMt2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="jypx">
|
|
<div class="minPieImg2">就业培训</div>
|
|
<jypx v-if="showEchart"></jypx>
|
|
<div class="jypx_right">
|
|
<div class="jypx_right_item" v-for="item in jypxList">
|
|
<img :src="item.img" alt="" />
|
|
<div class="jypx_right_item_right">
|
|
<div class="jypx_name">{{ item.name }}</div>
|
|
<div class="jypx_value">{{ item.value }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="flex1">
|
|
<div class="yd_title center_1">
|
|
<div class="animate-border">
|
|
<i></i>
|
|
<i></i>
|
|
</div>
|
|
</div>
|
|
<div class="choose">
|
|
<div
|
|
v-for="option in data.options"
|
|
:key="option.value"
|
|
:class="jz === option.value ? 'choose_1' : 'choose_2'"
|
|
@click="jzChange(option.value, option.label)"
|
|
class="choose_0"
|
|
>
|
|
{{ option.label }}
|
|
</div>
|
|
</div>
|
|
<ePie4
|
|
:list="data.list.data"
|
|
:year="data.list.year"
|
|
:name="data.jzfxName"
|
|
v-if="showEchart"
|
|
></ePie4>
|
|
</div>
|
|
</div>
|
|
<div class="displayFlex right_bg">
|
|
<div class="flex1">
|
|
<div class="yd_title right_1">
|
|
<div class="animate-border">
|
|
<i></i>
|
|
<i></i>
|
|
</div>
|
|
</div>
|
|
<right1 :list="data.wjybrysl" v-if="showEchart"></right1>
|
|
</div>
|
|
<div class="flex1">
|
|
<div
|
|
class="yd_title"
|
|
:class="tab_choose[0].choose == '信息推送' ? 'right_2' : 'right_2_1'"
|
|
@click="tab_change(0)"
|
|
>
|
|
<div class="animate-border">
|
|
<i></i>
|
|
<i></i>
|
|
</div>
|
|
</div>
|
|
<!-- <img src="@/assets/images/sjfx/right3D.png" alt="" class="right3d" /> -->
|
|
<right2
|
|
:list="data.analysis.push"
|
|
@shuju="chooseXX"
|
|
v-if="showEchart && tab_choose[0].choose == '信息推送'"
|
|
></right2>
|
|
<ylXZZC
|
|
:list1="data.zccs1"
|
|
:list2="data.zccs2"
|
|
v-if="showEchart && tab_choose[0].choose == '一码通'"
|
|
></ylXZZC>
|
|
</div>
|
|
<div class="flex1">
|
|
<div class="yd_title right_3" @click="showEnrol()">
|
|
<div class="animate-border">
|
|
<i></i>
|
|
<i></i>
|
|
</div>
|
|
</div>
|
|
<div class="rxfx">
|
|
<rxfx v-if="showEchart"></rxfx>
|
|
<div class="historyimg">城区学龄招生情况</div>
|
|
</div>
|
|
|
|
<!-- <Map class="map"></Map> -->
|
|
</div>
|
|
</div>
|
|
<DialogEnrol
|
|
:dialogShowEnrol="dialogShowEnrol"
|
|
:dataEnrol="dataEnrol"
|
|
@close="close"
|
|
>
|
|
</DialogEnrol>
|
|
<DialogElderly
|
|
:dialogShowElderly="dialogShowElderly"
|
|
:dataElderly="dataElderly"
|
|
@close="close1"
|
|
>
|
|
</DialogElderly>
|
|
<DialogMap :dialogShowMap="dialogShowMap" :title="mapTitle" @close="close">
|
|
</DialogMap>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import {
|
|
ref,
|
|
reactive,
|
|
onMounted,
|
|
onBeforeMount,
|
|
onBeforeUnmount,
|
|
computed,
|
|
} from "vue";
|
|
import DialogEnrol from "./dialog/dialogEnrol.vue";
|
|
import DialogElderly from "./dialog/diaLogElderlyData.vue";
|
|
import DialogMap from "./dialog/dialogMap.vue";
|
|
import right2 from "./echart_analyze/right2.vue";
|
|
import right1 from "./echart_analyze/right1.vue";
|
|
import jypx from "./echart_analyze/jypx.vue";
|
|
|
|
import http from "@/utils/request.js";
|
|
import Pie3dMt from "./echart_analyze/pie3dMt.vue";
|
|
import Pie3dMt2 from "./echart_analyze/pie3dMt2.vue";
|
|
import pie3dMt1 from "./echart_analyze/pie3dMt1.vue";
|
|
import edxs from "./echart_analyze/edXS.vue";
|
|
import eP2 from "./echart_analyze/eP2.vue";
|
|
import ylXZZC from "./echart_analyze/ylXZZC.vue";
|
|
import rxfx from "./echart_analyze/rxfx.vue";
|
|
import FlipClock from "./echart_analyze/FlipClock.vue";
|
|
import ePie4 from "./echart_analyze/pie4.vue";
|
|
|
|
import ViewDataimg from "@/assets/images/sjfx/sjfx.png";
|
|
import ViewDataimg1 from "@/assets/images/sjfx/sjfx1.png";
|
|
import ViewDataimg2 from "@/assets/images/sjfx/sjfx2.png";
|
|
import ViewDataimg3 from "@/assets/images/sjfx/sjfx3.png";
|
|
import jypx1 from "@/assets/images/sjfx/pxrc.png";
|
|
import jypx2 from "@/assets/images/sjfx/gygws.png";
|
|
|
|
const showR = ref(false); //loading
|
|
// 入学分析数据
|
|
const dialogShowEnrol = ref(false);
|
|
const dialogShowElderly = ref(false);
|
|
const dialogShowMap = ref(false);
|
|
const mapTitle = ref("");
|
|
const dataTab = reactive({
|
|
url: "",
|
|
title: "",
|
|
list1: [],
|
|
list2: [],
|
|
year: [],
|
|
columns: [
|
|
{
|
|
label: "班次",
|
|
property: "cc",
|
|
},
|
|
{
|
|
label: "始发站-终点站",
|
|
property: "qqz",
|
|
},
|
|
{
|
|
label: "到达龙游站时间",
|
|
type: "slot",
|
|
property: "dd",
|
|
},
|
|
],
|
|
data: [],
|
|
});
|
|
const dataEnrol = 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: "第一小学",
|
|
id: 0,
|
|
},
|
|
{
|
|
name: "第一初中",
|
|
id: 1,
|
|
},
|
|
{
|
|
name: "第一高中",
|
|
id: 2,
|
|
},
|
|
],
|
|
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 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,
|
|
nl: [
|
|
335, 654, 365, 365, 365, 365, 315, 366, 35, 165, 265, 345, 155, 385,
|
|
365,
|
|
],
|
|
xz: [
|
|
"大街乡",
|
|
"社阳乡",
|
|
"沐尘畲族乡",
|
|
"庙下乡",
|
|
"溪口镇",
|
|
"罗家乡",
|
|
"模环乡",
|
|
"横山镇",
|
|
"石佛乡",
|
|
"詹家镇",
|
|
"塔石镇",
|
|
"小男孩镇",
|
|
"湖镇镇",
|
|
"东华街道",
|
|
"龙洲街道",
|
|
],
|
|
},
|
|
{
|
|
id: 1,
|
|
zs: [335, 654, 521],
|
|
},
|
|
{
|
|
id: 2,
|
|
zs: [355, 652, 721],
|
|
},
|
|
],
|
|
});
|
|
|
|
const showEnrol = () => {
|
|
dialogShowEnrol.value = true;
|
|
};
|
|
const close = () => {
|
|
dialogShowEnrol.value = false;
|
|
dialogShowMap.value = false;
|
|
};
|
|
const showEnrol1 = () => {
|
|
dialogShowElderly.value = true;
|
|
};
|
|
const close1 = () => {
|
|
dialogShowElderly.value = false;
|
|
};
|
|
|
|
//数据切换
|
|
const tab_choose = ref([
|
|
{
|
|
choose: "信息推送",
|
|
},
|
|
]);
|
|
const tab_change = (index, name) => {
|
|
if (index == 0) {
|
|
if (tab_choose.value[index].choose == "信息推送") {
|
|
tab_choose.value[index].choose = "一码通";
|
|
} else {
|
|
tab_choose.value[index].choose = "信息推送";
|
|
}
|
|
}
|
|
};
|
|
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([
|
|
{
|
|
name: "培训人次",
|
|
value: "5000",
|
|
img: jypx1,
|
|
},
|
|
{
|
|
name: "公益岗位数",
|
|
value: "3815",
|
|
img: jypx2,
|
|
},
|
|
]);
|
|
// 救助分析tap切换
|
|
const jz = ref("1");
|
|
const jzChange = (value, label) => {
|
|
jz.value = value;
|
|
data.jzfxName = label;
|
|
data.list = data.dataAnalysis[value - 1];
|
|
};
|
|
const showEchart = ref(false);
|
|
const data = reactive({
|
|
list: {
|
|
data: ["50", "100", "120", "62", "70"],
|
|
year: ["2020", "2021", "2022", "2023", "2024"],
|
|
},
|
|
list1: {},
|
|
list2: {},
|
|
jzfxName: "特困",
|
|
options: [
|
|
{ value: "1", label: "特困" },
|
|
{ value: "2", label: "低保" },
|
|
{ value: "3", label: "低边" },
|
|
{ value: "4", label: "困难残疾人" },
|
|
{ value: "5", label: "困难军人" },
|
|
{ value: "6", label: "困难职工" },
|
|
],
|
|
dataAnalysis: [
|
|
{
|
|
data: ["50", "100", "120", "62", "70"],
|
|
year: ["2020", "2021", "2022", "2023", "2024"],
|
|
},
|
|
{
|
|
data: ["10", "100", "120", "62", "70"],
|
|
year: ["2020", "2021", "2022", "2023", "2024"],
|
|
},
|
|
{
|
|
data: ["60", "100", "120", "62", "70"],
|
|
year: ["2020", "2021", "2022", "2023", "2024"],
|
|
},
|
|
{
|
|
data: ["40", "100", "120", "62", "70"],
|
|
year: ["2020", "2021", "2022", "2023", "2024"],
|
|
},
|
|
{
|
|
data: ["50", "190", "120", "62", "70"],
|
|
year: ["2020", "2021", "2022", "2023", "2024"],
|
|
},
|
|
{
|
|
data: ["50", "100", "120", "82", "70"],
|
|
year: ["2020", "2021", "2022", "2023", "2024"],
|
|
},
|
|
], //数据分析
|
|
|
|
datashow: null,
|
|
backgroundImageUrl: ViewDataimg,
|
|
backgroundImageUrl1: ViewDataimg1,
|
|
leftTop1: [],
|
|
gxy: [], //高血压
|
|
whistleblower: {
|
|
culeTotal: {
|
|
data: ["100", "120", "199", "133", "210"],
|
|
time: ["61-70", "71-80", "81-90", "91-100", "100以上"],
|
|
},
|
|
}, //高血压柱状图
|
|
|
|
ViewData: [
|
|
{
|
|
name: "医保支出万元以上",
|
|
value: "0",
|
|
show: true,
|
|
data: ["0", "0", "0", "0", "0", "0"], //医保支出万元以上
|
|
},
|
|
{
|
|
name: "大病住院",
|
|
value: "0",
|
|
show: false,
|
|
data: ["0", "0", "0", "0", "0", "0"], //大病住院
|
|
},
|
|
{
|
|
name: "高血压",
|
|
value: "0",
|
|
show: false,
|
|
data: ["0", "0", "0", "0", "0", "0"], //高血压
|
|
},
|
|
{
|
|
name: "糖尿病",
|
|
value: "0",
|
|
show: false,
|
|
data: ["0", "0", "0", "0", "0", "0"], //糖尿病
|
|
},
|
|
{
|
|
name: "高血脂",
|
|
value: "0",
|
|
show: false,
|
|
data: ["0", "0", "0", "0", "0", "0"], //高血脂
|
|
},
|
|
{
|
|
name: "高血糖",
|
|
value: "0",
|
|
show: false,
|
|
data: ["0", "0", "0", "0", "0", "0"], //高血糖
|
|
},
|
|
{
|
|
name: "残疾",
|
|
value: "0",
|
|
show: false,
|
|
data: ["0", "0", "0", "0", "0", "0"], //残疾
|
|
},
|
|
{
|
|
name: "低保",
|
|
value: "0",
|
|
show: false,
|
|
data: ["0", "0", "0", "0", "0", "0"], //低保
|
|
},
|
|
{
|
|
name: "特困",
|
|
value: "0",
|
|
show: false,
|
|
data: ["0", "0", "0", "0", "0", "0"], //特困
|
|
},
|
|
{
|
|
name: "其他疾病",
|
|
value: "0",
|
|
show: false,
|
|
data: ["0", "0", "0", "0", "0", "0"], //其他疾病
|
|
},
|
|
],
|
|
DataViewing: [
|
|
{
|
|
name: "医保支出万元以上",
|
|
data: ["0", "0", "0", "0", "0", "0"], //医保支出万元以上
|
|
},
|
|
], //数据查看
|
|
wjybrysl: [],
|
|
leftCenterYear: ["2019", "2020", "2021", "2022", "2023", "2024"], //年份
|
|
zccs1: ["图书馆", "公共自行车", "小奔通"], //一码通
|
|
zccs2: ["100", "3924", "3905"], //一码通
|
|
analysis: {
|
|
lnr: {
|
|
fgxy: { rs: "1610", zb: "51.77" },
|
|
gxy: { rs: "1500", zb: "48.23" },
|
|
rksj: {
|
|
man: "196576",
|
|
nl17: "48.23", // 17岁以下人口总数
|
|
nl60: "0", // 60以上人口总数
|
|
nl100: "0", // 100岁以上人口总数,
|
|
nl110: "0", // 1-10岁人口总数
|
|
nl1120: "0", // 11-20岁人口总数
|
|
nl1834: "0", // 18-34人口总数
|
|
nl2130: "0", // 21-30岁人口总数
|
|
nl3140: "0", // 31-40岁人口总数
|
|
nl3569: "0", // 35-69人口总数
|
|
nl4150: "0", // 41-50岁人口总数
|
|
nl5160: "0", // 51-60岁人口总数
|
|
nl6170: "0", // 61-70岁人口总数
|
|
nl7180: "0", // 71-80岁人口总数
|
|
nl8190: "0", // 81-90岁人口总数
|
|
nl91100: "0", // 91-100岁人口总数
|
|
rkzs: "390754",
|
|
woman: "194178",
|
|
},
|
|
},
|
|
push: [
|
|
{ name: "小奔通", num: 4196 },
|
|
{ name: "交通", num: 4026 },
|
|
{ name: "两慢病", num: 2 },
|
|
{ name: "天气", num: 102 },
|
|
],
|
|
},
|
|
});
|
|
const minData = reactive({
|
|
minTop: 49162,
|
|
minTop1: ["4", "9", "1", "6", "2", "人"],
|
|
minPieData1: {
|
|
wfgz: "1500",
|
|
xstp: "1610",
|
|
skym: "1610",
|
|
xxdc: "1610",
|
|
dzzh: "1610",
|
|
zq: "1610",
|
|
},
|
|
minPieData2: {
|
|
wfgz: "1500",
|
|
xstp: "1610",
|
|
skym: "1610",
|
|
},
|
|
});
|
|
// 数据查看
|
|
const onViewData = (value, i) => {
|
|
clearInterval(interval); //关闭动画
|
|
data.ViewData[i].show = !data.ViewData[i].show;
|
|
data.DataViewing = data.ViewData.filter((item) => item.show).map((item) => ({
|
|
name: item.name,
|
|
data: item.data,
|
|
}));
|
|
};
|
|
const onViewData1 = (i) => {
|
|
data.ViewData[i].show = !data.ViewData[i].show;
|
|
data.DataViewing = data.ViewData.filter((item) => item.show).map((item) => ({
|
|
name: item.name,
|
|
data: item.data,
|
|
}));
|
|
};
|
|
|
|
let interval;
|
|
let currentIndex = ref(0);
|
|
|
|
const toggleShow = () => {
|
|
const length = data.ViewData.length;
|
|
if (length === 0) return;
|
|
const current = currentIndex.value;
|
|
const nextIndex = (currentIndex.value + 1) % length;
|
|
// 取反当前索引和下一个索引的 show 值
|
|
// data.ViewData[current].show = !data.ViewData[current].show;
|
|
data.ViewData[nextIndex].show = !data.ViewData[nextIndex].show;
|
|
onViewData1(current);
|
|
currentIndex.value = nextIndex;
|
|
};
|
|
|
|
const startAutoSwitching = () => {
|
|
interval = setInterval(toggleShow, 6000); // 每6秒切换一次
|
|
};
|
|
const getData = async () => {
|
|
await http.get("/api/ggfwyth/analysis").then((res) => {
|
|
if (res.code == 200) {
|
|
// console.log(res.data, "信息推送");
|
|
// data.analysis = res.data;
|
|
data.analysis.lnr = res.data.lnr;
|
|
data.analysis.push[0].num = res.data.push[0].num;
|
|
|
|
const ageBt = ["nl6170", "nl7180", "nl8190", "nl91100", "nl100"];
|
|
ageBt.forEach((key, index) => {
|
|
data.whistleblower.culeTotal.data[index] = res.data.lnr.rksj[key];
|
|
});
|
|
data.wjybrysl = res.data.wjybrysl; //医保
|
|
// const mappings = [
|
|
// { key: 'ylzzwyrs', dataKey: 'ylzzwy' },
|
|
// { key: 'dbzyrs', dataKey: 'dbzyrs' },
|
|
// { key: 'gxyrs', dataKey: 'gxyrs' },
|
|
// { key: 'tnbrs', dataKey: 'tnbrs' },
|
|
// { key: 'gxzrs', dataKey: 'gxzrs' },
|
|
// { key: 'gxtrs', dataKey: 'gxtrs' },
|
|
// { key: 'cjrs', dataKey: 'cjrs' },
|
|
// { key: 'dibao', dataKey: 'dbjzrc' },
|
|
// { key: 'tekun', dataKey: 'tkjzrc' },
|
|
// { key: 'qtjbrs', dataKey: 'qtjbrs' },
|
|
// ];
|
|
|
|
// mappings.forEach((mapping, index) => {
|
|
// data.ViewData[index].data = res.data.dataShow[mapping.key][mapping.dataKey];
|
|
// data.ViewData[index].value = res.data.dataShow[mapping.key].total;
|
|
// });
|
|
data.leftCenterYear = res.data.dataShow.year;
|
|
// data.ViewData[0].data = res.data.dataShow.ylzzwyrs.ylzzwy; //医保支出万元以上
|
|
// data.ViewData[0].value = res.data.dataShow.ylzzwyrs.total; //医保支出万元以上年份
|
|
// data.ViewData[1].data = res.data.dataShow.dbzyrs.dbzyrs; //大病住院
|
|
// data.ViewData[1].value = res.data.dataShow.dbzyrs.total; //大病住院年份
|
|
data.ViewData[2].data = res.data.dataShow.gxyrs.gxyrs; //高血压
|
|
data.ViewData[2].value = res.data.dataShow.gxyrs.total; //高血压年份
|
|
data.ViewData[3].data = res.data.dataShow.tnbrs.tnbrs; //糖尿病
|
|
data.ViewData[3].value = res.data.dataShow.tnbrs.total; //糖尿病年份
|
|
// data.ViewData[4].data = res.data.dataShow.gxzrs.gxzrs; //高血脂
|
|
// data.ViewData[4].value = res.data.dataShow.gxzrs.total; //高血脂年份
|
|
// data.ViewData[5].data = res.data.dataShow.gxtrs.gxtrs; //高血糖
|
|
// data.ViewData[5].value = res.data.dataShow.gxtrs.total; //高血糖年份
|
|
// data.ViewData[6].data = res.data.dataShow.cjrs.cjrs; //残疾
|
|
// data.ViewData[6].value = res.data.dataShow.cjrs.total; //残疾年份
|
|
data.ViewData[7].data = res.data.dataShow.dibao.dbjzrc; //低保
|
|
data.ViewData[7].value = res.data.dataShow.dibao.total; //低保年份
|
|
data.ViewData[8].data = res.data.dataShow.tekun.tkjzrc; //特困
|
|
data.ViewData[8].value = res.data.dataShow.tekun.total; //特困年份
|
|
// data.ViewData[9].data = res.data.dataShow.qtjbrs.qtjbrs; //其他疾病
|
|
// data.ViewData[9].value = res.data.dataShow.qtjbrs.total; //其他疾病年份
|
|
showEchart.value = true;
|
|
}
|
|
});
|
|
};
|
|
|
|
onMounted(() => {
|
|
startAutoSwitching();
|
|
});
|
|
|
|
onBeforeMount(async () => {
|
|
getData();
|
|
});
|
|
|
|
onBeforeUnmount(() => {
|
|
clearInterval(interval); //清除定时器
|
|
});
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.displayFlex {
|
|
box-sizing: border-box;
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
// flex: 1;
|
|
width: 30%;
|
|
}
|
|
|
|
.flex1 {
|
|
flex: 1;
|
|
// padding: 0 28px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.module {
|
|
display: flex;
|
|
width: 100%;
|
|
margin-top: 112px;
|
|
}
|
|
|
|
.left_bg {
|
|
width: 642px;
|
|
// height: 100%;
|
|
box-sizing: border-box;
|
|
padding-left: 50px;
|
|
padding-right: 20px;
|
|
margin-right: 28px;
|
|
background-image: url(@/assets/images/left_bg.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.center_bg {
|
|
width: 582px;
|
|
box-sizing: border-box;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
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-right: 50px;
|
|
padding-left: 20px;
|
|
margin-left: 28px;
|
|
background-image: url(@/assets/images/right_bg.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.left_1 {
|
|
cursor: pointer;
|
|
background-image: url(@/assets/images/sjfx/lnsjfx.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.left_2 {
|
|
background-image: url(@/assets/images/sjfx/znfxSJCK.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
height: 28px;
|
|
}
|
|
|
|
.center_0 {
|
|
background-image: url(@/assets/images/sjfx/bft.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.center_1 {
|
|
background-image: url(@/assets/images/sjfx/sjfx6.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
.center_2 {
|
|
background-image: url(@/assets/images/sjfx/ymt.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.right_1 {
|
|
background-image: url(@/assets/images/sjfx/wjybry.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.right_2 {
|
|
cursor: pointer;
|
|
background-image: url(@/assets/images/sjfx/tab_xxts.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
.right_2_1 {
|
|
cursor: pointer;
|
|
background-image: url(@/assets/images/sjfx/tab_ymt.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
.right_3 {
|
|
cursor: pointer;
|
|
background-image: url(@/assets/images/sjfx/rxfx.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.yd_title {
|
|
box-sizing: border-box;
|
|
width: 98%;
|
|
height: 42px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
.text {
|
|
display: flex;
|
|
position: absolute;
|
|
font-size: 16px;
|
|
font-family: SourceHanSansCN;
|
|
font-weight: bold;
|
|
color: #ffffff;
|
|
position: absolute;
|
|
right: 5px;
|
|
top: 3px;
|
|
} /* 利用伪元素和两个i元素产生4条线 */
|
|
.animate-border {
|
|
position: absolute;
|
|
top: 0px;
|
|
width: 100%;
|
|
height: 100%;
|
|
&::before,
|
|
&::after {
|
|
content: "";
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 2px;
|
|
}
|
|
i {
|
|
position: absolute;
|
|
display: inline-block;
|
|
height: 100%;
|
|
width: 2px;
|
|
}
|
|
&::before {
|
|
top: 0;
|
|
left: -100%;
|
|
background-image: linear-gradient(
|
|
90deg,
|
|
transparent,
|
|
#03e9f4,
|
|
transparent
|
|
);
|
|
|
|
animation: one 4s linear infinite;
|
|
}
|
|
i:nth-child(1) {
|
|
top: -100%;
|
|
right: 0;
|
|
background-image: linear-gradient(
|
|
180deg,
|
|
transparent,
|
|
#03e9f4,
|
|
transparent
|
|
);
|
|
/* 动画名称 动画持续时间 动画渲染函数 动画延迟时间 动画执行次数 */
|
|
animation: two 4s linear 1s infinite;
|
|
}
|
|
&::after {
|
|
bottom: 0;
|
|
right: -100%;
|
|
background-image: linear-gradient(
|
|
-90deg,
|
|
transparent,
|
|
#03e9f4,
|
|
transparent
|
|
);
|
|
animation: three 4s linear 2s infinite;
|
|
}
|
|
i:nth-child(2) {
|
|
bottom: -100%;
|
|
left: 0;
|
|
background-image: linear-gradient(
|
|
360deg,
|
|
transparent,
|
|
#03e9f4,
|
|
transparent
|
|
);
|
|
animation: four 4s linear 3s infinite;
|
|
}
|
|
}
|
|
}
|
|
@keyframes one {
|
|
0% {
|
|
left: -100%;
|
|
}
|
|
50%,
|
|
100% {
|
|
left: 100%;
|
|
}
|
|
}
|
|
|
|
@keyframes two {
|
|
0% {
|
|
top: -100%;
|
|
}
|
|
50%,
|
|
100% {
|
|
top: 100%;
|
|
}
|
|
}
|
|
|
|
@keyframes three {
|
|
0% {
|
|
right: -100%;
|
|
}
|
|
50%,
|
|
100% {
|
|
right: 100%;
|
|
}
|
|
}
|
|
|
|
@keyframes four {
|
|
0% {
|
|
bottom: -100%;
|
|
}
|
|
50%,
|
|
100% {
|
|
bottom: 100%;
|
|
}
|
|
}
|
|
|
|
.mechanism {
|
|
background-image: url(@/assets/YLTitle/titleImg10.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.flex11 {
|
|
padding: 12px 0;
|
|
}
|
|
|
|
.map {
|
|
width: 560px;
|
|
height: 268px;
|
|
margin-top: 12px;
|
|
}
|
|
.right3d {
|
|
width: 560px;
|
|
height: 220px;
|
|
}
|
|
/* 滚动条整体部分 */
|
|
.rolling::-webkit-scrollbar {
|
|
width: 5px;
|
|
// height: 10px;
|
|
}
|
|
|
|
/* 滚动槽 */
|
|
.rolling::-webkit-scrollbar-track {
|
|
border-radius: 1px;
|
|
background: rgba(0, 128, 231, 0.56);
|
|
-webkit-box-shadow: inset 0 0 6px rgba(139, 139, 139, 0.3);
|
|
}
|
|
|
|
/* 滚动条滑块样式 */
|
|
.rolling::-webkit-scrollbar-thumb {
|
|
background-clip: content-box;
|
|
border-radius: 6px;
|
|
background: rgba(0, 162, 231, 1);
|
|
-webkit-box-shadow: inset 0 0 6px rgba(20, 20, 20, 0.3);
|
|
}
|
|
|
|
.hypertension {
|
|
display: flex;
|
|
}
|
|
.ViewData {
|
|
.ViewDatalist {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
color: #ffffff;
|
|
margin-top: 14px;
|
|
.ViewDataTop {
|
|
width: 114px;
|
|
height: 132px;
|
|
display: flex;
|
|
align-items: center;
|
|
flex-direction: column;
|
|
cursor: pointer;
|
|
|
|
.ViewDataTopimg {
|
|
background-image: url(@/assets/images/sjfx/sjfx.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
width: 80px;
|
|
height: 80px;
|
|
margin-bottom: -28px;
|
|
text-align: center;
|
|
line-height: 100px;
|
|
animation: moveUpDown 2s infinite;
|
|
}
|
|
.ViewDataTopimg_1 {
|
|
background-image: url(@/assets/images/sjfx/sjfx1.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
width: 105px;
|
|
height: 57px;
|
|
}
|
|
.ViewDataBottomimg {
|
|
background-image: url(@/assets/images/sjfx/sjfx2.png);
|
|
animation: scaleUpDown 2s infinite;
|
|
}
|
|
.ViewDataBottomimg_1 {
|
|
background-image: url(@/assets/images/sjfx/sjfx3.png);
|
|
margin-top: 4px;
|
|
}
|
|
|
|
@keyframes moveUpDown {
|
|
0%,
|
|
100% {
|
|
transform: translateY(0);
|
|
}
|
|
50% {
|
|
transform: translateY(-10px);
|
|
}
|
|
}
|
|
// @keyframes scaleUpDown {
|
|
// 0%,
|
|
// 100% {
|
|
// transform: scale(1);
|
|
// }
|
|
// 50% {
|
|
// transform: scale(1.1);
|
|
// }
|
|
// }
|
|
}
|
|
}
|
|
}
|
|
.minTopTitle {
|
|
width: 100%;
|
|
height: 28px;
|
|
background-image: url(@/assets/images/sjfx/yjj.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
margin: 4px auto;
|
|
margin-top: 13px;
|
|
}
|
|
.minTopNum {
|
|
width: 100%;
|
|
height: 120px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
.numItem {
|
|
width: 72px;
|
|
height: 114px;
|
|
text-align: center;
|
|
line-height: 114px;
|
|
font-weight: 400;
|
|
font-size: 60px;
|
|
margin: 0 3px;
|
|
color: #ffffff;
|
|
text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
|
|
background-image: url(@/assets/images/sjfx/mtNum.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
.numItem:last-child {
|
|
width: 72px;
|
|
height: 114px;
|
|
text-align: center;
|
|
line-height: 114px;
|
|
font-weight: 400;
|
|
font-size: 36px;
|
|
margin: 0 3px;
|
|
color: #ffffff;
|
|
text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
|
|
background-image: url(@/assets/images/sjfx/mtNum2.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
}
|
|
.minPie {
|
|
width: 50%;
|
|
position: relative;
|
|
float: left;
|
|
.minPieImg {
|
|
position: absolute;
|
|
width: 137px;
|
|
height: 20px;
|
|
background-image: url(@/assets/images/sjfx/minPieT.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
text-align: center;
|
|
font-size: 16px;
|
|
color: #ffffff;
|
|
line-height: 22px;
|
|
letter-spacing: 4px;
|
|
top: 140px;
|
|
left: 75px;
|
|
z-index: 2;
|
|
}
|
|
}
|
|
//就业培训
|
|
.jypx {
|
|
width: 100%;
|
|
height: 200px;
|
|
// margin: 20px 0;
|
|
margin-bottom: 10px;
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.choose {
|
|
display: flex;
|
|
justify-content: center;
|
|
margin: 8px 0;
|
|
.choose_0 {
|
|
cursor: pointer;
|
|
width: 110px;
|
|
height: 42px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-weight: 500;
|
|
font-size: 15px;
|
|
color: #ffffff;
|
|
margin-right: 10px;
|
|
}
|
|
// .choose_0:last-child {
|
|
// margin-right: 0px;
|
|
// }
|
|
.choose_1 {
|
|
background-image: url(@/assets/images/sjfx/sjfx7.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.choose_2 {
|
|
background-image: url(@/assets/images/sjfx/sjfx8.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
}
|
|
.minPieImg2 {
|
|
position: absolute;
|
|
width: 137px;
|
|
height: 20px;
|
|
background-image: url(@/assets/images/sjfx/minPieT.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
text-align: center;
|
|
font-size: 16px;
|
|
color: #ffffff;
|
|
line-height: 22px;
|
|
letter-spacing: 4px;
|
|
top: 185px;
|
|
left: 25px;
|
|
z-index: 2;
|
|
}
|
|
.jypx_right {
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin-left: 35px;
|
|
.jypx_right_item {
|
|
display: flex;
|
|
align-items: center;
|
|
img {
|
|
width: 70px;
|
|
height: 60px;
|
|
}
|
|
.jypx_right_item_right {
|
|
margin-left: 15px;
|
|
.jypx_name {
|
|
letter-spacing: 1px;
|
|
font-size: 18px;
|
|
line-height: 25px;
|
|
}
|
|
.jypx_value {
|
|
font-size: 22px;
|
|
color: #ffffff;
|
|
line-height: 30px;
|
|
letter-spacing: 1px;
|
|
}
|
|
}
|
|
}
|
|
.jypx_right_item:first-child {
|
|
margin-bottom: 20px;
|
|
.jypx_name {
|
|
color: #00ebff;
|
|
}
|
|
}
|
|
.jypx_right_item:last-child {
|
|
.jypx_name {
|
|
color: #a5cdff;
|
|
}
|
|
}
|
|
}
|
|
//入学分析
|
|
.rxfx {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
.historyimg {
|
|
margin-top: 15px;
|
|
padding: 0 25px;
|
|
background-image: url(@/assets/images/hygiene/xtgl_1.png);
|
|
background-size: 100% 100%;
|
|
background-repeat: no-repeat;
|
|
font-size: 18px;
|
|
color: #ffffff;
|
|
line-height: 21px;
|
|
letter-spacing: 2px;
|
|
}
|
|
}
|
|
</style>
|