1、修复首页问题
2、调整考试成绩的显示数据源
This commit is contained in:
parent
9f26117137
commit
c6dd259a52
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<view class="color-bar"></view>
|
<view class="color-bar"></view>
|
||||||
|
|
||||||
<text class="total-score">共{{kscjList.length}}科(满分{{ kscjList.length * 100 }}分)</text>
|
<text class="total-score">共{{ksccKmList.length}}科(满分{{ totalKmFs }}分)</text>
|
||||||
|
|
||||||
<text class="grade">{{ curKsdj.dfbs }}</text>
|
<text class="grade">{{ curKsdj.dfbs }}</text>
|
||||||
|
|
||||||
@ -28,7 +28,7 @@
|
|||||||
<!-- 选项卡 -->
|
<!-- 选项卡 -->
|
||||||
<view class="tabs">
|
<view class="tabs">
|
||||||
<view
|
<view
|
||||||
v-if="kscjList.length > 2"
|
v-if="ksccKmList.length > 2"
|
||||||
class="tab-item"
|
class="tab-item"
|
||||||
:class="{ active: activeTab === 'diagnosis' }"
|
:class="{ active: activeTab === 'diagnosis' }"
|
||||||
@click="switchTab('diagnosis')"
|
@click="switchTab('diagnosis')"
|
||||||
@ -53,14 +53,14 @@
|
|||||||
|
|
||||||
<!-- 学科成绩视图 -->
|
<!-- 学科成绩视图 -->
|
||||||
<view class="score-view flex-1 po-re" v-if="activeTab === 'scores'">
|
<view class="score-view flex-1 po-re" v-if="activeTab === 'scores'">
|
||||||
<view class="po-ab inset-0 px-15" style="overflow: auto">
|
<view class="po-ab inset-0 px-15" style="overflow: auto" v-if="ksccKscjList.length">
|
||||||
<view
|
<view
|
||||||
class="subject-item"
|
class="subject-item"
|
||||||
v-for="(kscj, index) in kscjList"
|
v-for="(kscj, index) in ksccKscjList"
|
||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<view class="subject-header">
|
<view class="subject-header">
|
||||||
<text class="subject-name">{{ kscj.kmmc }}</text>
|
<text class="subject-name">{{ kscj.km.kmmc }}</text>
|
||||||
<text v-if="showFsFlag && kscj.ksdj.id">(分数{{ kscj.ksfs }})</text>
|
<text v-if="showFsFlag && kscj.ksdj.id">(分数{{ kscj.ksfs }})</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="subject-body">
|
<view class="subject-body">
|
||||||
@ -161,7 +161,6 @@ import dayjs from "dayjs";
|
|||||||
import { xsKscjApi, getJzdShowFs } from "@/api/base/server";
|
import { xsKscjApi, getJzdShowFs } from "@/api/base/server";
|
||||||
import { useUserStore } from "@/store/modules/user";
|
import { useUserStore } from "@/store/modules/user";
|
||||||
import { useDataStore } from "@/store/modules/data";
|
import { useDataStore } from "@/store/modules/data";
|
||||||
import { format } from "path";
|
|
||||||
const { getCurXs } = useUserStore();
|
const { getCurXs } = useUserStore();
|
||||||
const { getData } = useDataStore();
|
const { getData } = useDataStore();
|
||||||
dayjs.locale("zh-cn");
|
dayjs.locale("zh-cn");
|
||||||
@ -219,14 +218,21 @@ let trendData = {
|
|||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
// 后端查询到的所有科目列表
|
// 所有科目列表
|
||||||
const srcKmList = ref<any>([]);
|
const sysKmList = ref<any>([]);
|
||||||
// 后端查询到的考试等级列表
|
// 当前考试科目列表
|
||||||
const srcKsdjList = ref<any>([]);
|
const ksccKmList = ref<any>([]);
|
||||||
// 后端查询到的当前学生本次考试成绩列表
|
// 科目卷面分总数
|
||||||
const srcKsccKscjList = ref<any>([]);
|
const totalKmFs = ref<number>(0);
|
||||||
// 后端查询到的当前学生本次学期所有成绩列表
|
|
||||||
const srcXqKscjList = ref<any>([]);
|
// 科目等级列表
|
||||||
|
const kmDjList = ref<any>([]);
|
||||||
|
// 考试场次等级列表
|
||||||
|
const djList = ref<any>([]);
|
||||||
|
// 考试场次成绩列表
|
||||||
|
const ksccKscjList = ref<any>([]);
|
||||||
|
// 学期成绩
|
||||||
|
const xqKscjList = ref<any>([]);
|
||||||
|
|
||||||
const switchKm = (index : number) => {
|
const switchKm = (index : number) => {
|
||||||
curKmIndex.value = index;
|
curKmIndex.value = index;
|
||||||
@ -392,38 +398,24 @@ const floatToInt = (floatNum: number, scale: number) => {
|
|||||||
|
|
||||||
// 初始化考试等级列表
|
// 初始化考试等级列表
|
||||||
const initKsdj = () => {
|
const initKsdj = () => {
|
||||||
srcKsdjList.value.forEach((ksdj: any) => {
|
djList.value.forEach((ksdj: any) => {
|
||||||
ksdj.djfsd = floatToInt(ksdj.djfsd, fsScale); // 等级最低分
|
ksdj.djfsd = floatToInt(ksdj.djfsd, fsScale); // 等级最低分
|
||||||
ksdj.djfsg = floatToInt(ksdj.djfsg, fsScale); // 等级最高分
|
ksdj.djfsg = floatToInt(ksdj.djfsg, fsScale); // 等级最高分
|
||||||
ksdj.djclr = colorMap[ksdj.dfbs] || ''; // 等级颜色
|
ksdj.djclr = colorMap[ksdj.dfbs] || ''; // 等级颜色
|
||||||
});
|
});
|
||||||
|
kmDjList.value.forEach((kmdj: any) => {
|
||||||
|
kmdj.djfsd = floatToInt(kmdj.djfsd, fsScale); // 等级最低分
|
||||||
|
kmdj.djfsg = floatToInt(kmdj.djfsg, fsScale); // 等级最高分
|
||||||
|
kmdj.djclr = colorMap[kmdj.dfbs] || ''; // 等级颜色
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// 单科科目成绩构建
|
|
||||||
const buildKmKscj = (km: any, cjList: any) => {
|
|
||||||
let cj = cjList.find((item: any) => item.kmId === km.id);
|
|
||||||
if (cj) {
|
|
||||||
km.ksfs = cj.ksfs; // 记录分数
|
|
||||||
const fs = floatToInt(cj.ksfs, fsScale);
|
|
||||||
// 查询考试等级
|
|
||||||
km.ksdj = srcKsdjList.value.find((item: any) => item.djfsd <= fs && item.djfsg >= fs);
|
|
||||||
} else {
|
|
||||||
km.ksfs = 0.00;
|
|
||||||
km.ksdj = {
|
|
||||||
id: '',
|
|
||||||
dfbs: '无',
|
|
||||||
dsms: '无'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return km;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 构建当前学期所有科目成绩(对象是按照{ 科目id:{ 日期:成绩 } }的结构拼接)
|
// 构建当前学期所有科目成绩(对象是按照{ 科目id:{ 日期:成绩 } }的结构拼接)
|
||||||
const buildXqKmKscjList = () => {
|
const buildXqKmKscjList = () => {
|
||||||
const xqKscjMap = new Map<string, any>();
|
const xqKscjMap = new Map<string, any>();
|
||||||
const len = srcXqKscjList.value.length;
|
const len = xqKscjList.value.length;
|
||||||
for (let i = 0; i < len; i++) {
|
for (let i = 0; i < len; i++) {
|
||||||
const exam = srcXqKscjList.value[i];
|
const exam = xqKscjList.value[i];
|
||||||
exam.ksrq = dayjs(exam.kskstime).format('MM-DD');
|
exam.ksrq = dayjs(exam.kskstime).format('MM-DD');
|
||||||
if (!xqKscjMap.has(exam.kmId)) {
|
if (!xqKscjMap.has(exam.kmId)) {
|
||||||
xqKscjMap.set(exam.kmId, {});
|
xqKscjMap.set(exam.kmId, {});
|
||||||
@ -440,7 +432,7 @@ const buildXqKmKscjList = () => {
|
|||||||
const dataMap = new Map(Object.entries(value));
|
const dataMap = new Map(Object.entries(value));
|
||||||
let km = {
|
let km = {
|
||||||
id: key,
|
id: key,
|
||||||
kmmc: srcKmList.value.find((item: any) => item.id === key)?.kmmc,
|
kmmc: sysKmList.value.find((item: any) => item.id === key)?.kmmc,
|
||||||
rqList: Array.from(dataMap.keys()).map(String),
|
rqList: Array.from(dataMap.keys()).map(String),
|
||||||
fsList: Array.from(dataMap.values()).map(Number)
|
fsList: Array.from(dataMap.values()).map(Number)
|
||||||
};
|
};
|
||||||
@ -451,27 +443,26 @@ const buildXqKmKscjList = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const rebuildData = () => {
|
const rebuildData = () => {
|
||||||
// 根据考试场次,分解对应的科目
|
let ksfsList: any[] = [];
|
||||||
let ksccKmmcList = [];
|
|
||||||
let ksccKmIdList = getData.kmId.split(",");
|
|
||||||
let ksfsList = [];
|
|
||||||
let totalFs = 0.00;
|
let totalFs = 0.00;
|
||||||
kscjList.value = [];
|
ksccKscjList.value = ksccKscjList.value.map((cj: any) => {
|
||||||
for (let i = 0; i < ksccKmIdList.length; i++) {
|
ksfsList.push(cj.ksfs);
|
||||||
let kmmc = srcKmList.value.find((item: any) => item.id === ksccKmIdList[i])?.kmmc;
|
totalFs += cj.ksfs;
|
||||||
ksccKmmcList.push(kmmc);
|
let fs = floatToInt(cj.ksfs, fsScale);
|
||||||
let km = { id: ksccKmIdList[i], kmmc: kmmc };
|
// 查询考试等级
|
||||||
let kmKscj = buildKmKscj(km, srcKsccKscjList.value);
|
cj.ksdj = kmDjList.value.find((item: any) => item.kmId == cj.kmId && item.djfsd <= fs && item.djfsg >= fs) || {};
|
||||||
ksfsList.push(kmKscj.ksfs);
|
cj.km = ksccKmList.value.find((item: any) => item.kmId === cj.kmId) || {};
|
||||||
totalFs += kmKscj.ksfs;
|
return cj;
|
||||||
kscjList.value.push(kmKscj);
|
});
|
||||||
}
|
|
||||||
// 雷达图数据
|
// 雷达图数据
|
||||||
radarData.categories = ksccKmmcList;
|
radarData.categories = ksccKmList.value.map((item: any) => {
|
||||||
|
totalKmFs.value += item.kmfs;
|
||||||
|
return item.kmmc;
|
||||||
|
});
|
||||||
radarData.series = [{ name: "分数", data: ksfsList }];
|
radarData.series = [{ name: "分数", data: ksfsList }];
|
||||||
// 当前成绩列表
|
// 当前成绩列表
|
||||||
totalFs = floatToInt(totalFs, fsScale) / ksccKmIdList.length;
|
totalFs = floatToInt(totalFs, fsScale);
|
||||||
curKsdj.value = srcKsdjList.value.find((item: any) => item.djfsd <= totalFs && item.djfsg >= totalFs);
|
curKsdj.value = djList.value.find((item: any) => item.djfsd <= totalFs && item.djfsg >= totalFs) || {};
|
||||||
// 构建趋势图所需的成绩列表信息
|
// 构建趋势图所需的成绩列表信息
|
||||||
buildXqKmKscjList();
|
buildXqKmKscjList();
|
||||||
}
|
}
|
||||||
@ -485,10 +476,12 @@ onMounted(async () => {
|
|||||||
njmcId: getData.njmcId
|
njmcId: getData.njmcId
|
||||||
});
|
});
|
||||||
if (res.resultCode == 1) {
|
if (res.resultCode == 1) {
|
||||||
srcKmList.value = res.result.kmList;
|
sysKmList.value = res.result.kmList;
|
||||||
srcKsdjList.value = res.result.ksdjList;
|
ksccKmList.value = res.result.ksccKmList;
|
||||||
srcKsccKscjList.value = res.result.ksccKscjList;
|
kmDjList.value = res.result.kmDjList;
|
||||||
srcXqKscjList.value = res.result.xqKscjList;
|
djList.value = res.result.djList;
|
||||||
|
ksccKscjList.value = res.result.ksccKscjList;
|
||||||
|
xqKscjList.value = res.result.xqKscjList;
|
||||||
showFsFlag.value = res.result.showFs;
|
showFsFlag.value = res.result.showFs;
|
||||||
// 初始化考试等级
|
// 初始化考试等级
|
||||||
initKsdj();
|
initKsdj();
|
||||||
|
|||||||
@ -95,11 +95,11 @@ const menuItems = ref([
|
|||||||
icon: "/static/base/home/file-search-line.png",
|
icon: "/static/base/home/file-search-line.png",
|
||||||
path: "/pages/base/grades/list",
|
path: "/pages/base/grades/list",
|
||||||
},
|
},
|
||||||
// {
|
{
|
||||||
// title: "在线请假",
|
title: "在线请假",
|
||||||
// icon: "/static/base/home/draft-line.png",
|
icon: "/static/base/home/draft-line.png",
|
||||||
// path: "/pages/base/leave-request/index",
|
path: "/pages/base/leave-request/index",
|
||||||
// },
|
},
|
||||||
// TODO:需求待协商硬件对接
|
// TODO:需求待协商硬件对接
|
||||||
// {
|
// {
|
||||||
// title: "进出校园",
|
// title: "进出校园",
|
||||||
@ -171,7 +171,6 @@ function handleMenuClick(item: any) {
|
|||||||
|
|
||||||
// 切换学生
|
// 切换学生
|
||||||
function switchXs(xs: any) {
|
function switchXs(xs: any) {
|
||||||
curXs = xs;
|
|
||||||
getArticleList();
|
getArticleList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user