1、修复首页问题

2、调整考试成绩的显示数据源
This commit is contained in:
ywyonui 2025-07-04 20:44:24 +08:00
parent 9f26117137
commit c6dd259a52
2 changed files with 56 additions and 64 deletions

View File

@ -8,7 +8,7 @@
<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>
@ -28,7 +28,7 @@
<!-- 选项卡 -->
<view class="tabs">
<view
v-if="kscjList.length > 2"
v-if="ksccKmList.length > 2"
class="tab-item"
:class="{ active: activeTab === 'diagnosis' }"
@click="switchTab('diagnosis')"
@ -53,14 +53,14 @@
<!-- 学科成绩视图 -->
<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
class="subject-item"
v-for="(kscj, index) in kscjList"
v-for="(kscj, index) in ksccKscjList"
:key="index"
>
<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>
</view>
<view class="subject-body">
@ -161,7 +161,6 @@ import dayjs from "dayjs";
import { xsKscjApi, getJzdShowFs } from "@/api/base/server";
import { useUserStore } from "@/store/modules/user";
import { useDataStore } from "@/store/modules/data";
import { format } from "path";
const { getCurXs } = useUserStore();
const { getData } = useDataStore();
dayjs.locale("zh-cn");
@ -219,14 +218,21 @@ let trendData = {
],
};
//
const srcKmList = ref<any>([]);
//
const srcKsdjList = ref<any>([]);
//
const srcKsccKscjList = ref<any>([]);
//
const srcXqKscjList = ref<any>([]);
//
const sysKmList = ref<any>([]);
//
const ksccKmList = ref<any>([]);
//
const totalKmFs = ref<number>(0);
//
const kmDjList = ref<any>([]);
//
const djList = ref<any>([]);
//
const ksccKscjList = ref<any>([]);
//
const xqKscjList = ref<any>([]);
const switchKm = (index : number) => {
curKmIndex.value = index;
@ -392,38 +398,24 @@ const floatToInt = (floatNum: number, scale: number) => {
//
const initKsdj = () => {
srcKsdjList.value.forEach((ksdj: any) => {
djList.value.forEach((ksdj: any) => {
ksdj.djfsd = floatToInt(ksdj.djfsd, fsScale); //
ksdj.djfsg = floatToInt(ksdj.djfsg, fsScale); //
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{ } }
const buildXqKmKscjList = () => {
const xqKscjMap = new Map<string, any>();
const len = srcXqKscjList.value.length;
const len = xqKscjList.value.length;
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');
if (!xqKscjMap.has(exam.kmId)) {
xqKscjMap.set(exam.kmId, {});
@ -440,7 +432,7 @@ const buildXqKmKscjList = () => {
const dataMap = new Map(Object.entries(value));
let km = {
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),
fsList: Array.from(dataMap.values()).map(Number)
};
@ -451,27 +443,26 @@ const buildXqKmKscjList = () => {
}
const rebuildData = () => {
//
let ksccKmmcList = [];
let ksccKmIdList = getData.kmId.split(",");
let ksfsList = [];
let ksfsList: any[] = [];
let totalFs = 0.00;
kscjList.value = [];
for (let i = 0; i < ksccKmIdList.length; i++) {
let kmmc = srcKmList.value.find((item: any) => item.id === ksccKmIdList[i])?.kmmc;
ksccKmmcList.push(kmmc);
let km = { id: ksccKmIdList[i], kmmc: kmmc };
let kmKscj = buildKmKscj(km, srcKsccKscjList.value);
ksfsList.push(kmKscj.ksfs);
totalFs += kmKscj.ksfs;
kscjList.value.push(kmKscj);
}
ksccKscjList.value = ksccKscjList.value.map((cj: any) => {
ksfsList.push(cj.ksfs);
totalFs += cj.ksfs;
let fs = floatToInt(cj.ksfs, fsScale);
//
cj.ksdj = kmDjList.value.find((item: any) => item.kmId == cj.kmId && item.djfsd <= fs && item.djfsg >= fs) || {};
cj.km = ksccKmList.value.find((item: any) => item.kmId === cj.kmId) || {};
return cj;
});
//
radarData.categories = ksccKmmcList;
radarData.categories = ksccKmList.value.map((item: any) => {
totalKmFs.value += item.kmfs;
return item.kmmc;
});
radarData.series = [{ name: "分数", data: ksfsList }];
//
totalFs = floatToInt(totalFs, fsScale) / ksccKmIdList.length;
curKsdj.value = srcKsdjList.value.find((item: any) => item.djfsd <= totalFs && item.djfsg >= totalFs);
totalFs = floatToInt(totalFs, fsScale);
curKsdj.value = djList.value.find((item: any) => item.djfsd <= totalFs && item.djfsg >= totalFs) || {};
//
buildXqKmKscjList();
}
@ -485,10 +476,12 @@ onMounted(async () => {
njmcId: getData.njmcId
});
if (res.resultCode == 1) {
srcKmList.value = res.result.kmList;
srcKsdjList.value = res.result.ksdjList;
srcKsccKscjList.value = res.result.ksccKscjList;
srcXqKscjList.value = res.result.xqKscjList;
sysKmList.value = res.result.kmList;
ksccKmList.value = res.result.ksccKmList;
kmDjList.value = res.result.kmDjList;
djList.value = res.result.djList;
ksccKscjList.value = res.result.ksccKscjList;
xqKscjList.value = res.result.xqKscjList;
showFsFlag.value = res.result.showFs;
//
initKsdj();

View File

@ -95,11 +95,11 @@ const menuItems = ref([
icon: "/static/base/home/file-search-line.png",
path: "/pages/base/grades/list",
},
// {
// title: "线",
// icon: "/static/base/home/draft-line.png",
// path: "/pages/base/leave-request/index",
// },
{
title: "在线请假",
icon: "/static/base/home/draft-line.png",
path: "/pages/base/leave-request/index",
},
// TODO:
// {
// title: "",
@ -171,7 +171,6 @@ function handleMenuClick(item: any) {
//
function switchXs(xs: any) {
curXs = xs;
getArticleList();
}