Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-vue-admin
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-vue-admin
Commits
b350098f
提交
b350098f
authored
10月 27, 2020
作者:
vben
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
perf: adjust the logic of
上级
bfac425d
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
50 行增加
和
43 行删除
+50
-43
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+5
-0
index.ts
src/router/guard/index.ts
+11
-3
pageTitleGuard.ts
src/router/guard/pageTitleGuard.ts
+0
-39
browser.ts
src/utils/browser.ts
+29
-0
index.vue
src/views/demo/feat/tab-params/index.vue
+5
-1
没有找到文件。
CHANGELOG.zh_CN.md
浏览文件 @
b350098f
...
...
@@ -12,6 +12,10 @@
-
依赖更新
-
文档更新
### ⚡ Performance Improvements
-
`setTitle`
逻辑调整
### ✨ Refactor
-
独立出
`vite-plugin-html`
,并修改相关插入 html 的逻辑
...
...
@@ -19,6 +23,7 @@
### 🐛 Bug Fixes
-
修复热更新时多次注册组件警告问题
-
修复登录后出现登录标签页
## 2.0.0-rc.5 (2020-10-26)
...
...
src/router/guard/index.ts
浏览文件 @
b350098f
...
...
@@ -2,14 +2,14 @@ import type { Router } from 'vue-router';
import
{
Modal
,
notification
}
from
'ant-design-vue'
;
import
{
AxiosCanceler
}
from
'/@/utils/http/axios/axiosCancel'
;
import
{
createPageTitleGuard
}
from
'./pageTitleGuard'
;
import
{
createProgressGuard
}
from
'./progressGuard'
;
import
{
createPermissionGuard
}
from
'./permissionGuard'
;
import
{
createPageLoadingGuard
}
from
'./pageLoadingGuard'
;
import
{
useSetting
}
from
'/@/hooks/core/useSetting'
;
import
{
getIsOpenTab
,
setCurrentTo
}
from
'/@/utils/helper/routeHelper'
;
import
{
setTitle
}
from
'/@/utils/browser'
;
const
{
projectSetting
}
=
useSetting
();
const
{
projectSetting
,
globSetting
}
=
useSetting
();
export
function
createGuard
(
router
:
Router
)
{
const
{
openNProgress
,
closeMessageOnSwitch
,
removeAllHttpPending
}
=
projectSetting
;
let
axiosCanceler
:
AxiosCanceler
|
null
;
...
...
@@ -33,8 +33,16 @@ export function createGuard(router: Router) {
setCurrentTo
(
to
);
return
true
;
});
router
.
afterEach
((
to
)
=>
{
// change html title
setTimeout
(()
=>
{
setTitle
(
to
.
meta
.
title
,
globSetting
.
title
);
},
0
);
});
openNProgress
&&
createProgressGuard
(
router
);
createPermissionGuard
(
router
);
createPageTitleGuard
(
router
);
createPageLoadingGuard
(
router
);
}
src/router/guard/pageTitleGuard.ts
deleted
100644 → 0
浏览文件 @
bfac425d
import
type
{
Router
}
from
'vue-router'
;
import
{
useSetting
}
from
'/@/hooks/core/useSetting'
;
/**
* 设置页面标题
* @param {*} title :页面标题
*/
const
setDocumentTitle
=
(
title
:
string
)
=>
{
document
.
title
=
title
;
const
ua
=
navigator
.
userAgent
;
const
regex
=
/
\b
MicroMessenger
\/([\d
.
]
+
)
/
;
// 兼容
if
(
regex
.
test
(
ua
)
&&
/ip
(
hone|od|ad
)
/i
.
test
(
ua
))
{
const
i
=
document
.
createElement
(
'iframe'
);
i
.
src
=
'/favicon.ico'
;
i
.
style
.
display
=
'none'
;
i
.
onload
=
function
()
{
setTimeout
(
function
()
{
i
.
remove
();
},
9
);
};
document
.
body
.
appendChild
(
i
);
}
};
export
const
createPageTitleGuard
=
(
router
:
Router
)
=>
{
router
.
beforeEach
(
async
(
to
)
=>
{
// This operation does not require synchronization
setTimeout
(()
=>
{
const
{
globSetting
}
=
useSetting
();
if
(
to
.
meta
.
title
)
{
const
{
title
}
=
globSetting
;
const
_title
=
to
.
meta
.
title
?
`
${
to
.
meta
.
title
}
-
${
title
}
`
:
`
${
title
}
`
;
setDocumentTitle
(
_title
);
}
},
30
);
return
true
;
});
};
src/utils/browser.ts
浏览文件 @
b350098f
...
...
@@ -70,3 +70,32 @@ export function isFirefoxFn() {
export
function
isOperaFn
()
{
return
type
===
'Opera'
;
}
/**
* set page Title
* @param {*} title :page Title
*/
const
setDocumentTitle
=
(
title
:
string
)
=>
{
document
.
title
=
title
;
const
ua
=
navigator
.
userAgent
;
const
regex
=
/
\b
MicroMessenger
\/([\d
.
]
+
)
/
;
// 兼容
if
(
regex
.
test
(
ua
)
&&
/ip
(
hone|od|ad
)
/i
.
test
(
ua
))
{
const
i
=
document
.
createElement
(
'iframe'
);
i
.
src
=
'/favicon.ico'
;
i
.
style
.
display
=
'none'
;
i
.
onload
=
function
()
{
setTimeout
(
function
()
{
i
.
remove
();
},
9
);
};
document
.
body
.
appendChild
(
i
);
}
};
export
function
setTitle
(
title
:
string
,
appTitle
?:
string
)
{
if
(
title
)
{
const
_title
=
title
?
`
${
title
}
-
${
appTitle
}
`
:
`
${
appTitle
}
`
;
setDocumentTitle
(
_title
);
}
}
src/views/demo/feat/tab-params/index.vue
浏览文件 @
b350098f
<
template
>
<div
class=
"p-4"
>
Current Param :
{{
params
}}
</div>
<div
class=
"p-4"
>
Current Param :
{{
params
}}
<input
/>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
computed
,
defineComponent
,
unref
}
from
'vue'
;
import
{
useRouter
}
from
'vue-router'
;
export
default
defineComponent
({
name
:
'TestTab'
,
setup
()
{
const
{
currentRoute
}
=
useRouter
();
return
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论