修改购买套餐调用接口后端计算价格 & 重置包时/包量初始化数量
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
'use client'
|
||||
import {Suspense, use, useMemo} from 'react'
|
||||
import {Suspense, use, useEffect, useMemo, useState} from 'react'
|
||||
import {Schema} from '@/components/composites/purchase/short/form'
|
||||
import {RadioGroup} from '@/components/ui/radio-group'
|
||||
import {FormField} from '@/components/ui/form'
|
||||
@@ -16,7 +16,7 @@ import {merge} from '@/lib/utils'
|
||||
import Pay from '@/components/composites/purchase/pay'
|
||||
import {useFormContext, useWatch} from 'react-hook-form'
|
||||
import {Card} from '@/components/ui/card'
|
||||
|
||||
import {CreateResourceReq, getPrice} from '@/actions/resource'
|
||||
export default function Right() {
|
||||
const {control} = useFormContext<Schema>()
|
||||
const method = useWatch({control, name: 'pay_type'})
|
||||
@@ -26,13 +26,35 @@ export default function Right() {
|
||||
const expire = useWatch({control, name: 'expire'})
|
||||
const quota = useWatch({control, name: 'quota'})
|
||||
|
||||
const price = useMemo(() => {
|
||||
const base = live === '180' ? 150 : Number(live)
|
||||
const factor = {
|
||||
1: Number(expire) * dailyLimit,
|
||||
2: quota,
|
||||
}[mode]
|
||||
return (base * factor / 30000).toFixed(2)
|
||||
const [price, setPrice] = useState<string>('0.00')
|
||||
useEffect(() => {
|
||||
const price = async () => {
|
||||
const params: CreateResourceReq = {
|
||||
type: 1,
|
||||
short: {
|
||||
live: Number(live),
|
||||
mode: Number(mode),
|
||||
quota: quota,
|
||||
expire: Number(mode) === 1 ? Number(expire) : undefined,
|
||||
},
|
||||
}
|
||||
console.log(params, 'params')
|
||||
|
||||
try {
|
||||
const priceResponse = await getPrice(params)
|
||||
if (priceResponse.success && priceResponse.data?.price) {
|
||||
setPrice(priceResponse.data.price)
|
||||
}
|
||||
else {
|
||||
setPrice('0.00')
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.error('获取价格失败:', error)
|
||||
setPrice('0.00')
|
||||
}
|
||||
}
|
||||
price()
|
||||
}, [dailyLimit, expire, live, quota, mode])
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user