根据学历层次更改

This commit is contained in:
张宁 2024-06-24 11:21:35 +08:00
parent f2faa9560f
commit bd9b42d6c6
8 changed files with 180 additions and 81 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -29,13 +29,20 @@ const resize = () => {
const init = (max: any, value: any) => { const init = (max: any, value: any) => {
chartMax.value = max ? max : 0; chartMax.value = max ? max : 0;
chartValues.value = value ? value : 0; chartValues.value = value ? value : 0;
// chartMax.value = 50
// chartValues.value = 5
chartRate.value = 0 chartRate.value = 0
if (chartMax && chartValues) { if (chartMax && chartValues) {
chartRate.value = (chartValues.value / chartMax.value * 100).toFixed(1) chartRate.value = (chartValues.value / chartMax.value * 100).toFixed(1)
} }
if (chartRate.value === "100.0") { if (chartRate.value === "100.0") {
chartRate.value = "100"; // 100 chartRate.value = "100"; // 100
} }
if (isNaN(chartRate.value)) {
chartRate.value = "0";
}
console.log('打印', chartValues.value, chartMax.value);
let option = { let option = {
title: { title: {
@ -111,18 +118,19 @@ const init = (max: any, value: any) => {
}, },
{ {
type: 'bar', type: 'bar',
data: [{ name: "预报到填写总数", value: chartMax.value }], // data: [{ name: "", value: chartMax.value }],
startAngle: 0, data: { name: "预报到填写总数", value: chartMax.value },
z: 1, z: 1,
// silent: true,
coordinateSystem: 'polar', coordinateSystem: 'polar',
barMaxWidth: 35, barMaxWidth: 35,
roundCap: 1, roundCap: 1,
color: '#00214d', color: '#00214d',
barGap: '-100%', barGap: '-100%',
}, },
{ /* {
type: 'bar', type: 'bar',
data: [{ name: "预报到填写总数", value: chartMax.value }], data: [1],
z: 0, z: 0,
silent: true, silent: true,
coordinateSystem: 'polar', coordinateSystem: 'polar',
@ -130,7 +138,7 @@ const init = (max: any, value: any) => {
roundCap: true, roundCap: true,
color: '#00214d', color: '#00214d',
barGap: '-100%', barGap: '-100%',
}, }, */
], ],
} }
myChart.value.setOption(option); myChart.value.setOption(option);

View File

@ -102,7 +102,7 @@ const init=(max, value) =>{
} }
]) ])
}, },
{ /* {
type: 'bar', type: 'bar',
data: [{ name: "新生总人数", value: chartMax.value }], data: [{ name: "新生总人数", value: chartMax.value }],
startAngle: 0, startAngle: 0,
@ -112,12 +112,12 @@ const init=(max, value) =>{
roundCap: 1, roundCap: 1,
color: '#00214d', color: '#00214d',
barGap: '-100%', barGap: '-100%',
}, }, */
{ {
type: 'bar', type: 'bar',
data: [{ name: "新生总人数", value: chartMax.value }], data: [{ name: "新生总人数", value: chartMax.value }],
z: 0, z: 0,
silent: true, // silent: true,
coordinateSystem: 'polar', coordinateSystem: 'polar',
barMaxWidth: 35, barMaxWidth: 35,
roundCap: true, roundCap: true,

View File

@ -11,72 +11,104 @@ import { defineStore } from "pinia";
// import { storeToRefs } from 'pinia'; // import { storeToRefs } from 'pinia';
export const useDataStore = defineStore("data", () => { export const useDataStore = defineStore("data", () => {
const allData:Ref<any> = ref({ const allData: Ref<any> = ref({
degreeDto: [], degreeDto: [],
forecast:{}, forecast: {},
forecastFill:{}, forecastFill: {},
nationStudent:[], nationStudent: [],
payDto:{}, payDto: {},
provinceDto:[], provinceDto: [],
rankingDto:[], rankingDto: [],
sexDto:{}, sexDto: {},
today:{}, today: {},
totalDto:{} totalDto: {},
}); });
const degreeDto=computed(() => allData.value.degreeDto); const degreeDto = computed(() => allData.value.degreeDto);
const forecast=computed(() => allData.value.forecast); const forecast = computed(() => allData.value.forecast);
const forecastFill=computed(() => allData.value.forecastFill); const forecastFill = computed(() => allData.value.forecastFill);
const nationStudent=computed(() => allData.value.nationStudent); const nationStudent = computed(() => allData.value.nationStudent);
const payDto=computed(() => allData.value.payDto); const payDto = computed(() => allData.value.payDto);
const provinceDto=computed(() => allData.value.provinceDto); const provinceDto = computed(() => allData.value.provinceDto);
const rankingDto=computed(() => allData.value.rankingDto); const rankingDto = computed(() => allData.value.rankingDto);
const sexDto=computed(()=> allData.value.sexDto); const sexDto = computed(() => allData.value.sexDto);
const today=computed(() => allData.value.today); const today = computed(() => allData.value.today);
const totalDto=computed(() => allData.value.totalDto); const totalDto = computed(() => allData.value.totalDto);
// 当日预报到报到率 // 当日预报到报到率
const forecastRate = computed(() => { const forecastRate = computed(() => {
forecast.value.reported / forecast.value.total forecast.value.reported / forecast.value.total;
}); });
// 当日预报到总人数报到率 // 当日预报到总人数报到率
const totalRate = computed(() => { const totalRate = computed(() => {
totalDto.value.reportNumber / totalDto.value.totalNumber totalDto.value.reportNumber / totalDto.value.totalNumber;
}); });
// 选中的学院id // 选中的学院id
const collageId = ref() const collageId = ref();
// 切换选中的学院 // 切换选中的学院
const setCollageId = (data:any)=>{ const setCollageId = (data: any) => {
collageId.value = data collageId.value = data;
} };
// 学院对应的专业报到人数 // 学院对应的专业报到人数
const professionRank = ref() const professionRank = ref();
const setProfessionRank = (data:any) => { const setProfessionRank = (data: any) => {
professionRank.value = data; professionRank.value = data;
}; };
const setData = (data:any) => { const setData = (data: any) => {
allData.value = data; allData.value = data;
}; };
// 本科缴费人数 // 本科缴费人数
const bkPay= ref() const bkPay = ref();
const setBkPay = (data:any) => { const setBkPay = (data: any) => {
console.log('data',data); console.log("data", data);
bkPay.value = data; bkPay.value = data;
}; };
// 专科缴费人数 // 专科缴费人数
const zkPay= ref() const zkPay = ref();
const setZkPay = (data:any) => { const setZkPay = (data: any) => {
zkPay.value = data; zkPay.value = data;
}; };
// 专升本缴费人数 // 专升本缴费人数
const zsbPay= ref() const zsbPay = ref();
const setZsbPay = (data:any) => { const setZsbPay = (data: any) => {
zsbPay.value = data; zsbPay.value = data;
}; };
// 缴费总人数
const totalPay = ref();
const setTotalPay = (data: any) => {
totalPay.value = data;
};
return { allData,degreeDto,forecast,forecastFill,nationStudent,payDto,provinceDto,rankingDto,sexDto,today,totalDto,setData,bkPay,zkPay,zsbPay,setBkPay,setZkPay,setZsbPay,setCollageId,collageId,professionRank,setProfessionRank,forecastRate,totalRate}; return {
allData,
degreeDto,
forecast,
forecastFill,
nationStudent,
payDto,
provinceDto,
rankingDto,
sexDto,
today,
totalDto,
setData,
bkPay,
zkPay,
zsbPay,
setBkPay,
setZkPay,
setZsbPay,
setCollageId,
collageId,
professionRank,
setProfessionRank,
forecastRate,
totalRate,
totalPay,
setTotalPay
};
}); });

View File

@ -1,19 +1,22 @@
<script setup lang="ts"> <script setup lang="ts">
import { AdminPCIndex ,WeekPay} from "@/api"; import { AdminPCIndex, WeekPay } from "@/api";
import { useTimeStore } from "@/stores/index"; import { useTimeStore } from "@/stores/index";
const timeStore = useTimeStore(); const timeStore = useTimeStore();
import { useDataStore } from "@/stores/index"; import { useDataStore } from "@/stores/index";
const dataStore = useDataStore(); const dataStore = useDataStore();
// //
const getAdminPCIndex = (params:any) => { const getAdminPCIndex = (params: any) => {
AdminPCIndex(params).then((res: any) => { AdminPCIndex(params).then((res: any) => {
dataStore.setData(res.data); dataStore.setData(res.data);
}) })
}; };
// //
// -- // --
const payData = () => { /*
缴费人数---根据学历层次EducationalLevel 获取
*/
/* const payData = () => {
let params: any = [{ let params: any = [{
"EducationalLevel": 3, "EducationalLevel": 3,
"Year": myDate.value.year || void 0, "Year": myDate.value.year || void 0,
@ -42,8 +45,30 @@ const payData = () => {
} }
}) })
} }
} */
/*
缴费人数---根据批次去区分
*/
const payData = () => {
let params: any = {
"EducationalLevel": 3,
"Year": myDate.value.year || void 0,
"Month": myDate.value.month || void 0,
"Day": myDate.value.day || void 0,
}
WeekPay(params).then((res: any) => {
const bk = res.data.todayPayDto.batchTodayPays?.find((item:any) => item.name === "统招本科");
const zk = res.data.todayPayDto.batchTodayPays?.find((item:any) => item.name === "统招专科");
const zsb = res.data.todayPayDto.batchTodayPays?.find((item:any) => item.name === "统招专升本");
dataStore.setBkPay(bk)
dataStore.setZkPay(zk)
dataStore.setZsbPay(zsb)
dataStore.setTotalPay(res.data.todayPayDto.batchTodayPays?.payNum)
})
} }
// const returnHome = () => { // const returnHome = () => {
// history.go(-1) // history.go(-1)
// }; // };
@ -51,7 +76,7 @@ const currentDate = new Date()
// //
const myDate = ref({ const myDate = ref({
year: currentDate.getFullYear(), year: currentDate.getFullYear(),
month:currentDate.getMonth() + 1, month: currentDate.getMonth() + 1,
day: currentDate.getDate(), day: currentDate.getDate(),
}) })
// || || // || ||
@ -62,15 +87,15 @@ const getDate = (val: any) => {
timeStore.setMounths(val.month) timeStore.setMounths(val.month)
timeStore.setDays(val.day) timeStore.setDays(val.day)
let params = { let params = {
"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,
} }
getAdminPCIndex(params) getAdminPCIndex(params)
payData() payData()
} }
const dateTitle = computed(()=>{ const dateTitle = computed(() => {
let {year, month, day} = myDate.value let { year, month, day } = myDate.value
return formatDate(year, month, day) return formatDate(year, month, day)
}) })
/** /**

View File

@ -1,11 +1,3 @@
<!--
* @Author: 张宁 18339727226@163.com
* @Date: 2024-05-22 08:40:56
* @LastEditors: 张宁 18339727226@163.com
* @LastEditTime: 2024-06-04 09:34:34
* @FilePath: \welcome-system-screen\src\views\index\center-top.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<script setup lang="ts"> <script setup lang="ts">
import { useTimeStore } from "@/stores/index"; import { useTimeStore } from "@/stores/index";
const timeStore = useTimeStore(); const timeStore = useTimeStore();
@ -13,7 +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 } = storeToRefs(dataStore)
</script> </script>
@ -21,7 +13,7 @@ const { today, forecastRate,totalRate } = storeToRefs(dataStore)
<div class="center-top"> <div class="center-top">
<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_top1.png"> <img src="@/assets/img/zheke/center_top0.png">
</div> </div>
<div class="top-item"> <div class="top-item">
<div class="top-item-title">{{ computDate }}迎新人数</div> <div class="top-item-title">{{ computDate }}迎新人数</div>
@ -29,23 +21,35 @@ const { today, forecastRate,totalRate } = storeToRefs(dataStore)
</div> </div>
</div> </div>
<div class="top-item"> <div class="top-item-img">
<div class="top-item-title">{{ computDate }}预报到人数</div> <div class="top-item-icon">
<div class="top-item-content">{{ today.forecastStuden ?? '0' }}</div> <img src="@/assets/img/zheke/center_top1.png">
</div> </div>
<div class="top-item"> <div class="top-item">
<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">{{ today.forecastStuden ?? '0' }}</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>
<div class="top-item"> <div class="top-item">
<div class="top-item-title">预报到总人数报到率</div> <div class="top-item-title">{{ computDate }}预报到报到率</div>
<div class="top-item-content"> {{totalRate ?? '0'}}% </div> <div class="top-item-content"> {{ forecastRate ?? '0' }}% </div>
</div> </div>
</div> </div>
<!-- <div class="top-item-img">
<div class="top-item-icon">
<img src="@/assets/img/zheke/center_top2.png">
</div>
<div class="top-item">
<div class="top-item-title">预报到总人数报到率</div>
<div class="top-item-content"> {{ totalRate ?? '0' }}% </div>
</div>
</div> -->
</div> </div>
</template> </template>

View File

@ -120,7 +120,7 @@ const getAdminPCIndex = () => {
}; };
// -- // --
const payData = () => { /* const payData = () => {
let params: any = [{ let params: any = [{
"EducationalLevel": 3, "EducationalLevel": 3,
"Year": years.value, "Year": years.value,
@ -155,6 +155,31 @@ const payData = () => {
} }
}); });
} */
/*
缴费人数---根据批次去区分
*/
const payData = () => {
let params: any = {
"EducationalLevel": 3,
"Year": years.value,
"Month": months.value || void 0,
"Day": days.value || void 0,
}
WeekPay(params).then((res: any) => {
const bk = res.data.todayPayDto.batchTodayPays?.find((item: any) => item.name === "统招本科");
const zk = res.data.todayPayDto.batchTodayPays?.find((item: any) => item.name === "统招专科");
const zsb = res.data.todayPayDto.batchTodayPays?.find((item: any) => item.name === "统招专升本");
dataStore.setBkPay(bk)
dataStore.setZkPay(zk)
dataStore.setZsbPay(zsb)
dataStore.setTotalPay(res.data.todayPayDto.batchTodayPays?.payNum)
setTimeout(() => {
if (rightCenterRef) {
rightCenterRef.value.getData()
}
});
})
} }
const timer: any = ref(null) const timer: any = ref(null)
const startTimer = () => { const startTimer = () => {

View File

@ -6,7 +6,7 @@ const timeStore = useTimeStore()
const { nowTitle } = storeToRefs(timeStore) const { nowTitle } = storeToRefs(timeStore)
const dataStore = useDataStore() const dataStore = useDataStore()
const { bkPay, zkPay, zsbPay } = storeToRefs(dataStore) const { bkPay, zkPay, zsbPay,totalPay } = storeToRefs(dataStore)
const activeTab = ref(0); const activeTab = ref(0);
const tabs = ref([ const tabs = ref([
{ title: '本科', value: 0, dateList: ['05-30', '05-31', '06-01', '06-02', '06-03', "06-04"], numList: [0, 0, 0, 0, 0, 0] }, { title: '本科', value: 0, dateList: ['05-30', '05-31', '06-01', '06-02', '06-03', "06-04"], numList: [0, 0, 0, 0, 0, 0] },
@ -183,13 +183,18 @@ defineExpose({getData})
<div class="tabs"> <div class="tabs">
<div class="no-tab"> <div class="no-tab">
<p>{{ nowTitle }}缴费总人数</p> <p>{{ nowTitle }}缴费总人数</p>
<p> {{ bkPay?.todayPayDto?.payNum }} </p> <!-- <p> {{ bkPay?.todayPayDto?.payNum }} </p> -->
<p> {{ totalPay??'0' }} </p>
</div> </div>
<div v-for="(tab, index) in tabs" :key="index" :class="{ active: activeTab === index }" @click="changeTab(index)"> <div v-for="(tab, index) in tabs" :key="index" :class="{ active: activeTab === index }" @click="changeTab(index)">
<p>{{ tab.title }}</p> <p>{{ tab.title }}</p>
<p v-if="index == 0">{{ bkPay?.todayPayDto?.bkPayNum }}</p> <!-- <p v-if="index == 0">{{ bkPay?.todayPayDto?.bkPayNum }}</p>
<p v-if="index == 1">{{ bkPay?.todayPayDto?.zkPayNum }}</p> <p v-if="index == 1">{{ bkPay?.todayPayDto?.zkPayNum }}</p>
<p v-if="index == 2">{{ bkPay?.todayPayDto?.zsbPayNum }}</p> <p v-if="index == 2">{{ bkPay?.todayPayDto?.zsbPayNum }}</p> -->
<p v-if="index == 0">{{ bkPay?.num }}</p>
<p v-if="index == 1">{{ zkPay?.num }}</p>
<p v-if="index == 2">{{ zsbPay?.num }}</p>
</div> </div>
</div> </div>
<!-- <div class="tab-content"> --> <!-- <div class="tab-content"> -->