diff --git a/src/components/LabAndImg/index.tsx b/src/components/LabAndImg/index.tsx
index 842d0d9..d03ea61 100644
--- a/src/components/LabAndImg/index.tsx
+++ b/src/components/LabAndImg/index.tsx
@@ -1,7 +1,9 @@
import { formatImgUrl } from "@/common/fotmat";
+import Preview from "@/pages/details/components/preview";
import { Image, View } from "@tarojs/components";
-import { memo, useMemo } from "react";
+import { memo, useMemo, useState } from "react";
import styles from './index.module.scss'
+import Taro from "@tarojs/taro";
//该组件宽高为100%需调整外层元素宽高
type Param = {
@@ -9,9 +11,10 @@ type Param = {
texture_url?: string, //纹理图路径
lab?: {l:number, a:number, b:number}, //lab
rgb?: {r:number, g:number, b:number} //rgb
- }
+ },
+ checkStatus: false|true
}
-export default memo(({value}:Param) => {
+export default memo(({value, checkStatus = false}:Param) => {
//lab是否都是0
const rgbStyle = useMemo(() => {
if(value?.lab&&(value.lab.l||value.lab.a||value.lab.b)) {
@@ -20,11 +23,28 @@ export default memo(({value}:Param) => {
return null
}
}, [value])
+
+ const [showPreview, setShowPreview] = useState(false)
+ const onClickShow = () => {
+ setShowPreview(() => true)
+ }
+
+ const onShowImage = () => {
+ if(!checkStatus) return false
+ Taro.previewImage({
+ current: formatImgUrl(value?.texture_url, '!w800'), // 当前显示
+ urls: [formatImgUrl(value?.texture_url, '!w800')] // 需要预览的图片http链接列表
+ })
+ }
+
return (
-
- {value?.texture_url&&}
- {(!value?.texture_url&&rgbStyle)&&}
- {(!value?.texture_url&&!rgbStyle)&&}
-
+ <>
+
+ {value?.texture_url&& onShowImage()} src={formatImgUrl(value?.texture_url)}>}
+ {(!value?.texture_url&&rgbStyle)&& onClickShow()} style={{...rgbStyle}}>}
+ {(!value?.texture_url&&!rgbStyle)&&}
+
+ setShowPreview(false)}/>
+ >
)
})
\ No newline at end of file
diff --git a/src/pages/details/components/preview/index.module.scss b/src/pages/details/components/preview/index.module.scss
index 9db49ae..fc59d0b 100644
--- a/src/pages/details/components/preview/index.module.scss
+++ b/src/pages/details/components/preview/index.module.scss
@@ -18,6 +18,11 @@
margin-top: 100px;
padding: 20px;
box-sizing: border-box;
+ .rgb{
+ width: 600px;
+ height: 600px;
+ border-radius: 20px;
+ }
image{
width:100%;
border-radius: 10px;
diff --git a/src/pages/details/components/preview/index.tsx b/src/pages/details/components/preview/index.tsx
index ff86ecf..3cbb31a 100644
--- a/src/pages/details/components/preview/index.tsx
+++ b/src/pages/details/components/preview/index.tsx
@@ -1,25 +1,21 @@
-import LabAndImg from "@/components/LabAndImg"
-import { Image, View } from "@tarojs/components"
+import { View } from "@tarojs/components"
+import { useMemo } from "react"
import styles from './index.module.scss'
-export type colorItem = {
- title: string,
- lab: {l:number, a:number, b:number},
- rgb: {r:number, g:number, b:number},
- texture_url: string
-}
+
export type colorParams = {
- value?: colorItem,
+ value?: { backgroundColor: string; }|null,
show?: false|true
onClose?: () => void
}
export default ({value, show = false, onClose}: colorParams) => {
+
return (
<>
{show&& onClose?.()}>
-
- {value?.title}
+
+ {'颜色'}
}
>
diff --git a/src/pages/details/index.tsx b/src/pages/details/index.tsx
index 6ce3184..66ef5bf 100644
--- a/src/pages/details/index.tsx
+++ b/src/pages/details/index.tsx
@@ -239,7 +239,6 @@ export default (props:Params) => {
setShowOrderCount(false)} title={productName} productId={productInfo.id}/>
setShowCart(false)}/>
- setShowPreview(false)}/>
diff --git a/src/pages/order/index.tsx b/src/pages/order/index.tsx
index 3b79edc..3f8c6a8 100644
--- a/src/pages/order/index.tsx
+++ b/src/pages/order/index.tsx
@@ -115,7 +115,6 @@ import styles from './index.module.scss'
take_goods_address: orderDetail?.take_goods_address,
take_goods_phone: orderDetail?.take_goods_phone
}
-
}, [orderDetail])
//订单备注