完善一下
This commit is contained in:
parent
0efc8516d1
commit
95b98b5fa1
|
@ -1,6 +1,14 @@
|
||||||
|
/*
|
||||||
|
* @Author: 张宁 18339727226@163.com
|
||||||
|
* @Date: 2024-05-22 08:40:55
|
||||||
|
* @LastEditors: 张宁 18339727226@163.com
|
||||||
|
* @LastEditTime: 2024-06-03 13:59:14
|
||||||
|
* @FilePath: \welcome-system-screen\src\api\api.ts
|
||||||
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
* @LastEditors: 张宁 18339727226@163.com
|
* @LastEditors: 张宁 18339727226@163.com
|
||||||
* @LastEditTime: 2024-05-30 09:15:55
|
* @LastEditTime: 2024-06-03 11:39:31
|
||||||
*/
|
*/
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import type { AxiosRequestConfig, AxiosResponse } from "axios";
|
import type { AxiosRequestConfig, AxiosResponse } from "axios";
|
||||||
|
@ -51,19 +59,30 @@ axios.interceptors.response.use(
|
||||||
if (response.status !== 200) {
|
if (response.status !== 200) {
|
||||||
return Promise.reject(response);
|
return Promise.reject(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @code 登录过期 token验证失败 根据后端调
|
* @code 登录过期 token验证失败 根据后端调-----放错地方了?
|
||||||
*/
|
*/
|
||||||
if (response.data.code == UtilVar.code) {
|
/* if (response.data.code == UtilVar.code) {
|
||||||
// router.push("/login")
|
// router.push("/login")
|
||||||
// window.location.href = 'http://nclg.yx.zheke.com/#/login';
|
window.location.href = 'http://nclg.yx.zheke.com/#/login';
|
||||||
|
|
||||||
return Promise.resolve(response);
|
return Promise.resolve(response);
|
||||||
}
|
} */
|
||||||
return Promise.resolve(response);
|
return Promise.resolve(response);
|
||||||
},
|
},
|
||||||
(error: any) => {
|
(error: any) => {
|
||||||
console.log("error", error);
|
console.log("error", error);
|
||||||
|
/**
|
||||||
|
* @code 登录过期 token验证失败 根据后端调
|
||||||
|
*/
|
||||||
|
if (error.response.status == UtilVar.code) {
|
||||||
|
// router.push("/login")
|
||||||
|
// 目前放测试地址 发布后放到正是地址---待修改
|
||||||
|
window.location.href = 'http://nclg.yx.zheke.com/#/login';
|
||||||
|
|
||||||
|
return Promise.resolve(response);
|
||||||
|
}
|
||||||
let err = {
|
let err = {
|
||||||
success: false,
|
success: false,
|
||||||
msg: "未知异常,请联系管理员!",
|
msg: "未知异常,请联系管理员!",
|
||||||
|
|
|
@ -2,49 +2,43 @@
|
||||||
<div id="chart" style="width: 150%;height: 150%;">
|
<div id="chart" style="width: 150%;height: 150%;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<!-- <v-chart class="chart" :option="option" /> -->
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script setup lang="ts" name="chart">
|
||||||
import * as echarts from 'echarts';
|
import * as echarts from 'echarts';
|
||||||
export default {
|
|
||||||
name: 'chart',
|
|
||||||
|
|
||||||
data() {
|
const myChart = ref(null)
|
||||||
return {
|
const chartMax = ref(null)
|
||||||
myChart: null,
|
const chartValues = ref(null)
|
||||||
};
|
const chartRate = ref(null)
|
||||||
},
|
|
||||||
|
|
||||||
mounted() {
|
onMounted(() => {
|
||||||
// window.addEventListener('resize',()=>{this.resize();getRem(1920,100)})
|
// window.addEventListener('resize',()=>{this.resize();getRem(1920,100)})
|
||||||
this.init()
|
// init()
|
||||||
},
|
|
||||||
beforeDestroy() {
|
|
||||||
// window.removeEventListener('resize',this.resize)
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// resize(){
|
|
||||||
// this.myChart.resize();
|
|
||||||
// },
|
|
||||||
init(max, value) {
|
|
||||||
var max = max?max:100;
|
|
||||||
var value = value?value:0;
|
|
||||||
var rate = 0
|
|
||||||
|
|
||||||
if (max && value) {
|
|
||||||
rate = (value / max * 100).toFixed(1)
|
|
||||||
}
|
|
||||||
if (rate === "100.0") {
|
|
||||||
rate = "100"; // 如果百分比等于100,则更新为整数形式
|
|
||||||
}
|
|
||||||
var chartDom = document.getElementById('chart');
|
var chartDom = document.getElementById('chart');
|
||||||
this.myChart = echarts.init(chartDom);
|
myChart.value = echarts.init(chartDom);
|
||||||
// window.onresize = this.myChart.resize;
|
})
|
||||||
var option;
|
onBeforeUnmount(() => {
|
||||||
|
// window.removeEventListener('resize',this.resize)
|
||||||
|
|
||||||
option = {
|
})
|
||||||
|
const resize = () => {
|
||||||
|
myChart.resize();
|
||||||
|
}
|
||||||
|
const init = (max, value) => {
|
||||||
|
chartMax.value = max ? max : 100;
|
||||||
|
chartValues.value = value ? value : 0;
|
||||||
|
chartRate.value = 0
|
||||||
|
if (chartMax && chartValues) {
|
||||||
|
chartRate.value = (chartValues.value / chartMax.value * 100).toFixed(1)
|
||||||
|
}
|
||||||
|
if (chartRate.value === "100.0") {
|
||||||
|
chartRate.value = "100"; // 如果百分比等于100,则更新为整数形式
|
||||||
|
}
|
||||||
|
let option = {
|
||||||
title: {
|
title: {
|
||||||
text: (rate || '0.0') + '%',
|
text: (chartRate.value || '0.0') + '%',
|
||||||
x: 'center',
|
x: 'center',
|
||||||
y: '20%',
|
y: '20%',
|
||||||
textStyle: {
|
textStyle: {
|
||||||
|
@ -71,7 +65,7 @@ export default {
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
min: 0,
|
min: 0,
|
||||||
max: max,
|
max: chartMax.value,
|
||||||
startAngle: 60,
|
startAngle: 60,
|
||||||
},
|
},
|
||||||
radiusAxis: {
|
radiusAxis: {
|
||||||
|
@ -94,7 +88,7 @@ export default {
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
data: [{ name: '预报到填写报到人数', value: value }],
|
data: [{ name: '预报到填写报到人数', value: chartValues.value }],
|
||||||
startAngle: 225,
|
startAngle: 225,
|
||||||
z: 1,
|
z: 1,
|
||||||
coordinateSystem: 'polar',
|
coordinateSystem: 'polar',
|
||||||
|
@ -116,7 +110,7 @@ export default {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
data: [max],
|
data: [chartMax.value],
|
||||||
z: 0,
|
z: 0,
|
||||||
silent: true,
|
silent: true,
|
||||||
coordinateSystem: 'polar',
|
coordinateSystem: 'polar',
|
||||||
|
@ -126,11 +120,12 @@ export default {
|
||||||
barGap: '-100%',
|
barGap: '-100%',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
|
||||||
option && this.myChart.setOption(option);
|
|
||||||
}
|
}
|
||||||
},
|
myChart.value.setOption(option);
|
||||||
};
|
}
|
||||||
|
|
||||||
|
defineExpose({ init })
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
|
@ -4,48 +4,35 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script setup lang="ts" name="pieChart">
|
||||||
import * as echarts from 'echarts';
|
import * as echarts from 'echarts';
|
||||||
export default {
|
const myChart = ref(null)
|
||||||
name: 'pieChart',
|
const chartMax = ref(null)
|
||||||
|
const chartValues = ref(null)
|
||||||
|
const chartRate = ref(null)
|
||||||
|
|
||||||
data() {
|
onMounted(() => {
|
||||||
return {
|
|
||||||
myChart: null,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
mounted() {
|
|
||||||
// window.addEventListener('resize',()=>{this.resize();getRem(1920,100)})
|
// window.addEventListener('resize',()=>{this.resize();getRem(1920,100)})
|
||||||
this.init()
|
var chartDom = document.getElementById('pieChart');
|
||||||
},
|
myChart.value = echarts.init(chartDom);
|
||||||
beforeDestroy() {
|
})
|
||||||
// window.removeEventListener('resize',this.resize)
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// resize(){
|
// resize(){
|
||||||
// this.myChart.resize();
|
// this.myChart.resize();
|
||||||
// },
|
// },
|
||||||
init(max, value) {
|
const init=(max, value) =>{
|
||||||
var max = max?max:100;
|
|
||||||
var value = value?value:0;
|
|
||||||
|
|
||||||
var rate = 0
|
chartMax.value = max ? max : 100;
|
||||||
|
chartValues.value = value ? value : 0;
|
||||||
if (max && value) {
|
if (chartMax && chartValues) {
|
||||||
rate = (value / max * 100).toFixed(1)
|
chartRate.value = (chartValues.value / chartMax.value * 100).toFixed(1)
|
||||||
}
|
}
|
||||||
if (rate === "100.0") {
|
if (chartRate.value === "100.0") {
|
||||||
rate = "100"; // 如果百分比等于100,则更新为整数形式
|
chartRate.value = "100"; // 如果百分比等于100,则更新为整数形式
|
||||||
}
|
}
|
||||||
var chartDom = document.getElementById('pieChart');
|
|
||||||
this.myChart = echarts.init(chartDom);
|
|
||||||
// window.onresize = this.myChart.resize;
|
|
||||||
var option;
|
|
||||||
|
|
||||||
option = {
|
let option = {
|
||||||
title: {
|
title: {
|
||||||
text: (rate || '0.0') + '%',
|
text: (chartRate.value || '0.0') + '%',
|
||||||
x: 'center',
|
x: 'center',
|
||||||
y: '20%',
|
y: '20%',
|
||||||
textStyle: {
|
textStyle: {
|
||||||
|
@ -72,7 +59,7 @@ export default {
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
min: 0,
|
min: 0,
|
||||||
max: max,
|
max: chartMax.value,
|
||||||
startAngle: 60,
|
startAngle: 60,
|
||||||
},
|
},
|
||||||
radiusAxis: {
|
radiusAxis: {
|
||||||
|
@ -95,7 +82,7 @@ export default {
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
data: [{ name: '预报到填写人数', value: value }],
|
data: [{ name: '预报到填写报到人数', value: chartValues.value }],
|
||||||
startAngle: 225,
|
startAngle: 225,
|
||||||
z: 1,
|
z: 1,
|
||||||
coordinateSystem: 'polar',
|
coordinateSystem: 'polar',
|
||||||
|
@ -117,7 +104,7 @@ export default {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
data: [max],
|
data: [chartMax.value],
|
||||||
z: 0,
|
z: 0,
|
||||||
silent: true,
|
silent: true,
|
||||||
coordinateSystem: 'polar',
|
coordinateSystem: 'polar',
|
||||||
|
@ -127,11 +114,10 @@ export default {
|
||||||
barGap: '-100%',
|
barGap: '-100%',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
|
||||||
option && this.myChart.setOption(option);
|
|
||||||
}
|
}
|
||||||
},
|
option && myChart.value.setOption(option);
|
||||||
};
|
}
|
||||||
|
defineExpose({init})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
|
@ -3,13 +3,18 @@ interface UtilVarType {
|
||||||
code:string|number,
|
code:string|number,
|
||||||
noContentCode:number,
|
noContentCode:number,
|
||||||
ENC:boolean,//是否进行加密
|
ENC:boolean,//是否进行加密
|
||||||
|
errCode:string|number,
|
||||||
|
notAllow:string|number
|
||||||
}
|
}
|
||||||
|
// 这里放的是测试地址,发布后改为正式地址 ---- 待修改
|
||||||
const UtilVar:UtilVarType = {
|
const UtilVar:UtilVarType = {
|
||||||
baseUrl:"http://api.nclg.yx.zheke.com",
|
baseUrl:"http://api.nclg.yx.zheke.com",
|
||||||
code:401, //登陆过期
|
code:401, //登陆过期
|
||||||
noContentCode:204, //请求成功但没有内容
|
noContentCode:204, //请求成功但没有内容
|
||||||
ENC:false,
|
ENC:false,
|
||||||
|
errCode:'ERR_BAD_REQUEST',
|
||||||
|
notAllow:403
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
const runtimeType:any = {
|
const runtimeType:any = {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: 张宁 18339727226@163.com
|
* @Author: 张宁 18339727226@163.com
|
||||||
* @Date: 2024-05-27 08:45:53
|
* @Date: 2024-05-27 08:45:53
|
||||||
* @LastEditors: 张宁 18339727226@163.com
|
* @LastEditors: 张宁 18339727226@163.com
|
||||||
* @LastEditTime: 2024-05-31 16:39:38
|
* @LastEditTime: 2024-06-04 09:34:13
|
||||||
* @FilePath: \welcome-system-screen\src\stores\time\time.ts
|
* @FilePath: \welcome-system-screen\src\stores\time\time.ts
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
|
@ -34,6 +34,14 @@ export const useDataStore = defineStore("data", () => {
|
||||||
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(() => {
|
||||||
|
forecast.value.reported / forecast.value.total
|
||||||
|
});
|
||||||
|
// 当日预报到总人数报到率
|
||||||
|
const totalRate = computed(() => {
|
||||||
|
totalDto.value.reportNumber / totalDto.value.totalNumber
|
||||||
|
});
|
||||||
|
|
||||||
// 选中的学院id
|
// 选中的学院id
|
||||||
const collageId = ref()
|
const collageId = ref()
|
||||||
|
@ -70,5 +78,5 @@ export const useDataStore = defineStore("data", () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
return { allData,degreeDto,forecast,forecastFill,nationStudent,payDto,provinceDto,rankingDto,sexDto,today,totalDto,setData,bkPay,zkPay,zsbPay,setBkPay,setZkPay,setZsbPay,setCollageId,collageId,professionRank,setProfessionRank};
|
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};
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: 张宁 18339727226@163.com
|
* @Author: 张宁 18339727226@163.com
|
||||||
* @Date: 2024-05-27 08:45:53
|
* @Date: 2024-05-27 08:45:53
|
||||||
* @LastEditors: 张宁 18339727226@163.com
|
* @LastEditors: 张宁 18339727226@163.com
|
||||||
* @LastEditTime: 2024-05-31 15:32:52
|
* @LastEditTime: 2024-06-03 09:15:30
|
||||||
* @FilePath: \welcome-system-screen\src\stores\time\time.ts
|
* @FilePath: \welcome-system-screen\src\stores\time\time.ts
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
|
@ -35,14 +35,14 @@ export const useTimeStore = defineStore("time", () => {
|
||||||
}
|
}
|
||||||
// 根据年、月、日的切换,展示不同的标题 --- 具体问问产品怎么展示 -----待修改
|
// 根据年、月、日的切换,展示不同的标题 --- 具体问问产品怎么展示 -----待修改
|
||||||
const computDate = computed(() => {
|
const computDate = computed(() => {
|
||||||
let dates = '今日'
|
let dates = '当日'
|
||||||
if (years.value) {
|
if (years.value) {
|
||||||
dates = years.value + '年'
|
dates = years.value + '年'
|
||||||
if (months.value) {
|
if (months.value) {
|
||||||
dates += months.value + '月'
|
dates += months.value + '月'
|
||||||
|
}if (days.value) {
|
||||||
|
dates = '当日'
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
dates = '今日'
|
|
||||||
}
|
}
|
||||||
return dates
|
return dates
|
||||||
})
|
})
|
||||||
|
@ -52,10 +52,10 @@ export const useTimeStore = defineStore("time", () => {
|
||||||
titles = '当年'
|
titles = '当年'
|
||||||
if(months.value) {
|
if(months.value) {
|
||||||
titles = '当月'
|
titles = '当月'
|
||||||
}
|
}if (days.value) {
|
||||||
}else{
|
|
||||||
titles = '当日'
|
titles = '当日'
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return titles
|
return titles
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -57,10 +57,10 @@ const myDate = ref({
|
||||||
// 获取选择的日期(年 || 月 ||日)
|
// 获取选择的日期(年 || 月 ||日)
|
||||||
const getDate = (val: any) => {
|
const getDate = (val: any) => {
|
||||||
myDate.value = val
|
myDate.value = val
|
||||||
/* // 根据年、月、日的切换,展示不同的标题 --- 具体问问产品怎么展示 -----待修改
|
// 根据年、月、日的切换,展示不同的标题 --- 具体问问产品怎么展示 -----待修改
|
||||||
timeStore.setYears(val.year)
|
timeStore.setYears(val.year)
|
||||||
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,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: 张宁 18339727226@163.com
|
* @Author: 张宁 18339727226@163.com
|
||||||
* @Date: 2024-05-22 08:40:56
|
* @Date: 2024-05-22 08:40:56
|
||||||
* @LastEditors: 张宁 18339727226@163.com
|
* @LastEditors: 张宁 18339727226@163.com
|
||||||
* @LastEditTime: 2024-05-31 14:53:27
|
* @LastEditTime: 2024-06-04 09:34:34
|
||||||
* @FilePath: \welcome-system-screen\src\views\index\center-top.vue
|
* @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
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
-->
|
-->
|
||||||
|
@ -13,7 +13,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 } = storeToRefs(dataStore)
|
const { today, forecastRate,totalRate } = storeToRefs(dataStore)
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -25,17 +25,17 @@ const { today } = storeToRefs(dataStore)
|
||||||
</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">{{ today.nowStuden??'-' }}</div>
|
<div class="top-item-content">{{ today.nowStuden ?? '0' }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</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">{{ today.forecastStuden??'-' }}</div>
|
<div class="top-item-content">{{ today.forecastStuden ?? '0' }}</div>
|
||||||
</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"> 95% </div>
|
<div class="top-item-content"> {{ forecastRate ?? '0' }}% </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="top-item-img">
|
<div class="top-item-img">
|
||||||
<div class="top-item-icon">
|
<div class="top-item-icon">
|
||||||
|
@ -43,7 +43,7 @@ const { today } = storeToRefs(dataStore)
|
||||||
</div>
|
</div>
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title">预报到总人数报到率</div>
|
<div class="top-item-title">预报到总人数报到率</div>
|
||||||
<div class="top-item-content"> 95% </div>
|
<div class="top-item-content"> {{totalRate ?? '0'}}% </div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -21,9 +21,9 @@ import { useDataStore } from "@/stores/index";
|
||||||
const dataStore = useDataStore();
|
const dataStore = useDataStore();
|
||||||
const { allData, rankingDto, collageId, professionRank } = storeToRefs(dataStore)
|
const { allData, rankingDto, collageId, professionRank } = storeToRefs(dataStore)
|
||||||
|
|
||||||
const rightCenterRef = ref(null)
|
const rightCenterRef: any = ref(null)
|
||||||
|
|
||||||
const mapRef = ref(null)
|
const mapRef: any = ref(null)
|
||||||
const tableData = ref()
|
const tableData = ref()
|
||||||
const showRight = ref(true)
|
const showRight = ref(true)
|
||||||
const changeRight = () => {
|
const changeRight = () => {
|
||||||
|
@ -77,7 +77,7 @@ 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 rbtwoRef = ref(null)
|
const rbtwoRef: any = ref(null)
|
||||||
const getProfession = () => {
|
const getProfession = () => {
|
||||||
let params = {
|
let params = {
|
||||||
"id": collageId.value
|
"id": collageId.value
|
||||||
|
@ -102,7 +102,12 @@ watch(collageId, () => {
|
||||||
* @return {*}
|
* @return {*}
|
||||||
*/
|
*/
|
||||||
const getAdminPCIndex = () => {
|
const getAdminPCIndex = () => {
|
||||||
AdminPCIndex().then((res: any) => {
|
let params = {
|
||||||
|
"Year": years.value,
|
||||||
|
"Month": months.value,
|
||||||
|
"Day": days.value
|
||||||
|
}
|
||||||
|
AdminPCIndex(params).then((res: any) => {
|
||||||
dataStore.setData(res.data);
|
dataStore.setData(res.data);
|
||||||
dataStore.setCollageId(res.data.rankingDto[0].collegeId)
|
dataStore.setCollageId(res.data.rankingDto[0].collegeId)
|
||||||
dealMapData(res.data)
|
dealMapData(res.data)
|
||||||
|
@ -151,11 +156,21 @@ const payData = () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
const timer: any = ref(null)
|
||||||
|
const startTimer = () => {
|
||||||
|
timer.value = setInterval(() => {
|
||||||
|
getAdminPCIndex();
|
||||||
|
payData();
|
||||||
|
}, 60000)
|
||||||
|
}
|
||||||
|
const clearTimer = () => {
|
||||||
|
clearInterval(timer.value)
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getAdminPCIndex();
|
getAdminPCIndex();
|
||||||
payData();
|
payData();
|
||||||
|
startTimer()
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: 张宁 18339727226@163.com
|
* @Author: 张宁 18339727226@163.com
|
||||||
* @Date: 2024-05-23 20:42:55
|
* @Date: 2024-05-23 20:42:55
|
||||||
* @LastEditors: 张宁 18339727226@163.com
|
* @LastEditors: 张宁 18339727226@163.com
|
||||||
* @LastEditTime: 2024-05-30 13:49:47
|
* @LastEditTime: 2024-06-03 15:28:11
|
||||||
* @FilePath: \welcome-system-screen\src\views\index\left-bottom.vue
|
* @FilePath: \welcome-system-screen\src\views\index\left-bottom.vue
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
-->
|
-->
|
||||||
|
@ -13,14 +13,26 @@ const {forecast,forecastFill} = storeToRefs(dataStore)
|
||||||
|
|
||||||
const chartRef = ref(null)
|
const chartRef = ref(null)
|
||||||
const pieChartRef = ref(null)
|
const pieChartRef = ref(null)
|
||||||
onMounted(()=>{
|
watch(forecast,()=>{
|
||||||
if (chartRef) {
|
if (chartRef) {
|
||||||
chartRef.value.init(forecast.value.total,forecast.value.reported)
|
chartRef.value.init(forecast.value.total,forecast.value.reported)
|
||||||
}
|
}
|
||||||
|
},{
|
||||||
|
deep:true,
|
||||||
|
})
|
||||||
|
watch(forecastFill,()=>{
|
||||||
if (pieChartRef) {
|
if (pieChartRef) {
|
||||||
pieChartRef.value.init(forecastFill.value.total,forecastFill.value.reported)
|
pieChartRef.value.init(forecastFill.value.total,forecastFill.value.reported)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
onMounted(()=>{
|
||||||
|
// if (chartRef) {
|
||||||
|
// chartRef.value.init(forecast.value.total,forecast.value.reported)
|
||||||
|
// }
|
||||||
|
// if (pieChartRef) {
|
||||||
|
// pieChartRef.value.init(forecastFill.value.total,forecastFill.value.reported)
|
||||||
|
// }
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -43,7 +55,7 @@ onMounted(()=>{
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="title">预报到填写率</div>
|
<div class="title">预报到填写率</div>
|
||||||
<div class="right-content">
|
<div class="right-content">
|
||||||
<pieChart ref="pieChartRef"></pieChart>
|
<PieChart ref="pieChartRef"></PieChart>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-title">
|
<div class="bottom-title">
|
||||||
<div class="icons"></div>
|
<div class="icons"></div>
|
||||||
|
|
|
@ -39,14 +39,14 @@ const zsbRate = computed(() => {
|
||||||
<div class="content-left">
|
<div class="content-left">
|
||||||
<div class="content-title title-top">统招本科</div>
|
<div class="content-title title-top">统招本科</div>
|
||||||
<p class="item-title">统招本科总人数</p>
|
<p class="item-title">统招本科总人数</p>
|
||||||
<p class="item-content">{{ degreeDto[2]?degreeDto[2].studentNumber:'-' }}</p>
|
<p class="item-content">{{ degreeDto[2]?degreeDto[2].studentNumber:'0' }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="content-right">
|
<div class="content-right">
|
||||||
<div class="right-title title-top item-title">报到率
|
<div class="right-title title-top item-title">报到率
|
||||||
<span class="title-num numBlue">{{ isNaN(bkRate) ? '-' : bkRate }}%</span>
|
<span class="title-num numBlue">{{ isNaN(bkRate) ? '0' : bkRate }}%</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="item-title">今日报到人数</p>
|
<p class="item-title">今日报到人数</p>
|
||||||
<p class="item-content numBlue">{{ degreeDto[2]?degreeDto[2].reportNumber:'-' }}</p>
|
<p class="item-content numBlue">{{ degreeDto[2]?degreeDto[2].reportNumber:'0' }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -59,14 +59,14 @@ const zsbRate = computed(() => {
|
||||||
<div class="content-left">
|
<div class="content-left">
|
||||||
<div class="content-title title-top tGreen">统招专科</div>
|
<div class="content-title title-top tGreen">统招专科</div>
|
||||||
<p class="item-title">统招专科总人数</p>
|
<p class="item-title">统招专科总人数</p>
|
||||||
<p class="item-content">{{ degreeDto[0]?degreeDto[0].studentNumber:'-' }}</p>
|
<p class="item-content">{{ degreeDto[0]?degreeDto[0].studentNumber:'0' }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="content-right">
|
<div class="content-right">
|
||||||
<div class="right-title title-top item-title">报到率
|
<div class="right-title title-top item-title">报到率
|
||||||
<span class="title-num numGreen">{{ isNaN(zkRate) ? '-' : zkRate }}%</span>
|
<span class="title-num numGreen">{{ isNaN(zkRate) ? '0' : zkRate }}%</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="item-title">今日报到人数</p>
|
<p class="item-title">今日报到人数</p>
|
||||||
<p class="item-content numGreen">{{ degreeDto[0]?degreeDto[0].reportNumber:'-' }}</p>
|
<p class="item-content numGreen">{{ degreeDto[0]?degreeDto[0].reportNumber:'0' }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -79,14 +79,14 @@ const zsbRate = computed(() => {
|
||||||
<div class="content-left">
|
<div class="content-left">
|
||||||
<div class="content-title title-top tGray">统招专升本</div>
|
<div class="content-title title-top tGray">统招专升本</div>
|
||||||
<p class="item-title">统招专升本总人数</p>
|
<p class="item-title">统招专升本总人数</p>
|
||||||
<p class="item-content">{{ degreeDto[1]?degreeDto[1].studentNumber:'-' }}</p>
|
<p class="item-content">{{ degreeDto[1]?degreeDto[1].studentNumber:'0' }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="content-right">
|
<div class="content-right">
|
||||||
<div class="right-title title-top item-title">报到率
|
<div class="right-title title-top item-title">报到率
|
||||||
<span class="title-num numGrey">{{ isNaN(zsbRate) ? '-' : zsbRate }}%</span>
|
<span class="title-num numGrey">{{ isNaN(zsbRate) ? '0' : zsbRate }}%</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="item-title">今日报到人数</p>
|
<p class="item-title">今日报到人数</p>
|
||||||
<p class="item-content numGrey">{{ degreeDto[1]?degreeDto[1].reportNumber:'-' }}</p>
|
<p class="item-content numGrey">{{ degreeDto[1]?degreeDto[1].reportNumber:'0' }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -23,7 +23,7 @@ const progress = computed(() => {
|
||||||
</div>
|
</div>
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title">已报到人数</div>
|
<div class="top-item-title">已报到人数</div>
|
||||||
<div class="top-item-content">{{ totalDto.reportNumber ?? '-' }}</div>
|
<div class="top-item-content">{{ totalDto.reportNumber ?? '0' }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="top-item-img">
|
<div class="top-item-img">
|
||||||
|
@ -32,22 +32,22 @@ const progress = computed(() => {
|
||||||
</div>
|
</div>
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title title-red">未报到人数</div>
|
<div class="top-item-title title-red">未报到人数</div>
|
||||||
<div class="top-item-content content-red"> {{ totalDto.notReportNumber ?? '-' }} </div>
|
<div class="top-item-content content-red"> {{ totalDto.notReportNumber ?? '0' }} </div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<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) ? '-' : totalReport }} </div>
|
<div class="bottom-item-content"> {{ isNaN(totalReport) ? '0' : totalReport }} </div>
|
||||||
</div>
|
</div>
|
||||||
<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"> {{ totalDto.totalNumber ?? '-' }} </div>
|
<div class="bottom-item-content"> {{ totalDto.totalNumber ?? '0' }} </div>
|
||||||
</div>
|
</div>
|
||||||
<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(progress) ? '-' : progress}}% </div>
|
<div class="bottom-item-content"> {{ isNaN(progress) ? '0' : progress}}% </div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
Loading…
Reference in New Issue