|
@@ -2,9 +2,10 @@
|
|
|
import { PromotionRep } from "@/api/home";
|
|
|
import Box from "@/components/Box";
|
|
|
import { Mask } from "antd-mobile";
|
|
|
-import { FC, useEffect, useState } from "react";
|
|
|
+import { FC, MouseEvent, useEffect, useState } from "react";
|
|
|
|
|
|
import dayjs from "dayjs";
|
|
|
+import Image from "next/image";
|
|
|
import { Pagination } from "swiper/modules";
|
|
|
import { Swiper, SwiperSlide } from "swiper/react";
|
|
|
|
|
@@ -37,7 +38,8 @@ const HomePromotion: FC<Props> = (props) => {
|
|
|
setVisible(flag);
|
|
|
}, []);
|
|
|
|
|
|
- const closeHandler = () => {
|
|
|
+ const closeHandler = (e: MouseEvent<HTMLElement>) => {
|
|
|
+ e.stopPropagation();
|
|
|
setVisible(false);
|
|
|
if (type === 1) {
|
|
|
sessionStorage.setItem("isClosePromotion", dayjs().format("YYYY-MM-DD"));
|
|
@@ -51,28 +53,38 @@ const HomePromotion: FC<Props> = (props) => {
|
|
|
if (data && data.length === 0) return null;
|
|
|
return (
|
|
|
<div>
|
|
|
- <Mask visible={visible} onMaskClick={closeHandler}>
|
|
|
+ <Mask visible={visible} onMaskClick={(e) => closeHandler(e)}>
|
|
|
<div
|
|
|
className={
|
|
|
"promotion-swiper absolute left-1/2 top-[18%] max-w-[3.139rem]" +
|
|
|
" -translate-x-1/2"
|
|
|
}
|
|
|
>
|
|
|
- <div></div>
|
|
|
- <div
|
|
|
- onClick={closeHandler}
|
|
|
- style={{
|
|
|
- background:
|
|
|
- "linear-gradient(45deg, deeppink, deeppink 50%, transparent 50%, transparent 100%)",
|
|
|
- }}
|
|
|
- className={
|
|
|
- "absolute right-[0px] top-[0] h-[80px] w-[80px] bg-[linear-gradient(45deg_deeppink_deeppink_50%_transparent_50%_transparent_100%)]" +
|
|
|
- " z-20" +
|
|
|
- " border-4"
|
|
|
- }
|
|
|
- >
|
|
|
- <i className={"iconfont icon-guanbi"}></i>
|
|
|
- </div>
|
|
|
+ {/*<div*/}
|
|
|
+ {/* style={{*/}
|
|
|
+ {/* clipPath: "polygon(26% 0, 100% 69%, 100% 0)",*/}
|
|
|
+ {/* background: "rgba(0,0,0,0.5)",*/}
|
|
|
+ {/* }}*/}
|
|
|
+ {/* className={*/}
|
|
|
+ {/* "absolute right-[0.1111rem] top-[0.0694rem] z-[10] h-[0.5556rem] w-[0.5556rem]" +*/}
|
|
|
+ {/* " rounded-tr-[0.1389rem]"*/}
|
|
|
+ {/* }*/}
|
|
|
+ {/*>*/}
|
|
|
+ {/* <i className={"iconfont icon-guanbi absolute right-[20%] top-[5%]"}></i>*/}
|
|
|
+ {/* /!*<i className={"iconfont icon-guanbi"}></i>*!/*/}
|
|
|
+ {/* /!*<div*!/*/}
|
|
|
+ {/* /!* onClick={closeHandler}*!/*/}
|
|
|
+ {/* /!* className={*!/*/}
|
|
|
+ {/* /!* "z-20 h-0 w-0 [border-width:0_1.3889rem_1.3889rem_0]" +*!/*/}
|
|
|
+ {/* /!* " [border-color:transparent_#007bff_transparent_transparent]" +*!/*/}
|
|
|
+ {/* /!* " [border-color: red] flex"*!/*/}
|
|
|
+ {/* /!* }*!/*/}
|
|
|
+ {/* /!*>*!/*/}
|
|
|
+ {/* /!* <i className={"iconfont icon-guanbi ml-[0.3472rem] mt-[0.0694rem]"}></i>*!/*/}
|
|
|
+ {/* /!*</div>*!/*/}
|
|
|
+ {/*</div>*/}
|
|
|
+
|
|
|
+ {/*<i className={"iconfont icon-guanbi"}></i>*/}
|
|
|
<Swiper
|
|
|
loop
|
|
|
pagination={{ clickable: true }}
|
|
@@ -90,11 +102,38 @@ const HomePromotion: FC<Props> = (props) => {
|
|
|
action={promotion.action_type}
|
|
|
actionData={promotion.action_params}
|
|
|
>
|
|
|
- <img
|
|
|
- className={"h-[3.4722rem] w-[100%] rounded-[0.1389rem]"}
|
|
|
- src={promotion.content.image}
|
|
|
- alt={promotion.content.title}
|
|
|
- />
|
|
|
+ <div
|
|
|
+ onClick={(e) => closeHandler(e)}
|
|
|
+ className={
|
|
|
+ "relative h-[3.4722rem] w-[100%] rounded-[0.1389rem]"
|
|
|
+ }
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ style={{
|
|
|
+ clipPath: "polygon(26% 0, 100% 69%, 100% 0)",
|
|
|
+ background: "rgba(0,0,0,0.5)",
|
|
|
+ }}
|
|
|
+ className={
|
|
|
+ "absolute -top-[0.2px] right-0 z-[10]" +
|
|
|
+ " h-[0.5556rem] w-[0.5556rem]" +
|
|
|
+ " rounded-tr-[0.1389rem]"
|
|
|
+ }
|
|
|
+ >
|
|
|
+ <i
|
|
|
+ className={
|
|
|
+ "iconfont icon-guanbi absolute right-[16%]" +
|
|
|
+ " top-[5%] text-[0.1111rem]"
|
|
|
+ }
|
|
|
+ ></i>
|
|
|
+ </div>
|
|
|
+ <Image
|
|
|
+ width={400}
|
|
|
+ height={400}
|
|
|
+ className={"h-[100%] w-[100%] rounded-[0.1389rem]"}
|
|
|
+ src={promotion.content.image!}
|
|
|
+ alt={promotion.content.title!}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</Box>
|
|
|
</SwiperSlide>
|
|
|
))}
|