|
@@ -5,6 +5,7 @@
|
|
v-model:value="projectId"
|
|
v-model:value="projectId"
|
|
disabled
|
|
disabled
|
|
:projectId="projectId"
|
|
:projectId="projectId"
|
|
|
|
+ @change="projectChange"
|
|
/>
|
|
/>
|
|
<span class="tw-mr-4"></span>
|
|
<span class="tw-mr-4"></span>
|
|
<ProjectCourseSelect
|
|
<ProjectCourseSelect
|
|
@@ -25,14 +26,24 @@
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="tw-bg-white tw-p-5 tw-rounded-xl">
|
|
<div class="tw-bg-white tw-p-5 tw-rounded-xl">
|
|
- <a-radio-group v-model:value="activeTab">
|
|
|
|
- <a-radio-button value="6">科目频数分布</a-radio-button>
|
|
|
|
- <a-radio-button value="1">试卷题目编排</a-radio-button>
|
|
|
|
- <a-radio-button value="2">试题特征量数</a-radio-button>
|
|
|
|
- <a-radio-button value="5">试题难度分组分布</a-radio-button>
|
|
|
|
- <a-radio-button value="3">题型难度分布</a-radio-button>
|
|
|
|
- <a-radio-button value="4">题型区分度分布</a-radio-button>
|
|
|
|
- </a-radio-group>
|
|
|
|
|
|
+ <div class="tw-flex tw-items-center tw-justify-between">
|
|
|
|
+ <a-radio-group v-model:value="activeTab">
|
|
|
|
+ <a-radio-button value="6">科目频数分布</a-radio-button>
|
|
|
|
+ <a-radio-button value="1">试卷题目编排</a-radio-button>
|
|
|
|
+ <a-radio-button value="2">试题特征量数</a-radio-button>
|
|
|
|
+ <a-radio-button value="5">试题难度分组分布</a-radio-button>
|
|
|
|
+ <a-radio-button value="3">题型难度分布</a-radio-button>
|
|
|
|
+ <a-radio-button value="4">题型区分度分布</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
|
|
+
|
|
|
|
+ <a-button
|
|
|
|
+ :type="activeTab === '7' ? 'primary' : 'default'"
|
|
|
|
+ class="tw-mr"
|
|
|
|
+ @click="toViewReport"
|
|
|
|
+ >报告预览</a-button
|
|
|
|
+ >
|
|
|
|
+ </div>
|
|
|
|
+
|
|
<div class="tw-my-4"></div>
|
|
<div class="tw-my-4"></div>
|
|
|
|
|
|
<div v-if="activeTab === '1'">
|
|
<div v-if="activeTab === '1'">
|
|
@@ -67,7 +78,17 @@
|
|
<div v-if="activeTab === '6'">
|
|
<div v-if="activeTab === '6'">
|
|
<ScoreRate v-if="courseId" :courseId="courseId" />
|
|
<ScoreRate v-if="courseId" :courseId="courseId" />
|
|
</div>
|
|
</div>
|
|
|
|
+ <div v-if="activeTab === '7'">
|
|
|
|
+ <PaperReport
|
|
|
|
+ :projectId="projectId"
|
|
|
|
+ viewType="view"
|
|
|
|
+ :paperId="paperId"
|
|
|
|
+ :compareProjectId="compareProjectId"
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+ <SelectProject ref="selectProjectRef" @confirm="projectSelected" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -89,7 +110,10 @@ import QuestionDifficultyGroup from "./QuestionDifficultyGroup.vue";
|
|
import QuestionTypeDifficulty from "./QuestionTypeDifficulty.vue";
|
|
import QuestionTypeDifficulty from "./QuestionTypeDifficulty.vue";
|
|
import QuestionTypeDiscrimination from "./QuestionTypeDiscrimination.vue";
|
|
import QuestionTypeDiscrimination from "./QuestionTypeDiscrimination.vue";
|
|
import ScoreRate from "../allAnalysis/ScoreRate.vue";
|
|
import ScoreRate from "../allAnalysis/ScoreRate.vue";
|
|
-import { Paper, SASQuestion, SASQuestionGroup } from "@/types";
|
|
|
|
|
|
+import SelectProject from "./SelectProject.vue";
|
|
|
|
+import PaperReport from "../report/ReportMain.vue";
|
|
|
|
+import { Paper, SASQuestion, SASQuestionGroup, Project } from "@/types";
|
|
|
|
+import { message } from "ant-design-vue";
|
|
|
|
|
|
const store = useMainStore();
|
|
const store = useMainStore();
|
|
store.currentLocation = "项目管理 / 项目列表 / 详情";
|
|
store.currentLocation = "项目管理 / 项目列表 / 详情";
|
|
@@ -113,6 +137,8 @@ let pageNo = $ref(1);
|
|
|
|
|
|
let paperQuestions = $ref<SASQuestion[]>([]);
|
|
let paperQuestions = $ref<SASQuestion[]>([]);
|
|
let paperQuestionGroups = $ref<SASQuestionGroup[]>([]);
|
|
let paperQuestionGroups = $ref<SASQuestionGroup[]>([]);
|
|
|
|
+let curProject = $ref<Project>({} as Project);
|
|
|
|
+let compareProjectId = $ref<number>();
|
|
// let sasPaper = $ref<SASPaper>({} as SASPaper);
|
|
// let sasPaper = $ref<SASPaper>({} as SASPaper);
|
|
|
|
|
|
async function search() {
|
|
async function search() {
|
|
@@ -175,4 +201,23 @@ async function fetchData() {
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
await search();
|
|
await search();
|
|
});
|
|
});
|
|
|
|
+
|
|
|
|
+let selectProjectRef = $ref(null);
|
|
|
|
+
|
|
|
|
+function projectChange(val: Project) {
|
|
|
|
+ curProject = val;
|
|
|
|
+}
|
|
|
|
+function toViewReport() {
|
|
|
|
+ if (curProject && curProject.needCompute) {
|
|
|
|
+ void message.info("有数据更新请重新计算");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ // @ts-ignore
|
|
|
|
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
|
|
+ selectProjectRef.showModal();
|
|
|
|
+}
|
|
|
|
+function projectSelected(projectId: number) {
|
|
|
|
+ compareProjectId = projectId;
|
|
|
|
+ activeTab = "7";
|
|
|
|
+}
|
|
</script>
|
|
</script>
|