Skip to content

Commit 4e56817

Browse files
许君山许君山
authored andcommitted
style: move AI explanation above conjugation result table
1 parent bf3f00b commit 4e56817

1 file changed

Lines changed: 27 additions & 30 deletions

File tree

frontend/src/App.vue

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,33 @@
4848
</div>
4949
</div>
5050

51+
<!-- AI 解释区域 -->
52+
<div v-if="result || loadingAi || aiError" class="card result-card">
53+
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
54+
<h3 style="margin-bottom: 0;">✨ AI 深度解析与例句</h3>
55+
<div style="display: flex; gap: 10px; align-items: center;">
56+
<select v-model="selectedModel" class="model-select" v-if="availableModels.length > 0">
57+
<option v-for="m in availableModels" :key="m" :value="m">{{ m }}</option>
58+
</select>
59+
<button v-if="(!loadingAi && result) || aiRawExplanation" @click="fetchAiExplanation" class="btn-secondary" :disabled="loadingAi">
60+
{{ aiRawExplanation ? '重新生成' : '获取解析' }}
61+
</button>
62+
</div>
63+
</div>
64+
65+
<div v-if="loadingAi && !aiRawExplanation" class="ai-loading">
66+
<div class="spinner"></div>
67+
<p>Ollama 正在思考中,请稍候...</p>
68+
</div>
69+
70+
<div v-else-if="aiError && !aiRawExplanation" class="error-message">
71+
{{ aiError }}
72+
<button @click="fetchAiExplanation" style="margin-left: 10px; background: none; border: none; text-decoration: underline; color: inherit; cursor: pointer;">重试</button>
73+
</div>
74+
75+
<div v-if="aiRawExplanation" class="ai-content markdown-body" v-html="aiExplanation"></div>
76+
</div>
77+
5178
<!-- 结果展示 -->
5279
<div v-if="result" class="card result-card">
5380
<h3>活用结果</h3>
@@ -97,38 +124,8 @@
97124
<span class="label">意向形</span>
98125
<span class="value">{{ result.volitional }}</span>
99126
</div>
100-
</div>
101-
</div>
102-
103-
<!-- AI 解释区域 -->
104-
<div v-if="result || loadingAi || aiError" class="card result-card">
105-
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
106-
<h3 style="margin-bottom: 0;">✨ AI 深度解析与例句</h3>
107-
<div style="display: flex; gap: 10px; align-items: center;">
108-
<select v-model="selectedModel" class="model-select" v-if="availableModels.length > 0">
109-
<option v-for="m in availableModels" :key="m" :value="m">{{ m }}</option>
110-
</select>
111-
<button v-if="(!loadingAi && result) || aiRawExplanation" @click="fetchAiExplanation" class="btn-secondary" :disabled="loadingAi">
112-
{{ aiRawExplanation ? '重新生成' : '获取解析' }}
113-
</button>
114-
</div>
115-
</div>
116-
117-
<div v-if="loadingAi && !aiRawExplanation" class="ai-loading">
118-
<div class="spinner"></div>
119-
<p>Ollama 正在思考中,请稍候...</p>
120-
</div>
121-
122-
<div v-else-if="aiError && !aiRawExplanation" class="error-message">
123-
{{ aiError }}
124-
<button @click="fetchAiExplanation" style="margin-left: 10px; background: none; border: none; text-decoration: underline; color: inherit; cursor: pointer;">重试</button>
125-
</div>
126-
127-
<div v-if="aiRawExplanation" class="ai-content markdown-body" v-html="aiExplanation"></div>
128127
</div>
129128
</section>
130-
131-
<!-- 右侧:文档区 -->
132129
<section class="doc-section">
133130
<div class="card">
134131
<h2>动词分类指南</h2>

0 commit comments

Comments
 (0)