UserLayout.jsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { DefaultFooter, getMenuData, getPageTitle } from '@ant-design/pro-layout'
  2. import { Helmet, HelmetProvider } from 'react-helmet-async'
  3. import { Link, SelectLang, useIntl, connect, FormattedMessage } from 'umi'
  4. import React from 'react'
  5. import logo from '../assets/logo.svg'
  6. import styles from './UserLayout.less'
  7. const UserLayout = (props) => {
  8. const {
  9. route = {
  10. routes: []
  11. }
  12. } = props
  13. const { routes = [] } = route
  14. const {
  15. children,
  16. location = {
  17. pathname: ''
  18. }
  19. } = props
  20. const { formatMessage } = useIntl()
  21. const { breadcrumb } = getMenuData(routes)
  22. const title = getPageTitle({
  23. pathname: location.pathname,
  24. formatMessage,
  25. breadcrumb,
  26. ...props
  27. })
  28. return (
  29. <HelmetProvider>
  30. <Helmet>
  31. <title>{title}</title>
  32. <meta name="description" content={title} />
  33. </Helmet>
  34. <div className={styles.container}>
  35. <div className={styles.lang}>
  36. <SelectLang />
  37. </div>
  38. <div className={styles.content}>
  39. <div className={styles.top}>
  40. <div className={styles.header}>
  41. <Link to="/">
  42. <img alt="logo" className={styles.logo} src={logo} />
  43. <span className={styles.title}>CLD.SystemV2</span>
  44. </Link>
  45. </div>
  46. <div className={styles.desc}>
  47. <FormattedMessage
  48. id="pages.layouts.userLayout.title"
  49. defaultMessage="纵横办公系统"
  50. />
  51. </div>
  52. </div>
  53. {children}
  54. </div>
  55. {/* <DefaultFooter /> */}
  56. </div>
  57. </HelmetProvider>
  58. )
  59. }
  60. export default connect(({ settings }) => ({ ...settings }))(UserLayout)