|
@@ -9,9 +9,14 @@
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="content" v-if="gradeHistoryData.length > 0">
|
|
<div class="content" v-if="gradeHistoryData.length > 0">
|
|
|
- <el-table :data="tableData" style="width: 100%" border :header-cell-style="headerCellStyle"
|
|
|
|
|
- :cell-style="cellStyle" stripe>
|
|
|
|
|
- <el-table-column type="index" label="序号" width="70" align="center"></el-table-column>
|
|
|
|
|
|
|
+ <el-table ref="gradeTable" :data="tableData" style="width: 100%" border :header-cell-style="headerCellStyle"
|
|
|
|
|
+ :cell-style="cellStyle" stripe @selection-change="handleSelectionChange" width="55" align="center">
|
|
|
|
|
+ <el-table-column type="selection" width="55" align="center"></el-table-column>
|
|
|
|
|
+ <el-table-column type="index" label="序号" width="70" align="center">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ {{scope.$index <10 ? '0' + (scope.$index + 1) : scope.$index + 1 }}
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="examName" label="考试名称" align="center"></el-table-column>
|
|
<el-table-column prop="examName" label="考试名称" align="center"></el-table-column>
|
|
|
<el-table-column prop="fullScore" label="满分" width="90" align="center"></el-table-column>
|
|
<el-table-column prop="fullScore" label="满分" width="90" align="center"></el-table-column>
|
|
|
<el-table-column prop="rawScore" label="原始分" width="90" align="center"></el-table-column>
|
|
<el-table-column prop="rawScore" label="原始分" width="90" align="center"></el-table-column>
|
|
@@ -43,9 +48,9 @@
|
|
|
<StudentPaper v-model="showStudentPaperDialog" :paperInfo="paperInfo" :currentPageIndex="currentPageIndex"
|
|
<StudentPaper v-model="showStudentPaperDialog" :paperInfo="paperInfo" :currentPageIndex="currentPageIndex"
|
|
|
:pageTitle="paperTitle"></StudentPaper>
|
|
:pageTitle="paperTitle"></StudentPaper>
|
|
|
|
|
|
|
|
- <!-- 历次考试对比弹窗 - 使用公共组件 -->
|
|
|
|
|
- <BenchTaskSelect v-if="showBenchTaskSelect" :showDialog.sync="showBenchTaskSelect" :isMultiple="isMultiple"
|
|
|
|
|
- :title="benchTaskTitle" :before="1" @GetSelectId="GetSelectId"></BenchTaskSelect>
|
|
|
|
|
|
|
+ <!-- 历次考试对比弹窗 - 使用公共组件 -->
|
|
|
|
|
+ <!-- <BenchTaskSelect v-if="showBenchTaskSelect" :showDialog.sync="showBenchTaskSelect" :isMultiple="isMultiple"
|
|
|
|
|
+ :title="benchTaskTitle" :before="1" @GetSelectId="GetSelectId"></BenchTaskSelect> -->
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -53,12 +58,12 @@
|
|
|
import StudentPaper from '@/components/StudentPaper.vue' //学生答题卡预览组件
|
|
import StudentPaper from '@/components/StudentPaper.vue' //学生答题卡预览组件
|
|
|
import { mapGetters } from 'vuex'
|
|
import { mapGetters } from 'vuex'
|
|
|
// 导入公共组件
|
|
// 导入公共组件
|
|
|
-import BenchTaskSelect from '@/views/analysisReport/components/benchTaskSelectSchool';
|
|
|
|
|
|
|
+//import BenchTaskSelect from '@/views/analysisReport/components/benchTaskSelectSchool';
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
components: {
|
|
components: {
|
|
|
StudentPaper,
|
|
StudentPaper,
|
|
|
- BenchTaskSelect
|
|
|
|
|
|
|
+ // BenchTaskSelect
|
|
|
},
|
|
},
|
|
|
name: "MyGradeHistory",
|
|
name: "MyGradeHistory",
|
|
|
props: {
|
|
props: {
|
|
@@ -70,6 +75,11 @@ export default {
|
|
|
gradeHistoryData: {
|
|
gradeHistoryData: {
|
|
|
type: Array,
|
|
type: Array,
|
|
|
default: () => []
|
|
default: () => []
|
|
|
|
|
+ },
|
|
|
|
|
+ // 接收个人画像数据
|
|
|
|
|
+ portraitData: {
|
|
|
|
|
+ type: Object,
|
|
|
|
|
+ default: () => {}
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
data() {
|
|
data() {
|
|
@@ -84,8 +94,34 @@ export default {
|
|
|
isMultiple: true,
|
|
isMultiple: true,
|
|
|
// 弹窗标题
|
|
// 弹窗标题
|
|
|
benchTaskTitle: '历次考试对比',
|
|
benchTaskTitle: '历次考试对比',
|
|
|
|
|
+ // 是否正在初始化全选
|
|
|
|
|
+ isInitializing: false,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
|
|
+ watch: {
|
|
|
|
|
+ // 监听gradeHistoryData变化,数据加载完成后默认全选
|
|
|
|
|
+ gradeHistoryData: {
|
|
|
|
|
+ handler(newVal) {
|
|
|
|
|
+ if (newVal && newVal.length > 0) {
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ if (this.$refs.gradeTable) {
|
|
|
|
|
+ // 设置初始化标志,避免触发selection-change事件
|
|
|
|
|
+ this.isInitializing = true;
|
|
|
|
|
+ // 先清空所有选择,再重新全选
|
|
|
|
|
+ this.$refs.gradeTable.clearSelection();
|
|
|
|
|
+ // 遍历表格数据,手动选中每一行
|
|
|
|
|
+ this.tableData.forEach(row => {
|
|
|
|
|
+ this.$refs.gradeTable.toggleRowSelection(row, true);
|
|
|
|
|
+ });
|
|
|
|
|
+ // 完成后重置标志
|
|
|
|
|
+ this.isInitializing = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ immediate: true
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
computed: {
|
|
computed: {
|
|
|
...mapGetters(['userInfo']),
|
|
...mapGetters(['userInfo']),
|
|
|
pageName() {
|
|
pageName() {
|
|
@@ -136,9 +172,19 @@ export default {
|
|
|
margin: '0',
|
|
margin: '0',
|
|
|
lineHeight: '50px'
|
|
lineHeight: '50px'
|
|
|
};
|
|
};
|
|
|
- }
|
|
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ // 处理选择变化
|
|
|
|
|
+ handleSelectionChange(selection) {
|
|
|
|
|
+ // 初始化过程中不触发事件,避免重复调用接口
|
|
|
|
|
+ if (this.isInitializing) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ let selectedExamIds = selection.map(item => item.examId);
|
|
|
|
|
+ // 传递选中的考试ID给父组件
|
|
|
|
|
+ this.$emit('selection-change', selectedExamIds);
|
|
|
|
|
+ },
|
|
|
// 历史考试对比弹窗
|
|
// 历史考试对比弹窗
|
|
|
showExamCompareDialog() {
|
|
showExamCompareDialog() {
|
|
|
this.showBenchTaskSelect = true;
|
|
this.showBenchTaskSelect = true;
|