Commit 41d79008c55c96a5aeda5bb2a23d70575fc41333
1 parent
0692b479
refactor: refactor setting
Showing
20 changed files
with
239 additions
and
174 deletions
CHANGELOG.zh_CN.md
@@ -3,6 +3,7 @@ | @@ -3,6 +3,7 @@ | ||
3 | ### ✨ Refactor | 3 | ### ✨ Refactor |
4 | 4 | ||
5 | - 重构整体 layout。更改代码实现方式。代码更精简 | 5 | - 重构整体 layout。更改代码实现方式。代码更精简 |
6 | +- 配置项重构 | ||
6 | 7 | ||
7 | ### ✨ Features | 8 | ### ✨ Features |
8 | 9 | ||
@@ -11,6 +12,7 @@ | @@ -11,6 +12,7 @@ | ||
11 | ### 🎫 Chores | 12 | ### 🎫 Chores |
12 | 13 | ||
13 | - 移除 messageSetting 配置 | 14 | - 移除 messageSetting 配置 |
15 | +- 更新 antdv 到`2.0.0-rc.2` | ||
14 | - 暂时删除 `@vueuse/core`.等稳定后在集成。目前不太稳定。 | 16 | - 暂时删除 `@vueuse/core`.等稳定后在集成。目前不太稳定。 |
15 | 17 | ||
16 | ## 2.0.0-rc.11 (2020-11-18) | 18 | ## 2.0.0-rc.11 (2020-11-18) |
package.json
@@ -22,7 +22,7 @@ | @@ -22,7 +22,7 @@ | ||
22 | }, | 22 | }, |
23 | "dependencies": { | 23 | "dependencies": { |
24 | "@iconify/iconify": "^2.0.0-rc.2", | 24 | "@iconify/iconify": "^2.0.0-rc.2", |
25 | - "ant-design-vue": "2.0.0-beta.15", | 25 | + "ant-design-vue": "2.0.0-rc.2", |
26 | "apexcharts": "3.22.0", | 26 | "apexcharts": "3.22.0", |
27 | "axios": "^0.21.0", | 27 | "axios": "^0.21.0", |
28 | "crypto-es": "^1.2.6", | 28 | "crypto-es": "^1.2.6", |
src/hooks/core/useContext.ts
@@ -5,9 +5,8 @@ export const createContext = <T>( | @@ -5,9 +5,8 @@ export const createContext = <T>( | ||
5 | contextInjectKey: InjectionKey<T> = Symbol(), | 5 | contextInjectKey: InjectionKey<T> = Symbol(), |
6 | _readonly = true | 6 | _readonly = true |
7 | ) => { | 7 | ) => { |
8 | - const state = reactive({ | ||
9 | - ...context, | ||
10 | - }); | 8 | + const state = reactive({ ...context }); |
9 | + | ||
11 | const provideData = _readonly ? readonly(state) : state; | 10 | const provideData = _readonly ? readonly(state) : state; |
12 | provide(contextInjectKey, provideData); | 11 | provide(contextInjectKey, provideData); |
13 | }; | 12 | }; |
src/hooks/setting/useRootSetting.ts
@@ -12,16 +12,10 @@ type RootSetting = Omit< | @@ -12,16 +12,10 @@ type RootSetting = Omit< | ||
12 | export function useRootSetting() { | 12 | export function useRootSetting() { |
13 | const getRootSetting = computed((): RootSetting => appStore.getProjectConfig); | 13 | const getRootSetting = computed((): RootSetting => appStore.getProjectConfig); |
14 | 14 | ||
15 | - const getOpenPageLoading = computed(() => unref(getRootSetting).openPageLoading); | ||
16 | - | ||
17 | const getPageLoading = computed(() => appStore.getPageLoading); | 15 | const getPageLoading = computed(() => appStore.getPageLoading); |
18 | 16 | ||
19 | - const getOpenRouterTransition = computed(() => unref(getRootSetting).openRouterTransition); | ||
20 | - | ||
21 | const getOpenKeepAlive = computed(() => unref(getRootSetting).openKeepAlive); | 17 | const getOpenKeepAlive = computed(() => unref(getRootSetting).openKeepAlive); |
22 | 18 | ||
23 | - const getRouterTransition = computed(() => unref(getRootSetting).routerTransition); | ||
24 | - | ||
25 | const getCanEmbedIFramePage = computed(() => unref(getRootSetting).canEmbedIFramePage); | 19 | const getCanEmbedIFramePage = computed(() => unref(getRootSetting).canEmbedIFramePage); |
26 | 20 | ||
27 | const getPermissionMode = computed(() => unref(getRootSetting).permissionMode); | 21 | const getPermissionMode = computed(() => unref(getRootSetting).permissionMode); |
@@ -65,10 +59,7 @@ export function useRootSetting() { | @@ -65,10 +59,7 @@ export function useRootSetting() { | ||
65 | getRootSetting, | 59 | getRootSetting, |
66 | getLayoutContentMode, | 60 | getLayoutContentMode, |
67 | getPageLoading, | 61 | getPageLoading, |
68 | - getOpenPageLoading, | ||
69 | - getOpenRouterTransition, | ||
70 | getOpenKeepAlive, | 62 | getOpenKeepAlive, |
71 | - getRouterTransition, | ||
72 | getCanEmbedIFramePage, | 63 | getCanEmbedIFramePage, |
73 | getPermissionMode, | 64 | getPermissionMode, |
74 | getShowLogo, | 65 | getShowLogo, |
src/hooks/setting/useTransitionSetting.ts
0 → 100644
1 | +import type { TransitionSetting } from '/@/types/config'; | ||
2 | + | ||
3 | +import { computed, unref } from 'vue'; | ||
4 | + | ||
5 | +import { appStore } from '/@/store/modules/app'; | ||
6 | + | ||
7 | +export function useTransitionSetting() { | ||
8 | + const getTransitionSetting = computed(() => appStore.getProjectConfig.transitionSetting); | ||
9 | + | ||
10 | + const getEnableTransition = computed(() => unref(getTransitionSetting).enable); | ||
11 | + | ||
12 | + const getOpenNProgress = computed(() => unref(getTransitionSetting)?.openNProgress); | ||
13 | + | ||
14 | + const getOpenPageLoading = computed(() => { | ||
15 | + return unref(getTransitionSetting)?.openPageLoading && unref(getEnableTransition); | ||
16 | + }); | ||
17 | + | ||
18 | + const getBasicTransition = computed(() => unref(getTransitionSetting)?.basicTransition); | ||
19 | + | ||
20 | + function setTransitionSetting(transitionSetting: Partial<TransitionSetting>) { | ||
21 | + appStore.commitProjectConfigState({ transitionSetting }); | ||
22 | + } | ||
23 | + | ||
24 | + return { | ||
25 | + setTransitionSetting, | ||
26 | + | ||
27 | + getTransitionSetting, | ||
28 | + getEnableTransition, | ||
29 | + getOpenNProgress, | ||
30 | + getOpenPageLoading, | ||
31 | + getBasicTransition, | ||
32 | + }; | ||
33 | +} |
src/layouts/default/content/index.less
@@ -11,11 +11,15 @@ | @@ -11,11 +11,15 @@ | ||
11 | } | 11 | } |
12 | 12 | ||
13 | &__loading { | 13 | &__loading { |
14 | - position: fixed; | 14 | + position: absolute; |
15 | z-index: @page-loading-z-index; | 15 | z-index: @page-loading-z-index; |
16 | 16 | ||
17 | + &.fill { | ||
18 | + background: rgba(240, 242, 245) !important; | ||
19 | + } | ||
20 | + | ||
17 | > .basic-loading { | 21 | > .basic-loading { |
18 | - margin-bottom: 20%; | 22 | + margin-bottom: 30%; |
19 | } | 23 | } |
20 | } | 24 | } |
21 | } | 25 | } |
src/layouts/default/content/index.tsx
1 | import './index.less'; | 1 | import './index.less'; |
2 | 2 | ||
3 | -import { defineComponent, unref } from 'vue'; | 3 | +import { defineComponent, unref, computed } from 'vue'; |
4 | import { FullLoading } from '/@/components/Loading/index'; | 4 | import { FullLoading } from '/@/components/Loading/index'; |
5 | 5 | ||
6 | import { RouterView } from 'vue-router'; | 6 | import { RouterView } from 'vue-router'; |
7 | 7 | ||
8 | import { useRootSetting } from '/@/hooks/setting/useRootSetting'; | 8 | import { useRootSetting } from '/@/hooks/setting/useRootSetting'; |
9 | +import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'; | ||
10 | +import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting'; | ||
9 | 11 | ||
10 | export default defineComponent({ | 12 | export default defineComponent({ |
11 | name: 'LayoutContent', | 13 | name: 'LayoutContent', |
12 | setup() { | 14 | setup() { |
13 | - const { getOpenPageLoading, getLayoutContentMode, getPageLoading } = useRootSetting(); | 15 | + const { getOpenPageLoading } = useTransitionSetting(); |
16 | + const { getShowMultipleTab } = useMultipleTabSetting(); | ||
17 | + const { getLayoutContentMode, getPageLoading } = useRootSetting(); | ||
14 | 18 | ||
19 | + const getLoadingClass = computed(() => { | ||
20 | + return [ | ||
21 | + `layout-content__loading`, | ||
22 | + { fill: unref(getShowMultipleTab), hidden: !unref(getPageLoading) }, | ||
23 | + ]; | ||
24 | + }); | ||
15 | return () => { | 25 | return () => { |
16 | return ( | 26 | return ( |
17 | <div class={['layout-content', unref(getLayoutContentMode)]}> | 27 | <div class={['layout-content', unref(getLayoutContentMode)]}> |
18 | - {unref(getOpenPageLoading) && ( | ||
19 | - <FullLoading class={[`layout-content__loading`, { hidden: !unref(getPageLoading) }]} /> | ||
20 | - )} | 28 | + {unref(getOpenPageLoading) && <FullLoading class={unref(getLoadingClass)} />} |
21 | <RouterView /> | 29 | <RouterView /> |
22 | </div> | 30 | </div> |
23 | ); | 31 | ); |
src/layouts/default/multitabs/index.tsx
@@ -24,14 +24,13 @@ export default defineComponent({ | @@ -24,14 +24,13 @@ export default defineComponent({ | ||
24 | name: 'MultiTabs', | 24 | name: 'MultiTabs', |
25 | setup() { | 25 | setup() { |
26 | let isAddAffix = false; | 26 | let isAddAffix = false; |
27 | + | ||
27 | const go = useGo(); | 28 | const go = useGo(); |
29 | + | ||
28 | const { currentRoute } = useRouter(); | 30 | const { currentRoute } = useRouter(); |
29 | const { activeKeyRef } = useTabs(); | 31 | const { activeKeyRef } = useTabs(); |
30 | 32 | ||
31 | - // 当前tab列表 | ||
32 | - const getTabsState = computed(() => { | ||
33 | - return tabStore.getTabsState; | ||
34 | - }); | 33 | + const getTabsState = computed(() => tabStore.getTabsState); |
35 | 34 | ||
36 | // If you monitor routing changes, tab switching will be stuck. So setting this method | 35 | // If you monitor routing changes, tab switching will be stuck. So setting this method |
37 | watch( | 36 | watch( |
@@ -43,6 +42,7 @@ export default defineComponent({ | @@ -43,6 +42,7 @@ export default defineComponent({ | ||
43 | } | 42 | } |
44 | 43 | ||
45 | const lastChangeRoute = unref(tabStore.getLastChangeRouteState); | 44 | const lastChangeRoute = unref(tabStore.getLastChangeRouteState); |
45 | + | ||
46 | if (!lastChangeRoute || !userStore.getTokenState) return; | 46 | if (!lastChangeRoute || !userStore.getTokenState) return; |
47 | 47 | ||
48 | const { path, fullPath } = lastChangeRoute; | 48 | const { path, fullPath } = lastChangeRoute; |
src/layouts/default/setting/SettingDrawer.tsx
@@ -17,6 +17,7 @@ import { useRootSetting } from '/@/hooks/setting/useRootSetting'; | @@ -17,6 +17,7 @@ import { useRootSetting } from '/@/hooks/setting/useRootSetting'; | ||
17 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; | 17 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; |
18 | import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting'; | 18 | import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting'; |
19 | import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting'; | 19 | import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting'; |
20 | +import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'; | ||
20 | 21 | ||
21 | import { updateColorWeak, updateGrayMode } from '/@/setup/theme'; | 22 | import { updateColorWeak, updateGrayMode } from '/@/setup/theme'; |
22 | 23 | ||
@@ -177,9 +178,6 @@ export default defineComponent({ | @@ -177,9 +178,6 @@ export default defineComponent({ | ||
177 | setup(_, { attrs }) { | 178 | setup(_, { attrs }) { |
178 | const { | 179 | const { |
179 | getContentMode, | 180 | getContentMode, |
180 | - getRouterTransition, | ||
181 | - getOpenRouterTransition, | ||
182 | - getOpenPageLoading, | ||
183 | getShowFooter, | 181 | getShowFooter, |
184 | getShowBreadCrumb, | 182 | getShowBreadCrumb, |
185 | getShowBreadCrumbIcon, | 183 | getShowBreadCrumbIcon, |
@@ -190,6 +188,13 @@ export default defineComponent({ | @@ -190,6 +188,13 @@ export default defineComponent({ | ||
190 | } = useRootSetting(); | 188 | } = useRootSetting(); |
191 | 189 | ||
192 | const { | 190 | const { |
191 | + getOpenPageLoading, | ||
192 | + getBasicTransition, | ||
193 | + getEnableTransition, | ||
194 | + getOpenNProgress, | ||
195 | + } = useTransitionSetting(); | ||
196 | + | ||
197 | + const { | ||
193 | getIsHorizontal, | 198 | getIsHorizontal, |
194 | getShowMenu, | 199 | getShowMenu, |
195 | getMenuType, | 200 | getMenuType, |
@@ -447,27 +452,34 @@ export default defineComponent({ | @@ -447,27 +452,34 @@ export default defineComponent({ | ||
447 | function renderTransition() { | 452 | function renderTransition() { |
448 | return ( | 453 | return ( |
449 | <> | 454 | <> |
450 | - {renderSwitchItem('页面切换loading', { | 455 | + {renderSwitchItem('顶部进度条', { |
456 | + handler: (e) => { | ||
457 | + baseHandler(HandlerEnum.OPEN_PROGRESS, e); | ||
458 | + }, | ||
459 | + def: unref(getOpenNProgress), | ||
460 | + })} | ||
461 | + {renderSwitchItem('切换loading', { | ||
451 | handler: (e) => { | 462 | handler: (e) => { |
452 | baseHandler(HandlerEnum.OPEN_PAGE_LOADING, e); | 463 | baseHandler(HandlerEnum.OPEN_PAGE_LOADING, e); |
453 | }, | 464 | }, |
454 | def: unref(getOpenPageLoading), | 465 | def: unref(getOpenPageLoading), |
466 | + disabled: !unref(getEnableTransition), | ||
455 | })} | 467 | })} |
456 | 468 | ||
457 | {renderSwitchItem('切换动画', { | 469 | {renderSwitchItem('切换动画', { |
458 | handler: (e) => { | 470 | handler: (e) => { |
459 | baseHandler(HandlerEnum.OPEN_ROUTE_TRANSITION, e); | 471 | baseHandler(HandlerEnum.OPEN_ROUTE_TRANSITION, e); |
460 | }, | 472 | }, |
461 | - def: unref(getOpenRouterTransition), | 473 | + def: unref(getEnableTransition), |
462 | })} | 474 | })} |
463 | 475 | ||
464 | - {renderSelectItem('路由动画', { | 476 | + {renderSelectItem('动画类型', { |
465 | handler: (e) => { | 477 | handler: (e) => { |
466 | baseHandler(HandlerEnum.ROUTER_TRANSITION, e); | 478 | baseHandler(HandlerEnum.ROUTER_TRANSITION, e); |
467 | }, | 479 | }, |
468 | - def: unref(getRouterTransition), | 480 | + def: unref(getBasicTransition), |
469 | options: routerTransitionOptions, | 481 | options: routerTransitionOptions, |
470 | - disabled: !unref(getOpenRouterTransition), | 482 | + disabled: !unref(getEnableTransition), |
471 | })} | 483 | })} |
472 | </> | 484 | </> |
473 | ); | 485 | ); |
src/layouts/default/setting/enum.ts
@@ -29,9 +29,6 @@ export enum HandlerEnum { | @@ -29,9 +29,6 @@ export enum HandlerEnum { | ||
29 | TABS_SHOW_QUICK, | 29 | TABS_SHOW_QUICK, |
30 | TABS_SHOW, | 30 | TABS_SHOW, |
31 | 31 | ||
32 | - OPEN_PAGE_LOADING, | ||
33 | - OPEN_ROUTE_TRANSITION, | ||
34 | - ROUTER_TRANSITION, | ||
35 | LOCK_TIME, | 32 | LOCK_TIME, |
36 | FULL_CONTENT, | 33 | FULL_CONTENT, |
37 | CONTENT_MODE, | 34 | CONTENT_MODE, |
@@ -41,6 +38,11 @@ export enum HandlerEnum { | @@ -41,6 +38,11 @@ export enum HandlerEnum { | ||
41 | COLOR_WEAK, | 38 | COLOR_WEAK, |
42 | SHOW_LOGO, | 39 | SHOW_LOGO, |
43 | SHOW_FOOTER, | 40 | SHOW_FOOTER, |
41 | + | ||
42 | + ROUTER_TRANSITION, | ||
43 | + OPEN_PROGRESS, | ||
44 | + OPEN_PAGE_LOADING, | ||
45 | + OPEN_ROUTE_TRANSITION, | ||
44 | } | 46 | } |
45 | 47 | ||
46 | export const themeOptions = [ | 48 | export const themeOptions = [ |
src/layouts/default/setting/handler.ts
@@ -66,17 +66,20 @@ export function handler(event: HandlerEnum, value: any): DeepPartial<ProjectConf | @@ -66,17 +66,20 @@ export function handler(event: HandlerEnum, value: any): DeepPartial<ProjectConf | ||
66 | case HandlerEnum.MENU_SHOW_SEARCH: | 66 | case HandlerEnum.MENU_SHOW_SEARCH: |
67 | return { menuSetting: { showSearch: value } }; | 67 | return { menuSetting: { showSearch: value } }; |
68 | 68 | ||
69 | - // ============root================== | ||
70 | - | 69 | + // ============transition================== |
71 | case HandlerEnum.OPEN_PAGE_LOADING: | 70 | case HandlerEnum.OPEN_PAGE_LOADING: |
72 | appStore.commitPageLoadingState(false); | 71 | appStore.commitPageLoadingState(false); |
73 | - return { openPageLoading: value }; | 72 | + return { transitionSetting: { openPageLoading: value } }; |
73 | + | ||
74 | + case HandlerEnum.ROUTER_TRANSITION: | ||
75 | + return { transitionSetting: { basicTransition: value } }; | ||
74 | 76 | ||
75 | case HandlerEnum.OPEN_ROUTE_TRANSITION: | 77 | case HandlerEnum.OPEN_ROUTE_TRANSITION: |
76 | - return { openRouterTransition: value }; | 78 | + return { transitionSetting: { enable: value } }; |
77 | 79 | ||
78 | - case HandlerEnum.ROUTER_TRANSITION: | ||
79 | - return { routerTransition: value }; | 80 | + case HandlerEnum.OPEN_PROGRESS: |
81 | + return { transitionSetting: { openNProgress: value } }; | ||
82 | + // ============root================== | ||
80 | 83 | ||
81 | case HandlerEnum.LOCK_TIME: | 84 | case HandlerEnum.LOCK_TIME: |
82 | return { lockTime: value }; | 85 | return { lockTime: value }; |
src/layouts/page/index.tsx
@@ -11,6 +11,7 @@ import { useRootSetting } from '/@/hooks/setting/useRootSetting'; | @@ -11,6 +11,7 @@ import { useRootSetting } from '/@/hooks/setting/useRootSetting'; | ||
11 | import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting'; | 11 | import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting'; |
12 | 12 | ||
13 | import { tabStore } from '/@/store/modules/tab'; | 13 | import { tabStore } from '/@/store/modules/tab'; |
14 | +import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'; | ||
14 | 15 | ||
15 | interface DefaultContext { | 16 | interface DefaultContext { |
16 | Component: FunctionalComponent; | 17 | Component: FunctionalComponent; |
@@ -21,12 +22,9 @@ export default defineComponent({ | @@ -21,12 +22,9 @@ export default defineComponent({ | ||
21 | name: 'PageLayout', | 22 | name: 'PageLayout', |
22 | setup() { | 23 | setup() { |
23 | const { getShowMenu } = useMenuSetting(); | 24 | const { getShowMenu } = useMenuSetting(); |
24 | - const { | ||
25 | - getOpenKeepAlive, | ||
26 | - getRouterTransition, | ||
27 | - getOpenRouterTransition, | ||
28 | - getCanEmbedIFramePage, | ||
29 | - } = useRootSetting(); | 25 | + const { getOpenKeepAlive, getCanEmbedIFramePage } = useRootSetting(); |
26 | + | ||
27 | + const { getBasicTransition, getEnableTransition } = useTransitionSetting(); | ||
30 | 28 | ||
31 | const { getMax } = useMultipleTabSetting(); | 29 | const { getMax } = useMultipleTabSetting(); |
32 | 30 | ||
@@ -45,7 +43,7 @@ export default defineComponent({ | @@ -45,7 +43,7 @@ export default defineComponent({ | ||
45 | // No longer show animations that are already in the tab | 43 | // No longer show animations that are already in the tab |
46 | const cacheTabs = unref(getCacheTabsRef); | 44 | const cacheTabs = unref(getCacheTabsRef); |
47 | const isInCache = cacheTabs.includes(route.name as string); | 45 | const isInCache = cacheTabs.includes(route.name as string); |
48 | - const name = isInCache && route.meta.inTab ? 'fade' : null; | 46 | + const name = isInCache && route.meta.inTab ? 'fade-slide' : null; |
49 | 47 | ||
50 | const renderComp = () => <Component key={route.fullPath} />; | 48 | const renderComp = () => <Component key={route.fullPath} />; |
51 | 49 | ||
@@ -57,10 +55,10 @@ export default defineComponent({ | @@ -57,10 +55,10 @@ export default defineComponent({ | ||
57 | renderComp() | 55 | renderComp() |
58 | ); | 56 | ); |
59 | 57 | ||
60 | - return unref(getOpenRouterTransition) ? ( | 58 | + return unref(getEnableTransition) ? ( |
61 | <Transition | 59 | <Transition |
62 | {...transitionEvent} | 60 | {...transitionEvent} |
63 | - name={name || route.meta.transitionName || unref(getRouterTransition)} | 61 | + name={name || route.meta.transitionName || unref(getBasicTransition)} |
64 | mode="out-in" | 62 | mode="out-in" |
65 | appear={true} | 63 | appear={true} |
66 | > | 64 | > |
src/layouts/page/useTransition.ts
1 | -import { useRootSetting } from '/@/hooks/setting/useRootSetting'; | 1 | +import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'; |
2 | + | ||
2 | import { appStore } from '/@/store/modules/app'; | 3 | import { appStore } from '/@/store/modules/app'; |
3 | import { tryOnUnmounted } from '/@/utils/helper/vueHelper'; | 4 | import { tryOnUnmounted } from '/@/utils/helper/vueHelper'; |
4 | 5 | ||
5 | export function useTransition() { | 6 | export function useTransition() { |
6 | function handleAfterEnter() { | 7 | function handleAfterEnter() { |
7 | - const { getOpenPageLoading, getOpenRouterTransition } = useRootSetting(); | ||
8 | - if (!getOpenPageLoading.value || !getOpenRouterTransition.value) return; | 8 | + const { getOpenPageLoading, getEnableTransition } = useTransitionSetting(); |
9 | + if (!getOpenPageLoading.value || !getEnableTransition.value) return; | ||
9 | // Close loading after the route switching animation ends | 10 | // Close loading after the route switching animation ends |
10 | appStore.setPageLoadingAction(false); | 11 | appStore.setPageLoadingAction(false); |
11 | } | 12 | } |
src/router/guard/index.ts
@@ -16,7 +16,7 @@ import { tabStore } from '/@/store/modules/tab'; | @@ -16,7 +16,7 @@ import { tabStore } from '/@/store/modules/tab'; | ||
16 | 16 | ||
17 | const globSetting = useGlobSetting(); | 17 | const globSetting = useGlobSetting(); |
18 | export function createGuard(router: Router) { | 18 | export function createGuard(router: Router) { |
19 | - const { openNProgress, closeMessageOnSwitch, removeAllHttpPending } = useProjectSetting(); | 19 | + const { closeMessageOnSwitch, removeAllHttpPending } = useProjectSetting(); |
20 | let axiosCanceler: AxiosCanceler | null; | 20 | let axiosCanceler: AxiosCanceler | null; |
21 | if (removeAllHttpPending) { | 21 | if (removeAllHttpPending) { |
22 | axiosCanceler = new AxiosCanceler(); | 22 | axiosCanceler = new AxiosCanceler(); |
@@ -44,7 +44,6 @@ export function createGuard(router: Router) { | @@ -44,7 +44,6 @@ export function createGuard(router: Router) { | ||
44 | Modal.destroyAll(); | 44 | Modal.destroyAll(); |
45 | notification.destroy(); | 45 | notification.destroy(); |
46 | } | 46 | } |
47 | - // TODO Some special interfaces require long connections | ||
48 | // Switching the route will delete the previous request | 47 | // Switching the route will delete the previous request |
49 | removeAllHttpPending && axiosCanceler!.removeAllPending(); | 48 | removeAllHttpPending && axiosCanceler!.removeAllPending(); |
50 | } catch (error) { | 49 | } catch (error) { |
@@ -58,7 +57,6 @@ export function createGuard(router: Router) { | @@ -58,7 +57,6 @@ export function createGuard(router: Router) { | ||
58 | // change html title | 57 | // change html title |
59 | setTitle(to.meta.title, globSetting.title); | 58 | setTitle(to.meta.title, globSetting.title); |
60 | }); | 59 | }); |
61 | - | ||
62 | - openNProgress && createProgressGuard(router); | 60 | + createProgressGuard(router); |
63 | createPermissionGuard(router); | 61 | createPermissionGuard(router); |
64 | } | 62 | } |
src/router/guard/pageLoadingGuard.ts
@@ -3,20 +3,18 @@ import { tabStore } from '/@/store/modules/tab'; | @@ -3,20 +3,18 @@ import { tabStore } from '/@/store/modules/tab'; | ||
3 | import { appStore } from '/@/store/modules/app'; | 3 | import { appStore } from '/@/store/modules/app'; |
4 | import { userStore } from '/@/store/modules/user'; | 4 | import { userStore } from '/@/store/modules/user'; |
5 | import { getParams } from '/@/utils/helper/routeHelper'; | 5 | import { getParams } from '/@/utils/helper/routeHelper'; |
6 | +import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'; | ||
7 | +import { unref } from 'vue'; | ||
6 | 8 | ||
9 | +const { getOpenPageLoading, getEnableTransition } = useTransitionSetting(); | ||
7 | export function createPageLoadingGuard(router: Router) { | 10 | export function createPageLoadingGuard(router: Router) { |
8 | let isFirstLoad = true; | 11 | let isFirstLoad = true; |
9 | router.beforeEach(async (to) => { | 12 | router.beforeEach(async (to) => { |
10 | - const { | ||
11 | - openKeepAlive, | ||
12 | - openRouterTransition, | ||
13 | - openPageLoading, | ||
14 | - multiTabsSetting: { show } = {}, | ||
15 | - } = appStore.getProjectConfig; | 13 | + const { openKeepAlive, multiTabsSetting: { show } = {} } = appStore.getProjectConfig; |
16 | if (!userStore.getTokenState) { | 14 | if (!userStore.getTokenState) { |
17 | return true; | 15 | return true; |
18 | } | 16 | } |
19 | - if (!openRouterTransition && openPageLoading) { | 17 | + if (!unref(getEnableTransition) && unref(getOpenPageLoading)) { |
20 | appStore.commitPageLoadingState(true); | 18 | appStore.commitPageLoadingState(true); |
21 | return true; | 19 | return true; |
22 | } | 20 | } |
@@ -32,11 +30,10 @@ export function createPageLoadingGuard(router: Router) { | @@ -32,11 +30,10 @@ export function createPageLoadingGuard(router: Router) { | ||
32 | return true; | 30 | return true; |
33 | }); | 31 | }); |
34 | router.afterEach(async (to, from) => { | 32 | router.afterEach(async (to, from) => { |
35 | - const { openRouterTransition, openPageLoading } = appStore.getProjectConfig; | ||
36 | const realToPath = to.path.replace(getParams(to), ''); | 33 | const realToPath = to.path.replace(getParams(to), ''); |
37 | const realFormPath = from.path.replace(getParams(from), ''); | 34 | const realFormPath = from.path.replace(getParams(from), ''); |
38 | if ( | 35 | if ( |
39 | - (!openRouterTransition && openPageLoading) || | 36 | + (!unref(getEnableTransition) && unref(getOpenPageLoading)) || |
40 | isFirstLoad || | 37 | isFirstLoad || |
41 | to.meta.afterCloseLoading || | 38 | to.meta.afterCloseLoading || |
42 | realToPath === realFormPath | 39 | realToPath === realFormPath |
src/router/guard/progressGuard.ts
1 | import type { Router } from 'vue-router'; | 1 | import type { Router } from 'vue-router'; |
2 | 2 | ||
3 | +import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'; | ||
4 | + | ||
3 | import NProgress from 'nprogress'; | 5 | import NProgress from 'nprogress'; |
4 | import 'nprogress/nprogress.css'; | 6 | import 'nprogress/nprogress.css'; |
7 | +import { unref } from 'vue'; | ||
8 | + | ||
9 | +const { getOpenNProgress } = useTransitionSetting(); | ||
5 | 10 | ||
6 | export function createProgressGuard(router: Router) { | 11 | export function createProgressGuard(router: Router) { |
7 | // NProgress.inc(0.1); | 12 | // NProgress.inc(0.1); |
8 | // NProgress.configure({ easing: 'ease', speed: 200, showSpinner: false }); | 13 | // NProgress.configure({ easing: 'ease', speed: 200, showSpinner: false }); |
9 | 14 | ||
10 | router.beforeEach(async (to) => { | 15 | router.beforeEach(async (to) => { |
11 | - !to.meta.inTab && NProgress.start(); | 16 | + !to.meta.inTab && unref(getOpenNProgress) && NProgress.start(); |
12 | return true; | 17 | return true; |
13 | }); | 18 | }); |
14 | 19 | ||
15 | router.afterEach(async (to) => { | 20 | router.afterEach(async (to) => { |
16 | - !to.meta.inTab && NProgress.done(); | 21 | + !to.meta.inTab && unref(getOpenNProgress) && NProgress.done(); |
17 | return true; | 22 | return true; |
18 | }); | 23 | }); |
19 | } | 24 | } |
src/settings/projectSetting.ts
@@ -7,155 +7,158 @@ import { isProdMode } from '/@/utils/env'; | @@ -7,155 +7,158 @@ import { isProdMode } from '/@/utils/env'; | ||
7 | 7 | ||
8 | // ! You need to clear the browser cache after the change | 8 | // ! You need to clear the browser cache after the change |
9 | const setting: ProjectConfig = { | 9 | const setting: ProjectConfig = { |
10 | - // locale setting | ||
11 | - locale: { | ||
12 | - // Locale | ||
13 | - lang: 'zh_CN', | ||
14 | - // Default locale | ||
15 | - fallback: 'zh_CN', | ||
16 | - // available Locales | ||
17 | - availableLocales: ['zh_CN', 'en'], | ||
18 | - }, | ||
19 | - | ||
20 | - // color | ||
21 | - // TODO 主题色 | ||
22 | - themeColor: primaryColor, | ||
23 | - | ||
24 | // Whether to show the configuration button | 10 | // Whether to show the configuration button |
25 | showSettingButton: true, | 11 | showSettingButton: true, |
26 | 12 | ||
27 | - // 权限模式 | 13 | + // Permission mode |
28 | permissionMode: PermissionModeEnum.ROLE, | 14 | permissionMode: PermissionModeEnum.ROLE, |
29 | 15 | ||
30 | - // 网站灰色模式,用于可能悼念的日期开启 | 16 | + // color |
17 | + // TODO Theme color | ||
18 | + themeColor: primaryColor, | ||
19 | + | ||
20 | + // Website gray mode, open for possible mourning dates | ||
31 | grayMode: false, | 21 | grayMode: false, |
32 | 22 | ||
33 | - // 色弱模式 | 23 | + // Color Weakness Mode |
34 | colorWeak: false, | 24 | colorWeak: false, |
35 | 25 | ||
36 | - // 是否取消菜单,顶部,多标签页显示, 用于可能内嵌在别的系统内 | 26 | + // Whether to cancel the menu, the top, the multi-tab page display, for possible embedded in other systems |
37 | fullContent: false, | 27 | fullContent: false, |
38 | 28 | ||
39 | // content mode | 29 | // content mode |
40 | contentMode: ContentEnum.FULL, | 30 | contentMode: ContentEnum.FULL, |
41 | 31 | ||
42 | - // 是否显示logo | 32 | + // Whether to display the logo |
43 | showLogo: true, | 33 | showLogo: true, |
44 | 34 | ||
45 | - // 是否显示页脚 | 35 | + // Whether to show footer |
46 | showFooter: true, | 36 | showFooter: true, |
47 | 37 | ||
48 | - // 头部配置 | 38 | + // locale setting |
39 | + locale: { | ||
40 | + // Locale | ||
41 | + lang: 'zh_CN', | ||
42 | + // Default locale | ||
43 | + fallback: 'zh_CN', | ||
44 | + // available Locales | ||
45 | + availableLocales: ['zh_CN', 'en'], | ||
46 | + }, | ||
47 | + | ||
48 | + // Header configuration | ||
49 | headerSetting: { | 49 | headerSetting: { |
50 | // header bg color | 50 | // header bg color |
51 | bgColor: '#ffffff', | 51 | bgColor: '#ffffff', |
52 | + // Fixed at the top | ||
52 | fixed: true, | 53 | fixed: true, |
53 | - // 是否显示顶部 | 54 | + // Whether to show top |
54 | show: true, | 55 | show: true, |
55 | // theme | 56 | // theme |
56 | theme: ThemeEnum.LIGHT, | 57 | theme: ThemeEnum.LIGHT, |
57 | - // 开启锁屏功能 | 58 | + // Whether to enable the lock screen function |
58 | useLockPage: true, | 59 | useLockPage: true, |
59 | - // 显示刷新按钮 | 60 | + // Whether to show the refresh button |
60 | showRedo: true, | 61 | showRedo: true, |
61 | - // 显示全屏按钮 | 62 | + // Whether to show the full screen button |
62 | showFullScreen: true, | 63 | showFullScreen: true, |
63 | - // 显示文档按钮 | 64 | + // Whether to show the document button |
64 | showDoc: true, | 65 | showDoc: true, |
65 | - // 显示消息中心按钮 | 66 | + // Whether to show the notification button |
66 | showNotice: true, | 67 | showNotice: true, |
67 | }, | 68 | }, |
68 | 69 | ||
69 | - // 菜单配置 | 70 | + // Menu configuration |
70 | menuSetting: { | 71 | menuSetting: { |
71 | // sidebar menu bg color | 72 | // sidebar menu bg color |
72 | bgColor: '#273352', | 73 | bgColor: '#273352', |
73 | - | 74 | + // Whether to fix the left menu |
74 | fixed: true, | 75 | fixed: true, |
75 | - // 菜单折叠 | 76 | + // Menu collapse |
76 | collapsed: false, | 77 | collapsed: false, |
77 | - // 折叠菜单时候是否显示菜单名 | 78 | + // Whether to display the menu name when folding the menu |
78 | collapsedShowTitle: false, | 79 | collapsedShowTitle: false, |
79 | - // 是否可拖拽 | 80 | + // Whether it can be dragged |
81 | + // Only limited to the opening of the left menu, the mouse has a drag bar on the right side of the menu | ||
80 | hasDrag: false, | 82 | hasDrag: false, |
81 | - // 是否显示 没有dom | 83 | + // Whether to show no dom |
82 | show: true, | 84 | show: true, |
83 | - // 是否显示 有dom | 85 | + // Whether to show dom |
84 | hidden: true, | 86 | hidden: true, |
85 | - // 是否显示搜索框 | 87 | + // Whether to show search box |
86 | showSearch: true, | 88 | showSearch: true, |
87 | - // 菜单宽度 | 89 | + // Menu width |
88 | menuWidth: 210, | 90 | menuWidth: 210, |
89 | - // 菜单模式 | 91 | + // Menu mode |
90 | mode: MenuModeEnum.INLINE, | 92 | mode: MenuModeEnum.INLINE, |
91 | - // 菜单类型 | 93 | + // Menu type |
92 | type: MenuTypeEnum.SIDEBAR, | 94 | type: MenuTypeEnum.SIDEBAR, |
93 | - // 菜单主题 | 95 | + // Menu theme |
94 | theme: ThemeEnum.DARK, | 96 | theme: ThemeEnum.DARK, |
95 | - // 分割菜单 | 97 | + // Split menu |
96 | split: false, | 98 | split: false, |
97 | - // 顶部菜单布局 | 99 | + // Top menu layout |
98 | topMenuAlign: 'center', | 100 | topMenuAlign: 'center', |
99 | - // 折叠菜单时候隐藏搜索框 | 101 | + // Hide the search box when the menu is collapsed |
100 | collapsedShowSearch: false, | 102 | collapsedShowSearch: false, |
101 | - // 折叠触发器的位置 | 103 | + // Fold trigger position |
102 | trigger: TriggerEnum.HEADER, | 104 | trigger: TriggerEnum.HEADER, |
103 | - // 开启手风琴模式,只显示一个菜单 | 105 | + // Turn on accordion mode, only show a menu |
104 | accordion: true, | 106 | accordion: true, |
105 | }, | 107 | }, |
106 | 108 | ||
107 | - // 多标签 | 109 | + // Multi-label |
108 | multiTabsSetting: { | 110 | multiTabsSetting: { |
109 | - // 开启 | 111 | + // Turn on |
110 | show: true, | 112 | show: true, |
111 | - // 开启快速操作 | 113 | + // Turn on quick actions |
112 | showQuick: true, | 114 | showQuick: true, |
113 | - | ||
114 | - // 标签页缓存最大数量 | 115 | + // Maximum number of tab cache |
115 | max: 12, | 116 | max: 12, |
116 | }, | 117 | }, |
117 | 118 | ||
118 | - // 是否开启KeepAlive缓存 开发时候最好关闭,不然每次都需要清除缓存 | 119 | + // Transition Setting |
120 | + transitionSetting: { | ||
121 | + // Whether to open the page switching animation | ||
122 | + // The disabled state will also disable pageLoadinng | ||
123 | + enable: true, | ||
124 | + | ||
125 | + // Route basic switching animation | ||
126 | + basicTransition: RouterTransitionEnum.FADE_SIDE, | ||
127 | + | ||
128 | + // Whether to open page switching loading | ||
129 | + // Only open when enable=true | ||
130 | + openPageLoading: true, | ||
131 | + | ||
132 | + // Whether to open the top progress bar | ||
133 | + openNProgress: true, | ||
134 | + }, | ||
135 | + | ||
136 | + // Whether to enable KeepAlive cache is best to close during development, otherwise the cache needs to be cleared every time | ||
119 | openKeepAlive: true, | 137 | openKeepAlive: true, |
120 | 138 | ||
121 | - // 自动锁屏时间,为0不锁屏。 单位分钟 默认0 | 139 | + // Automatic screen lock time, 0 does not lock the screen. Unit minute default 0 |
122 | lockTime: 0, | 140 | lockTime: 0, |
123 | 141 | ||
124 | - // 显示面包屑 | 142 | + // Whether to show breadcrumbs |
125 | showBreadCrumb: true, | 143 | showBreadCrumb: true, |
126 | 144 | ||
127 | - // 显示面包屑图标 | 145 | + // Whether to show the breadcrumb icon |
128 | showBreadCrumbIcon: false, | 146 | showBreadCrumbIcon: false, |
129 | 147 | ||
130 | - // 使用error-handler-plugin | 148 | + // Use error-handler-plugin |
131 | useErrorHandle: isProdMode(), | 149 | useErrorHandle: isProdMode(), |
132 | 150 | ||
133 | - // 开启页面切换动画 | ||
134 | - openRouterTransition: true, | ||
135 | - | ||
136 | - // 路由切换动画 | ||
137 | - routerTransition: RouterTransitionEnum.FADE_SIDE, | ||
138 | - | ||
139 | - // 是否开启登录安全校验 | ||
140 | - openLoginVerify: true, | ||
141 | - | ||
142 | - // 是否开启页面切换loading | ||
143 | - openPageLoading: true, | ||
144 | - | ||
145 | - // 是否开启回到顶部 | 151 | + // Whether to open back to top |
146 | useOpenBackTop: true, | 152 | useOpenBackTop: true, |
147 | 153 | ||
148 | - // 开启顶部进度条 | ||
149 | - openNProgress: isProdMode(), | ||
150 | - | ||
151 | - // 是否可以嵌入iframe页面 | 154 | + // Is it possible to embed iframe pages |
152 | canEmbedIFramePage: true, | 155 | canEmbedIFramePage: true, |
153 | 156 | ||
154 | - // 切换界面的时候是否删除未关闭的message及notify | 157 | + // Whether to delete unclosed messages and notify when switching the interface |
155 | closeMessageOnSwitch: true, | 158 | closeMessageOnSwitch: true, |
156 | 159 | ||
157 | - // 切换界面的时候是否取消已经发送但是未响应的http请求。 | ||
158 | - // 如果开启,想对单独接口覆盖。可以在单独接口设置 | 160 | + // Whether to cancel the http request that has been sent but not responded when switching the interface. |
161 | + // If it is enabled, I want to overwrite a single interface. Can be set in a separate interface | ||
159 | removeAllHttpPending: true, | 162 | removeAllHttpPending: true, |
160 | }; | 163 | }; |
161 | 164 |
src/types/config.d.ts
@@ -59,6 +59,20 @@ export interface LocaleSetting { | @@ -59,6 +59,20 @@ export interface LocaleSetting { | ||
59 | availableLocales: LocaleType[]; | 59 | availableLocales: LocaleType[]; |
60 | } | 60 | } |
61 | 61 | ||
62 | +export interface TransitionSetting { | ||
63 | + // Whether to open the page switching animation | ||
64 | + enable: boolean; | ||
65 | + | ||
66 | + // Route basic switching animation | ||
67 | + basicTransition: RouterTransitionEnum; | ||
68 | + | ||
69 | + // Whether to open page switching loading | ||
70 | + openPageLoading: boolean; | ||
71 | + | ||
72 | + // Whether to open the top progress bar | ||
73 | + openNProgress: boolean; | ||
74 | +} | ||
75 | + | ||
62 | export interface ProjectConfig { | 76 | export interface ProjectConfig { |
63 | locale: LocaleSetting; | 77 | locale: LocaleSetting; |
64 | 78 | ||
@@ -86,6 +100,9 @@ export interface ProjectConfig { | @@ -86,6 +100,9 @@ export interface ProjectConfig { | ||
86 | 100 | ||
87 | // 多标签页设置 | 101 | // 多标签页设置 |
88 | multiTabsSetting: MultiTabsSetting; | 102 | multiTabsSetting: MultiTabsSetting; |
103 | + | ||
104 | + transitionSetting: TransitionSetting; | ||
105 | + | ||
89 | // pageLayout是否开启keep-alive | 106 | // pageLayout是否开启keep-alive |
90 | openKeepAlive: boolean; | 107 | openKeepAlive: boolean; |
91 | 108 | ||
@@ -97,18 +114,8 @@ export interface ProjectConfig { | @@ -97,18 +114,8 @@ export interface ProjectConfig { | ||
97 | showBreadCrumbIcon: boolean; | 114 | showBreadCrumbIcon: boolean; |
98 | // 使用error-handler-plugin | 115 | // 使用error-handler-plugin |
99 | useErrorHandle: boolean; | 116 | useErrorHandle: boolean; |
100 | - // 开启页面切换动画 | ||
101 | - openRouterTransition: boolean; | ||
102 | - // 路由切换动画 | ||
103 | - routerTransition: RouterTransitionEnum; | ||
104 | - // 是否开启登录安全校验 | ||
105 | - openLoginVerify: boolean; | ||
106 | - // 是否开启页面切换loading | ||
107 | - openPageLoading: boolean; | ||
108 | // 是否开启回到顶部 | 117 | // 是否开启回到顶部 |
109 | useOpenBackTop: boolean; | 118 | useOpenBackTop: boolean; |
110 | - // 开启顶部进度条 | ||
111 | - openNProgress: boolean; | ||
112 | // 是否可以嵌入iframe页面 | 119 | // 是否可以嵌入iframe页面 |
113 | canEmbedIFramePage: boolean; | 120 | canEmbedIFramePage: boolean; |
114 | // 切换界面的时候是否删除未关闭的message及notify | 121 | // 切换界面的时候是否删除未关闭的message及notify |
src/views/sys/redirect/index.vue
@@ -7,10 +7,13 @@ | @@ -7,10 +7,13 @@ | ||
7 | import { appStore } from '/@/store/modules/app'; | 7 | import { appStore } from '/@/store/modules/app'; |
8 | 8 | ||
9 | import { useRouter } from 'vue-router'; | 9 | import { useRouter } from 'vue-router'; |
10 | + import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'; | ||
10 | export default defineComponent({ | 11 | export default defineComponent({ |
11 | name: 'Redirect', | 12 | name: 'Redirect', |
12 | setup() { | 13 | setup() { |
13 | const { currentRoute, replace } = useRouter(); | 14 | const { currentRoute, replace } = useRouter(); |
15 | + const { getOpenPageLoading, getEnableTransition } = useTransitionSetting(); | ||
16 | + | ||
14 | const { params, query } = unref(currentRoute); | 17 | const { params, query } = unref(currentRoute); |
15 | const { path } = params; | 18 | const { path } = params; |
16 | const _path = Array.isArray(path) ? path.join('/') : path; | 19 | const _path = Array.isArray(path) ? path.join('/') : path; |
@@ -18,8 +21,7 @@ | @@ -18,8 +21,7 @@ | ||
18 | path: '/' + _path, | 21 | path: '/' + _path, |
19 | query, | 22 | query, |
20 | }); | 23 | }); |
21 | - const { openRouterTransition, openPageLoading } = appStore.getProjectConfig; | ||
22 | - if (openRouterTransition && openPageLoading) { | 24 | + if (unref(getEnableTransition) && unref(getOpenPageLoading)) { |
23 | setTimeout(() => { | 25 | setTimeout(() => { |
24 | appStore.setPageLoadingAction(false); | 26 | appStore.setPageLoadingAction(false); |
25 | }, 0); | 27 | }, 0); |
yarn.lock
@@ -12,24 +12,24 @@ | @@ -12,24 +12,24 @@ | ||
12 | lodash-es "^4.17.15" | 12 | lodash-es "^4.17.15" |
13 | resize-observer-polyfill "^1.5.1" | 13 | resize-observer-polyfill "^1.5.1" |
14 | 14 | ||
15 | -"@ant-design/colors@^4.0.0": | ||
16 | - version "4.0.5" | ||
17 | - resolved "https://registry.npmjs.org/@ant-design/colors/-/colors-4.0.5.tgz#d7d100d7545cca8f624954604a6892fc48ba5aae" | ||
18 | - integrity sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q== | 15 | +"@ant-design/colors@^5.0.0": |
16 | + version "5.0.0" | ||
17 | + resolved "https://registry.npmjs.org/@ant-design/colors/-/colors-5.0.0.tgz#46b73b4cc6935b35fc8b84555e8e42c8cfc190e6" | ||
18 | + integrity sha512-Pe1rYorgVC1v4f+InDXvIlQH715pO1g7BsOhy/ehX/U6ebPKqojmkYJKU3lF+84Zmvyar7ngZ28hesAa1nWjLg== | ||
19 | dependencies: | 19 | dependencies: |
20 | - tinycolor2 "^1.4.1" | 20 | + "@ctrl/tinycolor" "^3.1.6" |
21 | 21 | ||
22 | "@ant-design/icons-svg@^4.0.0": | 22 | "@ant-design/icons-svg@^4.0.0": |
23 | version "4.1.0" | 23 | version "4.1.0" |
24 | resolved "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.1.0.tgz#480b025f4b20ef7fe8f47d4a4846e4fee84ea06c" | 24 | resolved "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.1.0.tgz#480b025f4b20ef7fe8f47d4a4846e4fee84ea06c" |
25 | integrity sha512-Fi03PfuUqRs76aI3UWYpP864lkrfPo0hluwGqh7NJdLhvH4iRDc3jbJqZIvRDLHKbXrvAfPPV3+zjUccfFvWOQ== | 25 | integrity sha512-Fi03PfuUqRs76aI3UWYpP864lkrfPo0hluwGqh7NJdLhvH4iRDc3jbJqZIvRDLHKbXrvAfPPV3+zjUccfFvWOQ== |
26 | 26 | ||
27 | -"@ant-design/icons-vue@^5.1.5": | ||
28 | - version "5.1.5" | ||
29 | - resolved "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-5.1.5.tgz#8e83ba90a29b7ed8b4c2e7282f5908b9b3de519b" | ||
30 | - integrity sha512-j1qHhzFCLh4UNoOoVNDFKp4qbzX2bpc/am+rNCqNDeze/TpbQ38nSBSmNPucHuD7koQtAjBW+AIcnToYCgKvpA== | 27 | +"@ant-design/icons-vue@^5.1.6": |
28 | + version "5.1.6" | ||
29 | + resolved "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-5.1.6.tgz#af15cbf2375d95199e90166adce4c9f6ad1c17f1" | ||
30 | + integrity sha512-1KY04c/0iDM88ICdu6EW2/ZPOrH+FyL0uvR350XnVqvnDiLijdcrRaLzkZgCdBcy7cy5t5+onXKocymndCOdRA== | ||
31 | dependencies: | 31 | dependencies: |
32 | - "@ant-design/colors" "^4.0.0" | 32 | + "@ant-design/colors" "^5.0.0" |
33 | "@ant-design/icons-svg" "^4.0.0" | 33 | "@ant-design/icons-svg" "^4.0.0" |
34 | "@babel/runtime" "^7.10.4" | 34 | "@babel/runtime" "^7.10.4" |
35 | lodash "^4.17.15" | 35 | lodash "^4.17.15" |
@@ -992,6 +992,11 @@ | @@ -992,6 +992,11 @@ | ||
992 | resolved "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz#719cf05fcc1abb6533610a2e0f5dd1e61eac14fe" | 992 | resolved "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz#719cf05fcc1abb6533610a2e0f5dd1e61eac14fe" |
993 | integrity sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ== | 993 | integrity sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ== |
994 | 994 | ||
995 | +"@ctrl/tinycolor@^3.1.6": | ||
996 | + version "3.1.7" | ||
997 | + resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.1.7.tgz#1585f67629882002a9f8e15a2941c9a4321bf80c" | ||
998 | + integrity sha512-/0C6fjXbCwu22k8mMsKRSAo9zgu61d2p75Or9IuIC0Vu5CWN88t2QHK93LhNnxnqHWf5SFwFU28w9cKfTmnfvg== | ||
999 | + | ||
995 | "@eslint/eslintrc@^0.2.1": | 1000 | "@eslint/eslintrc@^0.2.1": |
996 | version "0.2.1" | 1001 | version "0.2.1" |
997 | resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" | 1002 | resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" |
@@ -1847,13 +1852,13 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: | @@ -1847,13 +1852,13 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: | ||
1847 | dependencies: | 1852 | dependencies: |
1848 | color-convert "^2.0.1" | 1853 | color-convert "^2.0.1" |
1849 | 1854 | ||
1850 | -ant-design-vue@2.0.0-beta.15: | ||
1851 | - version "2.0.0-beta.15" | ||
1852 | - resolved "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-2.0.0-beta.15.tgz#3c787dabb70a33885d0e751e58f9a5610ed06134" | ||
1853 | - integrity sha512-OxZy+ZYU3LauIL4Rhqwy441K/iD++Cit6upnQy5+LVUrX0PSObPqPqMWVpncbAmJJYTEz88gkvgGeYqBdzouWA== | 1855 | +ant-design-vue@2.0.0-rc.2: |
1856 | + version "2.0.0-rc.2" | ||
1857 | + resolved "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-2.0.0-rc.2.tgz#fd3b4a5a64fccbb53ed488a194317a040de2223e" | ||
1858 | + integrity sha512-XA7X/7HHIveiTh41bZWGfoQ2Rys/rqWknK2zzdHwVnfw9ST3v+ciMKH0Uegyn7m14QL/EdUkC8zGsXpiSXqKNQ== | ||
1854 | dependencies: | 1859 | dependencies: |
1855 | "@ant-design-vue/use" "^0.0.1-0" | 1860 | "@ant-design-vue/use" "^0.0.1-0" |
1856 | - "@ant-design/icons-vue" "^5.1.5" | 1861 | + "@ant-design/icons-vue" "^5.1.6" |
1857 | "@babel/runtime" "^7.10.5" | 1862 | "@babel/runtime" "^7.10.5" |
1858 | "@simonwep/pickr" "~1.7.0" | 1863 | "@simonwep/pickr" "~1.7.0" |
1859 | add-dom-event-listener "^1.0.2" | 1864 | add-dom-event-listener "^1.0.2" |
@@ -7705,11 +7710,6 @@ through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: | @@ -7705,11 +7710,6 @@ through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: | ||
7705 | resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" | 7710 | resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" |
7706 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= | 7711 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= |
7707 | 7712 | ||
7708 | -tinycolor2@^1.4.1: | ||
7709 | - version "1.4.2" | ||
7710 | - resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" | ||
7711 | - integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== | ||
7712 | - | ||
7713 | tmp@^0.0.33: | 7713 | tmp@^0.0.33: |
7714 | version "0.0.33" | 7714 | version "0.0.33" |
7715 | resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" | 7715 | resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" |