ggfwjsc/src/view/education.vue

1924 lines
45 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="module">
<div class="displayFlex left_bg">
<div class="flex1">
<div class="yd_title left_1">
<div class="animate-border">
<i></i>
<i></i>
</div>
</div>
<eP1 :list="data.xsql" v-if="showEchart"></eP1>
<div class="t_1"></div>
<div class="t_2">
<div class="t_2_1" v-for="(item, index) in data.zdgz" :key="index">
<div class="top">{{ item.value }}</div>
<div class="t_3">
<div :class="item.cls"></div>
<div class="right">{{ item.name }}</div>
</div>
</div>
</div>
</div>
<div class="flex1" style="margin-top: 30px">
<div class="yd_title left_2">
<div class="animate-border">
<i></i>
<i></i>
</div>
</div>
<div class="selectLint">
<div class="selectBox">
<el-select
v-model="selectData.value1"
placeholder="请选择"
size="large"
@change="selectChange1"
>
<el-option
v-for="item in selectData.options1"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
<div class="selectBox">
<el-select
v-model="selectData.value2"
placeholder="请选择"
size="large"
@change="selectChange2"
>
<el-option
v-for="item in selectData.options2"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
</div>
<ePieRose :list="selectData.list" v-if="showEchart && showR"></ePieRose>
</div>
</div>
<div class="displayFlex center_bg">
<div class="flex1">
<div class="yd_title center_1">
<div class="animate-border">
<i></i>
<i></i>
</div>
</div>
<div class="school">
<div class="schoolaBox">
<div class="schoola">
<span>{{ data.xxgk.xxzs }}</span>
<span class="schoola1">学校总数</span>
</div>
<div class="schoola">
<span>{{ data.xxgk.xszs }}</span>
<span class="schoola1">学生总数</span>
</div>
<div class="schoola">
<span>{{ data.xxgk.bjzs }}</span>
<span class="schoola1">班级总数</span>
</div>
<div class="schoola">
<span>{{ data.xxgk.jzgzs }}</span>
<span class="schoola1">教职工总数</span>
</div>
</div>
<div class="schoolb">
<img src="../assets/eduImg/xxgkTop.png" class="gkTop" alt="" />
<div class="grade">
<div
class="schoolbs"
@click="showDialog('学校', '/api/ggfwyth/schoolList', '初中')"
>
<span class="spot font">初中</span>
<span class="font">{{ data.xxgk.czxxsl }}</span>
</div>
<div
class="schoolbs"
@click="showDialog('学校', '/api/ggfwyth/schoolList', '高中')"
>
<span class="spot font">高中</span>
<span class="font">{{ data.xxgk.gzxxsl }}</span>
</div>
</div>
<div class="grade">
<div
class="schoolbs"
@click="showDialog('学校', '/api/ggfwyth/schoolList', '小学')"
>
<span class="spot font">小学</span>
<span class="font">{{ data.xxgk.xxxxsl }}</span>
</div>
<div
class="schoolbs"
@click="showDialog('学校', '/api/ggfwyth/schoolList', '中职')"
>
<span class="spot font">中职</span>
<span class="font">{{ data.xxgk.zzxxsl }}</span>
</div>
</div>
<div class="grade grade1">
<div
class="schoolbs"
@click="showDialog('学校', '/api/ggfwyth/schoolList', '幼儿园')"
>
<span class="spot font">幼儿园</span>
<span class="font">{{ data.xxgk.yeyxxsl }}</span>
</div>
<div class="schoolbs">
<span
class="spot font"
@click="showDialog('学校', '/api/ggfwyth/schoolList', '特教')"
>特殊教育</span
>
<span class="font">{{ data.xxgk.tsjyxxsl }}</span>
</div>
</div>
</div>
</div>
</div>
<div class="flex1">
<div style="width: 100%; display: flex; flex-wrap: wrap">
<edie :list="data.xzncxxsl" v-if="showEchart"></edie>
<edie5 :list="data.xzncjszcsl" v-if="showEchart"></edie5>
<!-- <div class="rating">
<edXX
:list="data.schoolData"
:active="selectData.active"
></edXX>
<div class="ratingBtn">
<div
class="onImg"
:class="{ ratingImg: selectData.active === '县镇' }"
>
<span @click="ratingBtn('县镇')">县镇</span>
</div>
<div
class="onImg"
:class="{ ratingImg: selectData.active === '农村' }"
>
<span @click="ratingBtn('农村')">农村</span>
</div>
</div>
</div> -->
</div>
</div>
<div class="flex1">
<div class="fundingBox">
<div class="funding">
<span>资助项目</span>
<span>资助数量</span>
<span>资助金额</span>
</div>
<div
class="rolling"
ref="mainRef"
@mouseenter="stopAutoScroll"
@mouseleave="startAutoScroll"
>
<div
v-for="(item, index) in data.zzxm"
:key="index"
class="fundingContent"
>
<span class="spot">{{ item.zzxm }}</span>
<span class="spot">{{ item.zzsl }}</span>
<span class="spot">{{ item.zzje }}</span>
</div>
</div>
</div>
</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>
<div class="czr-sl">
<div class="historyimg historyimg1">
<span>覆盖医疗机构数量</span>
<span>{{ data.whistleblower.yljgsl }}</span>
</div>
<div class="historyimg historyimg2">
<span>启用角色数量</span>
<span>{{ data.whistleblower.qyjssl }}</span>
</div>
<!-- <img src="@/assets/eduImg/jyImg14.png" alt="" />
<img src="@/assets/eduImg/jyImg15.png" alt="" /> -->
</div>
<!-- <edCSR></edCSR> -->
</div>
<div class="flex11">
<div class="earlyWarning">
<div class="earlyWarning1">
<div>
<span class="green">{{ data.whistleblower.green }}</span>
</div>
<img src="@/assets/eduImg/jyImg10.png" alt="" />
<img src="@/assets/eduImg/pp3.gif" alt="" class="ppImg" />
<div class="historyimg historyimg1">
<span style="font-size: 18px">绿色预警</span>
</div>
</div>
<div class="earlyWarning1">
<div>
<span class="yellow">{{ data.whistleblower.yellow }}</span>
</div>
<img src="@/assets/eduImg/jyImg9.png" alt="" />
<img src="@/assets/eduImg/pp2.gif" alt="" class="ppImg" />
<div class="historyimg historyimg2">
<span style="font-size: 18px">黄色预警</span>
</div>
</div>
<div class="earlyWarning1">
<div>
<span class="red">{{ data.whistleblower.red }}</span>
</div>
<img src="@/assets/eduImg/jyImg8.png" alt="" />
<img src="@/assets/eduImg/pp1.gif" alt="" class="ppImg" />
<div class="historyimg historyimg3">
<span style="font-size: 18px">红色预警</span>
</div>
</div>
</div>
</div>
<div class="flex1">
<div style="display: flex; justify-content: center">
<div class="czr-bj">
<!-- <div>
<div class="czrBox">
<div class="situation situation1"></div>
<edxs
:list="data.whistleblower.culeTotal.data"
:month="data.whistleblower.culeTotal.time"
></edxs>
</div>
<div class="czrBox">
<div class="situation situation2"></div>
<edxs1
:list="data.whistleblower.gaCules.data"
:month="data.whistleblower.gaCules.time"
></edxs1>
</div>
</div> -->
<!-- <div> -->
<div class="czrBox">
<div class="situation situation3"></div>
<edxs2
:list="data.whistleblower.newCules.data"
:month="data.whistleblower.newCules.time"
v-if="showEchart"
></edxs2>
</div>
<div class="clue">
<div class="clueBox">
<div class="clueTitle">预警线索总数</div>
<div class="clueNum">{{ data.culeTotal }}</div>
<div class="clueUnit">条</div>
</div>
<div class="clueBox">
<div class="clueTitle">公安协同 <br />处置线索</div>
<div class="clueNum">{{ data.gaCules }}</div>
<div class="clueUnit">条</div>
</div>
<div class="clueBox">
<div class="clueTitle">检察官处置线索</div>
<div class="clueNum">{{ data.jcgCules }}</div>
<div class="clueUnit">条</div>
</div>
</div>
<!-- <div class="czrBox">
<div class="situation situation4"></div>
<edxs3
:list="data.whistleblower.jcgCules.data"
:month="data.whistleblower.jcgCules.time"
></edxs3>
</div> -->
<!-- </div> -->
</div>
</div>
<!-- <eBubble></eBubble> -->
</div>
</div>
<Dialog
:dialogShow="dialogShow"
:columns="tableType.columns"
:title="tableType.title"
:tableData="tableType.data"
:pagination="pagination"
@close="close"
@handle="handlePagination"
>
</Dialog>
</div>
</template>
<script setup>
import { ref, reactive, onMounted, onBeforeMount } from "vue";
import edxs from "./echarts_education/edXS.vue";
import edxs1 from "./echarts_education/edXS1.vue";
import edxs2 from "./echarts_education/edXS2.vue";
import edxs3 from "./echarts_education/edXS3.vue";
import edie5 from "./echarts_education/pie5.vue";
import edie from "./echarts_education/pie.vue";
import edCSR from "./echarts_education/edCSR.vue";
import edXX from "./echarts_education/edXX.vue";
import ePie1 from "./echarts_education/pie1.vue";
import ePie2 from "./echarts_education/pie2.vue";
import ePie3 from "./echarts_education/pie3.vue";
import ePie4 from "./echarts_education/pie4.vue";
import ePieRose from "./echarts_education/pieRose.vue";
import eP1 from "./echarts_education/eP1.vue";
import http from "@/utils/request.js";
import Dialog from "./dialog/dialog.vue";
const showR = ref(true); //下拉
const selectData = reactive({
value1: "0",
value2: "0",
list: [],
list1: [],
active: "县镇",
evaluationAnalysis: {},
options1: [
{
value: "1",
label: "2023年秋季小学生心理健康普查",
},
{
value: "2",
label: "2023年秋季初中生心理健康普查",
},
{
value: "3",
label: "2023年秋季高中生心理健康普查",
},
],
options2: [
{
value: "tes1",
label: "中小学心理健康诊断测验(MHT",
},
{
value: "tes2",
label: "小学心理健康诊断测验",
},
// {
// value: "tes3",
// label: "中学心理健康诊断",
// },
],
});
var roseData1 = ref([
{
name: "正常",
value: 17,
},
{
name: "关注",
value: 16,
},
{
name: "追踪",
value: 14,
},
{
name: "异常",
value: 8,
},
{
name: "警戒",
value: 8,
},
]);
var roseData2 = ref([
{
name: "正常",
value: 37,
},
{
name: "关注",
value: 26,
},
{
name: "追踪",
value: 24,
},
{
name: "异常",
value: 18,
},
{
name: "警戒",
value: 18,
},
]);
var roseData3 = ref([
{
name: "正常",
value: 227,
},
{
name: "关注",
value: 169,
},
{
name: "追踪",
value: 114,
},
{
name: "异常",
value: 98,
},
{
name: "警戒",
value: 78,
},
]);
//详情弹框
const dialogShow = ref(false);
const tableType = reactive({
url: "",
title: "",
columns: [
{
label: "学校名称",
property: "xxmc",
},
{
label: "区域",
property: "qq",
},
{
label: "学段",
property: "xd",
},
{
label: "班级数",
property: "bjs",
},
{
label: "教师数",
property: "jss",
},
{
label: "学生数",
property: "xss",
},
{
label: "性质",
property: "xz",
},
],
data: [],
});
// 表格分页
const pagination = reactive({
total: 100,
pageSize: 10,
currentPage: 1,
school: "",
});
const handlePagination = (current) => {
pagination.currentPage = current;
getTable(tableType.url, pagination.currentPage);
};
const showDialog = (title, url, school) => {
tableType.title = title;
pagination.school = school;
tableType.url = url;
pagination.currentPage = 1;
dialogShow.value = true;
getTable(url, pagination.currentPage);
};
//获取表格数据
const getTable = (url, currentPage) => {
dialogShow.value = true;
http
.get(
`${url}?page=${currentPage}&size=${pagination.pageSize}&xd=${pagination.school}`
)
.then((res) => {
if (res.code == 200) {
tableType.data = res.data;
pagination.total = res.count;
dialogShow.value = true;
}
});
};
const close = () => {
dialogShow.value = false;
};
//----选择
const selectChange1 = () => {
selectData.options1 = [];
selectData.options2 = [];
selectData.evaluationAnalysis.forEach((item, index) => {
const newOption = {
value: `${index}`,
label: item.planTitle,
};
selectData.options1.push(newOption);
});
if (
selectData.evaluationAnalysis[selectData.value1] &&
selectData.evaluationAnalysis[selectData.value1].child
) {
selectData.evaluationAnalysis[selectData.value1].child.forEach(
(item, index) => {
const newOption = {
value: `${index}`,
label: item.title,
};
selectData.options2.push(newOption);
}
);
}
selectData.value2 = "0";
selectChange2();
};
const selectChange2 = () => {
showR.value = false;
roseData1.value.forEach((item, index) => {
item.value =
selectData.evaluationAnalysis[selectData.value1].child[
selectData.value2
].statistics[index + 1];
});
selectData.list = roseData1.value;
// console.log(selectData.list);
setTimeout(() => {
showR.value = true;
}, 100);
};
// const ratingBtn = (item) => {
// selectData.active = item; // 设置当前选中的项目
// switch (selectData.active) {
// // case "城市":
// // selectData.list1 = schoolData.value;
// // break;
// case "县镇":
// data.schoolData[0].value = data.xzncjszcsl.xzjszcsl.xzfgj; //县镇复高级数量
// data.schoolData[1].value = data.xzncjszcsl.xzjszcsl.xzzgj; //县镇正高级数量
// data.schoolData[2].value = data.xzncjszcsl.xzjszcsl.xzwdj; //县镇未定级数量
// data.schoolData[3].value = data.xzncjszcsl.xzjszcsl.xzyj; //县镇员级数量
// data.schoolData[4].value = data.xzncjszcsl.xzjszcsl.xzzj; //县镇中级数量
// data.schoolData[5].value = data.xzncjszcsl.xzjszcsl.xzzlj; //县镇助理级数量
// break;
// case "农村":
// data.schoolData[0].value = data.xzncjszcsl.ncjszcsl.ncfgj; //县镇正高级数量
// data.schoolData[1].value = data.xzncjszcsl.ncjszcsl.nczgj; //县镇正高级数量
// data.schoolData[2].value = data.xzncjszcsl.ncjszcsl.ncwdj; //县镇中级数量
// data.schoolData[3].value = data.xzncjszcsl.ncjszcsl.nczlj; //县镇助理级数量
// data.schoolData[4].value = data.xzncjszcsl.ncjszcsl.ncyj; //县镇员级数量
// data.schoolData[5].value = data.xzncjszcsl.ncjszcsl.ncwdj; //县镇未定级数量
// break;
// default:
// break;
// }
// };
const showEchart = ref(false);
const data = reactive({
xsql: [],
zdgz: [
{
name: "留守儿童",
value: 16.1,
cls: "left1",
},
{
name: "独生子女",
value: 32.1,
cls: "left2",
},
{
name: "单亲家庭",
value: 65.1,
cls: "left3",
},
{
name: "享受低保",
value: 0.1,
cls: "left4",
},
],
xxgk: {},
xzncjszcsl: {},
xzncxxsl: [[], []],
zzxm: [],
schoolData: [
{ name: "副高级", value: "" },
{ name: "正高级", value: "" },
{ name: "未定级", value: "" },
{ name: "员级", value: "" },
{ name: "中级", value: "" },
{ name: "助理级", value: "" },
],
whistleblower: {
yljgsl: 10, //覆盖医疗机构数量
qyjssl: 3, //吹哨人启用角色
green: 316895, //绿色
yellow: 16676, //黄色
red: 6242, //红色
culeTotal: {
data: ["255", "165", "165", "165", "165"],
time: ["5.31", "6.1", "6.2", "6.3", "6.4"],
}, //预警线索总数量
newCules: {
data: ["255", "165", "165", "165", "165"],
time: ["5.31", "6.1", "6.2", "6.3", "6.4"],
}, //每日新增线索
gaCules: {
data: ["255", "165", "165", "165", "165"],
time: ["5.31", "6.1", "6.2", "6.3", "6.4"],
}, //公安协同处置线索
jcgCules: {
data: ["255", "165", "165", "165", "165"],
time: ["5.31", "6.1", "6.2", "6.3", "6.4"],
}, //检察官协同处置线索
},
culeTotal: "", //预警线索总数量最新值
gaCules: "", //公安协同处置线索最新值
jcgCules: "", //检察官协同处置线索最新值
});
const getData = async () => {
await http.get("/api/ggfwyth/education").then((res) => {
if (res.code == 200) {
// 学生情况
data.xsql.push(res.data.xssl.zz);
data.xsql.push(res.data.xssl.gz);
data.xsql.push(res.data.xssl.cz);
data.xsql.push(res.data.xssl.xx);
data.xsql.push(res.data.xssl.yey);
data.xsql.push(res.data.xssl.tsjy);
// 重点关注
data.zdgz[0].value = res.data.zdgz.lset;
data.zdgz[1].value = res.data.zdgz.dszn;
data.zdgz[2].value = res.data.zdgz.dqjt;
data.zdgz[3].value = res.data.zdgz.xsdb;
// 测评分析
selectData.evaluationAnalysis = res.data.cpfx;
selectChange1();
// 学校概况
data.xxgk = res.data.xxgk;
// 县镇农村学校数量 初始化数据
data.xzncxxsl[0].push(res.data.xzncxxsl.ncxx.ncxx);
data.xzncxxsl[0].push(res.data.xzncxxsl.ncxx.nccz);
data.xzncxxsl[0].push(res.data.xzncxxsl.ncxx.ncgz);
data.xzncxxsl[1].push(res.data.xzncxxsl.xzxx.xzxx);
data.xzncxxsl[1].push(res.data.xzncxxsl.xzxx.xzcz);
data.xzncxxsl[1].push(res.data.xzncxxsl.xzxx.xzgz);
// 县镇农村教师职称数量
data.xzncjszcsl = res.data.xzncjszcsl;
// 资助项目
data.zzxm = res.data.zzxm;
// 吹哨人
data.whistleblower = res.data.whistleblower;
// 预警线索
data.culeTotal = res.data.whistleblower.culeTotal.data.slice(-1)[0];
data.gaCules = res.data.whistleblower.gaCules.data.slice(-1)[0];
data.jcgCules = res.data.whistleblower.jcgCules.data.slice(-1)[0];
showEchart.value = true;
}
});
};
//自动滚动
const mainRef = ref(null);
let isAutoScrolling = true;
const stopAutoScroll = () => {
isAutoScrolling = false;
};
const startAutoScroll = () => {
isAutoScrolling = true;
autoScroll();
};
const autoScroll = () => {
if (!isAutoScrolling) return;
const mainEl = mainRef.value;
if (!mainEl) {
// console.error("mainRef is not defined");
return;
}
mainEl.scrollTop += 1; // 每次滚动的距离
if (mainEl.scrollTop + 1 >= mainEl.scrollHeight - mainEl.clientHeight) {
setTimeout(() => {
mainEl.scrollTo({ top: 0, behavior: "smooth" });
setTimeout(autoScroll, 2000); // 2秒后再次滚动到底部
}, 1000); // 暂停1秒后开始快速滚回顶部
} else {
requestAnimationFrame(autoScroll);
}
};
onBeforeMount(async () => {
selectData.list = roseData1.value;
getData();
});
onMounted(() => {
startAutoScroll();
});
</script>
<style lang="scss" scoped>
.displayFlex {
box-sizing: border-box;
height: 100%;
display: flex;
flex-direction: column;
// flex: 1;
width: 30%;
}
.flex1 {
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 {
// background-image: url(@/assets/eduImg/title1.png);
background-image: url(@/assets/images/education/new_xsqk.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left_2 {
background-image: url(@/assets/images/education/new_cpfx.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.center_1 {
background-image: url(@/assets/images/education/new_xxgk.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.right_1 {
background-image: url(@/assets/images/education/new_csr.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
// .yd_title {
// // background-image: url(@/assets/img_04.png);
// // background-repeat: no-repeat;
// // background-size: 100% 100%;
// box-sizing: border-box;
// width: 100%;
// height: 36px;
// position: relative;
// .text {
// font-size: 16px;
// font-family: SourceHanSansCN;
// font-weight: bold;
// color: #ffffff;
// position: absolute;
// left: 33px;
// top: 3px;
// }
// }
.basicInformation {
display: flex;
flex-direction: row;
flex-wrap: wrap;
padding-top: 22px;
.basicInformation_item {
flex: 0 0 50%;
padding: 0 2px;
margin-bottom: 10px;
margin-top: 10px;
box-sizing: border-box;
display: flex;
align-items: center;
.icon {
width: 79px;
height: 47px;
}
.right {
margin-left: 4px;
.label {
background-image: url(@/assets/img_11.png);
background-size: 100%;
background-repeat: no-repeat;
background-position: bottom;
margin-bottom: 4px;
span {
font-size: 12px;
font-weight: 400;
color: #eff0f1;
line-height: 19px;
margin-left: 2px;
}
}
p {
font-size: 16px;
font-weight: bold;
color: #6acbff;
line-height: 24px;
}
}
}
}
.visitLog {
.visitLog_item {
display: flex;
align-items: center;
background-image: url(@/assets/img_12.png);
background-size: 100% 100%;
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;
font-weight: bold;
color: #0096ff;
margin-bottom: 2px;
}
p {
font-size: 12px;
font-family: SourceHanSansCN;
font-weight: 400;
color: #ffffff;
margin-top: 6px;
}
}
.check {
font-size: 12px;
font-family: SourceHanSansCN;
font-weight: 400;
color: #0096ff;
line-height: 20px;
}
}
}
.history {
padding-top: 12px;
p {
margin-top: 12px;
font-size: 12px;
font-weight: 400;
color: #ffffff;
line-height: 28px;
border-bottom: 13px solid rgba(57, 59, 109, 1);
}
}
.concernLabel {
display: flex;
align-items: center;
justify-content: center;
margin: 12px 0 20px;
span {
text-align: center;
background: rgba(0, 89, 130, 0.73);
border-radius: 10px;
width: 118px;
height: 49px;
line-height: 49px;
font-size: 18px;
font-weight: 400;
color: #ffffff;
margin: 0 10px;
}
}
.property {
display: flex;
padding: 14px 0 10px;
.property_box {
//background-image: url(@/assets/img_05.png);
background-size: 100% 100%;
background-repeat: no-repeat;
width: 179px;
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;
color: #48ece7;
}
}
}
.activity {
h5 {
font-size: 14px;
font-weight: bold;
color: rgba(0, 164, 250, 0.8);
line-height: 47px;
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;
margin: 0 6px;
box-sizing: border-box;
background-color: rgba(15, 28, 54, 1);
padding: 12px 12px 19px;
p {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 27px;
height: 100%;
}
}
}
}
.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;
color: #818181;
line-height: 23px;
}
}
}
}
.yd_title {
// background-image: url(@/assets/img_04.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
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: 50px 0;
// margin-top: 54px;
}
.czr-sl {
display: flex;
.historyimg {
width: 255px;
height: 56px;
background-repeat: no-repeat;
background-size: 100% 100%;
margin-top: 20px;
display: flex;
align-items: center;
justify-content: space-between;
padding-left: 70px;
span {
font-weight: 600;
font-size: 17px;
color: #ffffff;
line-height: 22px;
letter-spacing: 2px;
text-align: left;
font-style: normal;
font-family: PingFangSC, PingFang SC;
padding-right: 10px;
}
}
.historyimg1 {
background-image: url(@/assets/eduImg/jyImg14.png);
margin-right: 10px;
}
.historyimg2 {
background-image: url(@/assets/eduImg/jyImg15.png);
}
}
.earlyWarning {
height: calc(100% - 10px);
display: flex;
align-items: center;
justify-content: space-around;
.earlyWarning1 {
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;
position: relative;
.ppImg {
position: absolute;
width: 160px;
height: 120px;
top: 20px;
}
img {
width: 136px;
height: 100px;
}
.green {
font-size: 26px;
font-weight: bold;
letter-spacing: 2px;
text-align: center;
font-style: normal;
font-family: TCloudNumber, TCloudNumber;
background-image: linear-gradient(180deg, #7be546 0%, #38ffb1 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.yellow {
font-size: 26px;
font-weight: bold;
letter-spacing: 2px;
text-align: center;
font-style: normal;
font-family: TCloudNumber, TCloudNumber;
background-image: linear-gradient(180deg, #ee8404 0%, #efd404 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.red {
font-size: 26px;
font-weight: bold;
letter-spacing: 2px;
text-align: center;
font-style: normal;
font-family: TCloudNumber, TCloudNumber;
background-image: linear-gradient(180deg, #ff3e00 0%, #ed5a2d 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.historyimg {
width: 140px;
height: 19px;
background-repeat: no-repeat;
background-size: 100% 100%;
margin-top: 20px;
display: flex;
align-items: center;
justify-content: center;
span {
font-weight: 500;
font-size: 14px;
color: #ffffff;
letter-spacing: 4px;
font-style: normal;
font-family: PingFangSC, PingFang SC;
}
}
.historyimg1 {
background-image: url(@/assets/eduImg/jyImg4.png);
}
.historyimg2 {
background-image: url(@/assets/eduImg/jyImg6.png);
}
.historyimg3 {
background-image: url(@/assets/eduImg/jyImg5.png);
}
}
}
.czr-bj {
width: 529px;
border-radius: 2px;
// padding-top: 20px;
display: flex;
justify-content: space-around;
flex-direction: column;
// height: calc(100% - 26px);
// height: 200px;
// background: rgba(0, 103, 165, 0.18);
// box-shadow: inset 0px 0px 58px 0px rgba(37, 175, 252, 0.47);
// box-sizing: border-box;
.czrBox {
// height: 104px;
// width: 280px;
width: 100%;
min-height: 310px;
display: flex;
flex-direction: column;
align-items: center;
.column {
height: calc(100% - 26px);
overflow-y: auto;
font-size: 14px;
color: #ffffff;
padding-left: 18px;
padding-right: 18px;
}
}
.clue {
display: flex;
align-items: center;
margin-top: 37px;
.clueBox {
width: 171px;
height: 173px;
display: flex;
flex-direction: column;
align-items: center;
background-image: url(@/assets/eduImg/xxBJ.png);
background-repeat: no-repeat;
background-size: 100% 100%;
.clueTitle {
margin-top: 22px;
font-family: PangMenZhengDao, PangMenZhengDao;
font-weight: normal;
font-size: 20px;
color: #ffffff;
letter-spacing: 1px;
text-shadow: 0px 2px 4px #3575f9;
text-align: center;
font-style: normal;
}
.clueNum {
margin-top: 42px;
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 32px;
color: #ffffff;
letter-spacing: 1px;
text-align: center;
font-style: normal;
}
.clueUnit {
margin-top: 4px;
font-weight: 500;
font-size: 16px;
color: #9cdeff;
text-align: center;
font-style: normal;
font-family: PingFangSC, PingFang SC;
}
}
.clueBox:nth-child(2) {
margin: 0 20px;
.clueTitle {
margin-top: 10px;
}
.clueNum {
margin-top: 28px;
}
}
}
.situation {
width: 196px;
height: 45px;
background-repeat: no-repeat;
background-size: 100% 100%;
margin-bottom: 16px;
}
.situation1 {
background-image: url(@/assets/images/education/xs.png);
}
.situation2 {
background-image: url(@/assets/images/education/xs2.png);
}
.situation3 {
background-image: url(@/assets/images/education/xs1.png);
}
.situation4 {
background-image: url(@/assets/images/education/xs3.png);
}
}
.school {
display: flex;
flex-direction: column;
justify-content: space-around;
.schoolaBox {
display: flex;
justify-content: space-between;
}
.schoola {
width: 124px;
height: 79px;
margin-top: 20px;
padding: 2px 0 14px 0;
box-sizing: border-box;
background-image: url(@/assets/eduImg/jyImg3.png);
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
justify-content: space-between;
span {
// font-weight: 500;
// font-size: 14px;
// color: #ffffff;
// letter-spacing: 4px;
// font-style: normal;
// font-family: PingFangSC, PingFang SC;
font-family: TCloudNumber, TCloudNumber;
// font-weight: bold;
font-size: 23px;
color: #ffffff;
line-height: 30px;
letter-spacing: 1px;
text-shadow: 0px 0px 23px rgba(0, 52, 52, 0.5);
text-align: center;
font-style: normal;
}
.schoola1 {
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 16px;
color: #ffffff;
line-height: 22px;
letter-spacing: 3px;
text-shadow: 0px 0px 4px rgba(60, 145, 249, 0.65);
text-align: center;
font-style: normal;
}
}
.schoolb {
width: 550px;
height: 241px;
// height: calc(100% - 0px);
background-image: url(@/assets/eduImg/jyImg2.png);
background-repeat: no-repeat;
background-size: 100% 100%;
margin-top: 20px;
display: flex;
flex-direction: column;
padding: 10px 0;
box-sizing: border-box;
position: relative;
.gkTop {
position: absolute;
top: 4px;
left: 170px;
animation: example 3s infinite linear;
}
@keyframes example {
0% {
transform: translateY(0);
}
25% {
transform: translateY(-3px);
}
50% {
transform: translateY(0);
}
75% {
transform: translateY(3px);
}
100% {
transform: translateY(0);
}
}
.gkMove {
position: absolute;
top: 4px;
left: -2px;
width: 98%;
height: 96%;
}
span {
font-weight: 500;
font-size: 14px;
color: #ffffff;
letter-spacing: 4px;
font-style: normal;
font-family: PingFangSC, PingFang SC;
}
.grade {
display: flex;
justify-content: space-between;
padding: 36px 0 0px 18px;
.schoolbs {
// width: 128px;
cursor: pointer;
height: 41px;
padding: 0px 20px 0 30px;
background-image: url(@/assets/eduImg/jyImg1.png);
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.spot {
position: relative;
margin-right: 7px;
}
/* 添加伪元素圆点 */
.spot::before {
content: "";
position: absolute;
top: 50%;
left: -16px;
/* 调整圆点的位置 */
transform: translateY(-50%);
width: 6px;
height: 6px;
background-color: rgba(0, 230, 255, 1);
border-radius: 50%;
box-shadow: 0px 0px 7px 0px #00ffd3;
filter: blur(0px);
}
}
.grade1 {
padding: 12px 110px 0 116px;
box-sizing: border-box;
}
}
}
.fundingBox {
display: flex;
flex-direction: column;
align-items: center;
.funding {
width: 520px;
height: 34px;
margin-top: 20px;
// padding: 10px 0 14px 0;
box-sizing: border-box;
background-image: url(@/assets/eduImg/jyImg17.png);
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
justify-content: space-around;
// align-items: center;
// justify-content: center;
// flex-direction: column;
// justify-content: space-between;
span {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 17px;
color: #ffffff;
line-height: 20px;
letter-spacing: 3px;
}
}
.rolling {
width: 100%;
height: 200px;
// height: calc(100% - 26px);
overflow-y: auto;
display: flex;
flex-direction: column;
align-items: center;
padding-left: 6px;
.fundingContent {
display: flex;
align-items: center;
justify-content: space-around;
margin-top: 10px;
width: 93.2%;
// min-height: 34px;
padding: 4px 0;
box-sizing: border-box;
background-image: url(@/assets/eduImg/jyImg16.png);
span {
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 16px;
color: #ffffff;
letter-spacing: 3px;
text-align: left;
font-style: normal;
width: 33%;
padding-left: 50px;
}
}
}
}
.rating {
width: 50%;
display: flex;
flex-direction: column;
align-items: center;
.ratingBtn {
display: flex;
// align-items: center;
.onImg {
width: 62px;
height: 29px;
background-image: url(@/assets/eduImg/jyImg19.png);
background-repeat: no-repeat;
background-size: 100% 100%;
cursor: pointer;
/* 添加指针样式以指示可点击 */
}
.ratingImg {
width: 62px;
height: 29px;
background-image: url(@/assets/eduImg/jyImg18.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.onImg.active {
width: 62px;
height: 29px;
background-image: url(@/assets/eduImg/jyImg18.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
span {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 400;
font-size: 14px;
color: #ffffff;
letter-spacing: 1px;
font-family: PingFangSC, PingFang SC;
}
}
}
.selectLint {
width: 94%;
display: flex;
margin: 30px 0 10px;
justify-content: space-between;
.selectBox {
width: 48%;
background-image: url(@/assets/eduImg/jyImg7.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
}
.column::-webkit-scrollbar {
display: none;
/* Chrome Safari */
}
/* 滚动条整体部分 */
.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);
}
.t_1 {
margin: 10px auto;
width: 100%;
height: 52px;
background-image: url(@/assets/images/education/title.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.t_2 {
margin-top: 5px;
padding: 0 10px;
display: flex;
justify-content: space-around;
.t_2_1 {
display: flex;
flex-direction: column;
align-items: center;
.top {
font-size: 26px;
color: #ffffff;
line-height: 30px;
}
.t_3 {
width: 135px;
height: 90px;
background-image: url(@/assets/images/education/fk.png);
background-repeat: no-repeat;
background-size: 100% 100%;
position: relative;
.left1 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/lset.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left2 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/dszn.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left3 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/dqjt.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.left4 {
position: absolute;
left: 15px;
top: 35px;
width: 40px;
height: 40px;
background-image: url(@/assets/images/education/xsdb.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.right {
position: absolute;
left: 65px;
top: 35px;
width: 38px;
height: 40px;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 15px;
color: #ffffff;
line-height: 20px;
letter-spacing: 4px;
text-shadow: 0px 0px 4px rgba(255, 255, 255, 0.65);
text-align: center;
font-style: normal;
}
}
}
}
.font {
font-size: 16px !important;
}
:deep(.el-table) {
background: rgba(32, 64, 115, 1);
--el-table-border-color: none;
border: 1px solid #7aceff;
}
.table {
:deep(.el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf) {
border: none !important;
padding-left: 10px !important;
}
:deep(.el-table td.el-table__cell) {
padding-left: 10px;
}
}
:deep(.el-table--enable-row-hover .el-table__body tr:hover > td) {
background-color: #2f4b74;
}
:deep(.el-table__empty-block) {
background-color: #122560;
}
:deep(.el-table .el-table__row) {
border-bottom: none;
}
</style>
<style lang="scss">
.selectBox {
.el-select--large .el-select__wrapper {
// font-size: 18px !important;
span,
p,
a {
font-size: 16px;
}
}
.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>