forked from natuka/web.puabadge.com
修改:提交获取是否已提交订单
This commit is contained in:
1 parent
e2afe86ea3
commit
a76b181650
4 files changed
+27
-34
No files matched your search
@@ -132,8 +132,6 @@ import ImagePointCloud from './components/ImagePointCloud.vue'
|
||||
import DyNavBar from './components/DyNavBar.vue'
|
||||
import { takePendingUpload } from './pendingUpload'
|
||||
|
||||
const SUBMITTED_KEY = 'douyin_order_submitted'
|
||||
|
||||
function isSubmittedBizError(msg: string) {
|
||||
return /已提交制作|不能继续上传|不能继续生图/.test(String(msg || ''))
|
||||
}
|
||||
@@ -404,7 +402,6 @@ async function beginPendingUpload() {
|
||||
errorTip.value = msg
|
||||
// 已提交制作:不停留等待页,标记锁定并回首页
|
||||
if (isSubmittedBizError(msg)) {
|
||||
sessionStorage.setItem(SUBMITTED_KEY, '1')
|
||||
showToast(msg)
|
||||
setTimeout(() => {
|
||||
router.replace(config.routes.home)
|
||||
@@ -442,7 +439,6 @@ async function confirmSubmit() {
|
||||
imageId.value = res.imageId
|
||||
sessionStorage.setItem('douyin_image_id', res.imageId)
|
||||
}
|
||||
sessionStorage.setItem(SUBMITTED_KEY, '1')
|
||||
showConfirmModal.value = false
|
||||
router.replace(config.routes.success)
|
||||
} catch (err: any) {
|
||||
|
||||
+25
-29
@@ -73,7 +73,11 @@
|
||||
>
|
||||
{{
|
||||
orderLocked
|
||||
? (lockReason === config.messages.noRemain ? config.messages.noRemain : config.messages.orderSubmittedBtn)
|
||||
? (Number(orderStat.order_count) > 0
|
||||
? config.messages.orderSubmittedBtn
|
||||
: (lockReason === config.messages.noRemain
|
||||
? config.messages.noRemain
|
||||
: config.messages.orderStatFailBtn))
|
||||
: (photoPreview ? config.messages.startGenerate : config.messages.uploadBtn)
|
||||
}}
|
||||
</button>
|
||||
@@ -95,7 +99,6 @@ import { preloadLogoCloud } from './components/image-point-cloud/logo-cloud-cach
|
||||
import DyNavBar from './components/DyNavBar.vue'
|
||||
import { setPendingUpload } from './pendingUpload'
|
||||
|
||||
const SUBMITTED_KEY = 'douyin_order_submitted'
|
||||
const SUBMITTED_MSG = '本订单号已提交制作,不能继续上传图片或生图'
|
||||
|
||||
const router = useRouter()
|
||||
@@ -108,20 +111,18 @@ const orderStat = ref<any>({})
|
||||
const orderLocked = ref(false)
|
||||
const lockReason = ref('')
|
||||
|
||||
function markOrderSubmitted(reason?: string) {
|
||||
orderLocked.value = true
|
||||
lockReason.value = reason || SUBMITTED_MSG
|
||||
sessionStorage.setItem(SUBMITTED_KEY, '1')
|
||||
}
|
||||
|
||||
/** 仅根据接口 orders/stat 判断,不用本地缓存 */
|
||||
function applyOrderLock(res: any) {
|
||||
orderStat.value = res || {}
|
||||
// order_count > 0 表示已提交制作,锁定上传/生图
|
||||
if (res && Number(res.order_count) > 0) {
|
||||
markOrderSubmitted(config.messages.orderSubmitted || SUBMITTED_MSG)
|
||||
orderLocked.value = false
|
||||
lockReason.value = ''
|
||||
// order_count > 0 表示已提交制作
|
||||
if (Number(res?.order_count) > 0) {
|
||||
orderLocked.value = true
|
||||
lockReason.value = config.messages.orderSubmitted || SUBMITTED_MSG
|
||||
return
|
||||
}
|
||||
if (res && res.remain_count != null && Number(res.remain_count) <= 0) {
|
||||
if (res?.remain_count != null && Number(res.remain_count) <= 0) {
|
||||
orderLocked.value = true
|
||||
lockReason.value = config.messages.noRemain
|
||||
}
|
||||
@@ -142,8 +143,11 @@ function triggerPick() {
|
||||
function getOrderStat() {
|
||||
return badgeApi.getOrderStat({}).then((res: any) => {
|
||||
applyOrderLock(res)
|
||||
}).catch(() => {
|
||||
// 抖音链路可不依赖该接口,失败时不阻断上传
|
||||
}).catch((err: any) => {
|
||||
// stat 失败(如 code:-1 没有卡券数据)禁止上传生图
|
||||
orderStat.value = {}
|
||||
orderLocked.value = true
|
||||
lockReason.value = err?.message || config.messages.orderStatFail || '订单信息获取失败,暂不可上传生图'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -180,28 +184,23 @@ function onFileChange(e: Event) {
|
||||
}
|
||||
}
|
||||
|
||||
function onSubmit() {
|
||||
async function onSubmit() {
|
||||
if (submitting.value) return
|
||||
if (orderLocked.value) {
|
||||
showToast(lockReason.value || SUBMITTED_MSG)
|
||||
return
|
||||
}
|
||||
if (!photoFile.value || !photoPreview.value) {
|
||||
showToast(config.messages.pleaseUpload)
|
||||
return
|
||||
}
|
||||
if (Number(orderStat.value.order_count) > 0) {
|
||||
markOrderSubmitted()
|
||||
|
||||
submitting.value = true
|
||||
// 提交前重新拉 orders/stat,不依赖本地缓存 / 页面内存旧值
|
||||
await getOrderStat()
|
||||
if (orderLocked.value) {
|
||||
submitting.value = false
|
||||
showToast(lockReason.value || SUBMITTED_MSG)
|
||||
return
|
||||
}
|
||||
if (orderStat.value.remain_count != null && Number(orderStat.value.remain_count) <= 0) {
|
||||
showToast(config.messages.noRemain)
|
||||
return
|
||||
}
|
||||
|
||||
// 先跳等待页,后台再上传/生图(不弹成功失败 toast)
|
||||
submitting.value = true
|
||||
setPendingUpload(photoFile.value, photoPreview.value)
|
||||
sessionStorage.setItem('douyin_source_preview', photoPreview.value)
|
||||
router.push({
|
||||
@@ -212,9 +211,6 @@ function onSubmit() {
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
if (sessionStorage.getItem(SUBMITTED_KEY) === '1') {
|
||||
markOrderSubmitted()
|
||||
}
|
||||
getOrderStat()
|
||||
// 预采样 Logo 点云,进入等待页可立刻上屏
|
||||
preloadLogoCloud().catch(() => {})
|
||||
|
||||
@@ -164,7 +164,6 @@ function confirmOrder() {
|
||||
imageId.value = res.imageId
|
||||
sessionStorage.setItem('douyin_image_id', res.imageId)
|
||||
}
|
||||
sessionStorage.setItem('douyin_order_submitted', '1')
|
||||
showConfirmModal.value = false
|
||||
showSuccessToast({
|
||||
message: config.messages.orderSuccess,
|
||||
|
||||
Reference in new issue
Block a user