chore: update deps
parent
6d4991d852
commit
e650a0b863
|
@ -5,8 +5,4 @@ import type { Preferences } from '@vben-core/preferences';
|
||||||
* @description 项目配置文件
|
* @description 项目配置文件
|
||||||
* 只需要覆盖项目中的一部分配置,不需要的配置不用覆盖,会自动使用默认配置
|
* 只需要覆盖项目中的一部分配置,不需要的配置不用覆盖,会自动使用默认配置
|
||||||
*/
|
*/
|
||||||
export const overridesPreferences: DeepPartial<Preferences> = {
|
export const overridesPreferences: DeepPartial<Preferences> = {};
|
||||||
app: {
|
|
||||||
name: 'Vben Admin',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
|
@ -10,9 +10,6 @@ import { useTitle } from '@vueuse/core';
|
||||||
|
|
||||||
import { dynamicRoutes } from '@/router/routes';
|
import { dynamicRoutes } from '@/router/routes';
|
||||||
|
|
||||||
// 不需要权限的页面白名单
|
|
||||||
const WHITE_ROUTE_NAMES = new Set<string>([]);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用守卫配置
|
* 通用守卫配置
|
||||||
* @param router
|
* @param router
|
||||||
|
@ -67,12 +64,6 @@ function setupAccessGuard(router: Router) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 白名单路由列表检查
|
|
||||||
// TODO: 不是很需要,通过 ignoreAccess 也可以做到,考虑删除
|
|
||||||
if (WHITE_ROUTE_NAMES.has(to.name as string)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 没有访问权限,跳转登录页面
|
// 没有访问权限,跳转登录页面
|
||||||
if (to.fullPath !== LOGIN_PATH) {
|
if (to.fullPath !== LOGIN_PATH) {
|
||||||
return loginPageMeta(to);
|
return loginPageMeta(to);
|
||||||
|
@ -99,11 +90,10 @@ function setupAccessGuard(router: Router) {
|
||||||
// 保存菜单信息和路由信息
|
// 保存菜单信息和路由信息
|
||||||
accessStore.setAccessMenus(menus);
|
accessStore.setAccessMenus(menus);
|
||||||
accessStore.setAccessRoutes(routes);
|
accessStore.setAccessRoutes(routes);
|
||||||
const redirectPath = (from.query.redirect || to.path) as string;
|
const redirectPath = (from.query.redirect ?? to.path) as string;
|
||||||
const redirect = decodeURIComponent(redirectPath);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
path: redirect,
|
path: decodeURIComponent(redirectPath),
|
||||||
replace: true,
|
replace: true,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -74,7 +74,7 @@ const essentialRoutes: RouteRecordRaw[] = [
|
||||||
hideInBreadcrumb: true,
|
hideInBreadcrumb: true,
|
||||||
hideInMenu: true,
|
hideInMenu: true,
|
||||||
hideInTab: true,
|
hideInTab: true,
|
||||||
ignoreAccess: true,
|
// ignoreAccess: true,
|
||||||
title: 'Fallback',
|
title: 'Fallback',
|
||||||
},
|
},
|
||||||
name: 'Fallback',
|
name: 'Fallback',
|
||||||
|
|
|
@ -7,7 +7,7 @@ const routes: RouteRecordRaw[] = [
|
||||||
component: BasicLayout,
|
component: BasicLayout,
|
||||||
meta: {
|
meta: {
|
||||||
hideChildrenInMenu: true,
|
hideChildrenInMenu: true,
|
||||||
orderNo: -1,
|
order: -1,
|
||||||
title: '首页',
|
title: '首页',
|
||||||
},
|
},
|
||||||
name: 'Home',
|
name: 'Home',
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/node.json",
|
"extends": "@vben/tsconfig/node.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,8 +35,8 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.4.0",
|
"@eslint/js": "^9.4.0",
|
||||||
"@types/eslint": "^8.56.10",
|
"@types/eslint": "^8.56.10",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.11.0",
|
"@typescript-eslint/eslint-plugin": "^7.12.0",
|
||||||
"@typescript-eslint/parser": "^7.11.0",
|
"@typescript-eslint/parser": "^7.12.0",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.0",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/node.json",
|
"extends": "@vben/tsconfig/node.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/node.json",
|
"extends": "@vben/tsconfig/node.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/node.json",
|
"extends": "@vben/tsconfig/node.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stylistic/stylelint-plugin": "^2.1.2",
|
"@stylistic/stylelint-plugin": "^2.1.2",
|
||||||
"stylelint-config-recess-order": "^5.0.1",
|
"stylelint-config-recess-order": "^5.0.1",
|
||||||
"stylelint-scss": "^6.3.0"
|
"stylelint-scss": "^6.3.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.38",
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/node.json",
|
"extends": "@vben/tsconfig/node.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/node.json",
|
"extends": "@vben/tsconfig/node.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"tailwindcss": "^3.4.3"
|
"tailwindcss": "^3.4.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iconify/json": "^2.2.215",
|
"@iconify/json": "^2.2.216",
|
||||||
"@iconify/tailwind": "^1.1.1",
|
"@iconify/tailwind": "^1.1.1",
|
||||||
"@tailwindcss/forms": "^0.5.7",
|
"@tailwindcss/forms": "^0.5.7",
|
||||||
"@tailwindcss/nesting": "0.0.0-insiders.565cd3e",
|
"@tailwindcss/nesting": "0.0.0-insiders.565cd3e",
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/node.json",
|
"extends": "@vben/tsconfig/node.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/node.json",
|
"extends": "@vben/tsconfig/node.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,14 +16,15 @@
|
||||||
"monorepo",
|
"monorepo",
|
||||||
"turbo",
|
"turbo",
|
||||||
"vben",
|
"vben",
|
||||||
"vben admin",
|
"vben pro",
|
||||||
|
"vben admin pro",
|
||||||
"vue",
|
"vue",
|
||||||
"vue admin",
|
"vue admin",
|
||||||
"vue3"
|
"vue3"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"bootstrap": "pnpm install",
|
"bootstrap": "pnpm install",
|
||||||
"build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 turbo build && pnpm install -s",
|
"build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 turbo build",
|
||||||
"build:docker": "./build-local-docker-image.sh",
|
"build:docker": "./build-local-docker-image.sh",
|
||||||
"changeset": "pnpm exec changeset",
|
"changeset": "pnpm exec changeset",
|
||||||
"check": "pnpm run check:dep && pnpm run check:circular && pnpm run check:type",
|
"check": "pnpm run check:dep && pnpm run check:circular && pnpm run check:type",
|
||||||
|
@ -47,7 +48,7 @@
|
||||||
"@changesets/cli": "^2.27.5",
|
"@changesets/cli": "^2.27.5",
|
||||||
"@ls-lint/ls-lint": "^2.2.3",
|
"@ls-lint/ls-lint": "^2.2.3",
|
||||||
"@types/jsdom": "^21.1.7",
|
"@types/jsdom": "^21.1.7",
|
||||||
"@types/node": "^20.14.0",
|
"@types/node": "^20.14.1",
|
||||||
"@vben/commitlint-config": "workspace:*",
|
"@vben/commitlint-config": "workspace:*",
|
||||||
"@vben/eslint-config": "workspace:*",
|
"@vben/eslint-config": "workspace:*",
|
||||||
"@vben/lint-staged-config": "workspace:*",
|
"@vben/lint-staged-config": "workspace:*",
|
||||||
|
@ -64,7 +65,7 @@
|
||||||
"jsdom": "^24.1.0",
|
"jsdom": "^24.1.0",
|
||||||
"rimraf": "^5.0.7",
|
"rimraf": "^5.0.7",
|
||||||
"taze": "^0.13.8",
|
"taze": "^0.13.8",
|
||||||
"turbo": "^1.13.3",
|
"turbo": "^2.0.1",
|
||||||
"typescript": "^5.4.5",
|
"typescript": "^5.4.5",
|
||||||
"unbuild": "^2.0.0",
|
"unbuild": "^2.0.0",
|
||||||
"vite": "6.0.0-alpha.17",
|
"vite": "6.0.0-alpha.17",
|
||||||
|
|
|
@ -49,7 +49,7 @@ describe('generatorMenus', () => {
|
||||||
badgeVariants: undefined,
|
badgeVariants: undefined,
|
||||||
icon: 'home-icon',
|
icon: 'home-icon',
|
||||||
name: '首页',
|
name: '首页',
|
||||||
orderNo: undefined,
|
order: undefined,
|
||||||
parent: undefined,
|
parent: undefined,
|
||||||
parents: undefined,
|
parents: undefined,
|
||||||
path: '/home',
|
path: '/home',
|
||||||
|
@ -61,7 +61,7 @@ describe('generatorMenus', () => {
|
||||||
badgeVariants: undefined,
|
badgeVariants: undefined,
|
||||||
icon: 'about-icon',
|
icon: 'about-icon',
|
||||||
name: '关于',
|
name: '关于',
|
||||||
orderNo: undefined,
|
order: undefined,
|
||||||
parent: undefined,
|
parent: undefined,
|
||||||
parents: undefined,
|
parents: undefined,
|
||||||
path: '/about',
|
path: '/about',
|
||||||
|
@ -76,7 +76,7 @@ describe('generatorMenus', () => {
|
||||||
it('includes additional meta properties in menu items', async () => {
|
it('includes additional meta properties in menu items', async () => {
|
||||||
const mockRoutesWithMeta = [
|
const mockRoutesWithMeta = [
|
||||||
{
|
{
|
||||||
meta: { icon: 'user-icon', orderNo: 1, title: 'Profile' },
|
meta: { icon: 'user-icon', order: 1, title: 'Profile' },
|
||||||
name: 'profile',
|
name: 'profile',
|
||||||
path: '/profile',
|
path: '/profile',
|
||||||
},
|
},
|
||||||
|
@ -90,7 +90,7 @@ describe('generatorMenus', () => {
|
||||||
badgeVariants: undefined,
|
badgeVariants: undefined,
|
||||||
icon: 'user-icon',
|
icon: 'user-icon',
|
||||||
name: 'Profile',
|
name: 'Profile',
|
||||||
orderNo: 1,
|
order: 1,
|
||||||
parent: undefined,
|
parent: undefined,
|
||||||
parents: undefined,
|
parents: undefined,
|
||||||
path: '/profile',
|
path: '/profile',
|
||||||
|
@ -116,7 +116,7 @@ describe('generatorMenus', () => {
|
||||||
badgeVariants: undefined,
|
badgeVariants: undefined,
|
||||||
icon: 'details-icon',
|
icon: 'details-icon',
|
||||||
name: 'User Details',
|
name: 'User Details',
|
||||||
orderNo: undefined,
|
order: undefined,
|
||||||
parent: undefined,
|
parent: undefined,
|
||||||
parents: undefined,
|
parents: undefined,
|
||||||
path: '/users/:userId',
|
path: '/users/:userId',
|
||||||
|
@ -151,7 +151,7 @@ describe('generatorMenus', () => {
|
||||||
badgeVariants: undefined,
|
badgeVariants: undefined,
|
||||||
icon: undefined,
|
icon: undefined,
|
||||||
name: 'redirectedRoute',
|
name: 'redirectedRoute',
|
||||||
orderNo: undefined,
|
order: undefined,
|
||||||
parent: undefined,
|
parent: undefined,
|
||||||
parents: undefined,
|
parents: undefined,
|
||||||
path: '/old-path',
|
path: '/old-path',
|
||||||
|
@ -163,7 +163,7 @@ describe('generatorMenus', () => {
|
||||||
badgeVariants: undefined,
|
badgeVariants: undefined,
|
||||||
icon: 'path-icon',
|
icon: 'path-icon',
|
||||||
name: 'New Path',
|
name: 'New Path',
|
||||||
orderNo: undefined,
|
order: undefined,
|
||||||
parent: undefined,
|
parent: undefined,
|
||||||
parents: undefined,
|
parents: undefined,
|
||||||
path: '/new-path',
|
path: '/new-path',
|
||||||
|
@ -174,12 +174,12 @@ describe('generatorMenus', () => {
|
||||||
|
|
||||||
const routes: any = [
|
const routes: any = [
|
||||||
{
|
{
|
||||||
meta: { orderNo: 2, title: 'Home' },
|
meta: { order: 2, title: 'Home' },
|
||||||
name: 'home',
|
name: 'home',
|
||||||
path: '/',
|
path: '/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
meta: { orderNo: 1, title: 'About' },
|
meta: { order: 1, title: 'About' },
|
||||||
name: 'about',
|
name: 'about',
|
||||||
path: '/about',
|
path: '/about',
|
||||||
},
|
},
|
||||||
|
@ -199,7 +199,7 @@ describe('generatorMenus', () => {
|
||||||
badgeVariants: undefined,
|
badgeVariants: undefined,
|
||||||
icon: undefined,
|
icon: undefined,
|
||||||
name: 'About',
|
name: 'About',
|
||||||
orderNo: 1,
|
order: 1,
|
||||||
parent: undefined,
|
parent: undefined,
|
||||||
parents: undefined,
|
parents: undefined,
|
||||||
path: '/about',
|
path: '/about',
|
||||||
|
@ -211,7 +211,7 @@ describe('generatorMenus', () => {
|
||||||
badgeVariants: undefined,
|
badgeVariants: undefined,
|
||||||
icon: undefined,
|
icon: undefined,
|
||||||
name: 'Home',
|
name: 'Home',
|
||||||
orderNo: 2,
|
order: 2,
|
||||||
parent: undefined,
|
parent: undefined,
|
||||||
parents: undefined,
|
parents: undefined,
|
||||||
path: '/',
|
path: '/',
|
||||||
|
|
|
@ -30,7 +30,7 @@ async function generatorMenus(
|
||||||
badgeVariants,
|
badgeVariants,
|
||||||
hideChildrenInMenu = false,
|
hideChildrenInMenu = false,
|
||||||
icon,
|
icon,
|
||||||
orderNo,
|
order,
|
||||||
target,
|
target,
|
||||||
title = '',
|
title = '',
|
||||||
} = meta || {};
|
} = meta || {};
|
||||||
|
@ -57,7 +57,7 @@ async function generatorMenus(
|
||||||
badgeVariants,
|
badgeVariants,
|
||||||
icon,
|
icon,
|
||||||
name,
|
name,
|
||||||
orderNo,
|
order,
|
||||||
parent: route.parent,
|
parent: route.parent,
|
||||||
parents: route.parents,
|
parents: route.parents,
|
||||||
path: resultPath as string,
|
path: resultPath as string,
|
||||||
|
@ -66,7 +66,7 @@ async function generatorMenus(
|
||||||
});
|
});
|
||||||
|
|
||||||
// 对菜单进行排序
|
// 对菜单进行排序
|
||||||
menus = menus.sort((a, b) => (a.orderNo || 999) - (b.orderNo || 999));
|
menus = menus.sort((a, b) => (a.order || 999) - (b.order || 999));
|
||||||
return menus;
|
return menus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,5 +4,6 @@
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"types": ["@vben-core/typings/vue-router"]
|
"types": ["@vben-core/typings/vue-router"]
|
||||||
},
|
},
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/web.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/web.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/library.json",
|
"extends": "@vben/tsconfig/library.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/library.json",
|
"extends": "@vben/tsconfig/library.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/library.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/web.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/library.json",
|
"extends": "@vben/tsconfig/library.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ interface MenuRecordRaw extends MenuRecordBadgeRaw {
|
||||||
/**
|
/**
|
||||||
* 排序号
|
* 排序号
|
||||||
*/
|
*/
|
||||||
orderNo?: number;
|
order?: number;
|
||||||
/**
|
/**
|
||||||
* 父级路径
|
* 父级路径
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -75,7 +75,7 @@ interface RouteMeta {
|
||||||
/**
|
/**
|
||||||
* 用于路由->菜单排序
|
* 用于路由->菜单排序
|
||||||
*/
|
*/
|
||||||
orderNo?: number;
|
order?: number;
|
||||||
/**
|
/**
|
||||||
* 外链-跳转路径
|
* 外链-跳转路径
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/library.json",
|
"extends": "@vben/tsconfig/library.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/web.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/web.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,11 @@
|
||||||
"types": "./src/index.ts",
|
"types": "./src/index.ts",
|
||||||
"development": "./src/index.ts",
|
"development": "./src/index.ts",
|
||||||
"default": "./dist/index.mjs"
|
"default": "./dist/index.mjs"
|
||||||
|
},
|
||||||
|
"./*": {
|
||||||
|
"types": "./src/*.ts",
|
||||||
|
"development": "./src/*.ts",
|
||||||
|
"default": "./dist/*.mjs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
|
@ -48,7 +53,7 @@
|
||||||
"@vueuse/core": "^10.10.0",
|
"@vueuse/core": "^10.10.0",
|
||||||
"class-variance-authority": "^0.7.0",
|
"class-variance-authority": "^0.7.0",
|
||||||
"clsx": "2.1.1",
|
"clsx": "2.1.1",
|
||||||
"radix-vue": "^1.8.2",
|
"radix-vue": "^1.8.3",
|
||||||
"tailwind-merge": "^2.3.0",
|
"tailwind-merge": "^2.3.0",
|
||||||
"vue": "3.4.27",
|
"vue": "3.4.27",
|
||||||
"vue-sonner": "^1.1.2"
|
"vue-sonner": "^1.1.2"
|
||||||
|
|
|
@ -7,5 +7,6 @@
|
||||||
"#/*": ["./src/*"]
|
"#/*": ["./src/*"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/web.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<svg
|
<svg
|
||||||
data-name="Layer 1"
|
height="571"
|
||||||
height="571.14799"
|
viewBox="0 0 860 571"
|
||||||
viewBox="0 0 860.13137 571.14799"
|
width="860"
|
||||||
width="860.13137"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
>
|
>
|
||||||
|
|
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 8.8 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 6.4 KiB |
|
@ -23,7 +23,6 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
minLoadingTime: 200,
|
minLoadingTime: 200,
|
||||||
});
|
});
|
||||||
const startTime = ref(0);
|
const startTime = ref(0);
|
||||||
const endTime = ref(0);
|
|
||||||
const showSpinner = ref(false);
|
const showSpinner = ref(false);
|
||||||
const timer = ref<TimeoutHandle>();
|
const timer = ref<TimeoutHandle>();
|
||||||
|
|
||||||
|
@ -37,9 +36,7 @@ watch(
|
||||||
}
|
}
|
||||||
startTime.value = performance.now();
|
startTime.value = performance.now();
|
||||||
timer.value = setTimeout(() => {
|
timer.value = setTimeout(() => {
|
||||||
endTime.value = performance.now();
|
const loadingTime = performance.now() - startTime.value;
|
||||||
|
|
||||||
const loadingTime = endTime.value - startTime.value;
|
|
||||||
|
|
||||||
showSpinner.value = loadingTime > props.minLoadingTime;
|
showSpinner.value = loadingTime > props.minLoadingTime;
|
||||||
}, props.minLoadingTime);
|
}, props.minLoadingTime);
|
||||||
|
@ -55,12 +52,14 @@ watch(
|
||||||
v-if="showSpinner"
|
v-if="showSpinner"
|
||||||
class="flex-center bg-overlay absolute left-0 top-0 size-full backdrop-blur-sm"
|
class="flex-center bg-overlay absolute left-0 top-0 size-full backdrop-blur-sm"
|
||||||
>
|
>
|
||||||
<div class="loader relative h-12 w-12"></div>
|
<div
|
||||||
|
class="loader before:bg-primary/50 after:bg-primary relative h-12 w-12 before:absolute before:left-0 before:top-[60px] before:h-[5px] before:w-12 before:animate-[loader-shadow-ani_0.5s_linear_infinite] before:rounded-[50%] before:content-[''] after:absolute after:left-0 after:top-0 after:h-full after:w-full after:animate-[loader-jump-ani_0.5s_linear_infinite] after:rounded after:content-['']"
|
||||||
|
></div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style>
|
||||||
@keyframes jump-ani {
|
@keyframes loader-jump-ani {
|
||||||
15% {
|
15% {
|
||||||
border-bottom-right-radius: 3px;
|
border-bottom-right-radius: 3px;
|
||||||
}
|
}
|
||||||
|
@ -83,7 +82,7 @@ watch(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes shadow-ani {
|
@keyframes loader-shadow-ani {
|
||||||
0%,
|
0%,
|
||||||
100% {
|
100% {
|
||||||
transform: scale(1, 1);
|
transform: scale(1, 1);
|
||||||
|
@ -93,14 +92,4 @@ watch(
|
||||||
transform: scale(1.2, 1);
|
transform: scale(1.2, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.loader {
|
|
||||||
&::before {
|
|
||||||
@apply bg-primary/50 absolute left-0 top-[60px] h-[5px] w-12 animate-[shadow-ani_0.5s_linear_infinite] rounded-[50%] content-[''];
|
|
||||||
}
|
|
||||||
|
|
||||||
&::after {
|
|
||||||
@apply bg-primary absolute left-0 top-0 h-full w-full animate-[jump-ani_0.5s_linear_infinite] rounded content-[''];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/web.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,33 +18,23 @@ const iframeRoutes = computed(() => {
|
||||||
if (!enableTabbar.value) {
|
if (!enableTabbar.value) {
|
||||||
return route.meta.iframeSrc ? [route] : [];
|
return route.meta.iframeSrc ? [route] : [];
|
||||||
}
|
}
|
||||||
const tabs = tabsStore.getTabs.filter((tab) => !!tab.meta?.iframeSrc);
|
return tabsStore.getTabs.filter((tab) => !!tab.meta?.iframeSrc);
|
||||||
return tabs;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const tabNames = computed(() => {
|
const tabNames = computed(
|
||||||
const names = new Set<string>();
|
() => new Set(iframeRoutes.value.map((item) => item.name as string)),
|
||||||
iframeRoutes.value.forEach((item) => {
|
);
|
||||||
names.add(item.name as string);
|
|
||||||
});
|
|
||||||
return names;
|
|
||||||
});
|
|
||||||
|
|
||||||
const showIframe = computed(() => iframeRoutes.value.length > 0);
|
const showIframe = computed(() => iframeRoutes.value.length > 0);
|
||||||
|
|
||||||
function routeShow(tabItem: RouteLocationNormalized) {
|
function routeShow(tabItem: RouteLocationNormalized) {
|
||||||
const { name } = tabItem;
|
return tabItem.name === route.name;
|
||||||
return name === route.name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function canRender(tabItem: RouteLocationNormalized) {
|
function canRender(tabItem: RouteLocationNormalized) {
|
||||||
const { meta, name } = tabItem;
|
const { meta, name } = tabItem;
|
||||||
|
|
||||||
if (!name) {
|
if (!name || !tabsStore.renderRouteView) {
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!tabsStore.renderRouteView) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +50,7 @@ function canRender(tabItem: RouteLocationNormalized) {
|
||||||
) {
|
) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return tabsStore.getTabs.findIndex((tab) => tab.name === name) !== -1;
|
return tabsStore.getTabs.some((tab) => tab.name === name);
|
||||||
}
|
}
|
||||||
|
|
||||||
function hideLoading() {
|
function hideLoading() {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/library.json",
|
"extends": "@vben/tsconfig/library.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/library.json",
|
"extends": "@vben/tsconfig/library.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/library.json",
|
"extends": "@vben/tsconfig/library.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/web.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/web.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/web.json",
|
"extends": "@vben/tsconfig/web.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/library.json",
|
"extends": "@vben/tsconfig/library.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/library.json",
|
"extends": "@vben/tsconfig/library.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
448
pnpm-lock.yaml
448
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "@vben/tsconfig/node.json",
|
"extends": "@vben/tsconfig/node.json",
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
"scripts/*/src/**/*.json"
|
"scripts/*/src/**/*.json"
|
||||||
],
|
],
|
||||||
"globalEnv": ["NODE_ENV"],
|
"globalEnv": ["NODE_ENV"],
|
||||||
"pipeline": {
|
"tasks": {
|
||||||
"build": {
|
"build": {
|
||||||
"dependsOn": ["^build"],
|
"dependsOn": ["^build"],
|
||||||
"outputs": ["dist/**"]
|
"outputs": ["dist/**"]
|
||||||
|
@ -26,9 +26,7 @@
|
||||||
"persistent": true
|
"persistent": true
|
||||||
},
|
},
|
||||||
"typecheck": {
|
"typecheck": {
|
||||||
"outputs": [],
|
"outputs": []
|
||||||
"outputMode": "errors-only"
|
|
||||||
// "outputMode": "new-only"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
"docs:preview": "vitepress preview"
|
"docs:preview": "vitepress preview"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vitepress": "^1.2.2",
|
"vitepress": "^1.2.3",
|
||||||
"vue": "3.4.27"
|
"vue": "3.4.27"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue