perf: improve router scrollBehavior configuration (#3834)

#### What type of PR is this?

/kind improvement
/area console
/milestone 2.5.x

#### What this PR does / why we need it:

修改 Vue Router 的 scrollBehavior 配置,添加是否是不同路由的跳转,如果是才会在跳转之后滚动到页面顶部。可以解决在 https://github.com/halo-dev/halo/issues/3833 中提到的打开附件详情之后,列表滚动到顶部的问题。这是因为在打开附件详情的时候会修改路由的参数。

#### Which issue(s) this PR fixes:

Fixes #3833 

#### Special notes for your reviewer:

测试方式:

1. 上传若干附件,滚动到列表底部。
2. 然后打开某个附件详情,观察列表是否自动滚动到了顶部,如果没有,则修改有效。

#### Does this PR introduce a user-facing change?

```release-note
None
```
pull/3845/head
Ryan Wang 2023-04-24 18:00:55 +08:00 committed by GitHub
parent 1681be36d6
commit d0cc9005b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 2 deletions

View File

@ -1,4 +1,9 @@
import { createRouter, createWebHashHistory } from "vue-router";
import {
createRouter,
createWebHashHistory,
type RouteLocationNormalized,
type RouteLocationNormalizedLoaded,
} from "vue-router";
import routesConfig from "@/router/routes.config";
import { setupPermissionGuard } from "./guards/permission";
import { setupCheckStatesGuard } from "./guards/check-states";
@ -7,7 +12,14 @@ import { setupAuthCheckGuard } from "./guards/auth-check";
const router = createRouter({
history: createWebHashHistory(import.meta.env.BASE_URL),
routes: routesConfig,
scrollBehavior: () => ({ left: 0, top: 0 }),
scrollBehavior: (
to: RouteLocationNormalized,
from: RouteLocationNormalizedLoaded
) => {
if (to.name !== from.name) {
return { left: 0, top: 0 };
}
},
});
setupAuthCheckGuard(router);