From ecb78e598284100aa28fe20f6bae1f06c18f2383 Mon Sep 17 00:00:00 2001 From: FalingCliff Date: Sun, 15 Jun 2025 13:58:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84AdminLayout=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E7=BB=84=E4=BB=B6=EF=BC=8C=E6=8B=86=E5=88=86=E4=B8=BA?= =?UTF-8?q?=E7=8B=AC=E7=AB=8B=E5=AD=90=E7=BB=84=E4=BB=B6=E5=B9=B6=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E5=85=A8=E6=96=B0=E5=AF=BC=E8=88=AA=E4=BD=93=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 + pnpm-lock.yaml | 16 + src/components.d.ts | 1 + src/components/layout/AdminLayout.vue | 543 ++------------------------ src/components/layout/FooterBar.vue | 3 +- src/components/layout/HeaderNav.vue | 46 +-- src/components/layout/MainContent.vue | 71 +++- src/components/layout/SideMenu.vue | 195 ++++++--- src/components/layout/TabsBar.vue | 248 ++++++++++++ src/views/dashboard/index.vue | 0 src/views/error/404.vue | 0 src/views/login/index.vue | 0 src/views/system/menu/index.vue | 0 src/views/system/role/index.vue | 504 ++++++++++++++++++++++++ src/views/system/user/index.vue | 431 ++++++++++++++++++++ 15 files changed, 1453 insertions(+), 607 deletions(-) create mode 100644 src/components/layout/TabsBar.vue create mode 100644 src/views/dashboard/index.vue create mode 100644 src/views/error/404.vue create mode 100644 src/views/login/index.vue create mode 100644 src/views/system/menu/index.vue create mode 100644 src/views/system/role/index.vue create mode 100644 src/views/system/user/index.vue diff --git a/package.json b/package.json index 8648708..1b04b77 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,10 @@ }, "dependencies": { "@ant-design/icons-vue": "^7.0.1", + "@types/nprogress": "^0.2.3", "ant-design-vue": "^4.2.6", "echarts": "^5.6.0", + "nprogress": "^0.2.0", "pinia": "^3.0.1", "vue": "^3.5.13", "vue-router": "^4.5.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0e55110..77c5e5f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,12 +11,18 @@ importers: '@ant-design/icons-vue': specifier: ^7.0.1 version: 7.0.1(vue@3.5.16(typescript@5.8.3)) + '@types/nprogress': + specifier: ^0.2.3 + version: 0.2.3 ant-design-vue: specifier: ^4.2.6 version: 4.2.6(vue@3.5.16(typescript@5.8.3)) echarts: specifier: ^5.6.0 version: 5.6.0 + nprogress: + specifier: ^0.2.0 + version: 0.2.0 pinia: specifier: ^3.0.1 version: 3.0.3(typescript@5.8.3)(vue@3.5.16(typescript@5.8.3)) @@ -750,6 +756,9 @@ packages: '@types/node@22.15.31': resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} + '@types/nprogress@0.2.3': + resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} + '@types/tough-cookie@4.0.5': resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} @@ -1743,6 +1752,9 @@ packages: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -2945,6 +2957,8 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/nprogress@0.2.3': {} + '@types/tough-cookie@4.0.5': {} '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': @@ -4042,6 +4056,8 @@ snapshots: path-key: 4.0.0 unicorn-magic: 0.3.0 + nprogress@0.2.0: {} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 diff --git a/src/components.d.ts b/src/components.d.ts index 8160ece..faa543c 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -18,6 +18,7 @@ declare module 'vue' { RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] SideMenu: typeof import('./components/layout/SideMenu.vue')['default'] + TabsBar: typeof import('./components/layout/TabsBar.vue')['default'] YourComponent: typeof import('./components/YourComponent.vue')['default'] } } diff --git a/src/components/layout/AdminLayout.vue b/src/components/layout/AdminLayout.vue index eb24920..bd2469e 100644 --- a/src/components/layout/AdminLayout.vue +++ b/src/components/layout/AdminLayout.vue @@ -1,363 +1,50 @@ diff --git a/src/components/layout/FooterBar.vue b/src/components/layout/FooterBar.vue index 658fce8..e225ef1 100644 --- a/src/components/layout/FooterBar.vue +++ b/src/components/layout/FooterBar.vue @@ -2,7 +2,7 @@