From 10920dc32c968e0464bfa08e87ce256f689c9c6d Mon Sep 17 00:00:00 2001 From: Quicy <1728550853@qq.com> Date: Thu, 15 Jan 2026 11:18:29 +0800 Subject: [PATCH] build: add gen-entry.ts --- package.json | 3 +- packages/ui/components.json | 10 ++-- packages/ui/scripts/gen-entry.ts | 43 ++++++++++++++ .../components/collapsible/Collapsible.vue | 19 ++++++ .../collapsible/CollapsibleContent.vue | 15 +++++ .../collapsible/CollapsibleTrigger.vue | 15 +++++ .../ui/src/components/collapsible/index.ts | 3 + packages/ui/src/index.ts | 59 +++++++++---------- .../src/components/MainContainer/index.vue | 12 ++-- packages/web/src/components/Sidebar/index.vue | 19 +++--- packages/web/src/layout/mainLayout/index.vue | 9 ++- 11 files changed, 154 insertions(+), 53 deletions(-) create mode 100644 packages/ui/scripts/gen-entry.ts create mode 100644 packages/ui/src/components/collapsible/Collapsible.vue create mode 100644 packages/ui/src/components/collapsible/CollapsibleContent.vue create mode 100644 packages/ui/src/components/collapsible/CollapsibleTrigger.vue create mode 100644 packages/ui/src/components/collapsible/index.ts diff --git a/package.json b/package.json index 147ac39e..7b1894c3 100644 --- a/package.json +++ b/package.json @@ -38,5 +38,6 @@ "@algolia/client-search" ] } - } + }, + "packageManager": "pnpm@10.15.1+sha512.34e538c329b5553014ca8e8f4535997f96180a1d0f614339357449935350d924e22f8614682191264ec33d1462ac21561aff97f6bb18065351c162c7e8f6de67" } diff --git a/packages/ui/components.json b/packages/ui/components.json index 56f749c0..7ec80584 100644 --- a/packages/ui/components.json +++ b/packages/ui/components.json @@ -10,11 +10,11 @@ "prefix": "" }, "aliases": { - "components": "@/components", - "composables": "@/composables", - "utils": "@/lib/utils", - "ui": "@/components", - "lib": "@/lib" + "components": "src/components", + "composables": "src/composables", + "utils": "src/lib/utils", + "ui": "src/components", + "lib": "src/lib" }, "iconLibrary": "lucide" } diff --git a/packages/ui/scripts/gen-entry.ts b/packages/ui/scripts/gen-entry.ts new file mode 100644 index 00000000..20ba008a --- /dev/null +++ b/packages/ui/scripts/gen-entry.ts @@ -0,0 +1,43 @@ +import fs from 'fs' +import path from 'path' + +const rootDir = path.resolve(import.meta.dirname, '../src') +const readDir = path.resolve(rootDir, './components') +const outputDir = path.resolve(rootDir, './index.ts') + +async function readDirName(){ + const pathList:Awaited = await new Promise((resolve, reject) => { + fs.readdir(readDir, (err, data) => { + if (err) { + reject(err) + } + resolve(data) + }) + }) + return pathList +} + +async function writeExportFile(pathList: string[]) { + const pathListStr = pathList.map(fileName => { + return `export * from './components/${fileName}/index'` + }) + await new Promise((resolve, reject) => { + fs.writeFile(outputDir, pathListStr.join('\r\n'), (err) => { + if (err) { + reject(err) + } + resolve(undefined) + }) + }) +} + +async function generate() { + try { + const list = await readDirName() + writeExportFile(list) + } catch(error) { + console.error(error) + } +} + +generate() \ No newline at end of file diff --git a/packages/ui/src/components/collapsible/Collapsible.vue b/packages/ui/src/components/collapsible/Collapsible.vue new file mode 100644 index 00000000..70a94978 --- /dev/null +++ b/packages/ui/src/components/collapsible/Collapsible.vue @@ -0,0 +1,19 @@ + + + diff --git a/packages/ui/src/components/collapsible/CollapsibleContent.vue b/packages/ui/src/components/collapsible/CollapsibleContent.vue new file mode 100644 index 00000000..8be0a113 --- /dev/null +++ b/packages/ui/src/components/collapsible/CollapsibleContent.vue @@ -0,0 +1,15 @@ + + + diff --git a/packages/ui/src/components/collapsible/CollapsibleTrigger.vue b/packages/ui/src/components/collapsible/CollapsibleTrigger.vue new file mode 100644 index 00000000..33bec783 --- /dev/null +++ b/packages/ui/src/components/collapsible/CollapsibleTrigger.vue @@ -0,0 +1,15 @@ + + + diff --git a/packages/ui/src/components/collapsible/index.ts b/packages/ui/src/components/collapsible/index.ts new file mode 100644 index 00000000..abab9567 --- /dev/null +++ b/packages/ui/src/components/collapsible/index.ts @@ -0,0 +1,3 @@ +export { default as Collapsible } from './Collapsible.vue' +export { default as CollapsibleContent } from './CollapsibleContent.vue' +export { default as CollapsibleTrigger } from './CollapsibleTrigger.vue' diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index 844d1c1e..73f1c672 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -1,30 +1,29 @@ -// Generated by scripts/gen-entry.ts. Do not edit manually. - -export * from './components/alert/index' -export * from './components/avatar/index' -export * from './components/badge/index' -export * from './components/button/index' -export * from './components/button-group/index' -export * from './components/card/index' -export * from './components/checkbox/index' -export * from './components/combobox/index' -export * from './components/context-menu/index' -export * from './components/dialog/index' -export * from './components/dropdown-menu/index' -export * from './components/input/index' -export * from './components/input-group/index' -export * from './components/kbd/index' -export * from './components/label/index' -export * from './components/radio-group/index' -export * from './components/select/index' -export * from './components/separator/index' -export * from './components/sheet/index' -export * from './components/sidebar/index' -export * from './components/skeleton/index' -export * from './components/slider/index' -export * from './components/sonner/index' -export * from './components/spinner/index' -export * from './components/switch/index' -export * from './components/tabs/index' -export * from './components/textarea/index' -export * from './components/tooltip/index' +export * from './components/alert/index' +export * from './components/avatar/index' +export * from './components/badge/index' +export * from './components/button/index' +export * from './components/button-group/index' +export * from './components/card/index' +export * from './components/checkbox/index' +export * from './components/collapsible/index' +export * from './components/combobox/index' +export * from './components/context-menu/index' +export * from './components/dialog/index' +export * from './components/dropdown-menu/index' +export * from './components/input/index' +export * from './components/input-group/index' +export * from './components/kbd/index' +export * from './components/label/index' +export * from './components/radio-group/index' +export * from './components/select/index' +export * from './components/separator/index' +export * from './components/sheet/index' +export * from './components/sidebar/index' +export * from './components/skeleton/index' +export * from './components/slider/index' +export * from './components/sonner/index' +export * from './components/spinner/index' +export * from './components/switch/index' +export * from './components/tabs/index' +export * from './components/textarea/index' +export * from './components/tooltip/index' \ No newline at end of file diff --git a/packages/web/src/components/MainContainer/index.vue b/packages/web/src/components/MainContainer/index.vue index a9fec0ce..966c6870 100644 --- a/packages/web/src/components/MainContainer/index.vue +++ b/packages/web/src/components/MainContainer/index.vue @@ -1,13 +1,15 @@ \ No newline at end of file diff --git a/packages/web/src/components/Sidebar/index.vue b/packages/web/src/components/Sidebar/index.vue index b35b2818..205fbb00 100644 --- a/packages/web/src/components/Sidebar/index.vue +++ b/packages/web/src/components/Sidebar/index.vue @@ -30,7 +30,7 @@ - + 对话操作 @@ -39,17 +39,15 @@ v-for="sidebarItem in sidebarInfo" :key="sidebarItem.title" > - -
+ + {{ sidebarItem.title }} -
-
+ +
@@ -74,11 +72,12 @@ import { SidebarMenuButton, SidebarMenuItem, SidebarProvider, - SidebarRail, + SidebarRail, + } from '@memoh/ui' import { reactive, inject } from 'vue' import SvgIcon from '@jamescoyle/vue-icon' -import { mdiCogOutline, mdiChatOutline, mdiCogBox, mdiListBox } from '@mdi/js' +import { mdiRobot, mdiChatOutline, mdiCogBox, mdiListBox } from '@mdi/js' const open=inject('sideBarIsOpen') @@ -90,7 +89,7 @@ const sidebarInfo = reactive([{ }, { title: '模型配置', path: '/', - icon: mdiCogOutline + icon: mdiRobot }, { title: '环境设置', path: '/', diff --git a/packages/web/src/layout/mainLayout/index.vue b/packages/web/src/layout/mainLayout/index.vue index a55a2a25..b199dad9 100644 --- a/packages/web/src/layout/mainLayout/index.vue +++ b/packages/web/src/layout/mainLayout/index.vue @@ -1,7 +1,12 @@ +