index.tsx 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * @Author: code4eat awesomedema@gmail.com
  3. * @Date: 2022-05-30 09:50:41
  4. * @LastEditors: code4eat awesomedema@gmail.com
  5. * @LastEditTime: 2022-07-12 09:46:26
  6. * @FilePath: /KC-MiddlePlatform/src/pages/index/components/RecentlyVisited/index.tsx
  7. * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  8. */
  9. //最近访问模块
  10. import { useEffect, useState } from 'react';
  11. import './style.less';
  12. import {history, useModel} from 'umi';
  13. import { Empty } from 'antd';
  14. import { NavSelecterItemType } from '@/components/NavSelecter';
  15. export type RecentlyVisitedItemsType = {
  16. name:string;
  17. path:string;
  18. menuId:string;
  19. type:number;
  20. systemId:string;
  21. }
  22. export interface RecentlyVisitedPropsType {
  23. data:RecentlyVisitedItemsType[]
  24. }
  25. export const RecentlyVisited = (props:RecentlyVisitedPropsType) => {
  26. const {data} = props;
  27. const { initialState, setInitialState } = useModel('@@initialState');
  28. const [tabs, set_tabs] = useState<RecentlyVisitedItemsType[]>([]);
  29. const clickHandle = async (val:NavSelecterItemType)=>{
  30. //更新currentSelectedSys/currentTab触发导航跳转
  31. console.log({val});
  32. await setInitialState((s) => ({ ...s, currentSelectedSys:val as any,currentTab:val}));
  33. }
  34. useEffect(()=>{
  35. set_tabs(data);
  36. },[data])
  37. return (
  38. <div className='RecentlyVisited'>
  39. <div className='topTitle'>
  40. <span className='name'>最近访问</span>
  41. </div>
  42. <div className='wrap'>
  43. {
  44. tabs.map((item, index) => {
  45. return (
  46. <div className='tab' onClick={()=>clickHandle(item)} key={index}>{item.name}</div>
  47. )
  48. })
  49. }
  50. {
  51. tabs.length == 0 && (
  52. <div className='empty'>
  53. <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
  54. </div>
  55. )
  56. }
  57. </div>
  58. </div>
  59. )
  60. }