|
|
@@ -1,28 +1,45 @@
|
|
|
<template>
|
|
|
<div class="personalProfile">
|
|
|
- <div class="report_header">
|
|
|
- <el-radio-group v-model="radio1" @change="portraitTab">
|
|
|
- <el-radio-button label="grade">年级画像</el-radio-button>
|
|
|
- <el-radio-button label="class">班级画像</el-radio-button>
|
|
|
- </el-radio-group>
|
|
|
- </div>
|
|
|
-
|
|
|
<!-- 我的历次成绩子组件 -->
|
|
|
- <MyGradeHistory :mode="radio1" />
|
|
|
+ <MyGradeHistory :grade-history-data="gradeHistoryData" v-loading="historyloading" />
|
|
|
|
|
|
<!-- 历次考试知识点追踪 -->
|
|
|
- <KnowledgeTrack :knowledge-stats="knowledgeStats" :mode="radio1" />
|
|
|
+ <KnowledgeTrack
|
|
|
+ :exam-range="knowledgeMapData.examRange"
|
|
|
+ :knowledge-stats="knowledgeStats"
|
|
|
+ v-loading="knowledgeloading"
|
|
|
+ />
|
|
|
|
|
|
<!-- 零分知识点、高频错题知识点 -->
|
|
|
<zeroScoreKnowledge
|
|
|
- :table-data="treeData"
|
|
|
- :fatal-vulnerability="fatalVulnerability"
|
|
|
- :high-vulnerability="highVulnerability"
|
|
|
- :mode="radio1"
|
|
|
+ ref="knowledgeGraphRef"
|
|
|
+ @knowledge-item-click="handleKnowledgeItemClick"
|
|
|
+ :active-view="activeView"
|
|
|
+ @view-change="activeView = $event"
|
|
|
+ :subject-name="portraitData.subjectName"
|
|
|
+ :subject-score-rate="subjectScoreRate"
|
|
|
+ :table-data="treeData"
|
|
|
+ :fatal-vulnerability="fatalVulnerability"
|
|
|
+ :high-vulnerability="highVulnerability"
|
|
|
+ @activeTabChange="handleActiveTabChange"
|
|
|
+ v-loading="zeroloading"
|
|
|
/>
|
|
|
|
|
|
<!-- 历次变化 -->
|
|
|
- <HistoricalChangeChart :mode="radio1" />
|
|
|
+ <HistoricalChangeChart
|
|
|
+ ref="historicalChangeChartRef"
|
|
|
+ :personalList="historicalChangeData.personalList"
|
|
|
+ :classList="historicalChangeData.classList"
|
|
|
+ :gradeList="historicalChangeData.gradeList"
|
|
|
+ :examName="historicalChangeData.examName"
|
|
|
+ :knowledgeName="knowledgeName"
|
|
|
+ v-loading="historicalChangeLoading"
|
|
|
+ />
|
|
|
+ <!-- 薄弱知识点精准提升 -->
|
|
|
+ <knowledgePaps
|
|
|
+ :knowledgeName="knowledgeName"
|
|
|
+ v-loading="knowledgePapsLoading"
|
|
|
+ />
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
@@ -30,6 +47,7 @@ import MyGradeHistory from './MyGradeHistory.vue'; //我的历次成绩子组件
|
|
|
import KnowledgeTrack from './KnowledgeTrack.vue'; //历次考试知识点追踪子组件
|
|
|
import zeroScoreKnowledge from './zeroScoreKnowledge.vue'; //零分知识点、高频错题知识点子组件
|
|
|
import HistoricalChangeChart from './HistoricalChangeChart.vue'; //历次变化子组件
|
|
|
+import knowledgePaps from './knowledgePaps.vue'; //薄弱知识点精准提升子组件
|
|
|
|
|
|
export default {
|
|
|
name: "PersonalProfile",
|
|
|
@@ -37,140 +55,476 @@ export default {
|
|
|
MyGradeHistory,
|
|
|
KnowledgeTrack,
|
|
|
zeroScoreKnowledge,
|
|
|
- HistoricalChangeChart
|
|
|
+ HistoricalChangeChart,
|
|
|
+ knowledgePaps
|
|
|
},
|
|
|
computed: {
|
|
|
- portraitData(){
|
|
|
+ portraitData() {
|
|
|
return this.$store.state.report.filterObject;
|
|
|
},
|
|
|
// 动态生成知识统计文本,使用repeatKnowledgeNum
|
|
|
knowledgeStats() {
|
|
|
const stats = [];
|
|
|
+ const prefix = ''; // 定义prefix变量
|
|
|
// 当konwLenght不等于0时,显示第一行文本
|
|
|
- stats.push(
|
|
|
- `共包含<span style='color:#2E64FA'>23</span>个知识点,
|
|
|
- 分别为<span style='color:#333333;font-weight:600;'>多角度探究作品意蕴、熟语;</span>`
|
|
|
- ); //包含知识点
|
|
|
+ if (this.knowledgeMapData.konwLenght > 0) {
|
|
|
+ stats.push(
|
|
|
+ `共包含<span style='color:#2E64FA'>${this.knowledgeMapData.konwLenght}</span>个知识点,
|
|
|
+ 分别为<span style='color:#333333;font-weight:600;'>${this.knowledgeMapData.knowledgeList}</span>`
|
|
|
+ ); //包含知识点
|
|
|
+ }
|
|
|
// 当repeatKnowledgeNum不等于0时,显示第二行文本
|
|
|
- stats.push(
|
|
|
- `其中<span style='color:#2E64FA'>15</span>个为多次考试的高频考点,
|
|
|
- 其中<span style='color:#333333;font-weight:600;'>概括分析、比较材料</span>
|
|
|
- 你的得分率<span style='color:#3BA272;font-weight:600;'>提升</span>
|
|
|
- <span style='color:#333333;font-weight:600;'>文言文断句、文言文阅读、材料作文</span>
|
|
|
- 你的得分率<span style="color:#F56C6C;font-weight:600;">下降</span>,
|
|
|
- 希望针对下降的知识点进行总结和反思。`
|
|
|
- ); //重复知识点
|
|
|
+ if (this.knowledgeMapData.repeatKnowledgeNum > 0) {
|
|
|
+ // 获取得分率变化的文本部分
|
|
|
+ let changeText = '';
|
|
|
+ const hasRaise = this.knowledgeMapData.raiseKnowledgeList;
|
|
|
+ const hasDrop = this.knowledgeMapData.dropKnowledgeList;
|
|
|
+ // 只有当raiseKnowledgeList不为空时,添加得分率提升的部分
|
|
|
+ if (hasRaise) {
|
|
|
+ changeText += `其中<span style="color:#333333;font-weight:600;">
|
|
|
+ ${this.knowledgeMapData.raiseKnowledgeList}</span>
|
|
|
+ ${prefix}得分率<span style="color:#3BA272;font-weight:600;">提升</span>`;
|
|
|
+ }
|
|
|
+ // 只有当dropKnowledgeList不为空时,添加得分率下降的部分
|
|
|
+ if (hasDrop) {
|
|
|
+ if (hasRaise) {
|
|
|
+ changeText += `,`;
|
|
|
+ }
|
|
|
+ changeText += `<span style="color:#333333;font-weight:600;">${this.knowledgeMapData.dropKnowledgeList}</span>${prefix}得分率
|
|
|
+ <span style="color:#F56C6C;font-weight:600;">下降</span>,希望针对下降的知识点进行总结和反思。`;
|
|
|
+ } else if (hasRaise) {
|
|
|
+ // 如果只有提升,添加句号
|
|
|
+ changeText += `。`;
|
|
|
+ }
|
|
|
+ // 确保始终返回数组
|
|
|
+ if (changeText) {
|
|
|
+ stats.push(changeText);
|
|
|
+ }
|
|
|
+ }
|
|
|
return stats;
|
|
|
},
|
|
|
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
- // 画像切换
|
|
|
- radio1: "grade",
|
|
|
-
|
|
|
+ // 历次成绩数据
|
|
|
+ gradeHistoryData: [],
|
|
|
+ // 历次考试知识点追踪数据
|
|
|
+ knowledgeMapData: {
|
|
|
+ examRange: "", //考试名称
|
|
|
+ konwLenght: 0, // 包含知识点数
|
|
|
+ knowledgeList: [],// 包含知识点列表
|
|
|
+ repeatKnowledgeNum: 0, // 重复知识点数
|
|
|
+ raiseKnowledgeList: [], //提升知识点
|
|
|
+ dropKnowledgeList: [],//下降知识点
|
|
|
+ },
|
|
|
+ // 零点知识点数据
|
|
|
+ activeView: 'graph', // 默认图形视图
|
|
|
+ // 按图形查看
|
|
|
+ subjectScoreRate: 0, // 科目得分率
|
|
|
// 知识点树状图数据
|
|
|
treeData: [],
|
|
|
// 零分知识点数据
|
|
|
fatalVulnerability: [],
|
|
|
// 高频错题知识点数据
|
|
|
- highVulnerability: [],
|
|
|
+ highVulnerability: [],
|
|
|
+
|
|
|
+ // 知识点名称
|
|
|
+ knowledgeName: '',
|
|
|
+ knowledgeId: '',
|
|
|
+ // 历次变化图表数据
|
|
|
+ historicalChangeData: {
|
|
|
+ personalList: [], //个人得分率
|
|
|
+ classList: [], //班级得分率
|
|
|
+ gradeList: [],//年级得分率
|
|
|
+ examName: [] // 考试名称
|
|
|
+ },
|
|
|
+ // 我的历次成绩-加载状态
|
|
|
+ historyloading: false,
|
|
|
+ // 历次考试知识点追踪-加载状态
|
|
|
+ knowledgeloading: false,
|
|
|
+ // 零分知识点、高频错题知识点-加载状态
|
|
|
+ zeroloading: false,
|
|
|
+ // 历次变化图表-加载状态
|
|
|
+ historicalChangeLoading: false,
|
|
|
+ // 薄弱知识点精准提升-加载状态
|
|
|
+ knowledgePapsLoading: false,
|
|
|
};
|
|
|
},
|
|
|
+ watch: {
|
|
|
+ // 监听knowledgeId变化
|
|
|
+ portraitData(newVal, oldVal) {
|
|
|
+ if (newVal !== oldVal) {
|
|
|
+ // 点击知识点后,更新历次变化
|
|
|
+ this.MyGradeHistoryData();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
created() {
|
|
|
- // 历次考试知识点追踪数据
|
|
|
+ // 我的历次成绩-并且获取历次考试ids examIds用于调用其余接口
|
|
|
this.MyGradeHistoryData();
|
|
|
- //零分知识点、高频知识点
|
|
|
- this.vulerabData();
|
|
|
- // 年级画像
|
|
|
},
|
|
|
methods: {
|
|
|
- // 画像切换
|
|
|
- portraitTab() {
|
|
|
- },
|
|
|
- // 历次考试知识点---年级画像
|
|
|
- MyGradeHistoryData(){
|
|
|
+ // 我的历次成绩---年级画像
|
|
|
+ MyGradeHistoryData() {
|
|
|
+ // 加载状态-清空数据
|
|
|
+ this.historyloading = true;
|
|
|
+ // 历次考试知识点追踪-加载状态
|
|
|
+ this.knowledgeloading = false,
|
|
|
+ // 零分知识点、高频错题知识点-加载状态
|
|
|
+ this.zeroloading = false,
|
|
|
+ // 历次变化图表-加载状态
|
|
|
+ this.historicalChangeLoading = false,
|
|
|
+ this.gradeHistoryData = [];
|
|
|
let examParams = {
|
|
|
examId: this.portraitData.examId,
|
|
|
subjectCode: this.portraitData.subjectCode,
|
|
|
};
|
|
|
this.$api.personalProfile.examScoreList(examParams).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
- this.treeData = res.data;
|
|
|
- console.log(this.treeData);
|
|
|
+ let data = res.data || [];
|
|
|
+ if (data) {
|
|
|
+ this.gradeHistoryData = res.data;
|
|
|
+ let examIds = this.gradeHistoryData.map(item => item.examId || '');
|
|
|
+ this.portraitData.examIds = examIds;
|
|
|
+ // 加载状态
|
|
|
+ this.historyloading = false;
|
|
|
+
|
|
|
+ // 零分知识点、高频错题知识点
|
|
|
+ this.vulerabData();
|
|
|
+ // 历次考试知识点追踪
|
|
|
+ this.previousExamsData();
|
|
|
+ }else{
|
|
|
+ // 加载状态
|
|
|
+ this.historyloading = false;
|
|
|
+ this.gradeHistoryData = [];
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ // 加载状态
|
|
|
+ this.historyloading = false;
|
|
|
+ this.gradeHistoryData = [];
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+
|
|
|
+ //历次考试知识点追踪
|
|
|
+ previousExamsData() {
|
|
|
+ // 加载状态-清空数据
|
|
|
+ this.knowledgeloading = true;
|
|
|
+ this.knowledgeMapData = {
|
|
|
+ examRange: "", //考试名称
|
|
|
+ konwLenght: 0, // 包含知识点数
|
|
|
+ knowledgeList: [],// 包含知识点列表
|
|
|
+ repeatKnowledgeNum: 0, // 重复知识点数
|
|
|
+ raiseKnowledgeList: [], //提升知识点
|
|
|
+ dropKnowledgeList: [],//下降知识点
|
|
|
+ };
|
|
|
+ let examParams = {
|
|
|
+ examId: this.portraitData.examId, //当前考试id
|
|
|
+ subjectCode: this.portraitData.subjectCode, //学科code
|
|
|
+ examIds: this.portraitData.examIds, //历次考试ids
|
|
|
+ };
|
|
|
+ this.$api.personalProfile.examKnowledgePointTrack(examParams).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ let data = res.data;
|
|
|
+ if (data) {
|
|
|
+ this.knowledgeloading = false;
|
|
|
+ // 考试名称列表
|
|
|
+ if (data.examNameList) {
|
|
|
+ this.knowledgeMapData.examRange = data.examNameList.join('、');
|
|
|
+ }
|
|
|
+ // 知识点列表
|
|
|
+ if (data.knowledgeList) {
|
|
|
+ this.knowledgeMapData.konwLenght = data.knowledgeList.length || 0; //知识点列表长度
|
|
|
+ this.knowledgeMapData.knowledgeList = data.knowledgeList.join('、');
|
|
|
+ }
|
|
|
+ this.knowledgeMapData.repeatKnowledgeNum = data.repeatKnowledgeNum || 0; //重复知识点数
|
|
|
+ // 提升知识点
|
|
|
+ if (data.raiseKnowledgeList) {
|
|
|
+ this.knowledgeMapData.raiseKnowledgeList = data.raiseKnowledgeList.join('、');
|
|
|
+ }
|
|
|
+ // 下降知识点
|
|
|
+ if (data.dropKnowledgeList) {
|
|
|
+ this.knowledgeMapData.dropKnowledgeList = data.dropKnowledgeList.join('、');
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ // 加载状态
|
|
|
+ this.knowledgeloading = false;
|
|
|
+ this.knowledgeMapData = {
|
|
|
+ examRange: "", //考试名称
|
|
|
+ konwLenght: 0, // 包含知识点数
|
|
|
+ knowledgeList: [],// 包含知识点列表
|
|
|
+ repeatKnowledgeNum: 0, // 重复知识点数
|
|
|
+ raiseKnowledgeList: [], //提升知识点
|
|
|
+ dropKnowledgeList: [],//下降知识点
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ // 加载状态
|
|
|
+ this.knowledgeloading = false;
|
|
|
+ this.knowledgeMapData = {
|
|
|
+ examRange: "", //考试名称
|
|
|
+ konwLenght: 0, // 包含知识点数
|
|
|
+ knowledgeList: [],// 包含知识点列表
|
|
|
+ repeatKnowledgeNum: 0, // 重复知识点数
|
|
|
+ raiseKnowledgeList: [], //提升知识点
|
|
|
+ dropKnowledgeList: [],//下降知识点
|
|
|
+ };
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
// 零分知识点、高频错题知识点----年级
|
|
|
vulerabData() {
|
|
|
- // 零分知识点数据
|
|
|
- this.fatalVulnerability = [
|
|
|
- {
|
|
|
- "knowledgeName": "区间的关系与运算",
|
|
|
- "knowledgeId": 10550,
|
|
|
- "parentId": 10548,
|
|
|
- "gradeScoreRate": "50", // 年级得分率
|
|
|
- "classScoreRate": "54.55", // 班级得分率
|
|
|
- "scoreRateDiff": "4.55", // 得分率差值
|
|
|
- "knowledgeType": 1, // 知识点类型 1:零分知识点 2:高频错题知识点
|
|
|
- "examNum": 2 // 考试次数
|
|
|
- },
|
|
|
- {
|
|
|
- "knowledgeName": "具体函数的定义域",
|
|
|
- "knowledgeId": 10552,
|
|
|
- "parentId": 10551,
|
|
|
- "gradeScoreRate": "37.9",
|
|
|
- "classScoreRate": "27.27",
|
|
|
- "scoreRateDiff": "-10.63",
|
|
|
- "knowledgeType": 1,
|
|
|
- "examNum": 2
|
|
|
+ // 加载状态-清空数据
|
|
|
+ this.zeroloading = true;
|
|
|
+ this.treeData = [];
|
|
|
+ this.subjectScoreRate = 0; //科目得分率
|
|
|
+ this.fatalVulnerability = []; // 零分知识点数据
|
|
|
+ this.highVulnerability = []; // 高频错题知识点数据
|
|
|
+ let examParams = {
|
|
|
+ examId: this.portraitData.examId, //当前考试id
|
|
|
+ examIds: this.portraitData.examIds, //历次考试ids
|
|
|
+ subjectCode: this.portraitData.subjectCode, //学科code
|
|
|
+ knowledgeId: this.portraitData.knowledgeId, // 知识点id(针对历次和试题查询)
|
|
|
+ };
|
|
|
+ this.$api.personalProfile.knowledgeTreeData(examParams).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ let data = res.data;
|
|
|
+ if (data) {
|
|
|
+ // 加载状态-清空数据
|
|
|
+ this.zeroloading = false;
|
|
|
+
|
|
|
+ // 知识点树状图数据
|
|
|
+ this.treeData = data.tree || [];
|
|
|
+ // 将字符串转换为数字类型
|
|
|
+ this.subjectScoreRate = parseFloat(data.subjectScoreRate) || 0; //科目得分率
|
|
|
+ // 零分知识点数据
|
|
|
+ this.fatalVulnerability = data.fatalVulnerability || [];
|
|
|
+ // 高频错题知识点数据
|
|
|
+ this.highVulnerability = data.highVulnerability || [];
|
|
|
+
|
|
|
+ // 接口调用成功后,刷新图表
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (this.$refs.knowledgeGraphRef) {
|
|
|
+ this.$refs.knowledgeGraphRef.updateChart();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 获取知识点第一条数据id
|
|
|
+ if (this.fatalVulnerability.length > 0) {
|
|
|
+ this.knowledgeName = this.fatalVulnerability[0].knowledgeName || '';
|
|
|
+ this.knowledgeId = this.fatalVulnerability[0].knowledgeId || 0;
|
|
|
+ } else {
|
|
|
+ // 高频错题知识点
|
|
|
+ if (this.highVulnerability.length > 0) {
|
|
|
+ this.knowledgeName = this.highVulnerability[0].knowledgeName || '';
|
|
|
+ this.knowledgeId = this.highVulnerability[0].knowledgeId || 0;
|
|
|
+ } else {
|
|
|
+ this.knowledgeName = '';
|
|
|
+ this.knowledgeId = '';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 首次加载默认获取知识点
|
|
|
+ this.KnowledgeTrackData();
|
|
|
+ // 加载推送试题
|
|
|
+ this.pushQuestionData();
|
|
|
+ }else{
|
|
|
+ this.treeData = [];
|
|
|
+ this.subjectScoreRate = 0; //科目得分率
|
|
|
+ this.fatalVulnerability = []; // 零分知识点数据
|
|
|
+ this.highVulnerability = []; // 高频错题知识点数据
|
|
|
+ // 首次加载默认获取知识点
|
|
|
+ this.zeroloading = false;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ this.treeData = [];
|
|
|
+ this.subjectScoreRate = 0; //科目得分率
|
|
|
+ this.fatalVulnerability = []; // 零分知识点数据
|
|
|
+ this.highVulnerability = []; // 高频错题知识点数据
|
|
|
+ // 加载状态
|
|
|
+ this.zeroloading = false;
|
|
|
}
|
|
|
- ];
|
|
|
- // 高频错题知识点数据
|
|
|
- this.highVulnerability = [
|
|
|
- {
|
|
|
- "knowledgeName": "抽象函数的定义域",
|
|
|
- "knowledgeId": 10553,
|
|
|
- "parentId": 10551,
|
|
|
- "gradeScoreRate": "6.45",
|
|
|
- "classScoreRate": "12.12",
|
|
|
- "scoreRateDiff": "5.67",
|
|
|
- "knowledgeType": 1,
|
|
|
- "examNum": 2
|
|
|
- },
|
|
|
- {
|
|
|
- "knowledgeName": "求函数的零点",
|
|
|
- "knowledgeId": 10820,
|
|
|
- "parentId": 10818,
|
|
|
- "gradeScoreRate": "34.03",
|
|
|
- "classScoreRate": "35.76",
|
|
|
- "scoreRateDiff": "1.73",
|
|
|
- "knowledgeType": 1,
|
|
|
- "examNum": 1
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ // 获取历次变化数据
|
|
|
+ KnowledgeTrackData() {
|
|
|
+ // 加载状态-清空数据
|
|
|
+ this.historicalChangeLoading = false;
|
|
|
+ // 清除历次变化图表数据
|
|
|
+ this.historicalChangeData = {
|
|
|
+ personalList: [],
|
|
|
+ classList: [],
|
|
|
+ gradeList: [],
|
|
|
+ examName: []
|
|
|
+ };
|
|
|
+ // return
|
|
|
+ let params = {
|
|
|
+ examId: this.portraitData.examId, //当前考试id
|
|
|
+ examIds: this.portraitData.examIds, //历次考试ids
|
|
|
+ subjectCode: this.portraitData.subjectCode, //学科code
|
|
|
+ knowledgeId: this.knowledgeId, // 知识点id(针对历次和试题查询)
|
|
|
+ };
|
|
|
+ this.$api.personalProfile.knowledgeExamPrevious(params).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ let data = res.data
|
|
|
+ if (!data) {
|
|
|
+ this.$message.error(res.msg);
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 加载状态-清空数据
|
|
|
+ this.historicalChangeLoading = false;
|
|
|
+
|
|
|
+ // 初始化空数组
|
|
|
+ let personalList = []; //个人得分率
|
|
|
+ let classList = []; //班级得分率
|
|
|
+ let gradeList = []; //年级得分率
|
|
|
+ let examNames = []; //考试名称
|
|
|
+
|
|
|
+ // 遍历数据
|
|
|
+ if (data && Array.isArray(data)) {
|
|
|
+ data.forEach(item => {
|
|
|
+ // 添加个人得分率
|
|
|
+ personalList.push(item.personalScoreRate);
|
|
|
+ // 添加班级得分率
|
|
|
+ classList.push(item.classScoreRate);
|
|
|
+ // 添加年级得分率
|
|
|
+ gradeList.push(item.gradeScoreRate);
|
|
|
+ // 添加考试名称
|
|
|
+ examNames.push(item.examName);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 更新历次变化图表数据
|
|
|
+ this.historicalChangeData = {
|
|
|
+ personalList: personalList,
|
|
|
+ classList: classList,
|
|
|
+ gradeList: gradeList,
|
|
|
+ examName: examNames,
|
|
|
+ };
|
|
|
+
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (this.$refs.historicalChangeChartRef) {
|
|
|
+ this.$refs.historicalChangeChartRef.initChart();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 清除历次变化图表数据
|
|
|
+ this.historicalChangeData = {
|
|
|
+ personalList: [],
|
|
|
+ classList: [],
|
|
|
+ gradeList: [],
|
|
|
+ examName: []
|
|
|
+ };
|
|
|
+ // 加载状态-清空数据
|
|
|
+ this.historicalChangeLoading = false;
|
|
|
}
|
|
|
- ];
|
|
|
+ }).catch(err => {
|
|
|
+ // 清除历次变化图表数据
|
|
|
+ this.historicalChangeData = {
|
|
|
+ personalList: [],
|
|
|
+ classList: [],
|
|
|
+ gradeList: [],
|
|
|
+ examName: []
|
|
|
+ };
|
|
|
+ // 加载状态-清空数据
|
|
|
+ this.historicalChangeLoading = false;
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ // 推题列表
|
|
|
+ pushQuestionData(){
|
|
|
+ let params = {
|
|
|
+ examId: this.portraitData.examId, //当前考试id
|
|
|
+ subjectCode: this.portraitData.subjectCode, //学科code
|
|
|
+ knowledgeId: this.knowledgeId, //知识点id(针对历次和试题查询)
|
|
|
+ };
|
|
|
+ this.$api.personalProfile.pushQuestionList(params).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ let data = res.data || [];
|
|
|
+ console.log(data);
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 知识点列表点击事件
|
|
|
+ handleKnowledgeItemClick(data) {
|
|
|
+ // 点击知识点后,更新图表数据
|
|
|
+ this.knowledgeId = data.item.knowledgeId ;
|
|
|
+ this.knowledgeName = data.item.knowledgeName ;
|
|
|
+ // 点击知识点后,更新历次变化
|
|
|
+ this.KnowledgeTrackData();
|
|
|
+ // 点击知识点后,更新推题列表
|
|
|
+ this.pushQuestionData();
|
|
|
+ },
|
|
|
+
|
|
|
+ // 零分、高频切换
|
|
|
+ handleActiveTabChange(tab) {
|
|
|
+ // highFreq 高频
|
|
|
+ // zero 零分
|
|
|
+ if (tab === 'highFreq') {
|
|
|
+ // 高频知识点
|
|
|
+ if(this.highVulnerability.length > 0) {
|
|
|
+ this.knowledgeId = this.highVulnerability[0].knowledgeId ;
|
|
|
+ this.knowledgeName = this.highVulnerability[0].knowledgeName;
|
|
|
+ } else {
|
|
|
+ this.knowledgeId = '';
|
|
|
+ this.knowledgeName = '';
|
|
|
+ }
|
|
|
+ } else if (tab === 'zero') {
|
|
|
+ // 零分知识点
|
|
|
+ if(this.fatalVulnerability.length > 0) {
|
|
|
+ this.knowledgeId = this.fatalVulnerability[0].knowledgeId || 0;
|
|
|
+ this.knowledgeName = this.fatalVulnerability[0].knowledgeName || '';
|
|
|
+ } else {
|
|
|
+ this.knowledgeId = '';
|
|
|
+ this.knowledgeName = '';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!this.knowledgeId){
|
|
|
+ this.historicalChangeData = {
|
|
|
+ personalList: [],
|
|
|
+ classList: [],
|
|
|
+ gradeList: [],
|
|
|
+ examName: []
|
|
|
+ };
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (this.$refs.historicalChangeChartRef) {
|
|
|
+ this.$refs.historicalChangeChartRef.initChart();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 点击知识点后,更新历次变化
|
|
|
+ this.KnowledgeTrackData();
|
|
|
+ // 点击知识点后,更新推题列表
|
|
|
+ this.pushQuestionData();
|
|
|
},
|
|
|
},
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
-.personalProfile{
|
|
|
+.personalProfile {
|
|
|
+
|
|
|
// 确保所有子组件之间有10px的间隔
|
|
|
- > * {
|
|
|
+ >* {
|
|
|
margin-bottom: 10px;
|
|
|
font-family: PingFang SC, PingFang SC;
|
|
|
font-size: 14px;
|
|
|
font-weight: 400;
|
|
|
color: #333333;
|
|
|
}
|
|
|
-
|
|
|
- > *:last-child {
|
|
|
+
|
|
|
+ >*:last-child {
|
|
|
margin-bottom: 0;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 画像切换
|
|
|
- .report_header{
|
|
|
+ .report_header {
|
|
|
padding: 10px 0;
|
|
|
text-align: center;
|
|
|
font-size: 14px;
|
|
|
@@ -183,19 +537,18 @@ export default {
|
|
|
|
|
|
/* 选中状态 */
|
|
|
:deep(.el-radio-button__orig-radio:checked + .el-radio-button__inner) {
|
|
|
- font-weight: 600 !important;
|
|
|
- color: #ffffff !important;
|
|
|
+ font-weight: 600 !important;
|
|
|
+ color: #ffffff !important;
|
|
|
}
|
|
|
|
|
|
:deep(.el-radio-button__inner) {
|
|
|
- height: 36px;
|
|
|
- line-height: 34px;
|
|
|
- padding: 0px;
|
|
|
- width: 76px;
|
|
|
- text-align: center;
|
|
|
- color: #999999;
|
|
|
+ height: 36px;
|
|
|
+ line-height: 34px;
|
|
|
+ padding: 0px;
|
|
|
+ width: 76px;
|
|
|
+ text-align: center;
|
|
|
+ color: #999999;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
</style>
|