+ 刷新厂商状态
([])
const storeReviewDetailLive = ref(false)
const cancellingReview = ref(false)
+const refreshingReviewStatus = ref(false)
const retryingStores = ref>(new Set())
const showPublishSchedule = ref(false)
const publishScheduleType = ref<'IMMEDIATE' | 'SCHEDULED'>('IMMEDIATE')
@@ -1629,6 +1636,38 @@ async function handleCancelReview(storeType?: string) {
}
}
+async function handleRefreshReviewStatus() {
+ if (!storeReviewDetailVersion.value) return
+ refreshingReviewStatus.value = true
+ try {
+ const res = await updateAdminApi.refreshStoreReviewStatus(storeReviewDetailVersion.value.id)
+ const result = res.data.data
+ if (result && result.stores) {
+ // Merge refreshed states into the detail items
+ for (const s of result.stores) {
+ const idx = storeReviewDetailItems.value.findIndex(i => i.store === s.storeType)
+ if (idx >= 0) {
+ // Re-parse the row's storeReviewStatus to get updated fields from DB
+ const row = appVersions.value.find(v => v.id === storeReviewDetailVersion.value!.id)
+ if (row) {
+ const parsed = parseStoreReview(row.storeReviewStatus)
+ const updated = parsed.find(p => p.store === s.storeType)
+ if (updated) {
+ storeReviewDetailItems.value[idx] = updated
+ }
+ }
+ }
+ }
+ }
+ await loadAppVersions()
+ ElMessage.success('厂商状态已刷新')
+ } catch {
+ ElMessage.error('刷新失败,请稍后重试')
+ } finally {
+ refreshingReviewStatus.value = false
+ }
+}
+
async function handleRetryStore(storeType: string) {
if (!storeReviewDetailVersion.value) return
retryingStores.value = new Set([...retryingStores.value, storeType])