fix: 修复图片bug
This commit is contained in:
parent
95d0776075
commit
9465a71f17
|
|
@ -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}
|
||||||
|
|
|
||||||
|
|
@ -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: '获取结果失败' })
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue