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>
这个提交包含在:
父节点
61dd09763a
当前提交
42b1868f54
@ -499,8 +499,21 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
<el-checkbox-group v-model="selectedStores">
|
<el-checkbox-group v-model="selectedStores">
|
||||||
<div v-for="store in submissionStoreDefs" :key="store.type" class="store-checkbox-row">
|
<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 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>
|
</div>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
<el-alert
|
<el-alert
|
||||||
@ -1519,12 +1532,25 @@ async function handleUpdatePublishSchedule() {
|
|||||||
|
|
||||||
function openSubmitStoreDialog(row: AppVersion) {
|
function openSubmitStoreDialog(row: AppVersion) {
|
||||||
submitStoreVersion.value = row
|
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'
|
submitStoreMode.value = row.storeSubmitMode ?? 'MANUAL'
|
||||||
submitStoreScheduledAt.value = row.storeSubmitScheduledAt ?? ''
|
submitStoreScheduledAt.value = row.storeSubmitScheduledAt ?? ''
|
||||||
showSubmitStore.value = true
|
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) {
|
function parseStoreTargets(json?: string) {
|
||||||
if (!json) return []
|
if (!json) return []
|
||||||
try {
|
try {
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户