feat: add periodic practice reports
This commit is contained in:
@@ -9,7 +9,7 @@ import MessageList, { type DisplayMessage } from "./components/MessageList.vue";
|
||||
import SessionDrawer from "./components/SessionDrawer.vue";
|
||||
import SessionQuota from "./components/SessionQuota.vue";
|
||||
import { ApiError, api, clearToken, getToken, streamChat } from "./services/api";
|
||||
import type { ChatMessage as ApiMessage, ChatSession, GrowthProfileResult, ShareDraft, TeacherHelpCard, UserProfile } from "./types/api";
|
||||
import type { ChatMessage as ApiMessage, ChatSession, GrowthProfileResult, PeriodicReport, ShareDraft, TeacherHelpCard, UserProfile } from "./types/api";
|
||||
|
||||
const user = ref<UserProfile | null>(null);
|
||||
const sessions = ref<ChatSession[]>([]);
|
||||
@@ -32,6 +32,7 @@ const shareDraft = ref<ShareDraft | null>(null);
|
||||
const shareDraftContent = ref("");
|
||||
const helpCardHistory = ref<TeacherHelpCard[]>([]);
|
||||
const shareDraftHistory = ref<ShareDraft[]>([]);
|
||||
const reportHistory = ref<PeriodicReport[]>([]);
|
||||
const profileLoading = ref(false);
|
||||
const finishingTopic = ref(false);
|
||||
const generatingHelpCard = ref(false);
|
||||
@@ -294,14 +295,16 @@ async function openGrowthProfile() {
|
||||
profileDialogOpen.value = true;
|
||||
profileLoading.value = true;
|
||||
try {
|
||||
const [profileResult, helpCards, shareDrafts] = await Promise.all([
|
||||
const [profileResult, helpCards, shareDrafts, reports] = await Promise.all([
|
||||
api.growthProfile(),
|
||||
api.helpCards(10),
|
||||
api.shareDrafts(10),
|
||||
api.periodicReports(10),
|
||||
]);
|
||||
growthProfile.value = profileResult;
|
||||
helpCardHistory.value = helpCards;
|
||||
shareDraftHistory.value = shareDrafts;
|
||||
reportHistory.value = reports;
|
||||
} catch (error) {
|
||||
handleError(error, "成长档案加载失败");
|
||||
} finally {
|
||||
@@ -491,6 +494,14 @@ async function copyText(text: string) {
|
||||
<p>{{ item.summary }}</p>
|
||||
</article>
|
||||
</div>
|
||||
<div v-if="reportHistory.length" class="recent-topic-summaries periodic-report-list">
|
||||
<h3>周期实修报告</h3>
|
||||
<article v-for="item in reportHistory" :key="`report-${item.id}`">
|
||||
<time>{{ item.reportTypeLabel }} · {{ item.periodStart }} 至 {{ item.periodEnd }} · {{ item.generatedAt }}</time>
|
||||
<p class="report-title">{{ item.title }}</p>
|
||||
<pre>{{ item.content }}</pre>
|
||||
</article>
|
||||
</div>
|
||||
<div v-if="helpCardHistory.length" class="recent-topic-summaries">
|
||||
<h3>最近老师求助卡</h3>
|
||||
<article v-for="item in helpCardHistory" :key="`help-${item.id}`">
|
||||
|
||||
Reference in New Issue
Block a user