From 7a7e58b3ee0e5e483e22398d36fa16d2a6869263 Mon Sep 17 00:00:00 2001 From: MangoFanFanw Date: Fri, 27 Mar 2026 22:50:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=90=AF=E5=8A=A8=E5=8F=B0?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E5=AE=9E=E7=8E=B0=E9=A1=B9=E7=9B=AE=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/components.d.ts | 2 + src/renderer/src/CodeLaunchpadApp.vue | 7 +++ .../components-code-launchpad/ProjectCard.vue | 39 ++++++++++++++ .../src/pages-code-launchpad/Projects.vue | 54 +++++++++++++++++-- src/renderer/src/stores.ts | 16 ++++++ 5 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 src/renderer/src/components-code-launchpad/ProjectCard.vue diff --git a/src/renderer/components.d.ts b/src/renderer/components.d.ts index 3e56ff1..ac454ba 100644 --- a/src/renderer/components.d.ts +++ b/src/renderer/components.d.ts @@ -18,9 +18,11 @@ declare module 'vue' { DetectedIDECardList: typeof import('./src/components/DetectedIDECardList.vue')['default'] NAlert: typeof import('naive-ui')['NAlert'] NButton: typeof import('naive-ui')['NButton'] + NButtonGroup: typeof import('naive-ui')['NButtonGroup'] NCard: typeof import('naive-ui')['NCard'] NCode: typeof import('naive-ui')['NCode'] NConfigProvider: typeof import('naive-ui')['NConfigProvider'] + NEllipsis: typeof import('naive-ui')['NEllipsis'] NEmpty: typeof import('naive-ui')['NEmpty'] NFlex: typeof import('naive-ui')['NFlex'] NFloatButton: typeof import('naive-ui')['NFloatButton'] diff --git a/src/renderer/src/CodeLaunchpadApp.vue b/src/renderer/src/CodeLaunchpadApp.vue index b80faad..de601d0 100644 --- a/src/renderer/src/CodeLaunchpadApp.vue +++ b/src/renderer/src/CodeLaunchpadApp.vue @@ -25,6 +25,7 @@ function handleUpdateValue(key: string): void {
div.codeLaunchpad-container { display: flex; + flex: 0 1; flex-direction: column; overflow: hidden; width: 100vw; height: 100vh; + + .codeLaunchpad-menu { + height: 40px; + min-height: 40px; + } } diff --git a/src/renderer/src/components-code-launchpad/ProjectCard.vue b/src/renderer/src/components-code-launchpad/ProjectCard.vue new file mode 100644 index 0000000..678476c --- /dev/null +++ b/src/renderer/src/components-code-launchpad/ProjectCard.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/src/renderer/src/pages-code-launchpad/Projects.vue b/src/renderer/src/pages-code-launchpad/Projects.vue index d879ed0..bf3687d 100644 --- a/src/renderer/src/pages-code-launchpad/Projects.vue +++ b/src/renderer/src/pages-code-launchpad/Projects.vue @@ -1,5 +1,53 @@ - + + + + + diff --git a/src/renderer/src/stores.ts b/src/renderer/src/stores.ts index 059d6f5..0bd93d5 100644 --- a/src/renderer/src/stores.ts +++ b/src/renderer/src/stores.ts @@ -7,6 +7,7 @@ import type { keyboardShortcut, screenPosition } from '@my-type/settings' +import { IdeProjectDto } from '@my-type/ide-projects' export const useSettings = defineStore('settings', () => { const isStayInTray = ref(false) @@ -101,3 +102,18 @@ export const useIDEs = defineStore('IDEs', () => { return { ides, versions, getIDEs, checkIDEs, getVersions, checkVersions } }) + +export const useProjects = defineStore('projects', () => { + const vscodeProjects = ref([]) + const jetBrainsProjects = ref([]) + + async function getVSCodeProjects(): Promise { + vscodeProjects.value = await window.codeLaunchpad._getVSCodeProjects() + } + + async function getJetBrainsProjects(): Promise { + jetBrainsProjects.value = await window.codeLaunchpad._getJetBrainsProjects() + } + + return { vscodeProjects, jetBrainsProjects, getVSCodeProjects, getJetBrainsProjects } +})