Bladeren bron

feat: 111

outaozhen 3 jaren geleden
bovenliggende
commit
4b524fc46d

+ 2 - 2
src/locales/zh-CN/pages.ts

@@ -4,9 +4,9 @@ export default {
   'pages.login.accountLogin.errorMessage': '错误的用户名和密码(admin/ant.design)',
   'pages.login.failure': '登录失败,请重试!',
   'pages.login.success': '登录成功!',
-  'pages.login.username.placeholder': '用户名: admin or user',
+  'pages.login.username.placeholder': '用户名',
   'pages.login.username.required': '用户名是必填项!',
-  'pages.login.password.placeholder': '密码: 123456',
+  'pages.login.password.placeholder': '密码',
   'pages.login.password.required': '密码是必填项!',
   'pages.login.phoneLogin.tab': '手机号登录',
   'pages.login.phoneLogin.errorMessage': '验证码错误',

+ 1 - 1
src/pages/Project/Management/components/DetailModal.tsx

@@ -1,7 +1,7 @@
 import { connect, useRequest } from 'umi'
 import { useEffect, useRef, useState } from 'react'
 import { Drawer, message, Tabs } from 'antd'
-import { queryAcountList, getApprovalList, setApproval } from '@/services/api/institution'
+import { queryAcountList, getApprovalList, setApproval } from '@/services/api/project'
 import { delay } from '@/utils/util'
 import FormRender, { useForm } from 'form-render'
 import { BaseMenuEnum } from '@/pages/Schema/Base'

+ 65 - 38
src/pages/user/Login/index.tsx

@@ -3,7 +3,7 @@ import { Alert, message, Tabs } from 'antd'
 import React, { useState } from 'react'
 import ProForm, { ProFormCheckbox, ProFormText } from '@ant-design/pro-form'
 import { useIntl, Link, history, FormattedMessage, SelectLang, useModel, useRequest } from 'umi'
-// import { login } from '@/services/ant-design-pro/api'
+import { login } from '@/services/api/login'
 import { queryAcountList } from '@/services/api/institution'
 
 import styles from './index.less'
@@ -21,7 +21,18 @@ const LoginMessage: React.FC<{
   />
 )
 
+/** 此方法会跳转到 redirect 参数所在的位置 */
+const goto = () => {
+  if (!history) return
+  setTimeout(() => {
+    const { query } = history.location
+    const { redirect } = query as { redirect: string }
+    history.push(redirect || '/')
+  }, 10)
+}
+
 const Login: React.FC = () => {
+  // const { setAuthToken } = useModel('user')
   const [userLoginState, setUserLoginState] = useState<API.LoginResult>({})
   const [type, setType] = useState<string>('account')
   const { initialState, setInitialState } = useModel('@@initialState')
@@ -31,9 +42,7 @@ const Login: React.FC = () => {
     onSuccess: async result => {
       setInitialState({
         ...initialState,
-        currentUser: result.staff,
-        menuList: result.menus,
-        roles: result.staff?.roles || []
+        currentUser: result.items
       })
       goto()
     }
@@ -41,44 +50,62 @@ const Login: React.FC = () => {
 
   const intl = useIntl()
 
-  const fetchUserInfo = async () => {
-    const userInfo = await initialState?.fetchUserInfo?.()
-    if (userInfo) {
-      await setInitialState(s => ({
-        ...s,
-        currentUser: userInfo
-      }))
+  // const fetchUserInfo = async () => {
+  //   const userInfo = await initialState?.fetchUserInfo?.()
+  //   if (userInfo) {
+  //     await setInitialState(s => ({
+  //       ...s,
+  //       currentUser: userInfo
+  //     }))
+  //   }
+  // }
+
+  const { run: tryLogin } = useRequest((values: API.LoginParams) => login(values), {
+    manual: true,
+    onSuccess: async result => {
+      setAuthToken(result?.token)
+      message.success('登录成功')
+      await run()
+      // await fetchUserInfo()
+    },
+    onError: () => {
+      setUserLoginState({ ...userLoginState, code: -1 })
     }
-  }
+  })
 
   const handleSubmit = async (values: API.LoginParams) => {
     try {
-      // 登录
-      const msg = await login({ ...values, type })
-      if (msg.status === 'ok') {
-        const defaultLoginSuccessMessage = intl.formatMessage({
-          id: 'pages.login.success',
-          defaultMessage: '登录成功!'
-        })
-        message.success(defaultLoginSuccessMessage)
-        await fetchUserInfo()
-        /** 此方法会跳转到 redirect 参数所在的位置 */
-        if (!history) return
-        const { query } = history.location
-        const { redirect } = query as { redirect: string }
-        history.push(redirect || '/')
-        return
-      }
-      console.log(msg)
-      // 如果失败去设置用户错误信息
-      setUserLoginState(msg)
+      await tryLogin(values)
     } catch (error) {
-      const defaultLoginFailureMessage = intl.formatMessage({
-        id: 'pages.login.failure',
-        defaultMessage: '登录失败,请重试!'
-      })
-      message.error(defaultLoginFailureMessage)
+      message.error('登录失败,请重试')
     }
+    // try {
+    //   // 登录
+    //   const msg = await login({ ...values, type })
+    //   if (msg.status === 'ok') {
+    //     const defaultLoginSuccessMessage = intl.formatMessage({
+    //       id: 'pages.login.success',
+    //       defaultMessage: '登录成功!'
+    //     })
+    //     message.success(defaultLoginSuccessMessage)
+    //     await fetchUserInfo()
+    //     /** 此方法会跳转到 redirect 参数所在的位置 */
+    //     if (!history) return
+    //     const { query } = history.location
+    //     const { redirect } = query as { redirect: string }
+    //     history.push(redirect || '/')
+    //     return
+    //   }
+    //   console.log(msg)
+    //   // 如果失败去设置用户错误信息
+    //   setUserLoginState(msg)
+    // } catch (error) {
+    //   const defaultLoginFailureMessage = intl.formatMessage({
+    //     id: 'pages.login.failure',
+    //     defaultMessage: '登录失败,请重试!'
+    //   })
+    //   message.error(defaultLoginFailureMessage)
+    // }
   }
   const { status, type: loginType } = userLoginState
 
@@ -162,7 +189,7 @@ const Login: React.FC = () => {
                   }}
                   placeholder={intl.formatMessage({
                     id: 'pages.login.username.placeholder',
-                    defaultMessage: '用户名: admin or user'
+                    defaultMessage: '请输入用户名'
                   })}
                   rules={[
                     {
@@ -184,7 +211,7 @@ const Login: React.FC = () => {
                   }}
                   placeholder={intl.formatMessage({
                     id: 'pages.login.password.placeholder',
-                    defaultMessage: '密码: 123456'
+                    defaultMessage: '请输入密码!'
                   })}
                   rules={[
                     {

+ 5 - 0
src/services/api/login.ts

@@ -0,0 +1,5 @@
+import { request } from 'umi'
+
+export async function login(params: API.LoginParams) {
+  return request.post('/login', { data: params })
+}

+ 5 - 0
src/services/api/typings.d.ts

@@ -203,4 +203,9 @@ declare namespace API {
     accountID: string
     approvalID: string
   }
+
+  type LoginParams = {
+    account: string
+    password: string
+  }
 }