|
@@ -12,22 +12,11 @@
|
|
|
<div class="select_list" v-if="isShowFilter">
|
|
<div class="select_list" v-if="isShowFilter">
|
|
|
<el-select style="width: 120px" v-model="filterData[index].value" :placeholder="'请选择' + item.name"
|
|
<el-select style="width: 120px" v-model="filterData[index].value" :placeholder="'请选择' + item.name"
|
|
|
class="select_item" @change="ChangeFilters({ index: index, value: $event })"
|
|
class="select_item" @change="ChangeFilters({ index: index, value: $event })"
|
|
|
- v-for="(item, index) in filteredFilterData" :key="index" v-show="item.list.length > 1">
|
|
|
|
|
|
|
+ v-for="(item, index) in filterData" :key="index" v-show="item.list.length > 1">
|
|
|
<el-option v-for="option in item.list" :key="option.value" :label="option.label"
|
|
<el-option v-for="option in item.list" :key="option.value" :label="option.label"
|
|
|
:value="option.value"></el-option>
|
|
:value="option.value"></el-option>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</div>
|
|
</div>
|
|
|
- <template v-if="isShowBtn">
|
|
|
|
|
- <el-button size="medium" :disabled="!canBtnClick"
|
|
|
|
|
- @click="downloadWrongQuestions(0)">下载错题本</el-button>
|
|
|
|
|
- <el-button :disabled="!canBtnClick" type="primary" size="medium"
|
|
|
|
|
- @click="downloadWrongQuestions(1)">下载个性化提升手册</el-button>
|
|
|
|
|
- </template>
|
|
|
|
|
- <template v-if="isShowExportBtns">
|
|
|
|
|
- <el-button size="medium" @click="ExportQuestions" type="primary" class="export_btn">
|
|
|
|
|
- <i class="iconfont icon_export"></i> 导出精准提升试题
|
|
|
|
|
- </el-button>
|
|
|
|
|
- </template>
|
|
|
|
|
<el-button v-if="showOneStudOneCase && activeBtn === pathFourth" size="medium" type="primary"
|
|
<el-button v-if="showOneStudOneCase && activeBtn === pathFourth" size="medium" type="primary"
|
|
|
@click="EditOneStudOneCase" style="width: 96px;">{{
|
|
@click="EditOneStudOneCase" style="width: 96px;">{{
|
|
|
!isEditOneStudOneCase ? `${stuCaseIsEdited ? '编辑' : '开始编辑'}` : `${stuCaseIsEdited ? '重新提交' : '提交'}`
|
|
!isEditOneStudOneCase ? `${stuCaseIsEdited ? '编辑' : '开始编辑'}` : `${stuCaseIsEdited ? '重新提交' : '提交'}`
|
|
@@ -44,14 +33,6 @@
|
|
|
<div class="left">
|
|
<div class="left">
|
|
|
<button class="mm_btn mb_10" :class="{ active: activeBtn === pathOne }"
|
|
<button class="mm_btn mb_10" :class="{ active: activeBtn === pathOne }"
|
|
|
@click="toPage(pathOne)">成绩分析</button>
|
|
@click="toPage(pathOne)">成绩分析</button>
|
|
|
- <!-- v-if="isShowKnowledgeButtons" -->
|
|
|
|
|
- <template v-if="!isTotalScore">
|
|
|
|
|
- <!-- <button class="mm_btn mb_10" :class="{ active: activeBtn === pathTwo }"
|
|
|
|
|
- @click="toPage(pathTwo)">举一反三</button>
|
|
|
|
|
-
|
|
|
|
|
- <button class="mm_btn mb_10" :class="{ active: activeBtn === pathThree }"
|
|
|
|
|
- @click="toPage(pathThree)">个人画像</button> -->
|
|
|
|
|
- </template>
|
|
|
|
|
<button class="mm_btn mb_10" v-if="showOneStudOneCase"
|
|
<button class="mm_btn mb_10" v-if="showOneStudOneCase"
|
|
|
:class="{ active: activeBtn === pathFourth }"
|
|
:class="{ active: activeBtn === pathFourth }"
|
|
|
@click="toPage(pathFourth)">一生一案</button>
|
|
@click="toPage(pathFourth)">一生一案</button>
|
|
@@ -62,7 +43,7 @@
|
|
|
<div class="right">
|
|
<div class="right">
|
|
|
<div class="page_filter" ref="filterContent"
|
|
<div class="page_filter" ref="filterContent"
|
|
|
v-if="activeBtn != pathFourth && activeBtn != pathFive">
|
|
v-if="activeBtn != pathFourth && activeBtn != pathFive">
|
|
|
- <FiltersItem :filtersData="filteredFilterData" @selectItem="ChangeFilters">
|
|
|
|
|
|
|
+ <FiltersItem :filtersData="filterData" @selectItem="ChangeFilters">
|
|
|
</FiltersItem>
|
|
</FiltersItem>
|
|
|
</div>
|
|
</div>
|
|
|
<router-view ref="child" @isPdfDataLoadEnd="isPdfDataLoadEnd"
|
|
<router-view ref="child" @isPdfDataLoadEnd="isPdfDataLoadEnd"
|
|
@@ -74,7 +55,7 @@
|
|
|
|
|
|
|
|
<template v-else>
|
|
<template v-else>
|
|
|
<div class="page_filter" ref="filterContent">
|
|
<div class="page_filter" ref="filterContent">
|
|
|
- <FiltersItem :filtersData="filteredFilterData" @selectItem="ChangeFilters"></FiltersItem>
|
|
|
|
|
|
|
+ <FiltersItem :filtersData="filterData" @selectItem="ChangeFilters"></FiltersItem>
|
|
|
</div>
|
|
</div>
|
|
|
<router-view ref="child" @isPdfDataLoadEnd="isPdfDataLoadEnd"
|
|
<router-view ref="child" @isPdfDataLoadEnd="isPdfDataLoadEnd"
|
|
|
@closePdfLoading="closePdfLoading"></router-view>
|
|
@closePdfLoading="closePdfLoading"></router-view>
|
|
@@ -100,39 +81,6 @@ export default {
|
|
|
updateScrollTop() {
|
|
updateScrollTop() {
|
|
|
return this.$store.state.report.updateScrollTop;//监听改变滚动条参数
|
|
return this.$store.state.report.updateScrollTop;//监听改变滚动条参数
|
|
|
},
|
|
},
|
|
|
- isShowKnowledgeButtons() {
|
|
|
|
|
- // 从环境变量中获取基础URL,判断是否显示按钮
|
|
|
|
|
- return process.env.VUE_APP_BASE !== 'https://www.k12100.com';
|
|
|
|
|
- },
|
|
|
|
|
- // 判断是否为总分科目,用于控制个人画像按钮显示
|
|
|
|
|
- isTotalScore() {
|
|
|
|
|
- return this.$store.state.report.isTotalScore;
|
|
|
|
|
- },
|
|
|
|
|
- // 动态过滤筛选数据,在个人画像页面隐藏总分选项
|
|
|
|
|
- filteredFilterData() {
|
|
|
|
|
- // 检查当前是否在个人画像页面
|
|
|
|
|
- const isPersonalProfilePage = this.$route.path === '/studentAnalysisReport/reportDetails/personalProfile';
|
|
|
|
|
- const isPersonalWrongQuestions = this.$route.path === this.pathTwo;
|
|
|
|
|
- if (!isPersonalProfilePage && !isPersonalWrongQuestions) {
|
|
|
|
|
- // 非个人画像页面,返回原始数据
|
|
|
|
|
- return this.filterData;
|
|
|
|
|
- }
|
|
|
|
|
- // 深拷贝原始数据,避免直接修改
|
|
|
|
|
- const updatedFilterData = JSON.parse(JSON.stringify(this.filterData));
|
|
|
|
|
-
|
|
|
|
|
- // 遍历筛选数据,找到科目名称筛选项
|
|
|
|
|
- updatedFilterData.forEach(filterItem => {
|
|
|
|
|
- if (filterItem.type === 'subjectName') {
|
|
|
|
|
- // 过滤掉总分选项(isTotal为1或subjectGroupType为1的选项)
|
|
|
|
|
- filterItem.list = filterItem.list.filter(item => item.isTotal !== 1 && item.subjectGroupType !== 1);
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- return updatedFilterData;
|
|
|
|
|
- },
|
|
|
|
|
- canBtnClick() {
|
|
|
|
|
- return this.$store.state.question.canDownloanBtnClick;
|
|
|
|
|
- },
|
|
|
|
|
showOneStudOneCase() {//是否开启了一生一案显示
|
|
showOneStudOneCase() {//是否开启了一生一案显示
|
|
|
return this.$store.state.report.examSelectItem.oneStudOneCase
|
|
return this.$store.state.report.examSelectItem.oneStudOneCase
|
|
|
}
|
|
}
|
|
@@ -140,8 +88,6 @@ export default {
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
isShowFilter: false, //是否显示筛选条件
|
|
isShowFilter: false, //是否显示筛选条件
|
|
|
- isShowBtn: false, //是否显示下载按钮
|
|
|
|
|
- isShowExportBtns: false,//是否显示导出精准提升试题按钮
|
|
|
|
|
isShowPadfBtn: false,//是否显示下载pdf按钮
|
|
isShowPadfBtn: false,//是否显示下载pdf按钮
|
|
|
isPdfLoadEnd: false,//报告册数据是否加载完成
|
|
isPdfLoadEnd: false,//报告册数据是否加载完成
|
|
|
filterData: [
|
|
filterData: [
|
|
@@ -155,8 +101,6 @@ export default {
|
|
|
resizeTimer: null,
|
|
resizeTimer: null,
|
|
|
activeBtn: this.$route.path,
|
|
activeBtn: this.$route.path,
|
|
|
pathOne: '/studentAnalysisReport/reportDetails/scrolReport',
|
|
pathOne: '/studentAnalysisReport/reportDetails/scrolReport',
|
|
|
- pathTwo: '/studentAnalysisReport/reportDetails/personalWrongQuestions',
|
|
|
|
|
- pathThree: '/studentAnalysisReport/reportDetails/personalProfile',//个人画像
|
|
|
|
|
pathFourth: '/studentAnalysisReport/reportDetails/studentCase',//一生一案
|
|
pathFourth: '/studentAnalysisReport/reportDetails/studentCase',//一生一案
|
|
|
pathFive: '/studentAnalysisReport/reportDetails/studentReport',//一生一案
|
|
pathFive: '/studentAnalysisReport/reportDetails/studentReport',//一生一案
|
|
|
isLianXiao: false,//是否联校
|
|
isLianXiao: false,//是否联校
|
|
@@ -236,11 +180,6 @@ export default {
|
|
|
localStorage.setItem('reportExamCourseId', courseObj.subjectId);//单科的考试科目id
|
|
localStorage.setItem('reportExamCourseId', courseObj.subjectId);//单科的考试科目id
|
|
|
localStorage.setItem('reportIsTotalScore', isTotal)
|
|
localStorage.setItem('reportIsTotalScore', isTotal)
|
|
|
this.$store.dispatch("report/UpdateFilterObject", filterObject);
|
|
this.$store.dispatch("report/UpdateFilterObject", filterObject);
|
|
|
-
|
|
|
|
|
- // 如果选择了总分且当前在个人画像页面,跳转到成绩分析页面
|
|
|
|
|
- if (isTotal && this.$route.path === '/studentAnalysisReport/reportDetails/personalProfile') {
|
|
|
|
|
- this.toPage(this.pathOne);
|
|
|
|
|
- }
|
|
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
// 滚动条事件
|
|
// 滚动条事件
|
|
@@ -264,19 +203,6 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (path === '/studentAnalysisReport/reportDetails/personalWrongQuestions') {
|
|
|
|
|
- this.isShowBtn = (scrollTop >= 250);
|
|
|
|
|
- if (this.$refs.child && typeof this.$refs.child.GetScrollTop === 'function') {
|
|
|
|
|
- this.$refs.child.GetScrollTop(scrollTop);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if (path === '/studentAnalysisReport/reportDetails/personalProfile') {
|
|
|
|
|
- this.isShowExportBtns = (scrollTop >= 150);
|
|
|
|
|
- if (this.$refs.child && typeof this.$refs.child.GetScrollTop === 'function') {
|
|
|
|
|
- this.$refs.child.GetScrollTop(scrollTop);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
},
|
|
},
|
|
|
//重置滚动条
|
|
//重置滚动条
|
|
|
ResetScroll() {
|
|
ResetScroll() {
|
|
@@ -287,13 +213,6 @@ export default {
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
- downloadWrongQuestions(type) {
|
|
|
|
|
- this.$store.commit("question/SET_VARIANTION", type);
|
|
|
|
|
- },
|
|
|
|
|
- //导出精准提升试题
|
|
|
|
|
- ExportQuestions() {
|
|
|
|
|
- this.$refs.child.ExportQuestions();
|
|
|
|
|
- },
|
|
|
|
|
//返回按钮点击
|
|
//返回按钮点击
|
|
|
GoBack() {
|
|
GoBack() {
|
|
|
const schoolType = sessionStorage.getItem('schoolType');
|
|
const schoolType = sessionStorage.getItem('schoolType');
|
|
@@ -318,33 +237,6 @@ export default {
|
|
|
this.stuPdfLoading = false;
|
|
this.stuPdfLoading = false;
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
- // 处理筛选数据更新,在个人画像页面隐藏总分选项
|
|
|
|
|
- handleFilterDataUpdate() {
|
|
|
|
|
- // 检查当前是否在个人画像页面
|
|
|
|
|
- const isPersonalProfilePage = this.$route.path === '/studentAnalysisReport/reportDetails/personalProfile';
|
|
|
|
|
-
|
|
|
|
|
- if (isPersonalProfilePage) {
|
|
|
|
|
- // 深拷贝原始数据,避免直接修改props
|
|
|
|
|
- const updatedFilterData = JSON.parse(JSON.stringify(this.filterData));
|
|
|
|
|
-
|
|
|
|
|
- // 遍历筛选数据,找到科目名称筛选项
|
|
|
|
|
- updatedFilterData.forEach((filterItem, index) => {
|
|
|
|
|
- if (filterItem.type === 'subjectName') {
|
|
|
|
|
- // 过滤掉总分选项(isTotal为1的选项)
|
|
|
|
|
- const nonTotalItems = filterItem.list.filter(item => item.isTotal !== 1 && item.subjectGroupType !== 1);
|
|
|
|
|
-
|
|
|
|
|
- // 检查当前选中的是否是总分选项
|
|
|
|
|
- const currentSelected = filterItem.list.find(item => item.value === filterItem.value);
|
|
|
|
|
- const isCurrentTotal = currentSelected && (currentSelected.isTotal === 1 || currentSelected.subjectGroupType === 1);
|
|
|
|
|
-
|
|
|
|
|
- // 如果当前选中的是总分选项且有其他选项,切换到第一个非总分选项
|
|
|
|
|
- if (isCurrentTotal && nonTotalItems.length > 0) {
|
|
|
|
|
- this.ChangeFilters({ index, value: nonTotalItems[0].value });
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
//编辑一生一案
|
|
//编辑一生一案
|
|
|
EditOneStudOneCase() {
|
|
EditOneStudOneCase() {
|
|
|
this.isEditOneStudOneCase = !this.isEditOneStudOneCase;
|
|
this.isEditOneStudOneCase = !this.isEditOneStudOneCase;
|
|
@@ -355,25 +247,16 @@ export default {
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
watch: {
|
|
watch: {
|
|
|
- '$route'(to, from) {
|
|
|
|
|
|
|
+ '$route'() {
|
|
|
this.ResetScroll();//重置滚动条
|
|
this.ResetScroll();//重置滚动条
|
|
|
- this.handleFilterDataUpdate();
|
|
|
|
|
},//路由变化 重置页面滚动条位置
|
|
},//路由变化 重置页面滚动条位置
|
|
|
|
|
|
|
|
updateScrollTop: {
|
|
updateScrollTop: {
|
|
|
- handler(newVal) {
|
|
|
|
|
|
|
+ handler() {
|
|
|
this.ResetScroll();//重置滚动条
|
|
this.ResetScroll();//重置滚动条
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
- // 监听筛选数据变化,动态过滤总分选项
|
|
|
|
|
- filterData: {
|
|
|
|
|
- deep: true,
|
|
|
|
|
- handler() {
|
|
|
|
|
- this.handleFilterDataUpdate();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
},
|
|
},
|
|
|
beforeUnmount() {
|
|
beforeUnmount() {
|
|
|
// 解绑事件,避免内存泄漏
|
|
// 解绑事件,避免内存泄漏
|
|
@@ -410,33 +293,4 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-.export_btn {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- gap: 5px;
|
|
|
|
|
- width: 152px;
|
|
|
|
|
- height: 36px;
|
|
|
|
|
- line-height: 36px;
|
|
|
|
|
- background: #2E64FA;
|
|
|
|
|
- color: white;
|
|
|
|
|
- border: none;
|
|
|
|
|
- border-radius: 4px;
|
|
|
|
|
- font-size: 14px;
|
|
|
|
|
- cursor: pointer;
|
|
|
|
|
- padding: 0;
|
|
|
|
|
- transition: all 0.3s ease;
|
|
|
|
|
-
|
|
|
|
|
- &:hover {
|
|
|
|
|
- background: #5883fb;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- &:active {
|
|
|
|
|
- background: #2E64FA;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .iconfont {
|
|
|
|
|
- width: 14px;
|
|
|
|
|
- margin-left: 10px;
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
</style>
|
|
</style>
|