diff --git a/mobile-uni/src/pages/user/learning/index.vue b/mobile-uni/src/pages/user/learning/index.vue
index eb7b8afd..e3c55eec 100644
--- a/mobile-uni/src/pages/user/learning/index.vue
+++ b/mobile-uni/src/pages/user/learning/index.vue
@@ -117,7 +117,7 @@
已完成
-
{{ displayedAnswer }}
-
- {{ showFullAnswer ? '收起全文 ▲' : '展开全文 ▼' }}
-
-
-
+
+
{{ index + 1 }}. {{ cleanOrderedText(point) }}
+
+ {{ showFullAnswer ? '收起全文 ▲' : `展开全文(含 ${knowledgeResult?.keyPoints?.length || 0} 条要点)▼` }}
+
要点
{{ item }}
-
- 红线
- {{ item }}
-
-
- 可说话术
- {{ item }}
-
+
+
+ 红线
+ {{ item }}
+
+
+ 可说话术
+ {{ item }}
+
+
+
+ {{ showPrepDetail ? '收起 ▲' : '展开红线与可说话术 ▼' }}
+
暂无可用预习卡
练一遍
@@ -366,13 +371,21 @@ const ANSWER_PREVIEW_CHARS = 140;
const showAllMistakes = ref(false);
const showFullAnswer = ref(false);
const expandedSnippets = ref>({});
-const displayedMistakes = computed(() => (showAllMistakes.value ? visibleMistakes.value : visibleMistakes.value.slice(0, 3)));
+const displayedMistakes = computed(() => (showAllMistakes.value ? visibleMistakes.value : visibleMistakes.value.slice(0, 2)));
const answerIsLong = computed(() => (knowledgeResult.value?.answer || '').length > ANSWER_PREVIEW_CHARS);
const displayedAnswer = computed(() => {
const answer = knowledgeResult.value?.answer || '';
if (showFullAnswer.value || answer.length <= ANSWER_PREVIEW_CHARS) return answer;
return `${answer.slice(0, ANSWER_PREVIEW_CHARS)}…`;
});
+const KEYPOINT_PREVIEW_COUNT = 2;
+const displayedKeyPoints = computed(() => {
+ const points = knowledgeResult.value?.keyPoints || [];
+ return showFullAnswer.value ? points : points.slice(0, KEYPOINT_PREVIEW_COUNT);
+});
+const sopFoldNeeded = computed(() =>
+ answerIsLong.value || (knowledgeResult.value?.keyPoints?.length || 0) > KEYPOINT_PREVIEW_COUNT);
+const showPrepDetail = ref(false);
const toggleSnippet = (index: number) => {
expandedSnippets.value = { ...expandedSnippets.value, [index]: !expandedSnippets.value[index] };
};
@@ -1045,11 +1058,17 @@ onUnload(invalidateRequests);
.snippet-list,
.action-list {
display: flex;
- flex-direction: column;
- gap: 12px;
+ gap: 10px;
margin-top: 14px;
}
+.action-list .action-button {
+ flex: 1;
+ min-height: 44px;
+ padding: 0 4px;
+ font-size: 14px;
+}
+
.task-row {
display: flex;
gap: 12px;