Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
najiu-admin-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
najiu-frontend
najiu-admin-template
Commits
b350098f
Commit
b350098f
authored
Oct 27, 2020
by
vben
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
perf: adjust the logic of
parent
bfac425d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
50 additions
and
43 deletions
+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
No files found.
CHANGELOG.zh_CN.md
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment