Add ToolsFramework #32

Merged
FatttSnake merged 26 commits from FatttSnake into dev 2023-10-14 18:36:50 +08:00
2 changed files with 15 additions and 2 deletions
Showing only changes of commit bd1e699543 - Show all commits

View File

@@ -5,6 +5,7 @@ const AuthRoute = () => {
const matches = useMatches() const matches = useMatches()
const lastMatch = matches.reduce((_, second) => second) const lastMatch = matches.reduce((_, second) => second)
const handle = lastMatch.handle as RouteHandle const handle = lastMatch.handle as RouteHandle
const location = useLocation()
const outlet = useOutlet() const outlet = useOutlet()
const isLogin = getLoginStatus() const isLogin = getLoginStatus()
@@ -13,7 +14,13 @@ const AuthRoute = () => {
handle?.title ? handle?.title : PRODUCTION_NAME handle?.title ? handle?.title : PRODUCTION_NAME
}${handle?.titlePostfix ?? ''}` }${handle?.titlePostfix ?? ''}`
if (handle?.auth && !isLogin) { if (handle?.auth && !isLogin) {
return <Navigate to="/login" /> return (
<Navigate
to={`/login${
'?redirect=' + encodeURIComponent(lastMatch.pathname + location.search)
}`}
/>
)
} }
if (isLogin && lastMatch.pathname === '/login') { if (isLogin && lastMatch.pathname === '/login') {
return <Navigate to="/" /> return <Navigate to="/" />
@@ -26,6 +33,7 @@ const AuthRoute = () => {
handle?.titlePrefix, handle?.titlePrefix,
isLogin, isLogin,
lastMatch.pathname, lastMatch.pathname,
location.search,
outlet outlet
]) ])
} }

View File

@@ -12,6 +12,7 @@ import '@/assets/css/pages/login.scss'
const Login: React.FC = () => { const Login: React.FC = () => {
const [messageApi, contextHolder] = message.useMessage() const [messageApi, contextHolder] = message.useMessage()
const navigate = useNavigate() const navigate = useNavigate()
const [searchParams] = useSearchParams()
const [isLoggingIn, setIsLoggingIn] = useState(false) const [isLoggingIn, setIsLoggingIn] = useState(false)
const onFinish = (values: LoginForm) => { const onFinish = (values: LoginForm) => {
@@ -25,7 +26,11 @@ const Login: React.FC = () => {
setToken(data?.token ?? '') setToken(data?.token ?? '')
void messageApi.success('登录成功') void messageApi.success('登录成功')
setTimeout(() => { setTimeout(() => {
navigate('/') if (searchParams.has('redirect')) {
navigate(searchParams.get('redirect') ?? '/')
} else {
navigate('/')
}
}, 1500) }, 1500)
break break
case SYSTEM_USERNAME_NOT_FOUND: case SYSTEM_USERNAME_NOT_FOUND: