|
@@ -1,5 +1,5 @@
|
|
|
/* eslint-disable jsx-a11y/iframe-has-title */
|
|
|
-import React, { useMemo, useRef, useState } from "react";
|
|
|
+import React, { useCallback, useMemo, useRef, useState } from "react";
|
|
|
import styles from "./index.module.scss";
|
|
|
import { Goods } from "@/types";
|
|
|
import { type1Arr1M } from "../data";
|
|
@@ -14,6 +14,8 @@ import {
|
|
|
FullscreenOutlined,
|
|
|
FullscreenExitOutlined,
|
|
|
} from "@ant-design/icons";
|
|
|
+import ImageLazy from "@/components/ImageLazy";
|
|
|
+import { ImageViewer } from "antd-mobile";
|
|
|
|
|
|
type Props = {
|
|
|
info: Goods;
|
|
@@ -59,6 +61,31 @@ function GoodsInfoM({ info, colseFu, type }: Props) {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ // 点击查看图片
|
|
|
+
|
|
|
+ const lookArr = useCallback(() => {
|
|
|
+ const arr = [] as string[];
|
|
|
+
|
|
|
+ showNum.forEach((v, i) => {
|
|
|
+ arr.push(`${baseURL}/3Goods/${info.id}/main${i + 1}.jpg`);
|
|
|
+ });
|
|
|
+
|
|
|
+ return arr;
|
|
|
+ }, [info.id, showNum]);
|
|
|
+
|
|
|
+ const lookBigImgFu = useCallback(
|
|
|
+ (i: number) => {
|
|
|
+ ImageViewer.Multi.show({
|
|
|
+ images: lookArr(),
|
|
|
+ defaultIndex: i,
|
|
|
+ onIndexChange: (index) => {
|
|
|
+ setModelShow(index + 1);
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ [lookArr]
|
|
|
+ );
|
|
|
+
|
|
|
return (
|
|
|
<div
|
|
|
className={styles.GoodsInfoM}
|
|
@@ -80,64 +107,101 @@ function GoodsInfoM({ info, colseFu, type }: Props) {
|
|
|
<div className="A3IRtit2">存放于{info.type1}</div>
|
|
|
|
|
|
{/* 模型盒子 */}
|
|
|
-
|
|
|
<div className="ifrBox">
|
|
|
<div
|
|
|
className={classNames("ifrBoxson", full ? "A3IleftFull" : "")}
|
|
|
key={modelShow}
|
|
|
>
|
|
|
- {showNum.map((v) =>
|
|
|
- modelShow === v ? (
|
|
|
- <iframe
|
|
|
- key={v}
|
|
|
- ref={ifrBoxRef}
|
|
|
- src={`model.html?m=${info.id}&n=${v}`}
|
|
|
- frameBorder="no"
|
|
|
- ></iframe>
|
|
|
- ) : null
|
|
|
+ {info.showType === "model" ? (
|
|
|
+ <>
|
|
|
+ {showNum.map((v) =>
|
|
|
+ modelShow === v ? (
|
|
|
+ <iframe
|
|
|
+ key={v}
|
|
|
+ ref={ifrBoxRef}
|
|
|
+ src={`model.html?m=${info.id}&n=${v}`}
|
|
|
+ frameBorder="no"
|
|
|
+ ></iframe>
|
|
|
+ ) : null
|
|
|
+ )}
|
|
|
+ </>
|
|
|
+ ) : (
|
|
|
+ <>
|
|
|
+ {showNum.map((v, i) =>
|
|
|
+ modelShow === v ? (
|
|
|
+ <div
|
|
|
+ className="A3IsimgBox"
|
|
|
+ onClick={() => lookBigImgFu(i)}
|
|
|
+ key={v}
|
|
|
+ >
|
|
|
+ <ImageLazy
|
|
|
+ width="100%"
|
|
|
+ height="100%"
|
|
|
+ src={`${baseURL}/3Goods/${info.id}/main${v}.jpg`}
|
|
|
+ offline
|
|
|
+ noLook
|
|
|
+ ></ImageLazy>
|
|
|
+ </div>
|
|
|
+ ) : null
|
|
|
+ )}
|
|
|
+ </>
|
|
|
)}
|
|
|
|
|
|
{/* 右下角的按钮 */}
|
|
|
- <div className="A3IleftBtn">
|
|
|
- <div onClick={() => modelChangeFu(1)}>
|
|
|
- <PlusOutlined rev={undefined} />
|
|
|
- </div>
|
|
|
- <div onClick={() => modelChangeFu(2)}>
|
|
|
- <MinusOutlined rev={undefined} />
|
|
|
- </div>
|
|
|
- {full ? (
|
|
|
- <div onClick={() => setFull(false)}>
|
|
|
- <FullscreenExitOutlined rev={undefined} />
|
|
|
+ {info.showType === "model" ? (
|
|
|
+ <div className="A3IleftBtn">
|
|
|
+ <div onClick={() => modelChangeFu(1)}>
|
|
|
+ <PlusOutlined rev={undefined} />
|
|
|
</div>
|
|
|
- ) : (
|
|
|
- <div onClick={() => setFull(true)}>
|
|
|
- <FullscreenOutlined rev={undefined} />
|
|
|
+ <div onClick={() => modelChangeFu(2)}>
|
|
|
+ <MinusOutlined rev={undefined} />
|
|
|
</div>
|
|
|
- )}
|
|
|
- </div>
|
|
|
+ {full ? (
|
|
|
+ <div onClick={() => setFull(false)}>
|
|
|
+ <FullscreenExitOutlined rev={undefined} />
|
|
|
+ </div>
|
|
|
+ ) : (
|
|
|
+ <div onClick={() => setFull(true)}>
|
|
|
+ <FullscreenOutlined rev={undefined} />
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
+ ) : null}
|
|
|
</div>
|
|
|
|
|
|
{/* 左右按钮 */}
|
|
|
<div
|
|
|
- onClick={() => setModelShow(modelShow - 1)}
|
|
|
+ onClick={() => {
|
|
|
+ if (modelShow === 1) return;
|
|
|
+ setModelShow(modelShow - 1);
|
|
|
+ }}
|
|
|
hidden={showNum.length <= 1}
|
|
|
- style={{ backgroundImage: `url(${baseURL}/Home/left.png)` }}
|
|
|
className={classNames(
|
|
|
"A3ItoBtn",
|
|
|
"A3ItoLeft",
|
|
|
modelShow === 1 ? "noneToBtn" : ""
|
|
|
)}
|
|
|
- ></div>
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ style={{ backgroundImage: `url(${baseURL}/Home/left.png)` }}
|
|
|
+ ></div>
|
|
|
+ </div>
|
|
|
<div
|
|
|
- onClick={() => setModelShow(modelShow + 1)}
|
|
|
+ onClick={() => {
|
|
|
+ if (modelShow === showNum.length) return;
|
|
|
+ setModelShow(modelShow + 1);
|
|
|
+ }}
|
|
|
hidden={showNum.length <= 1}
|
|
|
- style={{ backgroundImage: `url(${baseURL}/Home/right.png)` }}
|
|
|
className={classNames(
|
|
|
"A3ItoBtn",
|
|
|
"A3ItoRight",
|
|
|
modelShow === showNum.length ? "noneToBtn" : ""
|
|
|
)}
|
|
|
- ></div>
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ style={{ backgroundImage: `url(${baseURL}/Home/right.png)` }}
|
|
|
+ ></div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
{/* 下面简介 */}
|