Commit e79e540b48be80fb08b67a99e64bede3816b2c9e
1 parent
69af37ec
perf(logo): optimize logo code
Showing
10 changed files
with
56 additions
and
46 deletions
package.json
@@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
4 | "scripts": { | 4 | "scripts": { |
5 | "bootstrap": "yarn install", | 5 | "bootstrap": "yarn install", |
6 | "serve": "esno ./build/script/preserve.ts && cross-env NODE_ENV=development vite", | 6 | "serve": "esno ./build/script/preserve.ts && cross-env NODE_ENV=development vite", |
7 | - "build": " rimraf dist && cross-env NODE_ENV=production vite build && esno ./build/script/postBuild.ts", | 7 | + "build": "cross-env NODE_ENV=production vite build && esno ./build/script/postBuild.ts", |
8 | "build:site": "cross-env SITE=true npm run build ", | 8 | "build:site": "cross-env SITE=true npm run build ", |
9 | "build:no-cache": "yarn clean:cache && npm run build", | 9 | "build:no-cache": "yarn clean:cache && npm run build", |
10 | "typecheck": "typecheck .", | 10 | "typecheck": "typecheck .", |
src/components/Breadcrumb/Breadcrumb.vue
@@ -73,7 +73,7 @@ | @@ -73,7 +73,7 @@ | ||
73 | 73 | ||
74 | &.is-link, | 74 | &.is-link, |
75 | a { | 75 | a { |
76 | - font-weight: 700; | 76 | + font-weight: 500; |
77 | color: @text-color-base; | 77 | color: @text-color-base; |
78 | text-decoration: none; | 78 | text-decoration: none; |
79 | transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); | 79 | transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); |
src/components/Menu/src/SearchInput.vue
@@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
48 | const searchClass = computed(() => { | 48 | const searchClass = computed(() => { |
49 | const cls: string[] = []; | 49 | const cls: string[] = []; |
50 | cls.push(props.theme ? `menu-search-input__search--${props.theme}` : ''); | 50 | cls.push(props.theme ? `menu-search-input__search--${props.theme}` : ''); |
51 | - // cls.push(props.collapsed ? 'hide-search-icon' : ''); | 51 | + cls.push(props.collapsed ? 'hide-search-icon' : ''); |
52 | return cls; | 52 | return cls; |
53 | }); | 53 | }); |
54 | 54 | ||
@@ -66,12 +66,13 @@ | @@ -66,12 +66,13 @@ | ||
66 | .menu-search-input { | 66 | .menu-search-input { |
67 | margin: 12px 8px; | 67 | margin: 12px 8px; |
68 | 68 | ||
69 | - // &.hide-search-icon { | ||
70 | - // .ant-input, | ||
71 | - // .ant-input-suffix { | ||
72 | - // opacity: 0; | ||
73 | - // } | ||
74 | - // } | 69 | + &.hide-search-icon { |
70 | + .ant-input, | ||
71 | + .ant-input-suffix { | ||
72 | + opacity: 0; | ||
73 | + transition: all 0.5s; | ||
74 | + } | ||
75 | + } | ||
75 | 76 | ||
76 | &__search--dark { | 77 | &__search--dark { |
77 | .ant-input-affix-wrapper, | 78 | .ant-input-affix-wrapper, |
src/layouts/Logo.vue
1 | <template> | 1 | <template> |
2 | - <div class="app-logo" @click="handleGoHome" :style="wrapStyle"> | 2 | + <div class="app-logo anticon" @click="handleGoHome" :style="wrapStyle"> |
3 | <img :src="logo" /> | 3 | <img :src="logo" /> |
4 | <div v-if="show" class="logo-title ml-2 ellipsis">{{ globSetting.title }}</div> | 4 | <div v-if="show" class="logo-title ml-2 ellipsis">{{ globSetting.title }}</div> |
5 | </div> | 5 | </div> |
@@ -79,14 +79,15 @@ | @@ -79,14 +79,15 @@ | ||
79 | align-items: center; | 79 | align-items: center; |
80 | padding-left: 16px; | 80 | padding-left: 16px; |
81 | cursor: pointer; | 81 | cursor: pointer; |
82 | - justify-content: center; | 82 | + // justify-content: center; |
83 | 83 | ||
84 | .logo-title { | 84 | .logo-title { |
85 | - display: none; | ||
86 | - font-size: 16px; | 85 | + font-size: 18px; |
87 | font-weight: 400; | 86 | font-weight: 400; |
87 | + opacity: 0; | ||
88 | + transition: all 0.5s; | ||
88 | .respond-to(medium,{ | 89 | .respond-to(medium,{ |
89 | - display: block; | 90 | + opacity: 1; |
90 | }); | 91 | }); |
91 | } | 92 | } |
92 | } | 93 | } |
src/layouts/default/LayoutMenu.tsx
@@ -196,7 +196,14 @@ export default defineComponent({ | @@ -196,7 +196,14 @@ export default defineComponent({ | ||
196 | return () => { | 196 | return () => { |
197 | const { | 197 | const { |
198 | showLogo, | 198 | showLogo, |
199 | - menuSetting: { type: menuType, mode, theme, collapsed, collapsedShowTitle }, | 199 | + menuSetting: { |
200 | + type: menuType, | ||
201 | + mode, | ||
202 | + theme, | ||
203 | + collapsed, | ||
204 | + collapsedShowTitle, | ||
205 | + collapsedShowSearch, | ||
206 | + }, | ||
200 | } = unref(getProjectConfigRef); | 207 | } = unref(getProjectConfigRef); |
201 | 208 | ||
202 | const isSidebarType = menuType === MenuTypeEnum.SIDEBAR; | 209 | const isSidebarType = menuType === MenuTypeEnum.SIDEBAR; |
@@ -212,7 +219,7 @@ export default defineComponent({ | @@ -212,7 +219,7 @@ export default defineComponent({ | ||
212 | collapsedShowTitle={collapsedShowTitle} | 219 | collapsedShowTitle={collapsedShowTitle} |
213 | theme={themeData} | 220 | theme={themeData} |
214 | showLogo={isShowLogo} | 221 | showLogo={isShowLogo} |
215 | - search={unref(showSearchRef) && !collapsed} | 222 | + search={unref(showSearchRef) && (collapsedShowSearch ? true : !collapsed)} |
216 | items={unref(menusRef)} | 223 | items={unref(menusRef)} |
217 | flatItems={unref(flatMenusRef)} | 224 | flatItems={unref(flatMenusRef)} |
218 | onClickSearchInput={handleClickSearchInput} | 225 | onClickSearchInput={handleClickSearchInput} |
@@ -222,10 +229,7 @@ export default defineComponent({ | @@ -222,10 +229,7 @@ export default defineComponent({ | ||
222 | {{ | 229 | {{ |
223 | header: () => | 230 | header: () => |
224 | isShowLogo && ( | 231 | isShowLogo && ( |
225 | - <Logo | ||
226 | - showTitle={!collapsed} | ||
227 | - class={[`layout-menu__logo`, collapsed ? 'justify-center' : '', themeData]} | ||
228 | - /> | 232 | + <Logo showTitle={!collapsed} class={[`layout-menu__logo`, themeData]} /> |
229 | ), | 233 | ), |
230 | }} | 234 | }} |
231 | </BasicMenu> | 235 | </BasicMenu> |
src/layouts/default/index.less
src/settings/projectSetting.ts
@@ -66,6 +66,8 @@ const setting: ProjectConfig = { | @@ -66,6 +66,8 @@ const setting: ProjectConfig = { | ||
66 | split: false, | 66 | split: false, |
67 | // ้กถ้จ่ๅๅธๅฑ | 67 | // ้กถ้จ่ๅๅธๅฑ |
68 | topMenuAlign: 'center', | 68 | topMenuAlign: 'center', |
69 | + // ๆๅ ่ๅๆถๅ้่ๆ็ดขๆก | ||
70 | + collapsedShowSearch: true, | ||
69 | }, | 71 | }, |
70 | // ๆถๆฏ้ ็ฝฎ | 72 | // ๆถๆฏ้ ็ฝฎ |
71 | messageSetting: { | 73 | messageSetting: { |
src/types/config.d.ts
@@ -21,6 +21,7 @@ export interface MenuSetting { | @@ -21,6 +21,7 @@ export interface MenuSetting { | ||
21 | type: MenuTypeEnum; | 21 | type: MenuTypeEnum; |
22 | theme: MenuThemeEnum; | 22 | theme: MenuThemeEnum; |
23 | topMenuAlign: 'start' | 'center' | 'end'; | 23 | topMenuAlign: 'start' | 'center' | 'end'; |
24 | + collapsedShowSearch: boolean; | ||
24 | } | 25 | } |
25 | 26 | ||
26 | export interface MultiTabsSetting { | 27 | export interface MultiTabsSetting { |
src/views/sys/login/Login.vue
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | <div class="login-form mx-6"> | 5 | <div class="login-form mx-6"> |
6 | <div class="login-form__content px-2 py-10"> | 6 | <div class="login-form__content px-2 py-10"> |
7 | <header> | 7 | <header> |
8 | - <img src="/@/assets/images/logo.png" class="mr-4" /> | 8 | + <img :src="logo" class="mr-4" /> |
9 | <h1>{{ title }}</h1> | 9 | <h1>{{ title }}</h1> |
10 | </header> | 10 | </header> |
11 | 11 | ||
@@ -74,6 +74,7 @@ | @@ -74,6 +74,7 @@ | ||
74 | // import { appStore } from '/@/store/modules/app'; | 74 | // import { appStore } from '/@/store/modules/app'; |
75 | import { useMessage } from '/@/hooks/web/useMessage'; | 75 | import { useMessage } from '/@/hooks/web/useMessage'; |
76 | import { useSetting } from '/@/hooks/core/useSetting'; | 76 | import { useSetting } from '/@/hooks/core/useSetting'; |
77 | + import logo from '/@/assets/images/logo.png'; | ||
77 | 78 | ||
78 | export default defineComponent({ | 79 | export default defineComponent({ |
79 | components: { | 80 | components: { |
@@ -149,6 +150,7 @@ | @@ -149,6 +150,7 @@ | ||
149 | autoLogin: autoLoginRef, | 150 | autoLogin: autoLoginRef, |
150 | // openLoginVerify: openLoginVerifyRef, | 151 | // openLoginVerify: openLoginVerifyRef, |
151 | title: globSetting && globSetting.title, | 152 | title: globSetting && globSetting.title, |
153 | + logo, | ||
152 | }; | 154 | }; |
153 | }, | 155 | }, |
154 | }); | 156 | }); |
yarn.lock
@@ -3331,9 +3331,9 @@ es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1: | @@ -3331,9 +3331,9 @@ es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1: | ||
3331 | string.prototype.trimstart "^1.0.1" | 3331 | string.prototype.trimstart "^1.0.1" |
3332 | 3332 | ||
3333 | es-module-lexer@^0.3.25: | 3333 | es-module-lexer@^0.3.25: |
3334 | - version "0.3.25" | ||
3335 | - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.25.tgz#24a1abcb9c5dc96923a8e42be033b801f788de06" | ||
3336 | - integrity sha512-H9VoFD5H9zEfiOX2LeTWDwMvAbLqcAyA2PIb40TOAvGpScOjit02oTGWgIh+M0rx2eJOKyJVM9wtpKFVgnyC3A== | 3334 | + version "0.3.26" |
3335 | + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.26.tgz#7b507044e97d5b03b01d4392c74ffeb9c177a83b" | ||
3336 | + integrity sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA== | ||
3337 | 3337 | ||
3338 | es-to-primitive@^1.2.1: | 3338 | es-to-primitive@^1.2.1: |
3339 | version "1.2.1" | 3339 | version "1.2.1" |
@@ -3354,11 +3354,16 @@ esbuild-register@^1.1.0: | @@ -3354,11 +3354,16 @@ esbuild-register@^1.1.0: | ||
3354 | source-map-support "^0.5.19" | 3354 | source-map-support "^0.5.19" |
3355 | strip-json-comments "^3.1.1" | 3355 | strip-json-comments "^3.1.1" |
3356 | 3356 | ||
3357 | -esbuild@^0.7.17, esbuild@^0.7.19, esbuild@^0.7.21: | 3357 | +esbuild@^0.7.17, esbuild@^0.7.19: |
3358 | version "0.7.21" | 3358 | version "0.7.21" |
3359 | resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.7.21.tgz#e93f9d7e673cd5fcab2aab7774d489a0f680d657" | 3359 | resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.7.21.tgz#e93f9d7e673cd5fcab2aab7774d489a0f680d657" |
3360 | integrity sha512-qEnJdj+6Mdpt5kZwwCqO6PDNXSHNDDOPbnF4pduS3nub1v5GfgZfi8ysZ2DN4Q65WWgx6hz1a237ZETEHZpR0Q== | 3360 | integrity sha512-qEnJdj+6Mdpt5kZwwCqO6PDNXSHNDDOPbnF4pduS3nub1v5GfgZfi8ysZ2DN4Q65WWgx6hz1a237ZETEHZpR0Q== |
3361 | 3361 | ||
3362 | +esbuild@^0.7.21: | ||
3363 | + version "0.7.22" | ||
3364 | + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.7.22.tgz#9149b903f8128b7c45a754046c24199d76bbe08e" | ||
3365 | + integrity sha512-B43SYg8LGWYTCv9Gs0RnuLNwjzpuWOoCaZHTWEDEf5AfrnuDMerPVMdCEu7xOdhFvQ+UqfP2MGU9lxEy0JzccA== | ||
3366 | + | ||
3362 | escalade@^3.1.0, escalade@^3.1.1: | 3367 | escalade@^3.1.0, escalade@^3.1.1: |
3363 | version "3.1.1" | 3368 | version "3.1.1" |
3364 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" | 3369 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" |
@@ -3557,22 +3562,7 @@ eventemitter3@^4.0.0: | @@ -3557,22 +3562,7 @@ eventemitter3@^4.0.0: | ||
3557 | resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" | 3562 | resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" |
3558 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== | 3563 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== |
3559 | 3564 | ||
3560 | -execa@^4.0.3: | ||
3561 | - version "4.0.3" | ||
3562 | - resolved "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" | ||
3563 | - integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== | ||
3564 | - dependencies: | ||
3565 | - cross-spawn "^7.0.0" | ||
3566 | - get-stream "^5.0.0" | ||
3567 | - human-signals "^1.1.1" | ||
3568 | - is-stream "^2.0.0" | ||
3569 | - merge-stream "^2.0.0" | ||
3570 | - npm-run-path "^4.0.0" | ||
3571 | - onetime "^5.1.0" | ||
3572 | - signal-exit "^3.0.2" | ||
3573 | - strip-final-newline "^2.0.0" | ||
3574 | - | ||
3575 | -execa@^4.1.0: | 3565 | +execa@^4.0.3, execa@^4.1.0: |
3576 | version "4.1.0" | 3566 | version "4.1.0" |
3577 | resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" | 3567 | resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" |
3578 | integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== | 3568 | integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== |
@@ -4830,7 +4820,7 @@ jest-worker@^24.9.0: | @@ -4830,7 +4820,7 @@ jest-worker@^24.9.0: | ||
4830 | merge-stream "^2.0.0" | 4820 | merge-stream "^2.0.0" |
4831 | supports-color "^6.1.0" | 4821 | supports-color "^6.1.0" |
4832 | 4822 | ||
4833 | -jest-worker@^26.0.0, jest-worker@^26.2.1: | 4823 | +jest-worker@^26.0.0: |
4834 | version "26.6.1" | 4824 | version "26.6.1" |
4835 | resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.1.tgz#c2ae8cde6802cc14056043f997469ec170d9c32a" | 4825 | resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.1.tgz#c2ae8cde6802cc14056043f997469ec170d9c32a" |
4836 | integrity sha512-R5IE3qSGz+QynJx8y+ICEkdI2OJ3RJjRQVEyCcFAd3yVhQSEtquziPO29Mlzgn07LOVE8u8jhJ1FqcwegiXWOw== | 4826 | integrity sha512-R5IE3qSGz+QynJx8y+ICEkdI2OJ3RJjRQVEyCcFAd3yVhQSEtquziPO29Mlzgn07LOVE8u8jhJ1FqcwegiXWOw== |
@@ -4839,6 +4829,15 @@ jest-worker@^26.0.0, jest-worker@^26.2.1: | @@ -4839,6 +4829,15 @@ jest-worker@^26.0.0, jest-worker@^26.2.1: | ||
4839 | merge-stream "^2.0.0" | 4829 | merge-stream "^2.0.0" |
4840 | supports-color "^7.0.0" | 4830 | supports-color "^7.0.0" |
4841 | 4831 | ||
4832 | +jest-worker@^26.2.1: | ||
4833 | + version "26.6.2" | ||
4834 | + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" | ||
4835 | + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== | ||
4836 | + dependencies: | ||
4837 | + "@types/node" "*" | ||
4838 | + merge-stream "^2.0.0" | ||
4839 | + supports-color "^7.0.0" | ||
4840 | + | ||
4842 | joycon@^2.2.5: | 4841 | joycon@^2.2.5: |
4843 | version "2.2.5" | 4842 | version "2.2.5" |
4844 | resolved "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615" | 4843 | resolved "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615" |
@@ -6902,9 +6901,9 @@ rollup-plugin-visualizer@^4.1.2: | @@ -6902,9 +6901,9 @@ rollup-plugin-visualizer@^4.1.2: | ||
6902 | yargs "^16.0.3" | 6901 | yargs "^16.0.3" |
6903 | 6902 | ||
6904 | rollup-plugin-vue@^6.0.0-beta.10: | 6903 | rollup-plugin-vue@^6.0.0-beta.10: |
6905 | - version "6.0.0-beta.10" | ||
6906 | - resolved "https://registry.npmjs.org/rollup-plugin-vue/-/rollup-plugin-vue-6.0.0-beta.10.tgz#66d9b9a8dd2d085267d1cc398ea0113360879ac1" | ||
6907 | - integrity sha512-8TZJmROiSRjWoHRR6id0/ktOBOUGuI302xDBq4YBiA/tnnXdoY3oFGtvRWzT5ldX0jTJ8QX40rrJOw2SvcWwxQ== | 6904 | + version "6.0.0-beta.11" |
6905 | + resolved "https://registry.npmjs.org/rollup-plugin-vue/-/rollup-plugin-vue-6.0.0-beta.11.tgz#fdbc6b7484a361ef8c5e8009cef4a6bd45435013" | ||
6906 | + integrity sha512-osqLkFc7N76TOI0CeW0BOujlMFsMIoytyTRVUivaeYSMponNfk1iSuqyoeciUB3EjFqyL/dTTFPi+7rhaAm73w== | ||
6908 | dependencies: | 6907 | dependencies: |
6909 | debug "^4.1.1" | 6908 | debug "^4.1.1" |
6910 | hash-sum "^2.0.0" | 6909 | hash-sum "^2.0.0" |