修改:提交获取是否已提交订单
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/prod Build is passing

This commit is contained in:
Linzm committed 2026-10-20 16:29:15 +08:00
1 parent e2afe86ea3
commit a76b181650
4 files changed
+27 -34

No files matched your search

+2
View File
@@ -87,6 +87,8 @@ export const douyinConfig = {
selectQuantity: '请选择下单数量',
orderSubmitted: '本订单号已提交制作,不能继续上传图片或生图',
orderSubmittedBtn: '订单已提交制作',
orderStatFail: '订单信息获取失败,暂不可上传生图',
orderStatFailBtn: '暂不可上传生图',
},
}
-4
View File
@@ -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
View File
@@ -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(() => {})
-1
View File
@@ -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,