Merge pull request 'dev' (#7) from dev into staging

Reviewed-on: #7
This commit is contained in:
hy 2025-08-26 18:58:58 +08:00
commit d5d8961c8b
9 changed files with 44 additions and 51 deletions

View File

@ -14,6 +14,6 @@ VITE_COMPRESSION = "none"
# 接口地址 # 接口地址
VITE_API_BASEURL = "http://localhost:5199/api" VITE_API_BASEURL = "https://learn-archives-admin.23544.com/api"
#数据中心后台地址 #数据中心后台地址
VITE_API_USERCENTER_URL = "https://dcb.23544.com/api" VITE_API_USERCENTER_URL = "https://dcb.23544.com/api"

View File

@ -241,7 +241,7 @@ class PureHttp {
}) })
.catch(error => { .catch(error => {
if (error.status != 200) { if (error.status != 200) {
if (error.status == 200) ElMessage.warning("请求失败" + error.message); ElMessage.warning("请求失败" + error.message);
} }
reject(error); reject(error);
}); });

View File

@ -135,7 +135,11 @@ const tableData: TableConfig = {
search: false, search: false,
width: "95px", width: "95px",
custom: (row) => custom: (row) =>
`${row.average1 == 0 ? "--" : Math.round((row.average / row.average1) * 100)}%`, `${
row.baseSchoolScore == 0
? "--"
: Math.round((row.average / row.baseSchoolScore) * 100)
}%`,
}, },
}, },
data: [], data: [],

View File

@ -5,7 +5,12 @@ import { onMounted, ref } from "vue";
import { fa } from "element-plus/es/locales.mjs"; import { fa } from "element-plus/es/locales.mjs";
import { hTableAPI } from "@/api/hTable"; import { hTableAPI } from "@/api/hTable";
import { getenum } from "@/api/enum"; import { getenum } from "@/api/enum";
import { ruleNumber, ruleRequired, ruleRequiredNumber } from "@/utils/rules"; import {
ruleNumber,
ruleRequired,
ruleRequiredI,
ruleRequiredNumber,
} from "@/utils/rules";
import { ImportExamInfo } from "@/api/exam"; import { ImportExamInfo } from "@/api/exam";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { entryExamInfo } from "./examFun"; import { entryExamInfo } from "./examFun";
@ -101,15 +106,13 @@ const tableData: TableConfig = {
edit: true, // edit: true, //
setting: {}, setting: {},
}, },
level: { grade: {
label: "年级", label: "年级",
rules: ruleRequired, rules: ruleRequiredI(6, 2),
width: "100px", width: "100px",
type: "dropdown",
setting: {},
search: true, search: true,
add: true, // add: true, //
edit: true, // edit: false, //
}, },
testPaperType: { testPaperType: {
label: "试卷类型", label: "试卷类型",
@ -184,7 +187,7 @@ const showTable = ref(false);
onMounted(async () => { onMounted(async () => {
// //
tableData.column.level.setting.datasource = (await getenum("GradeEnum")).data; // tableData.column.level.setting.datasource = (await getenum("GradeEnum")).data;
tableData.column.testPaperType.setting.datasource = ( tableData.column.testPaperType.setting.datasource = (
await getenum("TestPaperTypeEnum") await getenum("TestPaperTypeEnum")

View File

@ -35,6 +35,10 @@ const tableData: TableConfig = {
FieldName: "ExamId", FieldName: "ExamId",
FieldValue: props.data[0].examId + "", FieldValue: props.data[0].examId + "",
}, },
{
FieldName: "ClassId",
FieldValue: props.data[0].classId + "",
},
], // ], //
Conditions: [], Conditions: [],
}, },

View File

@ -6,35 +6,6 @@
<el-form-item> <el-form-item>
<el-input v-model="search.searchStr" placeholder="姓名/账号/学号" /> <el-input v-model="search.searchStr" placeholder="姓名/账号/学号" />
</el-form-item> </el-form-item>
<!-- <el-form-item style="width: 100px">
<el-select
v-model="search.userType"
placeholder="用户类型"
clearable
filterable
@change="userTypeChange"
>
<el-option
v-for="item in userTypeList"
:key="item.value"
:label="item.text"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item> -->
<el-form-item v-show="search.userType === 1" style="width: 100px">
<el-select v-model="search.level" placeholder="学生层次" clearable filterable>
<el-option
v-for="item in userLevelList"
:key="item.value"
:label="item.text"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select
@ -54,7 +25,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="width: 100px"> <el-form-item v-show="search.schoolId != 0" style="width: 100px">
<el-select <el-select
v-model="search.grade" v-model="search.grade"
placeholder="年级" placeholder="年级"
@ -72,7 +43,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="width: 100px"> <el-form-item style="width: 100px" v-show="search.schoolId != 0">
<el-select v-model="search.classId" placeholder="班级" clearable filterable> <el-select v-model="search.classId" placeholder="班级" clearable filterable>
<el-option <el-option
v-for="item in classList" v-for="item in classList"
@ -653,7 +624,8 @@ function pageSizeChange(o) {
fetchPagedData(); fetchPagedData();
} }
function pageIndexChange(o) { function pageIndexChange(o) {
pagination.index = o - 1; console.log(o, "当前索引");
pagination.index = o;
fetchPagedData(); fetchPagedData();
} }

View File

@ -54,7 +54,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="width: 100px"> <el-form-item v-show="search.schoolId != 0" style="width: 100px">
<el-select <el-select
v-model="search.grade" v-model="search.grade"
placeholder="年级" placeholder="年级"
@ -72,7 +72,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="width: 100px"> <el-form-item v-show="search.schoolId != 0" style="width: 100px">
<el-select v-model="search.classId" placeholder="班级" clearable filterable> <el-select v-model="search.classId" placeholder="班级" clearable filterable>
<el-option <el-option
v-for="item in classList" v-for="item in classList"
@ -84,7 +84,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="width: 100px"> <el-form-item v-show="search.schoolId != 0" style="width: 100px">
<el-select v-model="search.subjectId" placeholder="科目" clearable filterable> <el-select v-model="search.subjectId" placeholder="科目" clearable filterable>
<el-option <el-option
v-for="item in subjectList" v-for="item in subjectList"
@ -636,7 +636,7 @@ function pageSizeChange(o) {
fetchPagedData(); fetchPagedData();
} }
function pageIndexChange(o) { function pageIndexChange(o) {
pagination.index = o - 1; pagination.index = o;
fetchPagedData(); fetchPagedData();
} }

View File

@ -53,7 +53,9 @@
> >
{{ safeDetail.isDiscussion ? "已开展" : "未开展" }} {{ safeDetail.isDiscussion ? "已开展" : "未开展" }}
</el-tag> </el-tag>
<span>{{ safeDetail.discussion || "-" }}</span> <span class="inline-block max-w-[500px]!">{{
safeDetail.discussion || "-"
}}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="班会"> <el-descriptions-item label="班会">
<el-tag <el-tag
@ -62,7 +64,9 @@
> >
{{ safeDetail.isClassMeeting ? "已开展" : "未开展" }} {{ safeDetail.isClassMeeting ? "已开展" : "未开展" }}
</el-tag> </el-tag>
<span>{{ safeDetail.classMeeting || "-" }}</span> <span class="inline-block max-w-[500px]!">{{
safeDetail.classMeeting || "-"
}}</span>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-divider /> <el-divider />

View File

@ -447,16 +447,22 @@ function handleImport() {
let res = await importExcel(fileE.files[0]); let res = await importExcel(fileE.files[0]);
if (res.code != undefined) { if (res.code != undefined) {
if (res.code !== 200) return ElMessage.error(res.message); if (res.code !== 200) return ElMessage.error(res.message);
else return ElMessage.success("所有数据录入成功"); else {
loadList();
return ElMessage.success("所有数据录入成功");
}
} else if (res.type === "application/json") { } else if (res.type === "application/json") {
let json = await res.text(); let json = await res.text();
if (json !== undefined && json.Code !== 200) { if (json !== undefined && json.Code !== 200) {
return ElMessage.error(json.Message); return ElMessage.error(json.Message);
} else { } else {
return ElMessage.success("操所有数据录入成功作成功"); loadList();
}
} else if (res === undefined || res.size === 0)
return ElMessage.success("所有数据录入成功"); return ElMessage.success("所有数据录入成功");
}
} else if (res === undefined || res.size === 0) {
loadList();
return ElMessage.success("所有数据录入成功");
}
const url = res && window.URL.createObjectURL(res); const url = res && window.URL.createObjectURL(res);
const link = document.createElement("a"); const link = document.createElement("a");
link.href = url; link.href = url;