Skip to content

Commit c0b25f0

Browse files
committed
fix(babel.config.js): use polyfill of Array.prototype.at
1 parent e574f0e commit c0b25f0

File tree

9 files changed

+57
-27
lines changed

9 files changed

+57
-27
lines changed

babel.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module.exports = {
55
'@babel/preset-env',
66
{
77
useBuiltIns: 'entry',
8-
corejs: 3,
8+
corejs: 3.23,
99
},
1010
],
1111
],

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
"eslint": "^8.18.0",
7777
"eslint-config-prettier": "^8.5.0",
7878
"eslint-plugin-import": "2.26.0",
79-
"eslint-plugin-prettier": "^4.1.0",
79+
"eslint-plugin-prettier": "^4.2.1",
8080
"eslint-plugin-vue": "^9.1.1",
8181
"husky": "^8.0.1",
8282
"less": "^4.1.3",

src/hooks/index.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
// import { useFormModal } from './useFormModal'
2-
import { useModal } from './useModal';
3-
4-
export { useModal };
2+
export { useModal } from './useModal';
3+
export { useBattery } from './useBattery';
4+
export { useEventbus } from './useEventbus';
5+
export { useI18n } from './useI18n';
6+
export { useOnline } from './useOnline';
7+
export { useTime } from './useTime';
8+
export { useSortable } from './useSortable';

src/router/generator-router.tsx

+3-6
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,13 @@ export const generatorDynamicRouter = (asyncMenus: API.Menu[]) => {
124124
router.addRoute(layout);
125125
console.log('所有路由', router.getRoutes());
126126

127-
return {
127+
return Promise.resolve({
128128
menus,
129129
routes: layout.children,
130-
};
130+
});
131131
} catch (error) {
132132
console.error('生成路由时出错', error);
133-
return {
134-
menus: [],
135-
routes: [],
136-
};
133+
return Promise.reject(`生成路由时出错: ${error}`);
137134
}
138135
};
139136

src/router/router-guards.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { useUserStore } from '@/store/modules/user';
66
import { useKeepAliveStore } from '@/store/modules/keepAlive';
77
import { ACCESS_TOKEN_KEY } from '@/enums/cacheEnum';
88
import { Storage } from '@/utils/Storage';
9+
import { to as _to } from '@/utils/awaitTo';
910

1011
NProgress.configure({ showSpinner: false }); // NProgress Configuration
1112

@@ -23,10 +24,13 @@ export function createRouterGuards(router: Router, whiteNameList: WhiteNameList)
2324
NProgress.done();
2425
} else {
2526
const hasRoute = router.hasRoute(to.name!);
26-
// 如果不需要每次切换路由获取最新的动态路由,可把下面注释放开
2727
if (userStore.menus.length === 0) {
2828
// 从后台获取菜单
29-
await userStore.afterLogin();
29+
const [err] = await _to(userStore.afterLogin());
30+
if (err) {
31+
userStore.resetToken();
32+
return next({ name: LOGIN_NAME });
33+
}
3034
if (!hasRoute) {
3135
// 请求带有 redirect 重定向时,登录自动重定向到该地址
3236
const redirect = decodeURIComponent((from.query.redirect || '') as string);

src/store/modules/user.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export const useUserStore = defineStore({
7878
this.avatar = userInfo.headImg;
7979
this.userInfo = userInfo;
8080
// 生成路由
81-
const generatorResult = generatorDynamicRouter(menus);
81+
const generatorResult = await generatorDynamicRouter(menus);
8282
this.menus = generatorResult.menus.filter((item) => !item.meta?.hideInMenu);
8383
!wsStore.client && wsStore.initSocket();
8484

src/utils/awaitTo.ts

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// reference https://github.com/scopsy/await-to-js
2+
3+
/**
4+
* @param { Promise } promise
5+
* @param { Object= } errorExt - Additional Information you can pass to the err object
6+
* @return { Promise }
7+
*/
8+
export function to<T, U = Error>(
9+
promise: Promise<T>,
10+
errorExt?: object,
11+
): Promise<[U, undefined] | [null, T]> {
12+
return promise
13+
.then<[null, T]>((data: T) => [null, data])
14+
.catch<[U, undefined]>((err: U) => {
15+
if (errorExt) {
16+
const parsedError = Object.assign({}, err, errorExt);
17+
return [parsedError, undefined];
18+
}
19+
20+
return [err, undefined];
21+
});
22+
}
23+
24+
export default to;

src/views/login/index.vue

+10-9
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import { message, Modal } from 'ant-design-vue';
5656
import { useUserStore } from '@/store/modules/user';
5757
import { getImageCaptcha } from '@/api/login';
58+
import { to } from '@/utils/awaitTo';
5859
5960
const state = reactive({
6061
loading: false,
@@ -91,20 +92,20 @@
9192
state.loading = true;
9293
console.log(state.formInline);
9394
// params.password = md5(password)
94-
try {
95-
await userStore.login(state.formInline).finally(() => {
96-
state.loading = false;
97-
message.destroy();
98-
});
99-
message.success('登录成功!');
100-
setTimeout(() => router.replace((route.query.redirect as string) ?? '/'));
101-
} catch (error: any) {
95+
96+
const [err] = await to(userStore.login(state.formInline));
97+
if (err) {
10298
Modal.error({
10399
title: () => '提示',
104-
content: () => error.message,
100+
content: () => err.message,
105101
});
106102
setCaptcha();
103+
} else {
104+
message.success('登录成功!');
105+
setTimeout(() => router.replace((route.query.redirect as string) ?? '/'));
107106
}
107+
state.loading = false;
108+
message.destroy();
108109
};
109110
</script>
110111

yarn.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -4210,10 +4210,10 @@ eslint-plugin-import@2.26.0:
42104210
resolve "^1.22.0"
42114211
tsconfig-paths "^3.14.1"
42124212

4213-
eslint-plugin-prettier@^4.1.0:
4214-
version "4.1.0"
4215-
resolved "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.1.0.tgz#1cd4b3fadf3b3cdb30b1874b55e7f93f85eb43ad"
4216-
integrity sha512-A3AXIEfTnq3D5qDFjWJdQ9c4BLhw/TqhSR+6+SVaoPJBAWciFEuJiNQh275OnjRrAi7yssZzuWBRw66VG2g6UA==
4213+
eslint-plugin-prettier@^4.2.1:
4214+
version "4.2.1"
4215+
resolved "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b"
4216+
integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==
42174217
dependencies:
42184218
prettier-linter-helpers "^1.0.0"
42194219

0 commit comments

Comments
 (0)