根据学历层次更改
This commit is contained in:
parent
0a351689d7
commit
25c187186f
|
@ -36,8 +36,10 @@ export const useDataStore = defineStore("data", () => {
|
||||||
|
|
||||||
// 当日预报到报到率
|
// 当日预报到报到率
|
||||||
const forecastRate = computed(() => {
|
const forecastRate = computed(() => {
|
||||||
forecast.value.reported / forecast.value.total;
|
(forecast.value.reported / forecast.value.total) * 100;
|
||||||
});
|
});
|
||||||
|
console.log('预报到=====>',forecastRate);
|
||||||
|
|
||||||
// 当日预报到总人数报到率
|
// 当日预报到总人数报到率
|
||||||
const totalRate = computed(() => {
|
const totalRate = computed(() => {
|
||||||
totalDto.value.reportNumber / totalDto.value.totalNumber;
|
totalDto.value.reportNumber / totalDto.value.totalNumber;
|
||||||
|
|
|
@ -51,6 +51,7 @@ const getAdminPCIndex = (params: any) => {
|
||||||
*/
|
*/
|
||||||
const payData = () => {
|
const payData = () => {
|
||||||
let params: any = {
|
let params: any = {
|
||||||
|
"CandidateCategory":0,
|
||||||
"EducationalLevel": 3,
|
"EducationalLevel": 3,
|
||||||
"Year": myDate.value.year || void 0,
|
"Year": myDate.value.year || void 0,
|
||||||
"Month": myDate.value.month || void 0,
|
"Month": myDate.value.month || void 0,
|
||||||
|
@ -63,7 +64,7 @@ const payData = () => {
|
||||||
dataStore.setBkPay(bk)
|
dataStore.setBkPay(bk)
|
||||||
dataStore.setZkPay(zk)
|
dataStore.setZkPay(zk)
|
||||||
dataStore.setZsbPay(zsb)
|
dataStore.setZsbPay(zsb)
|
||||||
dataStore.setTotalPay(res.data.todayPayDto.batchTodayPays?.payNum)
|
dataStore.setTotalPay(res.data.todayPayDto?.payNum)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,6 +88,7 @@ const getDate = (val: any) => {
|
||||||
timeStore.setMounths(val.month)
|
timeStore.setMounths(val.month)
|
||||||
timeStore.setDays(val.day)
|
timeStore.setDays(val.day)
|
||||||
let params = {
|
let params = {
|
||||||
|
"CandidateCategory":0,
|
||||||
"Year": val.year || void 0,
|
"Year": val.year || void 0,
|
||||||
"Month": val.month || void 0,
|
"Month": val.month || void 0,
|
||||||
"Day": val.day || void 0,
|
"Day": val.day || void 0,
|
||||||
|
|
|
@ -9,9 +9,9 @@ import chinaJson from "@/utils/china.json";
|
||||||
import * as echarts from 'echarts';
|
import * as echarts from 'echarts';
|
||||||
const myChart = ref()
|
const myChart = ref()
|
||||||
const getMapChart = (data) => {
|
const getMapChart = (data) => {
|
||||||
// data.forEach((item) => {
|
data.forEach((item) => {
|
||||||
// item.value = item.num1 + item.num2 + item.num3
|
item.value = item?.num1 + item?.num2 + item?.num3
|
||||||
// })
|
})
|
||||||
myChart.value = echarts.init(document.getElementById("mapChart"));
|
myChart.value = echarts.init(document.getElementById("mapChart"));
|
||||||
// 注册默认全国地图的json,小写的china
|
// 注册默认全国地图的json,小写的china
|
||||||
echarts.registerMap("china", chinaJson);
|
echarts.registerMap("china", chinaJson);
|
||||||
|
@ -27,11 +27,11 @@ const getMapChart = (data) => {
|
||||||
formatter: function (params) { // 格式化函数,用于自定义 tooltip 的内容
|
formatter: function (params) { // 格式化函数,用于自定义 tooltip 的内容
|
||||||
var html = '<div style="width:180px;background:rgba(0, 0, 0, .5); font-size: 20px;">';
|
var html = '<div style="width:180px;background:rgba(0, 0, 0, .5); font-size: 20px;">';
|
||||||
html += '<span style="display:block;width:100%;text-align:left;padding:10px 10px 5px 14px; color: #ffffff;border-bottom:1px solid #fff;">' + (params.name) + '</span>'; // 显示名称
|
html += '<span style="display:block;width:100%;text-align:left;padding:10px 10px 5px 14px; color: #ffffff;border-bottom:1px solid #fff;">' + (params.name) + '</span>'; // 显示名称
|
||||||
html += '<span style="margin:3px 0 0 0;padding:20px 0 5px 14px ;display:block;width:100%;color: rgba(255, 255, 255, 0.68);font-size: 16px;">' + '统招本科:' + (params.num3 || 0) + '</span>'; // 显示人数
|
html += '<span style="margin:3px 0 0 0;padding:20px 0 5px 14px ;display:block;width:100%;color: rgba(255, 255, 255, 0.68);font-size: 16px;">' + '统招本科:' + (params.data?.num3 || 0) + '</span>'; // 显示人数
|
||||||
html += '<span style="margin:0;padding:5px 0 5px 14px ;display:block;width:100%;padding-left:14px;color: rgba(255, 255, 255, 0.68);font-size: 16px;">' + '统招专科:' + (params.num1 || 0) + '</span>'; // 显示人数
|
html += '<span style="margin:0;padding:5px 0 5px 14px ;display:block;width:100%;padding-left:14px;color: rgba(255, 255, 255, 0.68);font-size: 16px;">' + '统招专科:' + (params.data?.num1 || 0) + '</span>'; // 显示人数
|
||||||
// html += '<span style="margin:0;padding:0;display:block;width:100%;padding-left:14px;color: #fff;font-size: 12px;">'+'统招专升本:' + (params.data.num2 || 0) + '</span>'; // 显示人数
|
// html += '<span style="margin:0;padding:0;display:block;width:100%;padding-left:14px;color: #fff;font-size: 12px;">'+'统招专升本:' + (params.data.num2 || 0) + '</span>'; // 显示人数
|
||||||
// if (params.num2) {
|
// if (params.num2) {
|
||||||
html += '<span style="margin:0;padding:5px 0 20px 14px;display:block;width:100%;color: rgba(255, 255, 255, 0.68);font-size: 16px;">' + '统招专升本:' + (params.num2 || 0) + '</span>';
|
html += '<span style="margin:0;padding:5px 0 20px 14px;display:block;width:100%;color: rgba(255, 255, 255, 0.68);font-size: 16px;">' + '统招专升本:' + (params.data?.num2 || 0) + '</span>';
|
||||||
// }
|
// }
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
return html;
|
return html;
|
||||||
|
@ -81,12 +81,13 @@ const getMapChart = (data) => {
|
||||||
lt: 40,
|
lt: 40,
|
||||||
label: "20 - 40人",
|
label: "20 - 40人",
|
||||||
color: "#81b1ff"
|
color: "#81b1ff"
|
||||||
}, {
|
},{
|
||||||
gte: 0,
|
gte: 0,
|
||||||
lt: 20,
|
lt: 20,
|
||||||
label: "0 - 20人",
|
label: "0 - 20人",
|
||||||
color: "#b3d0ff"
|
color: "#b3d0ff"
|
||||||
}],
|
}
|
||||||
|
],
|
||||||
show: true
|
show: true
|
||||||
},
|
},
|
||||||
geo: {
|
geo: {
|
||||||
|
|
|
@ -5,8 +5,7 @@ const { computDate } = storeToRefs(timeStore)
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import { useDataStore } from "@/stores/index";
|
import { useDataStore } from "@/stores/index";
|
||||||
const dataStore = useDataStore();
|
const dataStore = useDataStore();
|
||||||
const { today, forecastRate, totalRate } = storeToRefs(dataStore)
|
const { today, forecastRate, totalRate,forecast } = storeToRefs(dataStore)
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -30,7 +29,7 @@ const { today, forecastRate, totalRate } = storeToRefs(dataStore)
|
||||||
<div class="top-item-content">{{ today.forecastStuden ?? '0' }}</div>
|
<div class="top-item-content">{{ today.forecastStuden ?? '0' }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="top-item-img">
|
<!-- <div class="top-item-img">
|
||||||
<div class="top-item-icon">
|
<div class="top-item-icon">
|
||||||
<img src="@/assets/img/zheke/center_top2.png">
|
<img src="@/assets/img/zheke/center_top2.png">
|
||||||
</div>
|
</div>
|
||||||
|
@ -38,7 +37,7 @@ const { today, forecastRate, totalRate } = storeToRefs(dataStore)
|
||||||
<div class="top-item-title">{{ computDate }}预报到报到率</div>
|
<div class="top-item-title">{{ computDate }}预报到报到率</div>
|
||||||
<div class="top-item-content"> {{ forecastRate ?? '0' }}% </div>
|
<div class="top-item-content"> {{ forecastRate ?? '0' }}% </div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
|
|
||||||
<!-- <div class="top-item-img">
|
<!-- <div class="top-item-img">
|
||||||
|
@ -57,12 +56,17 @@ const { today, forecastRate, totalRate } = storeToRefs(dataStore)
|
||||||
.center-top {
|
.center-top {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
//justify-content: space-between;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
.top-item-img {
|
.top-item-img {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
.top-item-img:first-child{
|
||||||
|
margin-right: 120px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
.top-item {
|
.top-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -24,6 +24,8 @@ const { allData, rankingDto, collageId, professionRank } = storeToRefs(dataStore
|
||||||
const rightCenterRef: any = ref(null)
|
const rightCenterRef: any = ref(null)
|
||||||
|
|
||||||
const mapRef: any = ref(null)
|
const mapRef: any = ref(null)
|
||||||
|
const rbRef: any = ref(null)
|
||||||
|
|
||||||
const tableData = ref()
|
const tableData = ref()
|
||||||
const showRight = ref(true)
|
const showRight = ref(true)
|
||||||
const changeRight = () => {
|
const changeRight = () => {
|
||||||
|
@ -44,19 +46,25 @@ const dealMapData = (data: any) => {
|
||||||
tableData.value = data.provinceDto?.map((item: any) => {
|
tableData.value = data.provinceDto?.map((item: any) => {
|
||||||
return {
|
return {
|
||||||
name: item.provinceName,
|
name: item.provinceName,
|
||||||
zk: item.degreesDto[0].paymentCompleted + item.degreesDto[0].nonPayment,
|
// zk: item.degreesDto[0].paymentCompleted + item.degreesDto[0].nonPayment,
|
||||||
// zsb:item.degreesDto[1].paymentCompleted+ '/'+(item.degreesDto[1].paymentCompleted+item.degreesDto[1].nonPayment),
|
// zsb:item.degreesDto[1].paymentCompleted+ '/'+(item.degreesDto[1].paymentCompleted+item.degreesDto[1].nonPayment),
|
||||||
bk: item.degreesDto[2].paymentCompleted + item.degreesDto[2].nonPayment,
|
// bk: item.degreesDto[2].paymentCompleted + item.degreesDto[2].nonPayment,
|
||||||
zkrate: divideAndFormat(item.degreesDto[0].paymentCompleted, item.degreesDto[0].paymentCompleted + item.degreesDto[0].nonPayment),
|
zk: findDegree(item.degreesDto, '统招专科').paymentCompleted + findDegree(item.degreesDto, '统招专科').nonPayment,
|
||||||
bkrate: divideAndFormat(item.degreesDto[2].paymentCompleted, item.degreesDto[2].paymentCompleted + item.degreesDto[2].nonPayment),
|
zsb: findDegree(item.degreesDto, '统招专升本').paymentCompleted + findDegree(item.degreesDto, '统招专升本').nonPayment,
|
||||||
zbdrate: divideAndFormat(item.degreesDto[0].paymentCompleted + item.degreesDto[2].paymentCompleted, item.degreesDto[0].paymentCompleted + item.degreesDto[0].nonPayment + item.degreesDto[2].paymentCompleted + item.degreesDto[2].nonPayment),
|
bk: findDegree(item.degreesDto, '统招本科').paymentCompleted + findDegree(item.degreesDto, '统招本科').nonPayment,
|
||||||
num1: item.degreesDto[0].paymentCompleted,
|
zkrate: divideAndFormat(findDegree(item.degreesDto, '统招专科').paymentCompleted, findDegree(item.degreesDto, '统招专科').paymentCompleted + findDegree(item.degreesDto, '统招专科').nonPayment),
|
||||||
num2: item.degreesDto[1].paymentCompleted,
|
bkrate: divideAndFormat(findDegree(item.degreesDto, '统招本科').paymentCompleted, findDegree(item.degreesDto, '统招本科').paymentCompleted + findDegree(item.degreesDto, '统招本科').nonPayment),
|
||||||
num3: item.degreesDto[2].paymentCompleted,
|
zbdrate: divideAndFormat(findDegree(item.degreesDto, '统招专科').paymentCompleted + findDegree(item.degreesDto, '统招本科').paymentCompleted, findDegree(item.degreesDto, '统招专科').paymentCompleted + findDegree(item.degreesDto, '统招专科').nonPayment + findDegree(item.degreesDto, '统招本科').paymentCompleted + findDegree(item.degreesDto, '统招本科').nonPayment),
|
||||||
reported: item.degreesDto[0].paymentCompleted + item.degreesDto[2].paymentCompleted,
|
num1: findDegree(item.degreesDto, '统招专科')?.paymentCompleted,
|
||||||
AdmissionNum: item.degreesDto[0].paymentCompleted + item.degreesDto[0].nonPayment + item.degreesDto[2].paymentCompleted + item.degreesDto[2].nonPayment
|
num2: findDegree(item.degreesDto, '统招专升本')?.paymentCompleted,
|
||||||
|
num3: findDegree(item.degreesDto, '统招本科')?.paymentCompleted,
|
||||||
|
reported: findDegree(item.degreesDto, '统招专科')?.paymentCompleted + findDegree(item.degreesDto, '统招专升本')?.paymentCompleted + findDegree(item.degreesDto, '统招本科')?.paymentCompleted,
|
||||||
|
AdmissionNum: findDegree(item.degreesDto, '统招专科').paymentCompleted + findDegree(item.degreesDto, '统招专科').nonPayment + findDegree(item.degreesDto, '统招本科').paymentCompleted + findDegree(item.degreesDto, '统招本科').nonPayment
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
tableData.value?.sort((a: any, b: any) => {
|
||||||
|
return b.reported - a.reported
|
||||||
|
})
|
||||||
tableData.value?.forEach((item: any, index: any) => {
|
tableData.value?.forEach((item: any, index: any) => {
|
||||||
item.sort = index + 1
|
item.sort = index + 1
|
||||||
item.sort = item.sort < 10 ? "0" + item.sort : item.sort;
|
item.sort = item.sort < 10 ? "0" + item.sort : item.sort;
|
||||||
|
@ -64,11 +72,9 @@ const dealMapData = (data: any) => {
|
||||||
item.zbdrate = '0%'
|
item.zbdrate = '0%'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
tableData.value.sort((a: any, b: any) => {
|
|
||||||
return a.zbdrate - b.zbdrate
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const divideAndFormat = (divisor: any, dividend: any) => {
|
const divideAndFormat = (divisor: any, dividend: any) => {
|
||||||
if (dividend === 0) {
|
if (dividend === 0) {
|
||||||
return "0.0%";
|
return "0.0%";
|
||||||
|
@ -77,6 +83,12 @@ const divideAndFormat = (divisor: any, dividend: any) => {
|
||||||
let result = (divisor / dividend) * 100;
|
let result = (divisor / dividend) * 100;
|
||||||
return result.toFixed(1) + "%";
|
return result.toFixed(1) + "%";
|
||||||
}
|
}
|
||||||
|
const findDegree = (degreesDto: any, degree: string) => {
|
||||||
|
return degreesDto.find(d => d.degreesName === degree)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const rbtwoRef: any = ref(null)
|
const rbtwoRef: any = ref(null)
|
||||||
const getProfession = () => {
|
const getProfession = () => {
|
||||||
let params = {
|
let params = {
|
||||||
|
@ -103,6 +115,7 @@ watch(collageId, () => {
|
||||||
*/
|
*/
|
||||||
const getAdminPCIndex = () => {
|
const getAdminPCIndex = () => {
|
||||||
let params = {
|
let params = {
|
||||||
|
"CandidateCategory": 0,
|
||||||
"Year": years.value,
|
"Year": years.value,
|
||||||
"Month": months.value || null,
|
"Month": months.value || null,
|
||||||
"Day": days.value || null
|
"Day": days.value || null
|
||||||
|
@ -115,6 +128,9 @@ const getAdminPCIndex = () => {
|
||||||
if (mapRef) {
|
if (mapRef) {
|
||||||
mapRef.value.getMapChart(tableData.value)
|
mapRef.value.getMapChart(tableData.value)
|
||||||
}
|
}
|
||||||
|
if (rbRef) {
|
||||||
|
rbRef.value.rankProvince(tableData.value)
|
||||||
|
}
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
@ -161,6 +177,7 @@ const getAdminPCIndex = () => {
|
||||||
*/
|
*/
|
||||||
const payData = () => {
|
const payData = () => {
|
||||||
let params: any = {
|
let params: any = {
|
||||||
|
"CandidateCategory": 0,
|
||||||
"EducationalLevel": 3,
|
"EducationalLevel": 3,
|
||||||
"Year": years.value,
|
"Year": years.value,
|
||||||
"Month": months.value || void 0,
|
"Month": months.value || void 0,
|
||||||
|
@ -173,7 +190,7 @@ const payData = () => {
|
||||||
dataStore.setBkPay(bk)
|
dataStore.setBkPay(bk)
|
||||||
dataStore.setZkPay(zk)
|
dataStore.setZkPay(zk)
|
||||||
dataStore.setZsbPay(zsb)
|
dataStore.setZsbPay(zsb)
|
||||||
dataStore.setTotalPay(res.data.todayPayDto.batchTodayPays?.payNum)
|
dataStore.setTotalPay(res.data.todayPayDto?.payNum)
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (rightCenterRef) {
|
if (rightCenterRef) {
|
||||||
rightCenterRef.value.getData()
|
rightCenterRef.value.getData()
|
||||||
|
@ -226,7 +243,7 @@ onMounted(() => {
|
||||||
<RightCenter ref="rightCenterRef" />
|
<RightCenter ref="rightCenterRef" />
|
||||||
</zkItem>
|
</zkItem>
|
||||||
<zkItem class="contetn_left-bottom contetn_rb-item" title="报到人数区域排名 ">
|
<zkItem class="contetn_left-bottom contetn_rb-item" title="报到人数区域排名 ">
|
||||||
<RightBottom />
|
<RightBottom ref="rbRef"/>
|
||||||
</zkItem>
|
</zkItem>
|
||||||
</div>
|
</div>
|
||||||
<div class="contetn_right" v-if="!showRight">
|
<div class="contetn_right" v-if="!showRight">
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useDataStore } from "@/stores/index";
|
import { useDataStore,useTimeStore } from "@/stores/index";
|
||||||
const dataStore = useDataStore();
|
const dataStore = useDataStore();
|
||||||
const { degreeDto } = storeToRefs(dataStore)
|
const { degreeDto } = storeToRefs(dataStore)
|
||||||
|
const timeStore = useTimeStore()
|
||||||
|
const { nowTitle } = storeToRefs(timeStore)
|
||||||
const rate = (total: any, registers: any) => {
|
const rate = (total: any, registers: any) => {
|
||||||
return ((registers / total) * 100).toFixed(1)
|
return ((registers / total) * 100).toFixed(1)
|
||||||
}
|
}
|
||||||
const bkRate = computed(() => {
|
const bkRate = computed(() => {
|
||||||
if (degreeDto.value?.length ) {
|
if (degreeDto.value?.length ) {
|
||||||
const datas = degreeDto.value.filter((item:any) => item.degree === "统招本科");
|
const datas = degreeDto.value.filter((item:any) => item.degree === "统招本科")[0];
|
||||||
return rate(datas.studentNumber, datas.reportNumber)
|
return rate(datas.studentNumber, datas.reportNumber)
|
||||||
} else {
|
} else {
|
||||||
return 0
|
return 0
|
||||||
|
@ -15,7 +17,7 @@ const bkRate = computed(() => {
|
||||||
})
|
})
|
||||||
const zkRate = computed(() => {
|
const zkRate = computed(() => {
|
||||||
if (degreeDto.value?.length) {
|
if (degreeDto.value?.length) {
|
||||||
const datas = degreeDto.value.filter((item:any) => item.degree === "统招专科");
|
const datas = degreeDto.value.filter((item:any) => item.degree === "统招专科")[0];
|
||||||
return rate(datas.studentNumber, datas.reportNumber)
|
return rate(datas.studentNumber, datas.reportNumber)
|
||||||
} else {
|
} else {
|
||||||
return 0
|
return 0
|
||||||
|
@ -24,7 +26,7 @@ const zkRate = computed(() => {
|
||||||
|
|
||||||
const zsbRate = computed(() => {
|
const zsbRate = computed(() => {
|
||||||
if (degreeDto.value?.length) {
|
if (degreeDto.value?.length) {
|
||||||
const datas = degreeDto.value.filter((item:any) => item.degree === "统招专升本");
|
const datas = degreeDto.value.filter((item:any) => item.degree === "统招专升本")[0];
|
||||||
return rate(datas.studentNumber, datas.reportNumber)
|
return rate(datas.studentNumber, datas.reportNumber)
|
||||||
} else {
|
} else {
|
||||||
return 0
|
return 0
|
||||||
|
@ -49,7 +51,7 @@ const zsbRate = computed(() => {
|
||||||
<div class="right-title title-top item-title">报到率
|
<div class="right-title title-top item-title">报到率
|
||||||
<span class="title-num numBlue">{{ isNaN(bkRate) ? '0' : bkRate }}%</span>
|
<span class="title-num numBlue">{{ isNaN(bkRate) ? '0' : bkRate }}%</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="item-title">今日报到人数</p>
|
<p class="item-title">{{nowTitle}}报到人数</p>
|
||||||
<p class="item-content numBlue">{{ degreeDto[2]?degreeDto[2].reportNumber:'0' }}</p>
|
<p class="item-content numBlue">{{ degreeDto[2]?degreeDto[2].reportNumber:'0' }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -69,7 +71,7 @@ const zsbRate = computed(() => {
|
||||||
<div class="right-title title-top item-title">报到率
|
<div class="right-title title-top item-title">报到率
|
||||||
<span class="title-num numGreen">{{ isNaN(zkRate) ? '0' : zkRate }}%</span>
|
<span class="title-num numGreen">{{ isNaN(zkRate) ? '0' : zkRate }}%</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="item-title">今日报到人数</p>
|
<p class="item-title">{{nowTitle}}报到人数</p>
|
||||||
<p class="item-content numGreen">{{ degreeDto[0]?degreeDto[0].reportNumber:'0' }}</p>
|
<p class="item-content numGreen">{{ degreeDto[0]?degreeDto[0].reportNumber:'0' }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -89,7 +91,7 @@ const zsbRate = computed(() => {
|
||||||
<div class="right-title title-top item-title">报到率
|
<div class="right-title title-top item-title">报到率
|
||||||
<span class="title-num numGrey">{{ isNaN(zsbRate) ? '0' : zsbRate }}%</span>
|
<span class="title-num numGrey">{{ isNaN(zsbRate) ? '0' : zsbRate }}%</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="item-title">今日报到人数</p>
|
<p class="item-title">{{nowTitle}}报到人数</p>
|
||||||
<p class="item-content numGrey">{{ degreeDto[1]?degreeDto[1].reportNumber:'0' }}</p>
|
<p class="item-content numGrey">{{ degreeDto[1]?degreeDto[1].reportNumber:'0' }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useDataStore } from "@/stores/index";
|
import { useDataStore } from "@/stores/index";
|
||||||
const dataStore = useDataStore();
|
const dataStore = useDataStore();
|
||||||
const { totalDto } = storeToRefs(dataStore)
|
const { totalDto,forecast } = storeToRefs(dataStore)
|
||||||
// 预报到总人数 已报到人数+未报到人数
|
// 预报到总人数 forecast.total
|
||||||
const totalReport = computed(() => {
|
|
||||||
return (totalDto.value.reportNumber + totalDto.value.notReportNumber)
|
|
||||||
})
|
|
||||||
// 迎新总进度 已预报到总人数/预报到总人数
|
// 迎新总进度 已预报到总人数/预报到总人数
|
||||||
const progress = computed(() => {
|
const progress = computed(() => {
|
||||||
return ((totalDto.value.reportNumber / totalReport.value) * 100).toFixed(1)
|
return ((totalDto.value.reportNumber / totalDto.value.totalNumber) * 100).toFixed(1)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,7 +37,7 @@ const progress = computed(() => {
|
||||||
<div class="left-bottom">
|
<div class="left-bottom">
|
||||||
<div class="bottom-item">
|
<div class="bottom-item">
|
||||||
<div class="bottom-item-title">预报到总人数</div>
|
<div class="bottom-item-title">预报到总人数</div>
|
||||||
<div class="bottom-item-content"> {{ isNaN(totalReport) ? '0' : totalReport }} </div>
|
<div class="bottom-item-content"> {{ forecast.total ?? '0' }} </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-item">
|
<div class="bottom-item">
|
||||||
<div class="bottom-item-title">录取总人数</div>
|
<div class="bottom-item-title">录取总人数</div>
|
||||||
|
|
|
@ -46,7 +46,7 @@ const option = reactive({
|
||||||
data: yData,
|
data: yData,
|
||||||
type: "bar",
|
type: "bar",
|
||||||
smooth: false,
|
smooth: false,
|
||||||
name: "缴费人数",
|
name: "已报到人数",
|
||||||
color: "#2265ff",
|
color: "#2265ff",
|
||||||
label: {
|
label: {
|
||||||
show: true, // 开启显示
|
show: true, // 开启显示
|
||||||
|
|
|
@ -13,6 +13,15 @@ import { useDataStore } from "@/stores/index";
|
||||||
const dataStore = useDataStore();
|
const dataStore = useDataStore();
|
||||||
const { provinceDto } = storeToRefs(dataStore)
|
const { provinceDto } = storeToRefs(dataStore)
|
||||||
|
|
||||||
|
const rankProvinceData:any = ref([])
|
||||||
|
const rankProvince = (data: any) => {
|
||||||
|
console.log('data=====>', data);
|
||||||
|
|
||||||
|
rankProvinceData.value = data
|
||||||
|
}
|
||||||
|
const findDegree = (degree: any, name: string) => {
|
||||||
|
return degree.find((i: any) => i.degreesName == name)
|
||||||
|
}
|
||||||
|
|
||||||
const state = reactive<any>({
|
const state = reactive<any>({
|
||||||
list: [],
|
list: [],
|
||||||
|
@ -21,11 +30,12 @@ const state = reactive<any>({
|
||||||
singleHeight: 205, //单步运动停止的高度,与滚动盒子的高度进行适配
|
singleHeight: 205, //单步运动停止的高度,与滚动盒子的高度进行适配
|
||||||
limitScrollNum: 3,
|
limitScrollNum: 3,
|
||||||
// singleWaitTime:3000, // 停顿间隔
|
// singleWaitTime:3000, // 停顿间隔
|
||||||
step:1 //滚动速度,数字越大,滚动越快
|
step: 1 //滚动速度,数字越大,滚动越快
|
||||||
},
|
},
|
||||||
scroll: true,
|
scroll: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const comName = computed(() => {
|
const comName = computed(() => {
|
||||||
if (indexConfig.value.rightBottomSwiper) {
|
if (indexConfig.value.rightBottomSwiper) {
|
||||||
return SeamlessScroll;
|
return SeamlessScroll;
|
||||||
|
@ -33,6 +43,8 @@ const comName = computed(() => {
|
||||||
return EmptyCom;
|
return EmptyCom;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
defineExpose({ rankProvince })
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -41,19 +53,22 @@ const comName = computed(() => {
|
||||||
<div class="table-title">
|
<div class="table-title">
|
||||||
<div class="title-item">排名</div>
|
<div class="title-item">排名</div>
|
||||||
<div class="title-item">省份/地市 </div>
|
<div class="title-item">省份/地市 </div>
|
||||||
<div class="title-item">本科</div>
|
<div class="title-item">统招本科</div>
|
||||||
<div class="title-item">专科</div>
|
<div class="title-item">统招专科</div>
|
||||||
<div class="title-item">专升本</div>
|
<div class="title-item">统招专升本</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right_bottom_wrap" :class="{ 'overflow-y-auto': true }">
|
<div class="right_bottom_wrap" :class="{ 'overflow-y-auto': true }">
|
||||||
<!-- <component :is="comName" :list="state.list" v-model="state.scroll"
|
<!-- <component :is="comName" :list="state.list" v-model="state.scroll"
|
||||||
:singleHeight="state.defaultOption.singleHeight" :step="state.defaultOption.step"
|
:singleHeight="state.defaultOption.singleHeight" :step="state.defaultOption.step"
|
||||||
:limitScrollNum="state.defaultOption.limitScrollNum" :hover="state.defaultOption.hover"
|
:limitScrollNum="state.defaultOption.limitScrollNum" :hover="state.defaultOption.hover"
|
||||||
:singleWaitTime="state.defaultOption.singleWaitTime" :wheel="state.defaultOption.wheel"> -->
|
:singleWaitTime="state.defaultOption.singleWaitTime" :wheel="state.defaultOption.wheel"> -->
|
||||||
<div class="table-row" v-for="(item, i) in provinceDto">
|
<div class="table-row" v-for="(item, i) in rankProvinceData">
|
||||||
<div class="row-item">{{ i + 1 }}</div>
|
<div class="row-item">{{ item.sort }}</div>
|
||||||
<div class="row-item">{{ item.provinceName }}</div>
|
<div class="row-item">{{ item.name }}</div>
|
||||||
<div class="row-item" v-for="(peo) in item.degreesDto">{{ peo.paymentCompleted }}</div>
|
<div class="row-item">{{ item.num3 }}</div>
|
||||||
|
<div class="row-item">{{ item.num1 }}</div>
|
||||||
|
<div class="row-item">{{ item.num2 }}</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- </component> -->
|
<!-- </component> -->
|
||||||
</div>
|
</div>
|
||||||
|
@ -92,8 +107,9 @@ const comName = computed(() => {
|
||||||
border-top: 1px solid #33343F;
|
border-top: 1px solid #33343F;
|
||||||
line-height: 50px;
|
line-height: 50px;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
color:#E6E6FB;
|
color: #E6E6FB;
|
||||||
&:hover{
|
|
||||||
|
&:hover {
|
||||||
background: repeating-linear-gradient(0deg, #0042b3 0%, #0049ca 50%, #0042b3 100%);
|
background: repeating-linear-gradient(0deg, #0042b3 0%, #0049ca 50%, #0042b3 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,6 +126,7 @@ const comName = computed(() => {
|
||||||
.overflow-y-auto {
|
.overflow-y-auto {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 0px;
|
width: 0px;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue