|
@@ -16,8 +16,8 @@
|
|
|
<div class="header_stats">
|
|
<div class="header_stats">
|
|
|
<span class="stats_text">
|
|
<span class="stats_text">
|
|
|
你的知识图谱共包含 <span class="stats_num">{{ totalCount }}</span> 个知识点。当前
|
|
你的知识图谱共包含 <span class="stats_num">{{ totalCount }}</span> 个知识点。当前
|
|
|
- <span class="stats_weak">红色薄弱知识点 {{ weakCount }}</span> 个,
|
|
|
|
|
- <span class="stats_good">黄色待提升知识点 {{ goodCount }}</span> 个,
|
|
|
|
|
|
|
+ 红色薄弱知识点<span class="stats_weak"> {{ weakCount }}</span> 个,
|
|
|
|
|
+ 黄色待提升知识点<span class="stats_good"> {{ goodCount }}</span> 个,
|
|
|
<span class="stats_excellent">坚持练习,把全部知识点都进阶为绿色已掌握状态吧!</span>
|
|
<span class="stats_excellent">坚持练习,把全部知识点都进阶为绿色已掌握状态吧!</span>
|
|
|
</span>
|
|
</span>
|
|
|
</div>
|
|
</div>
|
|
@@ -99,13 +99,9 @@ export default {
|
|
|
// 容器最大高度
|
|
// 容器最大高度
|
|
|
containerHeight: 600,
|
|
containerHeight: 600,
|
|
|
// 当前选中的年级列表(多选)
|
|
// 当前选中的年级列表(多选)
|
|
|
- currentGradeList: ['grade3'],
|
|
|
|
|
- // 年级列表
|
|
|
|
|
- gradeList: [
|
|
|
|
|
- { label: '初一', value: 'grade1' },
|
|
|
|
|
- { label: '初二', value: 'grade2' },
|
|
|
|
|
- { label: '初三', value: 'grade3' }
|
|
|
|
|
- ],
|
|
|
|
|
|
|
+ currentGradeList: [],
|
|
|
|
|
+ // 年级列表(从localStorage的student_gradesList读取)
|
|
|
|
|
+ gradeList: [],
|
|
|
// 假数据:表格树形结构数据(用于图表渲染)
|
|
// 假数据:表格树形结构数据(用于图表渲染)
|
|
|
// knowledgeType: 1=薄弱(红色), 2=良好(黄色), 3=优秀(绿色)
|
|
// knowledgeType: 1=薄弱(红色), 2=良好(黄色), 3=优秀(绿色)
|
|
|
// gradeScoreRate: 年级得分率,用于判断节点是否有数据
|
|
// gradeScoreRate: 年级得分率,用于判断节点是否有数据
|
|
@@ -345,6 +341,8 @@ export default {
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
mounted() {
|
|
mounted() {
|
|
|
|
|
+ // 从localStorage读取年级列表
|
|
|
|
|
+ this.loadGradeListFromStorage();
|
|
|
// 初始化容器高度
|
|
// 初始化容器高度
|
|
|
this.calculateContainerHeight();
|
|
this.calculateContainerHeight();
|
|
|
// 监听窗口大小变化
|
|
// 监听窗口大小变化
|
|
@@ -355,6 +353,30 @@ export default {
|
|
|
window.removeEventListener('resize', this.calculateContainerHeight);
|
|
window.removeEventListener('resize', this.calculateContainerHeight);
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 从 localStorage 读取年级列表 student_gradesList
|
|
|
|
|
+ * 并规范化为 [{ label, value }] 结构
|
|
|
|
|
+ */
|
|
|
|
|
+ loadGradeListFromStorage() {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const raw = localStorage.getItem('student_gradesList');
|
|
|
|
|
+ if (!raw) return;
|
|
|
|
|
+ const list = JSON.parse(raw);
|
|
|
|
|
+ if (!Array.isArray(list)) return;
|
|
|
|
|
+
|
|
|
|
|
+ // 规范化字段:支持 label/value、label/code、name/value 等常见组合
|
|
|
|
|
+ this.gradeList = list.map(item => ({
|
|
|
|
|
+ label: item.label || item.name || String(item.value ?? item.code ?? item),
|
|
|
|
|
+ value: item.value ?? item.code ?? item.label ?? item.name ?? String(item)
|
|
|
|
|
+ }));
|
|
|
|
|
+
|
|
|
|
|
+ // 默认全部选中
|
|
|
|
|
+ this.currentGradeList = this.gradeList.map(g => g.value);
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ console.warn('[KnowledgeGraph] 解析 localStorage.student_gradesList 失败:', e);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
// 年级切换(多选)
|
|
// 年级切换(多选)
|
|
|
handleGradeChange(gradeList) {
|
|
handleGradeChange(gradeList) {
|
|
|
this.currentGradeList = gradeList;
|
|
this.currentGradeList = gradeList;
|
|
@@ -439,9 +461,7 @@ export default {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.stats_num {
|
|
.stats_num {
|
|
|
- font-weight: 600;
|
|
|
|
|
color: #2E64FA;
|
|
color: #2E64FA;
|
|
|
- margin: 0 4px;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.stats_weak {
|
|
.stats_weak {
|