فهرست منبع

个人画像-知识点添加推题标识

吴朋磊 2 ماه پیش
والد
کامیت
db54508c9b

+ 4 - 3
src/views/analysisReport/personalProfile/KnowledgeTrack.vue

@@ -2,10 +2,10 @@
   <div class="knowledgeTrack">
     <h3 class="title">历次考试知识点追踪</h3>
     <!-- 内容区域 -->
-    <div class="map_content" v-if="knowledgeStats.length > 0">
+    <div class="map_content" v-if="examRange || knowledgeStats.length > 0">
       <!-- 考试范围说明 -->
       <div class="knowledge_stats">
-        <p class="range_text">
+        <p class="range_text" >
           <span class="dot"></span>历次考试:<span v-html="examRange" style="color:#333333;font-weight:600;"></span>
         </p>
         <p class="stats_text" v-for="(item, index) in knowledgeStats" :key="index">
@@ -53,9 +53,10 @@ export default {
     
   },
   mounted() {
-   
+
   },
   methods: {
+    
   }
 };
 </script>

+ 51 - 22
src/views/analysisReport/personalProfile/index.vue

@@ -51,6 +51,7 @@
             :subjectCode="portraitData.subjectCode" 
             :knowledgeId="knowledgeId" 
         />
+        
     </div>
 </template>
 <script>
@@ -75,38 +76,66 @@ export default {
         portraitData() {
             return this.$store.state.report.filterObject;
         },
-        // 动态生成知识统计文本,使用repeatKnowledgeNum
+        // 动态生成知识统计文本
         knowledgeStats() {
             const stats = [];
             const prefix = ''; // 定义prefix变量
-            // 当repeatKnowledgeNum不等于0时,显示第二行文本
-            if (this.knowledgeMapData.repeatKnowledgeNum > 0) {
+            
+            // 当有知识点数据时,生成统计文本
+            if (this.knowledgeMapData.konwLenght > 0 || this.knowledgeMapData.knowledgeList) {
                 // 获取得分率变化的文本部分
                 let changeText = '';
-                const hasRaise = this.knowledgeMapData.raiseKnowledgeList;
-                const hasDrop = this.knowledgeMapData.dropKnowledgeList;
-                // 只有当raiseKnowledgeList不为空时,添加得分率提升的部分
-                if (hasRaise) {
-                    changeText += `共包含<span style='color:#2E64FA'>${this.knowledgeMapData.konwLenght}</span>个知识点,其中<span style="color:#333333;font-weight:600;">${this.knowledgeMapData.raiseKnowledgeList}</span>${prefix}得分率<span style="color:#3BA272;font-weight:600;">提升</span>`;
+                const hasRaise = this.knowledgeMapData.raiseKnowledgeList; // 提升部分
+                const hasDrop = this.knowledgeMapData.dropKnowledgeList;   // 下降部分
+                const hasKnowledgeList = this.knowledgeMapData.knowledgeList; // 知识点列表
+                const knowledgeNum = this.knowledgeMapData.konwLenght; // 知识点数量
+                
+                // 基础文本:包含的知识点数量
+                if (knowledgeNum > 0) {
+                    changeText += `共包含<span style='color:#2E64FA'>${knowledgeNum}</span>个知识点`;
                 }
-                // 当下降部分不为空时,添加得分率下降的部分
-                if (hasDrop) {
-                    // 当提升部分不为空时,添加逗号
+                
+                // 添加知识点列表(可选)
+                if (hasKnowledgeList) {
+                    changeText += `,包括<span style="color:#333333;font-weight:600;">${this.knowledgeMapData.knowledgeList}</span>`;
+                }
+                
+                // 当repeatKnowledgeNum大于0时,添加得分率变化信息
+                if (this.knowledgeMapData.repeatKnowledgeNum > 0) {
+                    // 只有当raiseKnowledgeList不为空时,添加得分率提升的部分
                     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{
-                        changeText += `共包含<span style='color:#2E64FA'>${this.knowledgeMapData.konwLenght}</span>个知识点,其中<span style="color:#333333;font-weight:600;">${this.knowledgeMapData.dropKnowledgeList}</span>${prefix}得分率<span style="color:#F56C6C;font-weight:600;">下降</span>,希望针对下降的知识点进行总结和反思。`;
+                        changeText += `,其中<span style="color:#333333;font-weight:600;">${hasRaise}</span>${prefix}得分率<span style="color:#3BA272;font-weight:600;">提升</span>`;
+                    }
+                    // 当下降部分不为空时,添加得分率下降的部分
+                    if (hasDrop) {
+                        // 当提升部分不为空时,添加逗号
+                        if (hasRaise) {
+                            changeText += `,`;
+                        } else {
+                            changeText += `,其中`;
+                        }
+                        changeText += `<span style="color:#333333;font-weight:600;">${hasDrop}</span>${prefix}得分率<span style="color:#F56C6C;font-weight:600;">下降</span>,希望针对下降的知识点进行总结和反思。`;
+                    } else if (!hasRaise) {
+                        // 如果没有提升和下降,添加完整句号
+                        changeText += `。`;
+                    } else {
+                        // 如果只有提升,添加句号
+                        changeText += `。`;
                     }
                 } else {
-                    // 如果只有提升,添加句号
+                    // 如果repeatKnowledgeNum为0,添加完整句号
                     changeText += `。`;
                 }
+                
                 // 确保始终返回数组
                 if (changeText) {
                     stats.push(changeText);
                 }
+            } else if (this.knowledgeMapData.examRange) {
+                // 如果只有考试范围数据,添加说明文本
+                stats.push(`本次考试涵盖<span style="color:#333333;font-weight:600;">${this.knowledgeMapData.examRange}</span>,暂无详细知识点追踪数据。`);
             }
+            
             return stats;
         },
 
@@ -197,7 +226,7 @@ export default {
                 if (res.code === 200) {
                     let data = res.data || [];
                     if (data) {
-                        this.gradeHistoryData = res.data;
+                        this.gradeHistoryData = res.data.records || [];
                         let examIds = this.gradeHistoryData.map(item => item.examId || '');
                         this.portraitData.examIds = examIds;
                         // 加载状态
@@ -244,23 +273,23 @@ export default {
                         this.knowledgeloading = false;
                         // 考试名称列表
                         if (data.examNameList) {
-                            this.knowledgeMapData.examRange = data.examNameList.join('、');
+                            this.knowledgeMapData.examRange = data.examNameList.join('、') || '';
                         }
                         // 知识点列表
                         if (data.knowledgeList) {
                             this.knowledgeMapData.konwLenght = data.knowledgeList.length || 0; //知识点列表长度
-                            this.knowledgeMapData.knowledgeList = data.knowledgeList.join('、');
+                            this.knowledgeMapData.knowledgeList = data.knowledgeList.join('、') || '';
                         }
                         this.knowledgeMapData.repeatKnowledgeNum = data.repeatKnowledgeNum || 0; //重复知识点数
                         // 提升知识点
                         if (data.raiseKnowledgeList) {
-                            this.knowledgeMapData.raiseKnowledgeList = data.raiseKnowledgeList.join('、');
+                            this.knowledgeMapData.raiseKnowledgeList = data.raiseKnowledgeList.join('、') || '';
                         }
                         // 下降知识点
                         if (data.dropKnowledgeList) {
-                            this.knowledgeMapData.dropKnowledgeList = data.dropKnowledgeList.join('、');
+                            this.knowledgeMapData.dropKnowledgeList = data.dropKnowledgeList.join('、') || '';
                         }
-
+                        console.log(this.knowledgeMapData.knowledgeList);
                     }else{
                         // 加载状态
                         this.knowledgeloading = false;

+ 6 - 5
src/views/analysisReport/personalProfile/zeroScoreKnowledge.vue

@@ -122,6 +122,10 @@
                 v-if="item.scoreRateDiff" :style="{ backgroundColor: parseFloat(item.scoreRateDiff) > 0 ? '#3BA272' : '#F56C6C' }">
                 {{ item.scoreRateDiff }}%
               </span>
+              <span class="item_tag" 
+                v-if="item.isPush == 1" style="background-color: #2E64FA;">
+                有推题
+              </span>
             </div>
 
             <div class="item_info">
@@ -136,9 +140,6 @@
               </span>
 
               <!-- 班级/学生得分率 -->
-              
-
-
               <span class="item_exam_count">考试数: <span class="exam_count">{{ item.examNum || 0 }}</span></span>
             </div>
           </div>
@@ -1343,7 +1344,7 @@ export default {
     }
 
     .knowledge_right_container {
-      width: 310px;
+      width: 350px;
       height: 630px;
       display: flex;
       flex-direction: column;
@@ -1545,7 +1546,7 @@ export default {
           }
 
           .item_tag {
-            
+            margin-left: 5px;
             color: #FFFFFF;
             font-size: 12px;
             padding: 4px 6px;

+ 1 - 1
version.json

@@ -1,5 +1,5 @@
 {
-  "version": "0.1.3_2026_3_27_0",
+  "version": "0.1.3_2026_3_30_0",
   "content": [
     {
       "time": "2024-11-1",