|
@@ -1,141 +0,0 @@
|
|
|
-import React, { useCallback, useMemo } from "react";
|
|
|
-import styles from "./index.module.scss";
|
|
|
-import { useSelector } from "react-redux";
|
|
|
-import { RootState } from "@/store";
|
|
|
-import { baseURL } from "@/utils/http";
|
|
|
-import backImg from "@/assets/img/back.png";
|
|
|
-import history from "@/utils/history";
|
|
|
-
|
|
|
-// 轮播图
|
|
|
-import { Swiper, SwiperSlide } from "swiper/react";
|
|
|
-import { Navigation } from "swiper";
|
|
|
-import "swiper/css";
|
|
|
-import "swiper/css/navigation";
|
|
|
-import { ImageViewer } from "antd-mobile";
|
|
|
-
|
|
|
-function A4IntroM() {
|
|
|
- const data = useSelector((state: RootState) => state.A0Layout.dataAll.Home);
|
|
|
-
|
|
|
- const dataRes = data.introduce || {};
|
|
|
-
|
|
|
- const imgArr = useMemo(() => {
|
|
|
- const num = dataRes.imgNum || 0;
|
|
|
-
|
|
|
- const dom: number[] = [];
|
|
|
-
|
|
|
- for (let i = 0; i < num; i++) {
|
|
|
- dom.push(i);
|
|
|
- }
|
|
|
- return dom;
|
|
|
- }, [dataRes.imgNum]);
|
|
|
-
|
|
|
- const lookArr = useCallback(() => {
|
|
|
- const arr = [] as string[];
|
|
|
-
|
|
|
- imgArr.forEach((v, i) => {
|
|
|
- arr.push(`${baseURL}/4Intro/pc/${i + 1}.jpg`);
|
|
|
- });
|
|
|
-
|
|
|
- return arr;
|
|
|
- }, [imgArr]);
|
|
|
-
|
|
|
- const lookBigImgFu = useCallback(
|
|
|
- (i: number) => {
|
|
|
- ImageViewer.Multi.show({
|
|
|
- images: lookArr(),
|
|
|
- defaultIndex: i,
|
|
|
- });
|
|
|
- },
|
|
|
- [lookArr]
|
|
|
- );
|
|
|
-
|
|
|
- return (
|
|
|
- <div
|
|
|
- className={styles.A4IntroM}
|
|
|
- style={{ backgroundImage: `url(${baseURL}/4Intro/mobile/bac.jpg)` }}
|
|
|
- >
|
|
|
- {/* 返回按钮 */}
|
|
|
- <div className="introBack" onClick={() => history.push("/")}>
|
|
|
- <img src={backImg} alt="" />
|
|
|
- </div>
|
|
|
-
|
|
|
- {/* 文字主体 */}
|
|
|
- <div
|
|
|
- className="txtBox"
|
|
|
- style={{ backgroundImage: `url(${baseURL}/4Intro/mobile/txtBac.png)` }}
|
|
|
- >
|
|
|
- {/* 场馆介绍 */}
|
|
|
- <div className="txtBoxTit">
|
|
|
- <img src={`${baseURL}/4Intro/mobile/txt1.png`} alt="" />
|
|
|
- </div>
|
|
|
-
|
|
|
- <div
|
|
|
- className="txtBoxMain mySorrl"
|
|
|
- dangerouslySetInnerHTML={{ __html: dataRes.txt }}
|
|
|
- ></div>
|
|
|
- </div>
|
|
|
-
|
|
|
- {/* 轮播图 */}
|
|
|
- <div
|
|
|
- className="introSw1"
|
|
|
- style={{ backgroundImage: `url(${baseURL}/4Intro/pc/txt2.png)` }}
|
|
|
- >
|
|
|
- 场 馆 风 采
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className="introSw2">
|
|
|
- <Swiper
|
|
|
- modules={[Navigation]}
|
|
|
- spaceBetween={0}
|
|
|
- slidesPerView={1}
|
|
|
- // noSwipingClass='swImg'
|
|
|
- navigation={{
|
|
|
- nextEl: ".swiper-button-next",
|
|
|
- prevEl: ".swiper-button-prev",
|
|
|
- disabledClass: "sw-disable", // 当导航按钮变为不可用时添加的class,也就是当swiper索引为0时上一张没有prevEl的class类名就会添加一个disable,也就是.swiper-button-prev .disable
|
|
|
- }}
|
|
|
- // onSlideChange={() => console.log("slide change")}
|
|
|
- // onSwiper={(swiper) => console.log(swiper)}
|
|
|
- >
|
|
|
- {imgArr.map((v, i) => (
|
|
|
- <SwiperSlide
|
|
|
- key={v}
|
|
|
- onClick={
|
|
|
- () => lookBigImgFu(i)
|
|
|
-
|
|
|
- // store.dispatch({
|
|
|
- // type: "layout/lookBigImg",
|
|
|
- // payload: {
|
|
|
- // show: true,
|
|
|
- // url: lookArr(),
|
|
|
- // current: i,
|
|
|
- // },
|
|
|
- // })
|
|
|
- }
|
|
|
- >
|
|
|
- <img
|
|
|
- className="swImg"
|
|
|
- src={`${baseURL}/4Intro/pc/${v + 1}.jpg`}
|
|
|
- alt=""
|
|
|
- />
|
|
|
- </SwiperSlide>
|
|
|
- ))}
|
|
|
- </Swiper>
|
|
|
-
|
|
|
- {/* 左右按钮 */}
|
|
|
- <div
|
|
|
- className="swiper-button-prev"
|
|
|
- style={{ backgroundImage: `url(${baseURL}/4Intro/pc/left.png)` }}
|
|
|
- ></div>
|
|
|
- <div
|
|
|
- className="swiper-button-next"
|
|
|
- style={{ backgroundImage: `url(${baseURL}/4Intro/pc/right.png)` }}
|
|
|
- ></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- );
|
|
|
-}
|
|
|
-
|
|
|
-const MemoA4IntroM = React.memo(A4IntroM);
|
|
|
-
|
|
|
-export default MemoA4IntroM;
|