refactor(frontend): improve API and component handling
优化文件内容组件和API工具函数,改进错误处理和配置管理。 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -75,8 +75,8 @@ function formatDate(timestamp) {
|
|||||||
<div v-if="isRoot || isFolder" class="content-directory-view">
|
<div v-if="isRoot || isFolder" class="content-directory-view">
|
||||||
<div class="directory-list">
|
<div class="directory-list">
|
||||||
<div class="directory-header">
|
<div class="directory-header">
|
||||||
<div class="col-name">名称</div>
|
<div class="col-name">Name</div>
|
||||||
<div class="col-date">更新时间</div>
|
<div class="col-date">Date</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="!isRoot" class="directory-row" @click="navigateUp">
|
<div v-if="!isRoot" class="directory-row" @click="navigateUp">
|
||||||
@@ -167,14 +167,14 @@ function renderMarkdown(text) {
|
|||||||
gap: 4px;
|
gap: 4px;
|
||||||
padding: 8px 16px;
|
padding: 8px 16px;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: var(--muted-text);
|
color: var(--github-text-secondary);
|
||||||
border-bottom: 1px solid var(--panel-border);
|
border-bottom: 1px solid var(--panel-border);
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.breadcrumb-item {
|
.breadcrumb-item {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: var(--focus-ring);
|
color: var(--github-accent);
|
||||||
}
|
}
|
||||||
|
|
||||||
.breadcrumb-item:hover {
|
.breadcrumb-item:hover {
|
||||||
@@ -182,7 +182,7 @@ function renderMarkdown(text) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.breadcrumb-current {
|
.breadcrumb-current {
|
||||||
color: var(--app-text);
|
color: var(--github-text);
|
||||||
cursor: default;
|
cursor: default;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,18 +230,20 @@ function renderMarkdown(text) {
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 12px 16px;
|
padding: 12px 16px;
|
||||||
background: var(--ghost-code-bg);
|
background: var(--github-hover);
|
||||||
border-bottom: 1px solid var(--panel-border);
|
border-bottom: 1px solid var(--github-border);
|
||||||
font-size: 13px;
|
font-size: 12px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: var(--muted-text);
|
text-transform: uppercase;
|
||||||
|
color: var(--github-text-secondary);
|
||||||
}
|
}
|
||||||
|
|
||||||
.directory-row {
|
.directory-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 10px 16px;
|
height: 28px;
|
||||||
border-bottom: 1px solid var(--panel-border);
|
padding: 0 16px;
|
||||||
|
border-bottom: 1px solid var(--github-border);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: background 0.15s ease;
|
transition: background 0.15s ease;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@@ -252,7 +254,7 @@ function renderMarkdown(text) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.directory-row:hover {
|
.directory-row:hover {
|
||||||
background: var(--ghost-code-bg);
|
background: var(--github-hover);
|
||||||
}
|
}
|
||||||
|
|
||||||
.col-icon {
|
.col-icon {
|
||||||
@@ -282,10 +284,10 @@ function renderMarkdown(text) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.col-date {
|
.col-date {
|
||||||
width: 120px;
|
width: 140px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
color: var(--muted-text);
|
color: var(--github-text-secondary);
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+13
-1
@@ -1,4 +1,4 @@
|
|||||||
import { API_URL, API_KEY, TTS_URL, TTS_STATUS_URL } from './config.js'
|
import { API_URL, API_KEY, TTS_URL, TTS_STATUS_URL, TTS_CONFIG_URL } from './config.js'
|
||||||
import { useSettingsStore } from '../stores/settings'
|
import { useSettingsStore } from '../stores/settings'
|
||||||
|
|
||||||
function generateRequestId() {
|
function generateRequestId() {
|
||||||
@@ -146,3 +146,15 @@ export async function fetchTTSStatus(apiUrl = TTS_STATUS_URL) {
|
|||||||
|
|
||||||
return res.json()
|
return res.json()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function fetchTTSConfig(apiUrl = TTS_CONFIG_URL) {
|
||||||
|
const res = await fetch(apiUrl, {
|
||||||
|
headers: { 'X-API-Key': API_KEY },
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!res.ok) {
|
||||||
|
throw new Error(`TTS Config HTTP ${res.status}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.json()
|
||||||
|
}
|
||||||
|
|||||||
@@ -9,4 +9,5 @@ export const CONVERT_URL = import.meta.env.VITE_CONVERT_URL || `${API_BASE_URL}/
|
|||||||
export const EXPORT_PDF_URL = import.meta.env.VITE_EXPORT_PDF_URL || '/v1/export/pdf'
|
export const EXPORT_PDF_URL = import.meta.env.VITE_EXPORT_PDF_URL || '/v1/export/pdf'
|
||||||
export const TTS_URL = import.meta.env.VITE_TTS_URL || `${API_BASE_URL}/v1/tts-asr/tts`
|
export const TTS_URL = import.meta.env.VITE_TTS_URL || `${API_BASE_URL}/v1/tts-asr/tts`
|
||||||
export const TTS_STATUS_URL = import.meta.env.VITE_TTS_STATUS_URL || `${API_BASE_URL}/v1/tts-asr/status`
|
export const TTS_STATUS_URL = import.meta.env.VITE_TTS_STATUS_URL || `${API_BASE_URL}/v1/tts-asr/status`
|
||||||
|
export const TTS_CONFIG_URL = import.meta.env.VITE_TTS_CONFIG_URL || `${API_BASE_URL}/v1/tts-asr/config`
|
||||||
export const API_KEY = import.meta.env.VITE_API_KEY || 'your-secret-key-here'
|
export const API_KEY = import.meta.env.VITE_API_KEY || 'your-secret-key-here'
|
||||||
|
|||||||
Reference in New Issue
Block a user