diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index 483de9e2c..61d9e5c9e 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -3,17 +3,21 @@ ### ✨ Features - 移除左侧菜单搜索,新增顶部菜单搜索功能 +- layout 移动端适配。页面未适配 ### ⚡ Performance Improvements - 异步引入组件 - 优化整体结构 +- 替换菜单默认滚动条为滚动组件 +- 菜单性能优化 ### 🎫 Chores - 返回顶部样式调整,避免遮住其他元素 - 升级`ant-design-vue`到`2.0.0-rc.5` - 刷新按钮布局调整 +- `route.meta` 移除 `externalLink` 属性 ### 🐛 Bug Fixes diff --git a/package.json b/package.json index 5a9f58a15..c6a0258c1 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "sortablejs": "^1.12.0", "vditor": "^3.7.2", "vue": "^3.0.4", - "vue-i18n": "^9.0.0-beta.12", + "vue-i18n": "^9.0.0-beta.13", "vue-router": "^4.0.1", "vue-types": "^3.0.1", "vuex": "^4.0.0-rc.2", diff --git a/src/components/Application/src/search/AppSearch.vue b/src/components/Application/src/search/AppSearch.vue index 0644f4401..bb4f5701c 100644 --- a/src/components/Application/src/search/AppSearch.vue +++ b/src/components/Application/src/search/AppSearch.vue @@ -1,13 +1,11 @@ + diff --git a/src/layouts/default/header/index.less b/src/layouts/default/header/index.less index 6ecedd4e4..a29212ff0 100644 --- a/src/layouts/default/header/index.less +++ b/src/layouts/default/header/index.less @@ -2,6 +2,8 @@ @header-trigger-prefix-cls: ~'@{namespace}-layout-header-trigger'; @header-prefix-cls: ~'@{namespace}-layout-header'; @locale-prefix-cls: ~'@{namespace}-app-locale-picker'; +@breadcrumb-prefix-cls: ~'@{namespace}-layout-breadcrumb'; +@logo-prefix-cls: ~'@{namespace}-app-logo'; .@{header-prefix-cls} { display: flex; @@ -14,6 +16,30 @@ align-items: center; justify-content: space-between; + &--mobile { + .@{breadcrumb-prefix-cls}, + .error-action, + .notify-item, + .fullscreen-item { + display: none; + } + + .@{logo-prefix-cls} { + min-width: unset; + padding-right: 0; + + &__title { + display: none; + } + } + .@{header-trigger-prefix-cls} { + padding: 0 4px 0 8px !important; + } + .@{header-prefix-cls}-action { + padding-right: 4px; + } + } + &--fixed { position: fixed; top: 0; @@ -78,7 +104,7 @@ &-action { display: flex; - min-width: 200px; + min-width: 180px; padding-right: 12px; align-items: center; diff --git a/src/layouts/default/header/index.vue b/src/layouts/default/header/index.vue index 99a1c8a68..4f248cf39 100644 --- a/src/layouts/default/header/index.vue +++ b/src/layouts/default/header/index.vue @@ -3,17 +3,17 @@
- - + - +
@@ -30,15 +30,15 @@
- + - + - + - + - + @@ -123,7 +123,11 @@ const theme = unref(getHeaderTheme); return [ prefixCls, - { [`${prefixCls}--fixed`]: props.fixed, [`${prefixCls}--${theme}`]: theme }, + { + [`${prefixCls}--fixed`]: props.fixed, + [`${prefixCls}--mobile`]: unref(getIsMobile), + [`${prefixCls}--${theme}`]: theme, + }, ]; }); @@ -145,6 +149,7 @@ getShowBread, getShowContent, getSplitType, + getSplit, getMenuMode, getShowTopMenu, getShowLocale, diff --git a/src/layouts/default/index.vue b/src/layouts/default/index.vue index 5e83b8953..4b95324eb 100644 --- a/src/layouts/default/index.vue +++ b/src/layouts/default/index.vue @@ -1,9 +1,9 @@ + diff --git a/src/layouts/default/sider/index.tsx b/src/layouts/default/sider/LayoutSider.tsx similarity index 88% rename from src/layouts/default/sider/index.tsx rename to src/layouts/default/sider/LayoutSider.tsx index d64b6d11c..a7016510f 100644 --- a/src/layouts/default/sider/index.tsx +++ b/src/layouts/default/sider/LayoutSider.tsx @@ -12,6 +12,7 @@ import { useTrigger, useDragLine, useSiderEvent } from './useLayoutSider'; import { useAppInject } from '/@/hooks/web/useAppInject'; import { useDesign } from '/@/hooks/web/useDesign'; +import DragBar from './DragBar.vue'; export default defineComponent({ name: 'LayoutSideBar', setup() { @@ -31,11 +32,11 @@ export default defineComponent({ const { prefixCls } = useDesign('layout-sideBar'); - const { getTriggerAttr, getTriggerSlot } = useTrigger(); - const { getIsMobile } = useAppInject(); - const { renderDragLine } = useDragLine(sideRef, dragBarRef); + const { getTriggerAttr, getTriggerSlot } = useTrigger(getIsMobile); + + useDragLine(sideRef, dragBarRef); const { getCollapsedWidth, onBreakpointChange, onCollapseChange } = useSiderEvent(); @@ -48,7 +49,7 @@ export default defineComponent({ }); const showClassSideBarRef = computed(() => { - return unref(getSplit) ? unref(getMenuHidden) : true; + return unref(getSplit) ? !unref(getMenuHidden) : true; }); const getSiderClass = computed(() => { @@ -57,7 +58,7 @@ export default defineComponent({ { [`${prefixCls}--fixed`]: unref(getMenuFixed), hidden: !unref(showClassSideBarRef), - [`${prefixCls}--mix`]: unref(getIsMixMode), + [`${prefixCls}--mix`]: unref(getIsMixMode) && !unref(getIsMobile), }, ]; }); @@ -84,7 +85,7 @@ export default defineComponent({ menuMode={unref(getMode)} splitType={unref(getSplitType)} /> - {renderDragLine()} + ); } @@ -101,7 +102,7 @@ export default defineComponent({ collapsible class={unref(getSiderClass)} width={unref(getMenuWidth)} - collapsed={unref(getCollapsed)} + collapsed={unref(getIsMobile) ? false : unref(getCollapsed)} collapsedWidth={unref(getCollapsedWidth)} theme={unref(getMenuTheme)} onCollapse={onCollapseChange} diff --git a/src/layouts/default/sider/index.less b/src/layouts/default/sider/index.less index 7c73c16d7..c89b87682 100644 --- a/src/layouts/default/sider/index.less +++ b/src/layouts/default/sider/index.less @@ -44,27 +44,6 @@ z-index: 10; } - &__darg-bar { - position: absolute; - top: 0; - right: -2px; - z-index: @side-drag-z-index; - width: 2px; - height: 100%; - cursor: col-resize; - border-top: none; - border-bottom: none; - - &.hide { - display: none; - } - - &:hover { - background: @primary-color; - box-shadow: 0 0 4px 0 rgba(28, 36, 56, 0.15); - } - } - & .ant-layout-sider-trigger { height: 36px; line-height: 36px; diff --git a/src/layouts/default/sider/index.vue b/src/layouts/default/sider/index.vue new file mode 100644 index 000000000..57920038a --- /dev/null +++ b/src/layouts/default/sider/index.vue @@ -0,0 +1,54 @@ + + + diff --git a/src/layouts/default/sider/useLayoutSider.tsx b/src/layouts/default/sider/useLayoutSider.tsx index 7656d2e4e..263756301 100644 --- a/src/layouts/default/sider/useLayoutSider.tsx +++ b/src/layouts/default/sider/useLayoutSider.tsx @@ -42,12 +42,17 @@ export function useSiderEvent() { /** * Handle related operations of menu folding */ -export function useTrigger() { - const { getTrigger } = useMenuSetting(); +export function useTrigger(getIsMobile: Ref) { + const { getTrigger, getSplit } = useMenuSetting(); const showTrigger = computed(() => { const trigger = unref(getTrigger); - return trigger !== TriggerEnum.NONE && trigger === TriggerEnum.FOOTER; + + return ( + trigger !== TriggerEnum.NONE && + !unref(getIsMobile) && + (trigger === TriggerEnum.FOOTER || unref(getSplit)) + ); }); const getTriggerAttr = computed(() => { @@ -77,14 +82,7 @@ export function useTrigger() { * @param dragBarRef */ export function useDragLine(siderRef: Ref, dragBarRef: Ref) { - const { getMiniWidthNumber, getCollapsed, setMenuSetting, getCanDrag } = useMenuSetting(); - - const getDragBarStyle = computed(() => { - if (unref(getCollapsed)) { - return { left: `${unref(getMiniWidthNumber)}px` }; - } - return {}; - }); + const { getMiniWidthNumber, getCollapsed, setMenuSetting } = useMenuSetting(); onMounted(() => { nextTick(() => { @@ -93,16 +91,6 @@ export function useDragLine(siderRef: Ref, dragBarRef: Ref) { }); }); - function renderDragLine() { - return ( -
- ); - } - function handleMouseMove(ele: HTMLElement, wrap: HTMLElement, clientX: number) { document.onmousemove = function (innerE) { let iT = (ele as any).left + (innerE.clientX - clientX); @@ -138,21 +126,22 @@ export function useDragLine(siderRef: Ref, dragBarRef: Ref) { } function changeWrapWidth() { - const ele = unref(dragBarRef) as any; + const ele = unref(dragBarRef)?.$el; + if (!ele) { + return; + } const side = unref(siderRef); - const wrap = (side || {}).$el; - ele && - (ele.onmousedown = (e: any) => { - wrap.style.transition = 'unset'; - const clientX = e?.clientX; - ele.left = ele.offsetLeft; - handleMouseMove(ele, wrap, clientX); - removeMouseup(ele); - ele.setCapture?.(); - return false; - }); + ele.onmousedown = (e: any) => { + wrap.style.transition = 'unset'; + const clientX = e?.clientX; + ele.left = ele.offsetLeft; + handleMouseMove(ele, wrap, clientX); + removeMouseup(ele); + ele.setCapture?.(); + return false; + }; } - return { renderDragLine }; + return {}; } diff --git a/src/layouts/default/useLayoutContext.ts b/src/layouts/default/useLayoutContext.ts deleted file mode 100644 index 075f6ff13..000000000 --- a/src/layouts/default/useLayoutContext.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { InjectionKey, Ref } from 'vue'; -import { createContext, useContext } from '/@/hooks/core/useContext'; - -export interface LayoutContextProps { - fullHeader: Ref; -} - -const key: InjectionKey = Symbol(); - -export function createLayoutContext(context: LayoutContextProps) { - return createContext(context, key); -} - -export function useLayoutContext() { - return useContext(key); -} diff --git a/src/locales/lang/en/component/app.ts b/src/locales/lang/en/component/app.ts index fbf3b697a..5bd7a5c51 100644 --- a/src/locales/lang/en/component/app.ts +++ b/src/locales/lang/en/component/app.ts @@ -1,5 +1,6 @@ export default { search: 'Search', + cancel: 'Cancel', searchNotData: 'No search results yet', toSearch: 'to search', toNavigate: 'to navigate', diff --git a/src/locales/lang/zh_CN/component/app.ts b/src/locales/lang/zh_CN/component/app.ts index 80970b855..371966e6a 100644 --- a/src/locales/lang/zh_CN/component/app.ts +++ b/src/locales/lang/zh_CN/component/app.ts @@ -1,5 +1,6 @@ export default { search: '搜索', + cancel: '取消', searchNotData: '暂无搜索结果', toSearch: '确认', toNavigate: '切换', diff --git a/src/logics/mitt/tabChange.ts b/src/logics/mitt/tabChange.ts index 397ba1da4..596688122 100644 --- a/src/logics/mitt/tabChange.ts +++ b/src/logics/mitt/tabChange.ts @@ -13,8 +13,9 @@ const key = Symbol(); let lastChangeTab: RouteLocationNormalized; export function setLastChangeTab(lastChangeRoute: RouteLocationNormalized) { - mitt.emit(key, getRoute(lastChangeRoute)); - lastChangeTab = getRoute(lastChangeRoute); + const r = getRoute(lastChangeRoute); + mitt.emit(key, r); + lastChangeTab = r; } export function listenerLastChangeTab( diff --git a/src/main.ts b/src/main.ts index adb01f370..d30c812c0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -51,6 +51,5 @@ if (isDevMode()) { if (isProdMode() && isUseMock()) { setupProdMockServer(); } - // Used to share app instances in other modules setApp(app); diff --git a/src/router/helper/menuHelper.ts b/src/router/helper/menuHelper.ts index 59f6db7b9..a4d33ff45 100644 --- a/src/router/helper/menuHelper.ts +++ b/src/router/helper/menuHelper.ts @@ -1,7 +1,7 @@ import { AppRouteModule } from '/@/router/types.d'; import type { MenuModule, Menu, AppRouteRecordRaw } from '/@/router/types'; -import { findPath, forEach, treeMap, treeToList } from '/@/utils/helper/treeHelper'; +import { findPath, forEach, treeMap } from '/@/utils/helper/treeHelper'; import { cloneDeep } from 'lodash-es'; import { isUrl } from '/@/utils/is'; @@ -10,10 +10,6 @@ export function getAllParentPath(treeData: any[], path: string) { return (menuList || []).map((item) => item.path); } -export function flatMenus(menus: Menu[]) { - return treeToList(menus); -} - // 拼接父级路径 function joinParentPath(list: any, node: any) { let allPaths = getAllParentPath(list, node.path); diff --git a/src/router/helper/routeHelper.ts b/src/router/helper/routeHelper.ts index 3968f4915..a3b420848 100644 --- a/src/router/helper/routeHelper.ts +++ b/src/router/helper/routeHelper.ts @@ -5,6 +5,10 @@ import { getParentLayout, LAYOUT } from '/@/router/constant'; import dynamicImport from './dynamicImport'; import { cloneDeep } from 'lodash-es'; +export type LayoutMapKey = 'LAYOUT'; + +const LayoutMap = new Map Promise>(); + // 动态引入 function asyncImportRoute(routes: AppRouteRecordRaw[] | undefined) { if (!routes) return; @@ -20,16 +24,14 @@ function asyncImportRoute(routes: AppRouteRecordRaw[] | undefined) { }); } -function getLayoutComp(comp: string) { - return comp === 'LAYOUT' ? LAYOUT : ''; -} - // Turn background objects into routing objects export function transformObjToRoute(routeList: AppRouteModule[]): T[] { + LayoutMap.set('LAYOUT', LAYOUT); + routeList.forEach((route) => { if (route.component) { if ((route.component as string).toUpperCase() === 'LAYOUT') { - route.component = getLayoutComp(route.component); + route.component = LayoutMap.get(route.component); } else { route.children = [cloneDeep(route)]; route.component = LAYOUT; @@ -46,16 +48,6 @@ export function transformObjToRoute(routeList: AppRouteModul return (routeList as unknown) as T[]; } -export function getParams(data: any = {}) { - const { params = {} } = data; - let ret = ''; - Object.keys(params).forEach((key) => { - const p = params[key]; - ret += `/${p}`; - }); - return ret; -} - // Return to the new routing structure, not affected by the original example export function getRoute(route: RouteLocationNormalized): RouteLocationNormalized { if (!route) return route; diff --git a/src/router/menus/index.ts b/src/router/menus/index.ts index e1b15ac5a..e7bb4d006 100644 --- a/src/router/menus/index.ts +++ b/src/router/menus/index.ts @@ -1,8 +1,9 @@ import type { Menu, MenuModule } from '/@/router/types'; import type { RouteRecordNormalized } from 'vue-router'; + import { appStore } from '/@/store/modules/app'; import { permissionStore } from '/@/store/modules/permission'; -import { transformMenuModule, flatMenus, getAllParentPath } from '/@/router/helper/menuHelper'; +import { transformMenuModule, getAllParentPath } from '/@/router/helper/menuHelper'; import { filter } from '/@/utils/helper/treeHelper'; import router from '/@/router'; import { PermissionModeEnum } from '/@/enums/appEnum'; @@ -10,6 +11,8 @@ import { pathToRegexp } from 'path-to-regexp'; import modules from 'globby!/@/router/menus/modules/**/*.@(ts)'; +const reg = /(((https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/; + const menuModules: MenuModule[] = []; Object.keys(modules).forEach((key) => { @@ -38,18 +41,9 @@ const staticMenus: Menu[] = []; async function getAsyncMenus() { // 前端角色控制菜单 直接取菜单文件 - if (!isBackMode()) { - return staticMenus; - } - return permissionStore.getBackMenuListState; + return !isBackMode() ? staticMenus : permissionStore.getBackMenuListState; } -// 获取深层扁平化菜单 -export const getFlatMenus = async (): Promise => { - const menus = await getAsyncMenus(); - return flatMenus(menus); -}; - // 获取菜单 树级 export const getMenus = async (): Promise => { const menus = await getAsyncMenus(); @@ -61,7 +55,7 @@ export const getMenus = async (): Promise => { export async function getCurrentParentPath(currentPath: string) { const menus = await getAsyncMenus(); const allParentPath = await getAllParentPath(menus, currentPath); - return allParentPath[0]; + return allParentPath?.[0]; } // 获取1级菜单,删除children @@ -81,27 +75,24 @@ export async function getChildrenMenus(parentPath: string) { return parent.children; } -// 扁平化children -export async function getFlatChildrenMenus(children: Menu[]) { - return flatMenus(children); -} - // 通用过滤方法 function basicFilter(routes: RouteRecordNormalized[]) { return (menu: Menu) => { const matchRoute = routes.find((route) => { - if (route.meta.externalLink) { + const match = route.path.match(reg)?.[0]; + if (match && match === menu.path) { return true; } - if (route.meta) { - if (route.meta.carryParam) { - return pathToRegexp(route.path).test(menu.path); - } - if (route.meta.ignoreAuth) return true; + if (route.meta?.carryParam) { + return pathToRegexp(route.path).test(menu.path); } + const isSame = route.path === menu.path; + if (!isSame) return false; - return route.path === menu.path; + if (route.meta?.ignoreAuth) return true; + + return isSame || pathToRegexp(route.path).test(menu.path); }); if (!matchRoute) return false; diff --git a/src/router/routes/modules/demo/iframe.ts b/src/router/routes/modules/demo/iframe.ts index 1465f2903..6efc771d7 100644 --- a/src/router/routes/modules/demo/iframe.ts +++ b/src/router/routes/modules/demo/iframe.ts @@ -38,7 +38,6 @@ const iframe: AppRouteModule = { name: 'DocExternal', component: IFrame, meta: { - externalLink: true, title: t('routes.demo.iframe.docExternal'), }, }, diff --git a/src/router/types.d.ts b/src/router/types.d.ts index 671339a0b..bb40d916a 100644 --- a/src/router/types.d.ts +++ b/src/router/types.d.ts @@ -15,9 +15,6 @@ export interface RouteMeta { // icon on tab icon?: string; // Jump address - frameSrc?: string; - // Outer link jump address - externalLink?: boolean; // current page transition transitionName?: string; diff --git a/src/settings/projectSetting.ts b/src/settings/projectSetting.ts index fda177d71..c491b191e 100644 --- a/src/settings/projectSetting.ts +++ b/src/settings/projectSetting.ts @@ -89,7 +89,7 @@ const setting: ProjectConfig = { // Whether to show no dom show: true, // Whether to show dom - hidden: true, + hidden: false, // Menu width menuWidth: 210, // Menu mode diff --git a/src/utils/is.ts b/src/utils/is.ts index d8d1c2428..fda839e93 100644 --- a/src/utils/is.ts +++ b/src/utils/is.ts @@ -50,7 +50,7 @@ export function isRegExp(val: unknown): val is RegExp { return is(val, 'RegExp'); } -export function isArray(val: unknown): val is Array { +export function isArray(val: any): val is Array { return val && Array.isArray(val); } diff --git a/src/views/sys/lock/LockPage.vue b/src/views/sys/lock/LockPage.vue index 9599a6683..16bcdae60 100644 --- a/src/views/sys/lock/LockPage.vue +++ b/src/views/sys/lock/LockPage.vue @@ -221,25 +221,35 @@ font-size: 23em; } @media (min-width: @screen-sm-max) and (max-width: @screen-md-max) { - font-size: 19em; + height: 50%; + font-size: 12em; + border-radius: 10px; + + .meridiem { + font-size: 20px; + } } @media (min-width: @screen-xs-max) and (max-width: @screen-sm-max) { font-size: 13em; } @media (max-width: @screen-xs) { - height: 50%; - font-size: 6em; - border-radius: 20px; + height: 30%; + font-size: 5em; + border-radius: 10px; + + .meridiem { + font-size: 14px; + } } } &__footer-date { position: absolute; bottom: 20px; - left: 50%; + width: 100%; font-family: helvetica; color: #bababa; - transform: translate(-50%, 0); + text-align: center; .time { font-size: 50px; diff --git a/yarn.lock b/yarn.lock index 1474bee0b..f6770d121 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1051,43 +1051,43 @@ resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.272.tgz#27c7caee9764e0304161261ec08ffc2794944b66" integrity sha512-FyiTc7UiXJ5cDfk09lv70sYOSi5uLyK+a0LnF1KgWmofkikL06p98ksNRN7stmHryOYarSy75xgi6MbgAwtltQ== -"@intlify/core@9.0.0-beta.12": - version "9.0.0-beta.12" - resolved "https://registry.npmjs.org/@intlify/core/-/core-9.0.0-beta.12.tgz#f7d2d09060b8e00ae37157e00a0daa1c86290802" - integrity sha512-0wdOS9d0ZEvGkbNIdaxEHQQOfAIuhv1Q8CSpNImThh8ZDD+5Sa38wTerHBO0/Rk0HfHUP/hjPqbxxRqITmSo1g== +"@intlify/core-base@9.0.0-beta.13": + version "9.0.0-beta.13" + resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.0.0-beta.13.tgz#fb6bc278209cb7bef44853a42160fedb0560c3f8" + integrity sha512-ukImWV+QvRmNZtCTLrSW391z46eMuBheCMPZh801nM3v0Dosfu2PtWO5/z8Q9Bsom4Q+PNQ5eBtOQj2yCAhVEA== dependencies: - "@intlify/message-compiler" "9.0.0-beta.12" - "@intlify/message-resolver" "9.0.0-beta.12" - "@intlify/runtime" "9.0.0-beta.12" - "@intlify/shared" "9.0.0-beta.12" + "@intlify/message-compiler" "9.0.0-beta.13" + "@intlify/message-resolver" "9.0.0-beta.13" + "@intlify/runtime" "9.0.0-beta.13" + "@intlify/shared" "9.0.0-beta.13" -"@intlify/message-compiler@9.0.0-beta.12": - version "9.0.0-beta.12" - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-beta.12.tgz#836a49cfd057ecb2c536680cc01aa16693211891" - integrity sha512-EMzBDBIsFvWV9w0tRAHzn2BD1C7nkJkXYwDWinROmoL6C4jgKUgon+9Uxp7lV0H1E+7hUfhGj6zHdtJrwFhH+g== +"@intlify/message-compiler@9.0.0-beta.13": + version "9.0.0-beta.13" + resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-beta.13.tgz#3b8ddcb2be3f80b28c6e4f6028c0b3ec4e709849" + integrity sha512-1z7716InFM8FdTAz64wqZvFuT4wL7WKF63v+vUEW4s9FLoL0U+xIccor9P5XHAvvG1gPMH/Zxd0deg/ULZ1Mcg== dependencies: - "@intlify/message-resolver" "9.0.0-beta.12" - "@intlify/shared" "9.0.0-beta.12" + "@intlify/message-resolver" "9.0.0-beta.13" + "@intlify/shared" "9.0.0-beta.13" source-map "0.6.1" -"@intlify/message-resolver@9.0.0-beta.12": - version "9.0.0-beta.12" - resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-beta.12.tgz#98cf346f5da0fdf3408ba132c24841295a4e02db" - integrity sha512-i8bmWzhiBH59YED3SXqvdUfwecl7OUPOU/8yvfdhg2rXuZ4e2chCPnLpPafXz6bi88HcRsWF4aRGlpwDVDYadg== +"@intlify/message-resolver@9.0.0-beta.13": + version "9.0.0-beta.13" + resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-beta.13.tgz#ae6de0bf0e54093160442d465e719bf03fd0f146" + integrity sha512-mR1eSpRtB4jh11TpQTUyzjEwqZ6D30mJYREEfSrl5YKfUKwDQrulrOaIO8T5gVQG2m09vfxJHVrgfJ2hR8z/0Q== -"@intlify/runtime@9.0.0-beta.12": - version "9.0.0-beta.12" - resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-beta.12.tgz#647a62a326d92690569798ef046d29e8daa25c96" - integrity sha512-4ucZHqk/VGhrQEgu9xU5tE/sJTNfqKBhQtaXyEgYHchL9PvLoS1HFwPjABHvWjo3aVcv4d2cGtUPBwH4oLROKA== +"@intlify/runtime@9.0.0-beta.13": + version "9.0.0-beta.13" + resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-beta.13.tgz#8deff103ee6982c6d531314e9f965b90768d8a27" + integrity sha512-hcb3sg75SokuzNDG8IC6PJmwjsS/xdgevd99UNG1zKb7s5qFFb90ApvPDpiH0+R9TMQe11fZqg5dyrVBKqAV4A== dependencies: - "@intlify/message-compiler" "9.0.0-beta.12" - "@intlify/message-resolver" "9.0.0-beta.12" - "@intlify/shared" "9.0.0-beta.12" + "@intlify/message-compiler" "9.0.0-beta.13" + "@intlify/message-resolver" "9.0.0-beta.13" + "@intlify/shared" "9.0.0-beta.13" -"@intlify/shared@9.0.0-beta.12": - version "9.0.0-beta.12" - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-beta.12.tgz#e939575bc4047411b9fc65347779f5b3173c1130" - integrity sha512-XtHAzQ2KBcdN0Khc7ZDCo5GnKQK4Vv0GKD1BplCWntpA2d5XqjdDpFuKumvbiOjPvYtuCFnksJU0OgJiCWG+KQ== +"@intlify/shared@9.0.0-beta.13": + version "9.0.0-beta.13" + resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-beta.13.tgz#2d93d695f19fd699ea8b336066f9d6dfc185f094" + integrity sha512-/rqC3YEGHs3uu3XSsF1zdBKJb+on34Yn8Z58K3YxJsFxKPHa8mH73EUtN79hTZWh6Js4zEa/WsCgZCM62b8eJA== "@koa/cors@^3.1.0": version "3.1.0" @@ -8256,16 +8256,13 @@ vue-eslint-parser@^7.3.0: esquery "^1.0.1" lodash "^4.17.15" -vue-i18n@^9.0.0-beta.12: - version "9.0.0-beta.12" - resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.0.0-beta.12.tgz#f6e2fc1cc366b8f16aa4754642931e937ebde303" - integrity sha512-hDnr+GsIGCIKRtZsdDczkhqyzbpLuPgEkH5bQyMzrKTLelXipLvIVmUCAsSjyR7xMHDCwP6AwVTIZwk6ENXkwg== +vue-i18n@^9.0.0-beta.13: + version "9.0.0-beta.13" + resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.0.0-beta.13.tgz#89cf5dd1566025f441132231d15ed621ef70ba96" + integrity sha512-ZN6r5ITODu9NYAAbe1IGVUkNeamuleaXTLn5NMn/YZQ+5NSjDjysyVZVLkVOEOIw6bT2tLveyjsWlAZBVtfcPw== dependencies: - "@intlify/core" "9.0.0-beta.12" - "@intlify/message-compiler" "9.0.0-beta.12" - "@intlify/message-resolver" "9.0.0-beta.12" - "@intlify/runtime" "9.0.0-beta.12" - "@intlify/shared" "9.0.0-beta.12" + "@intlify/core-base" "9.0.0-beta.13" + "@intlify/shared" "9.0.0-beta.13" "@vue/devtools-api" "^6.0.0-beta.2" vue-router@^4.0.1: