From 2fe9543b84504db26c2b6abfe97cb63f2bc2c3fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=87=AF=E9=BE=99?= <502431556@qq.com> Date: Thu, 13 Jan 2022 17:26:06 +0800 Subject: [PATCH] wip(Layout): Layout developing --- pnpm-lock.yaml | 38 ++++++++---- src/App.vue | 1 + src/assets/imgs/avatar.png | Bin 0 -> 4097 bytes src/components/Breadcrumb/index.ts | 3 + src/components/Breadcrumb/src/Breadcrumb.vue | 0 src/components/Collapse/index.ts | 3 + src/components/Collapse/src/Collapse.vue | 25 ++++++++ .../LocaleDropdown/src/LocaleDropdown.vue | 1 + src/components/Menu/src/Menu.vue | 56 +++++++++++++++++- .../Menu/src/components/useRenderMenuItem.tsx | 21 +++++-- .../src/components/useRenderMenuTitle.tsx | 4 +- src/components/Screenfull/index.ts | 3 + src/components/Screenfull/src/Screenfull.vue | 16 +++++ .../SizeDropdown/src/SizeDropdown.vue | 7 ++- src/components/UserInfo/index.ts | 3 + src/components/UserInfo/src/UserInfo.vue | 46 ++++++++++++++ src/layout/Layout.vue | 32 +++++++++- src/locales/en.ts | 8 ++- src/locales/zh-CN.ts | 8 ++- src/router/index.ts | 17 ++++++ src/styles/var.css | 8 ++- src/utils/color.ts | 4 -- src/utils/index.ts | 4 ++ src/utils/routerHelper.ts | 3 +- src/views/Level/Menu111.vue | 2 +- src/views/Level/Menu12.vue | 2 +- src/views/Level/Menu2.vue | 2 +- 27 files changed, 282 insertions(+), 35 deletions(-) create mode 100644 src/assets/imgs/avatar.png create mode 100644 src/components/Breadcrumb/index.ts create mode 100644 src/components/Breadcrumb/src/Breadcrumb.vue create mode 100644 src/components/Collapse/index.ts create mode 100644 src/components/Collapse/src/Collapse.vue create mode 100644 src/components/Screenfull/index.ts create mode 100644 src/components/Screenfull/src/Screenfull.vue create mode 100644 src/components/UserInfo/index.ts create mode 100644 src/components/UserInfo/src/UserInfo.vue diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e22aee1..44987e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,6 +41,7 @@ specifiers: pretty-quick: ^3.1.3 qs: ^6.10.3 rimraf: ^3.0.2 + screenfull: ^6.0.0 stylelint: ^14.2.0 stylelint-config-html: ^1.0.0 stylelint-config-prettier: ^9.0.3 @@ -75,6 +76,7 @@ dependencies: nprogress: registry.npmmirror.com/nprogress/0.2.0 pinia: registry.npmmirror.com/pinia/2.0.9_typescript@4.5.4+vue@3.2.26 qs: registry.npmmirror.com/qs/6.10.3 + screenfull: registry.npmmirror.com/screenfull/6.0.0 vue: registry.npmmirror.com/vue/3.2.26 vue-i18n: registry.npmmirror.com/vue-i18n/9.1.9_vue@3.2.26 vue-router: registry.npmmirror.com/vue-router/4.0.12_vue@3.2.26 @@ -7064,8 +7066,8 @@ packages: vue-i18n: optional: true dependencies: - '@intlify/message-compiler': registry.npmmirror.com/@intlify/message-compiler/9.2.0-beta.26 - '@intlify/shared': registry.npmmirror.com/@intlify/shared/9.2.0-beta.26 + '@intlify/message-compiler': registry.npmmirror.com/@intlify/message-compiler/9.2.0-beta.27 + '@intlify/shared': registry.npmmirror.com/@intlify/shared/9.2.0-beta.27 jsonc-eslint-parser: registry.npmmirror.com/jsonc-eslint-parser/1.4.1 source-map: registry.nlark.com/source-map/0.6.1 vue-i18n: registry.npmmirror.com/vue-i18n/9.1.9_vue@3.2.26 @@ -7121,18 +7123,18 @@ packages: source-map: registry.nlark.com/source-map/0.6.1 dev: false - registry.npmmirror.com/@intlify/message-compiler/9.2.0-beta.26: + registry.npmmirror.com/@intlify/message-compiler/9.2.0-beta.27: resolution: { - integrity: sha512-qtDgHCMqrXNTekKXGzm0Dm6r3+/X7/jFXP+E07hx+PJbPMv7DzK1iU8h5LlAMQ1/jr2UIRBgXvR5wh35OKoGrA==, + integrity: sha512-T3mBTm0559VX6l+lh8p5gDJ9/IS1XbVXeeMNJ2zTzxrf4lXg8OuotNjaxG3ZsuauQ5OqqlArkMYryXGyZnHolA==, registry: https://registry.npm.taobao.org/, - tarball: https://registry.npmmirror.com/@intlify/message-compiler/download/@intlify/message-compiler-9.2.0-beta.26.tgz + tarball: https://registry.npmmirror.com/@intlify/message-compiler/download/@intlify/message-compiler-9.2.0-beta.27.tgz } name: '@intlify/message-compiler' - version: 9.2.0-beta.26 + version: 9.2.0-beta.27 engines: { node: '>= 12' } dependencies: - '@intlify/shared': registry.npmmirror.com/@intlify/shared/9.2.0-beta.26 + '@intlify/shared': registry.npmmirror.com/@intlify/shared/9.2.0-beta.27 source-map: registry.nlark.com/source-map/0.6.1 dev: true @@ -7176,15 +7178,15 @@ packages: engines: { node: '>= 10' } dev: false - registry.npmmirror.com/@intlify/shared/9.2.0-beta.26: + registry.npmmirror.com/@intlify/shared/9.2.0-beta.27: resolution: { - integrity: sha512-MjUlkjNThqkqy8yXUcFKBiW/hIfqAn5cP3Vd0b4wdOHS8rPCEbvSbAnF08uiZDkVv8gTcsLyymX21GaU6oYyyQ==, + integrity: sha512-+Av77mIHy0qFkAq96mMAQGYcColMGN7e5+rUsyn3XxBw6oC3AGqYn/cQ6U/T3qOrzcHgcA+etAaLN3IxFqkJDw==, registry: https://registry.npm.taobao.org/, - tarball: https://registry.npmmirror.com/@intlify/shared/download/@intlify/shared-9.2.0-beta.26.tgz + tarball: https://registry.npmmirror.com/@intlify/shared/download/@intlify/shared-9.2.0-beta.27.tgz } name: '@intlify/shared' - version: 9.2.0-beta.26 + version: 9.2.0-beta.27 engines: { node: '>= 12' } dev: true @@ -7210,7 +7212,7 @@ packages: optional: true dependencies: '@intlify/bundle-utils': registry.npmmirror.com/@intlify/bundle-utils/2.2.0_vue-i18n@9.1.9 - '@intlify/shared': registry.npmmirror.com/@intlify/shared/9.2.0-beta.26 + '@intlify/shared': registry.npmmirror.com/@intlify/shared/9.2.0-beta.27 '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/4.1.2 debug: registry.npmmirror.com/debug/4.3.3 fast-glob: registry.nlark.com/fast-glob/3.2.7 @@ -11607,6 +11609,18 @@ packages: tslib: registry.npmmirror.com/tslib/2.3.1 dev: true + registry.npmmirror.com/screenfull/6.0.0: + resolution: + { + integrity: sha512-LGY0nhNQkC4FX4DT4pZdJ5cZH5EOz9Gfh9KcVMl779pS677k4IV1Wv7sY/CwC9VKFT21fYgCh7zkTVVefi5XKA==, + registry: https://registry.npm.taobao.org/, + tarball: https://registry.npmmirror.com/screenfull/download/screenfull-6.0.0.tgz + } + name: screenfull + version: 6.0.0 + engines: { node: ^14.13.1 || >=16.0.0 } + dev: false + registry.npmmirror.com/shebang-regex/3.0.0: resolution: { diff --git a/src/App.vue b/src/App.vue index 02a009d..f19df4d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -32,6 +32,7 @@ html, body { padding: 0; margin: 0; + overflow: hidden; .size; #app { diff --git a/src/assets/imgs/avatar.png b/src/assets/imgs/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..e16488e4534d25626ac002e04ce9c64cd834ade2 GIT binary patch literal 4097 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 +import { computed, unref } from 'vue' +import { Icon } from '@/components/Icon' +import { useAppStore } from '@/store/modules/app' + +const appStore = useAppStore() + +const collapse = computed(() => appStore.getCollapse) + +function toggleCollapse() { + const collapsed = unref(collapse) + appStore.setCollapse(!collapsed) +} + + + diff --git a/src/components/LocaleDropdown/src/LocaleDropdown.vue b/src/components/LocaleDropdown/src/LocaleDropdown.vue index bc80259..2f350fc 100644 --- a/src/components/LocaleDropdown/src/LocaleDropdown.vue +++ b/src/components/LocaleDropdown/src/LocaleDropdown.vue @@ -25,6 +25,7 @@ function setLang(lang: LocaleType) {