/* * @Author: your name * @Date: 2021-11-09 14:58:08 * @LastEditTime: 2021-11-19 16:42:22 * @LastEditors: Please set LastEditors * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @FilePath: /KC-MiddlePlatform/src/pages/login/index.tsx */ import React, { useRef, useEffect, useState } from 'react' import { Select, message } from 'antd'; import './style.less' import { useModel, history } from 'umi'; import { Form, Input, Button, Checkbox } from 'antd'; import logo from '../../../public/images/kc-logo.png' import KCSelect from '@/components/kc-select'; import { getSubHosp, login,getHospSubSystemList } from '@/service/login'; const { Option } = Select; const LoginPage: React.FC = () => { const [transitionObj, setTransitionObj] = useState(); const [transformObj, setTransformObj] = useState(); const loginPageRef = useRef(null); const [subHospList, setSubHospList] = useState<{ name: string, value: string | number }[]>([]); //分院列表 const [ifSelectSystem,setIfSelectSystem] = useState(false); //是否跳转到选择系统界面 const [ifLoading,setIfLoading] = useState(false); const [systemList,setSystemList] = useState([]); //可选平台列表 const { initialState, setInitialState } = useModel('@@initialState'); const onMouseMoveHandle = (mouseEvent: any) => { // console.log({mouseEvent}); const loginPage = loginPageRef.current; if (loginPage) { let centerX = loginPage.offsetLeft + loginPage.offsetWidth / 2, //div中心点到页面左边距离 centerY = loginPage.offsetTop + loginPage.offsetHeight / 2; let deltaX = mouseEvent.pageX - centerX, deltaY = mouseEvent.pageY - centerY; let percentageX = deltaX / centerX, //向左或向右的 偏差率 percentageY = deltaY / centerY; let deg = 20; //控制 偏差的 程度 // console.log(percentageX*20,percentageY*20); setTransformObj(`translate(${percentageX * deg}px,${percentageY * deg}px)`); // setTransformObj('rotateX(' + percentageY * deg + 'deg)'); } } const onMouseLeaveHandle = () => { setTransformObj(`translate(0px,0px)`); setTransitionObj('all 0.2s linear'); } const getSubHospFunc = async () => { const { list } = await getSubHosp(); setSubHospList(list); } const getHospSubSystemListFunc = async ()=>{ const data = await getHospSubSystemList(); if(data)setSystemList(data); } const onFinish = async (values:LoginPageTypes.LoginInfo) => { setIfLoading(true); const resp = await login(values); setIfLoading(false); if (resp) { message.success('登录成功!'); await getHospSubSystemListFunc(); await setInitialState((s) => ({ ...s, userData: resp,systemLists:systemList })); localStorage.setItem('KC-MiddlePlatformUserData', JSON.stringify(resp)); if(systemList.length>1){ //当前医院拥有多个子平台时,进入选择 setIfSelectSystem(true); }else { //否则直接进入首页 const { query } = history.location; const { redirect } = query as { redirect: string }; history.push(redirect || '/'); return; } setIfLoading(false); } } const selectSysHandle = (systemInfo:LoginPageTypes.SystemListItem)=>{ const { query } = history.location; const { redirect } = query as { redirect: string }; history.push(redirect || '/'); } useEffect(() => { //根据hospSign获取分院信息 getSubHospFunc(); }, []); return (
{ ifSelectSystem ? (
{ systemList.map((t)=>(
selectSysHandle(t)}> {t.name}
)) }
) : ( <>
{ subHospList.length > 0 && ( }> { subHospList.map(item => { return ( ) }) } ) }
欢迎进入医务管理系统
记住密码
) }
© 2021 康程智医(成都)技术部出品
) } export default LoginPage;