new.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import React, { useState, useEffect, useMemo } from "react";
  2. import { Card, Table, Empty, Button } from "antd";
  3. import { connect } from "dva";
  4. import {
  5. GetTokenFromUrl,
  6. getToken,
  7. PageAction,
  8. UnityAction,
  9. } from "@/utils/utils";
  10. import Swiper from "react-id-swiper";
  11. import router from "umi/router";
  12. // import 'swiper/css/swiper.css';
  13. import styles from "./indexNew.less";
  14. const menuItemUrl = require("@/assets/menu/item-bg.png");
  15. const menuSelectItemUrl = require("@/assets/menu/btnBg.png");
  16. function AppMenu(props) {
  17. const [swiper, updateSwiper] = useState(null);
  18. const [current, setCurrent] = useState();
  19. const btnDisabled = useMemo(() => {
  20. if (waterMenuData.length <= 6) return true;
  21. return false;
  22. }, [waterMenuData.length]);
  23. const itemCount = 6;
  24. const swiperParams = useMemo(() => {
  25. let params = {
  26. slidesPerView: itemCount,
  27. spaceBetween: 0,
  28. observer: true,
  29. observeParents: true,
  30. // navigation: {
  31. // nextEl: '.swiper-button-next',
  32. // prevEl: '.swiper-button-prev',
  33. // },
  34. containerClass: `${styles.content} ${styles["content-" + itemCount]}`,
  35. };
  36. if (!btnDisabled) {
  37. params.navigation = {
  38. nextEl: ".swiper-button-next",
  39. prevEl: ".swiper-button-prev",
  40. };
  41. }
  42. return params;
  43. }, [itemCount]);
  44. return (
  45. <div className={styles.menuBg}>
  46. <div className={styles.unityMenu}>
  47. <div className={styles.leftContent}>
  48. <img
  49. className={styles.left}
  50. src={require("@/assets/menu/left-1.png")}
  51. />
  52. </div>
  53. <div className={styles.center} style={{ width: itemCount * 240 }}></div>
  54. <div className={styles.rightContent}>
  55. <img
  56. className={styles.right}
  57. src={require("@/assets/menu/right-1.png")}
  58. />
  59. </div>
  60. <div className={styles.swiper}>
  61. {waterMenuData.length > 0 && (
  62. <Swiper {...swiperParams} getSwiper={updateSwiper}>
  63. {waterMenuData.map((item) => (
  64. <div
  65. onClick={() => onClickMenu(item)}
  66. key={item.ID}
  67. className={`${styles.item}`}
  68. >
  69. <div
  70. className={`${styles.menu} ${
  71. item.active ? "" : styles.disabled
  72. }`}
  73. >
  74. <div
  75. style={
  76. current == item.ID
  77. ? { textShadow: " 2px 2px 4px #000" }
  78. : null
  79. }
  80. className={styles.font}
  81. >
  82. {item.Name}
  83. </div>
  84. {current == item.ID && <img src={menuSelectItemUrl} />}
  85. {current != item.ID && <img src={menuItemUrl} />}
  86. </div>
  87. </div>
  88. ))}
  89. </Swiper>
  90. )}
  91. </div>
  92. </div>
  93. </div>
  94. );
  95. }
  96. export default AppMenu;