From cfae6027d23463db04e77749cf234ce1c71ec43c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Fri, 19 Jun 2026 12:19:03 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84:=20layout=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E5=B8=83=E5=B1=80=E6=8A=BD=E5=8F=96(strategy=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E6=9E=B6=E6=9E=84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新建 components/layout/AppSidebar.vue(289行): Logo/Nav/Footer/AI toggle/响应式768px折叠 - 新建 components/layout/AppLayout.vue(129行): shell容器+sidebar+main+AI Panel拖拽+3 slot(default/detached/ai-panel) - App.vue 546→179: 收敛应用初始化(主题/locale/迁移/dataChangedListener/Cmd+I) + slot填充router-view/AiChat + 根Toast 多角度分析: App.vue原含全局布局, 11 views只渲染内容(无跨view重复), 值得抽取(546行可清晰拆) strategy: 前端架构, layout全局布局抽取; scoped CSS按渲染归属拆三组件(hash一一对应零视觉差异); 填补空layout/目录(此前预留) --- src/App.vue | 399 ++------------------------- src/components/layout/AppLayout.vue | 129 +++++++++ src/components/layout/AppSidebar.vue | 289 +++++++++++++++++++ 3 files changed, 434 insertions(+), 383 deletions(-) create mode 100644 src/components/layout/AppLayout.vue create mode 100644 src/components/layout/AppSidebar.vue diff --git a/src/App.vue b/src/App.vue index 41e9f92..a2eec74 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,102 +1,24 @@