Files
glt-taro/src/components/SimpleQRCodeModal.tsx
赵忠林 06a3b15842 refactor(api): 更新 API调用以使用新的请求工具- 将所有 API 调用中的 request-legacy 替换为 request
- 优化部分 API 调用的参数传递方式
- 统一导入 ApiResult 和 PageResult 类型的路径
2025-08-18 20:39:31 +08:00

111 lines
3.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import React, {useEffect} from 'react'
import {View, Text} from '@tarojs/components'
import {Popup} from '@nutui/nutui-react-taro'
import {Close, QrCode} from '@nutui/icons-react-taro'
export interface SimpleQRCodeModalProps {
/** 是否显示弹窗 */
visible: boolean
/** 关闭弹窗回调 */
onClose: () => void
/** 二维码内容礼品卡code码 */
qrContent: string
/** 礼品卡名称 */
giftName?: string
/** 礼品卡面值 */
faceValue?: string
}
const SimpleQRCodeModal: React.FC<SimpleQRCodeModalProps> = ({
visible,
onClose,
qrContent,
giftName,
faceValue
}) => {
// const copyToClipboard = () => {
// if (qrContent) {
// Taro.setClipboardData({
// data: qrContent,
// success: () => {
// Taro.showToast({
// title: '兑换码已复制',
// icon: 'success'
// })
// }
// })
// }
// }
useEffect(() => {
}, [])
return (
<Popup
visible={visible}
position="center"
closeable
closeIcon={<Close/>}
onClose={onClose}
style={{
width: '90%'
}}
>
<View className="p-6">
{/* 标题 */}
<View className="mb-4">
<Text className="text-lg font-bold"></Text>
</View>
{/* 礼品卡信息 */}
{(giftName || faceValue) && (
<View className="bg-gray-50 rounded-lg p-3 mb-4 hidden">
{giftName && (
<Text className="font-medium text-center mb-1">
{giftName}
</Text>
)}
{faceValue && (
<Text className="text-lg font-bold text-red-500 text-center">
¥{faceValue}
</Text>
)}
</View>
)}
{/* 二维码区域 */}
<View className="text-center mb-4">
<View className="p-4 bg-white border border-gray-200 rounded-lg">
{qrContent ? (
<View className={'flex flex-col justify-center'}>
<img
src={`http://127.0.0.1:9200/api/qr-code/create-encrypted-qr-image?size=300x300&expireMinutes=60&businessType=gift&data=${encodeURIComponent(qrContent)}`}
alt="二维码"
style={{width: '200px', height: '200px'}}
className="mx-auto"
/>
<Text className="text-sm text-gray-400 mt-1 px-2">
</Text>
</View>
) : (
<View className="bg-gray-100 rounded flex items-center justify-center mx-auto"
style={{width: '200px', height: '200px'}}>
<View className="text-center">
<QrCode size="48" className="text-gray-400 mb-2"/>
<Text className="text-gray-500 text-sm">...</Text>
</View>
</View>
)}
</View>
</View>
</View>
</Popup>
)
}
export default SimpleQRCodeModal