index.tsx 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /*
  2. * @Author: your name
  3. * @Date: 2021-11-10 09:33:30
  4. * @LastEditTime: 2021-11-29 10:13:27
  5. * @LastEditors: Please set LastEditors
  6. * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  7. * @FilePath: /KC-MiddlePlatform/src/pages/index.tsx
  8. */
  9. import React, { useState,useEffect } from 'react';
  10. import TopBar from './components/topBar';
  11. import IframePage from './components/iframePage'
  12. import { useModel } from 'umi';
  13. import './index.less';
  14. const IndexPage = () => {
  15. const {
  16. systemLists, //当前医院可选子系统列表
  17. setInitialState,
  18. openedSysLists, //当前已打开的系统列表
  19. loading,
  20. currentSelectedSys, //当前选中的系统
  21. } = useModel('@@initialState',model=>{
  22. return {
  23. systemLists:model.initialState?.systemLists,
  24. setInitialState:model.setInitialState,
  25. openedSysLists:model.initialState?.openedSysLists,
  26. loading:model.loading,
  27. currentSelectedSys:model.initialState?.currentSelectedSys,
  28. }
  29. });
  30. const [selectableSysList,setSelectableSysList] = useState<SystemListItem[]>([]);
  31. const [openedTabs,setOpenTabs] = useState<SystemListItem[]>();
  32. const [currentOpenedTab,setCurrentOpenedTab] = useState<SystemListItem>();
  33. const onTabChangeHandle = ()=>{
  34. }
  35. const onCurrentSystemChanged = async (data:SystemListItem)=>{
  36. console.log({'当前选中tab':data});
  37. setCurrentOpenedTab(data);
  38. const index = openedSysLists?.findIndex(t=>t.id == data.id);
  39. if(index != -1){
  40. //现在打开的tab里已经存在
  41. await setInitialState((s)=>{
  42. return {
  43. ...s,
  44. currentSelectedSystem:data
  45. }
  46. });
  47. }else {
  48. //新打开的tab
  49. await setInitialState((s)=>{
  50. return {
  51. ...s,
  52. currentSelectedSystem:data,
  53. openedSysLists:openedSysLists?.concat(data)
  54. }
  55. });
  56. }
  57. }
  58. useEffect(() => {
  59. if(systemLists)setSelectableSysList(systemLists);
  60. }, [systemLists]);
  61. useEffect(() => {
  62. if(openedSysLists)setOpenTabs(openedSysLists);
  63. }, [openedSysLists]);
  64. if(loading)return <h1>Loading...</h1>
  65. return (
  66. <div className='indexPage'>
  67. <TopBar
  68. openedTabs={openedTabs?openedTabs:[]}
  69. onTabChange={()=>onTabChangeHandle()}
  70. onCurrentSystemChanged={data=>onCurrentSystemChanged(data)}
  71. sysList={selectableSysList}
  72. currentTab={currentOpenedTab}
  73. />
  74. <IframePage url={`http://118.31.245.65:8804/user/login/?redirect=%2FDataManagement%2FpublicData&hospSign=tYAoFaa20yCAgaiy`} />
  75. </div>
  76. )
  77. }
  78. export default IndexPage;