fix: 修复图片bug

This commit is contained in:
imeepos 2025-09-04 21:34:19 +08:00
parent 95d0776075
commit 9465a71f17
2 changed files with 14 additions and 8 deletions

View File

@ -122,7 +122,7 @@ export default function TemplateCard({ template, onClick }: TemplateCardProps) {
autoplay autoplay
muted muted
loop loop
objectFit='cover' objectFit='fill'
showPlayBtn={false} showPlayBtn={false}
showCenterPlayBtn={false} showCenterPlayBtn={false}
showFullscreenBtn={false} showFullscreenBtn={false}

View File

@ -1,6 +1,6 @@
import { View, Text, Button, Image } from '@tarojs/components' import { View, Text, Button, Image } from '@tarojs/components'
import { useEffect, useState } from 'react' import { useEffect, useState } from 'react'
import Taro, { switchTab } from '@tarojs/taro' import Taro, { switchTab, navigateTo } from '@tarojs/taro'
import { useServerSdk } from '../../hooks/index' import { useServerSdk } from '../../hooks/index'
import './index.css' import './index.css'
@ -8,8 +8,8 @@ export default function Generate() {
const [progress, setProgress] = useState(0) const [progress, setProgress] = useState(0)
const [status, setStatus] = useState<'loading' | 'success' | 'error'>('loading') const [status, setStatus] = useState<'loading' | 'success' | 'error'>('loading')
const [result, setResult] = useState<any | null>(null) const [result, setResult] = useState<any | null>(null)
const [timerRef, setTimerRef] = useState<NodeJS.Timeout | null>(null)
const serverSdk = useServerSdk() const serverSdk = useServerSdk()
let timerRef: NodeJS.Timeout | null = null
useEffect(() => { useEffect(() => {
// 获取页面参数 // 获取页面参数
@ -26,9 +26,10 @@ export default function Generate() {
return () => { return () => {
if (timerRef) { if (timerRef) {
clearTimeout(timerRef) clearTimeout(timerRef)
timerRef = null
} }
} }
}, [timerRef]) }, [])
const pollTaskResult = async (taskId: string) => { const pollTaskResult = async (taskId: string) => {
try { try {
@ -46,13 +47,19 @@ export default function Generate() {
setProgress(100) setProgress(100)
setStatus('success') setStatus('success')
setResult({ success: true, imageUrl: result.imageUrl }) setResult({ success: true, imageUrl: result.imageUrl })
// 成功后跳转到result页面
setTimeout(() => {
navigateTo({
url: `/pages/result/index?images=${encodeURIComponent(JSON.stringify([result.imageUrl]))}`
})
}, 1000)
} else if (result.status === 'failed') { } else if (result.status === 'failed') {
setStatus('error') setStatus('error')
setResult({ success: false, error: result.error || '处理失败' }) setResult({ success: false, error: result.error || '处理失败' })
} else if (attempts < maxAttempts) { } else if (attempts < maxAttempts) {
// 继续轮询 // 继续轮询
const timer = setTimeout(poll, 1000) timerRef = setTimeout(poll, 1000)
setTimerRef(timer)
} else { } else {
// 超时 // 超时
setStatus('error') setStatus('error')
@ -60,8 +67,7 @@ export default function Generate() {
} }
} catch (error) { } catch (error) {
if (attempts < maxAttempts) { if (attempts < maxAttempts) {
const timer = setTimeout(poll, 1000) timerRef = setTimeout(poll, 1000)
setTimerRef(timer)
} else { } else {
setStatus('error') setStatus('error')
setResult({ success: false, error: '获取结果失败' }) setResult({ success: false, error: '获取结果失败' })