diff --git a/.gitignore b/.gitignore index 98a5585d..76a0865a 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,11 @@ yarn-error.log* *.log error-log-*.txt +# IDE +.vscode/* +!.vscode/settings.json +!.vscode/snippets.code-snippets + # Project dist/ dist-web/ @@ -23,7 +28,6 @@ docs/.vitepress/dist/ apps/cli/native/ .history/ out -.obskey release-config.json src/auto-imports.d.ts src/components.d.ts @@ -34,9 +38,7 @@ yarn.lock # AI .cursor -.vscode/* -!.vscode/settings.json -!.vscode/snippets.code-snippets +.antigravitycli .docs .playwright-mcp/ diff --git a/apps/desktop/preload/apis/utils.ts b/apps/desktop/preload/apis/utils.ts index 4932e7de..1fd079dd 100644 --- a/apps/desktop/preload/apis/utils.ts +++ b/apps/desktop/preload/apis/utils.ts @@ -77,6 +77,7 @@ export interface CacheInfo { export interface DataDirInfo { path: string + defaultPath?: string isCustom: boolean } diff --git a/apps/desktop/preload/index.d.ts b/apps/desktop/preload/index.d.ts index 8e8dfab8..c3d57ecc 100644 --- a/apps/desktop/preload/index.d.ts +++ b/apps/desktop/preload/index.d.ts @@ -890,6 +890,7 @@ interface CacheInfo { interface DataDirInfo { path: string + defaultPath?: string isCustom: boolean } diff --git a/src/assets/images/logo.svg b/src/assets/images/logo.svg new file mode 100644 index 00000000..1a89ebf1 --- /dev/null +++ b/src/assets/images/logo.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/components/common/Settings/ApiSettingsTab.vue b/src/components/common/Settings/ApiSettingsTab.vue index d9a532f6..efa10df0 100644 --- a/src/components/common/Settings/ApiSettingsTab.vue +++ b/src/components/common/Settings/ApiSettingsTab.vue @@ -1,9 +1,10 @@ + + diff --git a/src/pages/home/components/import/AutoSyncCard.vue b/src/pages/home/components/import/AutoSyncCard.vue new file mode 100644 index 00000000..5945315a --- /dev/null +++ b/src/pages/home/components/import/AutoSyncCard.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/pages/home/components/ChatSelector.vue b/src/pages/home/components/import/ChatSelector.vue similarity index 100% rename from src/pages/home/components/ChatSelector.vue rename to src/pages/home/components/import/ChatSelector.vue diff --git a/src/pages/home/components/FileListItem.vue b/src/pages/home/components/import/FileListItem.vue similarity index 100% rename from src/pages/home/components/FileListItem.vue rename to src/pages/home/components/import/FileListItem.vue diff --git a/src/pages/home/components/FormatSelectorModal.vue b/src/pages/home/components/import/FormatSelectorModal.vue similarity index 100% rename from src/pages/home/components/FormatSelectorModal.vue rename to src/pages/home/components/import/FormatSelectorModal.vue diff --git a/src/pages/home/components/ImportArea.vue b/src/pages/home/components/import/ImportArea.vue similarity index 95% rename from src/pages/home/components/ImportArea.vue rename to src/pages/home/components/import/ImportArea.vue index c4262b9b..5f30ff57 100644 --- a/src/pages/home/components/ImportArea.vue +++ b/src/pages/home/components/import/ImportArea.vue @@ -7,11 +7,9 @@ import { storeToRefs } from 'pinia' import { ref, computed } from 'vue' import { useRouter } from 'vue-router' import { useI18n } from 'vue-i18n' -import { getChatlabSiteLocalePath } from '@/utils/chatlabSiteLocale' import { useSessionStore, type BatchFileInfo, type MergeFileInfo } from '@/stores/session' import { useDataService, useImportService, useSessionIndexService, usePlatformService } from '@/services' import { IS_ELECTRON } from '@/utils/platform' -import DemoImportButton from './DemoImportButton.vue' import { getSessionGapThreshold } from '@/composables/useUiConfig' const { t } = useI18n() @@ -64,9 +62,6 @@ const router = useRouter() // 合并导入开关 const mergeImportEnabled = ref(false) -// 是否展示 Demo 按钮(仅无任何会话时) -const showDemoButton = computed(() => sessionStore.sessions.length === 0) - // 计算是否正在导入(单文件、批量或合并) const isAnyImporting = computed(() => isImporting.value || isBatchImporting.value || isMergeImporting.value) @@ -543,14 +538,6 @@ async function handleGoToSession(sessionId: string) { await navigateToSession(sessionId) } -// 教程链接:根据语言动态生成 -const tutorialUrl = computed(() => { - const { locale } = useI18n() - const localePath = getChatlabSiteLocalePath(locale.value) - const langPath = localePath ? `/${localePath}` : '' - return `https://chatlab.fun${langPath}/usage/how-to-export?utm_source=app` -}) - // 打开最新的导入日志文件 async function openLatestImportLog() { const result = await window.cacheApi.getLatestImportLog() @@ -637,7 +624,7 @@ const getMergeFileProgressText = (file: MergeFileInfo) =>