|
@@ -0,0 +1,171 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <div class="tw-bg-white tw-p-5 tw-rounded-xl tw-mb-5">
|
|
|
+ <span class="tw-mr-4"></span>
|
|
|
+ <ProjectSelect :project-id="projectId" v-model:value="projectId" />
|
|
|
+ <ProjectCourseSelect :project-id="projectId" v-model:value="courseId" />
|
|
|
+ <span class="tw-mr-4"></span>
|
|
|
+ <a-button @click="search">查询</a-button>
|
|
|
+
|
|
|
+ <div class="tw-mt-4">
|
|
|
+ <a-button @click="goBack">返回</a-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="tw-bg-white tw-p-5 tw-rounded-xl">
|
|
|
+ <a-radio-group v-model:value="activeTab" class="tw-mb-4">
|
|
|
+ <a-radio-button value="1">试卷特征量数</a-radio-button>
|
|
|
+ <a-radio-button value="2">科目成绩(总分)频率分布</a-radio-button>
|
|
|
+ <a-radio-button value="3">科目成绩占初试总分权重</a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
+
|
|
|
+ <div v-if="activeTab === '1'">
|
|
|
+ <a-table
|
|
|
+ style="width: 100%; overflow-x: scroll"
|
|
|
+ row-key="id"
|
|
|
+ :columns="columns"
|
|
|
+ :data-source="data"
|
|
|
+ :pagination="{
|
|
|
+ pageSize: pageSize,
|
|
|
+ current: pageNo,
|
|
|
+ total: totalElements,
|
|
|
+ showTotal: (total: number) => `总数:${total}`,
|
|
|
+ onChange: (pageNoChanged: number, pageSizeChanged: number) => {
|
|
|
+ pageNo = pageNoChanged;
|
|
|
+ pageSize = pageSizeChanged;
|
|
|
+ }
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <template #course="{ record }">
|
|
|
+ <a>{{ `${record.courseName}(${record.courseCode})` }}</a>
|
|
|
+ </template>
|
|
|
+ <template #action="{ record }">
|
|
|
+ <span>
|
|
|
+ <a-button @click="openModal">说明</a-button>
|
|
|
+ <a-button @click="goPaperAnalysis(record)">查看分析结果</a-button>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </a-table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-if="activeTab === '2'"><ScoreRate /></div>
|
|
|
+ <div v-if="activeTab === '3'"><ScoreFirstTryRate /></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup lang="ts">
|
|
|
+import { useMainStore } from "@/store";
|
|
|
+import { goBack } from "@/utils/utils";
|
|
|
+import { watch, onMounted, ref, toRaw } from "vue-demi";
|
|
|
+import { useRoute } from "vue-router";
|
|
|
+import router from "@/router";
|
|
|
+import { getSasPaperList } from "@/api/allAnalysisPage";
|
|
|
+import EventBus from "@/plugins/eventBus";
|
|
|
+import ScoreRate from "./ScoreRate.vue";
|
|
|
+import ScoreFirstTryRate from "./ScoreFirstTryRate.vue";
|
|
|
+
|
|
|
+const store = useMainStore();
|
|
|
+store.currentLocation = "基础管理 / 整体分析";
|
|
|
+
|
|
|
+let rootOrgId = $ref(undefined as unknown as number);
|
|
|
+let courseId = $ref(undefined as undefined | number);
|
|
|
+const route = useRoute();
|
|
|
+const projectId = +route.params.projectId;
|
|
|
+
|
|
|
+let activeTab = $ref("1");
|
|
|
+
|
|
|
+let data = $ref([]);
|
|
|
+let pageSize = $ref(10);
|
|
|
+let pageNo = $ref(1);
|
|
|
+let totalElements = $ref(0);
|
|
|
+
|
|
|
+async function search() {
|
|
|
+ await fetchData();
|
|
|
+}
|
|
|
+
|
|
|
+watch(() => [pageNo, pageSize], fetchData);
|
|
|
+
|
|
|
+async function fetchData() {
|
|
|
+ const res = await getSasPaperList({ projectId, courseId, pageNo, pageSize });
|
|
|
+ // console.log(res);
|
|
|
+ data = res.data.content;
|
|
|
+ pageNo = res.data.pageNo;
|
|
|
+ pageSize = res.data.pageSize;
|
|
|
+ totalElements = res.data.totalElements;
|
|
|
+}
|
|
|
+
|
|
|
+const columns = [
|
|
|
+ {
|
|
|
+ title: "科目",
|
|
|
+ dataIndex: "course",
|
|
|
+ slots: { customRender: "course" },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "试卷类型",
|
|
|
+ dataIndex: "paperType",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "试卷名称",
|
|
|
+ dataIndex: "paperName",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "满分",
|
|
|
+ dataIndex: "totalScore",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "最高分",
|
|
|
+ dataIndex: "maxScore",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "最低分",
|
|
|
+ dataIndex: "minScore",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "全距",
|
|
|
+ dataIndex: "allRange",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "平均分",
|
|
|
+ dataIndex: "avgScore",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "标准差",
|
|
|
+ dataIndex: "stdev",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "差异系数",
|
|
|
+ dataIndex: "coefficient",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "信度1",
|
|
|
+ dataIndex: "reliability1",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "信度2",
|
|
|
+ dataIndex: "reliability2",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "难度",
|
|
|
+ dataIndex: "difficulty",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "操作",
|
|
|
+ key: "action",
|
|
|
+ slots: { customRender: "action" },
|
|
|
+ },
|
|
|
+];
|
|
|
+
|
|
|
+onMounted(async () => {
|
|
|
+ rootOrgId = store.userInfo.rootOrgId;
|
|
|
+ await search();
|
|
|
+});
|
|
|
+
|
|
|
+async function goPaperAnalysis(record: any) {
|
|
|
+ router.push(`/project/${projectId}/paperAnalysis/${record.paperId}`);
|
|
|
+}
|
|
|
+
|
|
|
+function openModal() {
|
|
|
+ EventBus.emit("SHOW_SETTING", "DESCRIBE01");
|
|
|
+}
|
|
|
+</script>
|