68 lines
2.3 KiB
TypeScript

import type { BaseEventOrig } from '@tarojs/components'
import { Button, Text, View } from '@tarojs/components'
import Taro from '@tarojs/taro'
import { memo, useCallback, useMemo } from 'react'
import styles from './index.module.scss'
import LabAndImg from '@/components/LabAndImg'
import IconFont from '@/components/iconfont/iconfont'
import { formatHashTag } from '@/common/fotmat'
import useLogin from '@/use/useLogin'
import { alert } from '@/common/common'
interface DataType {
product_screw_id: number
product_screw_name: string
product_screw_code: string
screw_rgb: { r: number; g: number; b: number }
screw_lab: { l: number; a: number; b: number }
screw_texture_url: string
}
interface ParamType {
onClick?: (id: number) => void
data: DataType
is_authorize_phone?: string
}
export default memo((props: ParamType) => {
const { onClick, data } = props
const labAndImgObj = useMemo(
() => {
return { lab: data?.screw_lab, rgb: data?.screw_rgb, texture_url: data?.screw_texture_url }
},
[data],
)
const { getPhoneNumber, userInfo } = useLogin()
const getPhone = async(e) => {
if (!e.detail.code) { return alert.error('请授权手机号') }
try {
await getPhoneNumber(e.detail.code)
}
catch (msg) {
Taro.showToast({
icon: 'none',
title: msg,
})
return false
}
}
return <View className={styles.recommend} >
<View className={styles.con} onClick={() => onClick?.(data?.product_screw_id)}>
<View className={styles.recommend_title}></View>
<View className={styles.recommend_con}>
<View className={styles.img}>
<LabAndImg value={labAndImgObj} customImageStyle={{ borderRadius: 0 }} />
</View>
<View className={styles.con}>
<Text>{formatHashTag(data?.product_screw_code, data?.product_screw_name)}</Text>
<Text></Text>
</View>
<View className={styles.open_select}>
<Text></Text>
<IconFont name="icon-rukou" size={37} />
</View>
</View>
</View>
{(!userInfo.adminUserInfo?.is_authorize_phone && <Button className={styles.wxBtn} open-type="getPhoneNumber" onGetPhoneNumber={e => getPhone(e)}></Button>)}
</View>
})