fix: submit dialog pre-deselects and disables already-reviewing stores

- parseStoreReview state shown per store with review tag
- UNDER_REVIEW/APPROVED stores are disabled + labeled "审核进行中,将跳过"
- openSubmitStoreDialog filters them out of default selectedStores

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-05-16 15:58:56 +08:00
父节点 61dd09763a
当前提交 42b1868f54

查看文件

@ -499,8 +499,21 @@
</el-form>
<el-checkbox-group v-model="selectedStores">
<div v-for="store in submissionStoreDefs" :key="store.type" class="store-checkbox-row">
<el-checkbox :value="store.type">{{ store.label }}</el-checkbox>
<el-checkbox
:value="store.type"
:disabled="isStoreActiveReview(submitStoreVersion, store.type)"
>{{ store.label }}</el-checkbox>
<el-tag size="small" type="success" style="margin-left:8px">已配置</el-tag>
<el-tag
v-if="getSubmitDialogStoreState(submitStoreVersion, store.type)"
:type="reviewTagType(getSubmitDialogStoreState(submitStoreVersion, store.type))"
size="small"
style="margin-left:4px"
>{{ reviewLabel(getSubmitDialogStoreState(submitStoreVersion, store.type)) }}</el-tag>
<span
v-if="isStoreActiveReview(submitStoreVersion, store.type)"
style="font-size:12px;color:var(--el-text-color-secondary);margin-left:6px"
>审核进行中将跳过</span>
</div>
</el-checkbox-group>
<el-alert
@ -1519,12 +1532,25 @@ async function handleUpdatePublishSchedule() {
function openSubmitStoreDialog(row: AppVersion) {
submitStoreVersion.value = row
selectedStores.value = enabledStores.value.map(s => s.type)
// Exclude stores already in active review from the pre-selection
selectedStores.value = enabledStores.value
.map(s => s.type)
.filter(t => !isStoreActiveReview(row, t))
submitStoreMode.value = row.storeSubmitMode ?? 'MANUAL'
submitStoreScheduledAt.value = row.storeSubmitScheduledAt ?? ''
showSubmitStore.value = true
}
function getSubmitDialogStoreState(version: AppVersion | null, storeType: string): string {
if (!version?.storeReviewStatus) return ''
return parseStoreReview(version.storeReviewStatus).find(i => i.store === storeType)?.state ?? ''
}
function isStoreActiveReview(version: AppVersion | null, storeType: string): boolean {
const state = getSubmitDialogStoreState(version, storeType)
return state === 'UNDER_REVIEW' || state === 'APPROVED'
}
function parseStoreTargets(json?: string) {
if (!json) return []
try {