Browse Source

个人画像-知识点图谱节点功能优化

吴朋磊 2 tháng trước cách đây
mục cha
commit
f210f08c74

+ 0 - 1
src/views/analysisReport/personalProfile/index.vue

@@ -251,7 +251,6 @@ export default {
         },
         // 处理选择变化
         handleSelectionChange(selectedExamIds) {
-            console.log('选中的考试ID:', selectedExamIds);
             this.portraitData.examIds = selectedExamIds;
             // 历次考试知识点追踪
             this.previousExamsData();

+ 17 - 17
src/views/analysisReport/personalProfile/zeroScoreKnowledge.vue

@@ -722,26 +722,26 @@ export default {
           const currentKnowledgeId = overrideKnowledgeId !== null ? overrideKnowledgeId : vm.selectedKnowledgeId;
 
           return data.map(item => {
-            // 根据节点是否为最外围节点
-            const isOutermost = !item.children || item.children.length === 0;
-
             // 检查当前节点是否匹配选中的知识点ID
-            const isMatched = isOutermost && String(item.knowledgeId) === String(currentKnowledgeId);
+            const isMatched = String(item.knowledgeId) === String(currentKnowledgeId);
 
-            // 设置节点大小:选中状态16px,未选中状态10px,非叶子节点5px
+            // 获取节点级别,优先使用对应级别的得分率,若缺失则使用另一级别作为备选
+            const scoreRate = item.personalScoreRate;
+            const hasData = scoreRate !== undefined && scoreRate !== null && scoreRate !== '';
+            
+            // 设置节点大小:有数据的默认10px,选中后15px;无数据的5px
             let symbolSize = 5;
-            if (isOutermost) {
+            if (hasData) {
               symbolSize = isMatched ? 15 : 10;
             }
 
-            // 获取节点级别,优先使用对应级别的得分率,若缺失则使用另一级别作为备选
-            const scoreRate = item.personalScoreRate;
-            const nodeLevel = getNodeLevel(scoreRate);
+            // 计算节点样式
+            const itemColor = hasData ? vm.getNodeColor(scoreRate) : '#BFC1C7';
             
-            // 计算节点样式,使用与nodeLevel相同的得分率逻辑
-            const itemColor = isOutermost ? vm.getNodeColor(scoreRate) : '#BFC1C7';
-            // 仅对最外层节点应用图例过滤,非外层节点始终显示
-            const shouldShow = !isOutermost || vm.selectedLegend[nodeLevel];
+            // 获取节点级别用于图例过滤
+            const nodeLevel = getNodeLevel(scoreRate);
+            // 应用图例过滤
+            const shouldShow = vm.selectedLegend[nodeLevel];
             
             // 设置节点透明度:显示为1,隐藏为0
             const opacity = shouldShow ? 1 : 0;
@@ -755,12 +755,10 @@ export default {
                 color: itemColor,
                 opacity: opacity
               },
-              // 当节点是最外层且被隐藏时,隐藏连接到该节点的线
+              // 当节点被隐藏时,隐藏连接到该节点的线
               lineStyle: {
                 opacity: shouldShow ? 1 : 0
               },
-              // 添加isOutermost属性用于tooltip判断
-              isOutermost: isOutermost,
               // 保存知识ID用于匹配
               knowledgeId: item.knowledgeId
             };
@@ -1673,7 +1671,9 @@ export default {
             margin-left: 5px;
             color: #FFFFFF;
             font-size: 12px;
-            padding: 4px 6px;
+            padding: 4px 0px;
+            width: 57px;
+            text-align: center;
             border-radius: 4px;
             font-weight: 400;
           }