docs(private): 更新私有化SDK设计文档添加配置管理和错误码规范
- Flutter包名格式从xuqm_private_flutter_*改为xuqm_private_* - 添加configVersion字段用于追踪配置变更,格式为YYYY.MM.DD-序号 - 添加配置版本管理说明,包含schemaVersion兼容性策略 - 添加配置热更新机制,支持冷加载和热加载两种方式 - 添加多环境配置支持,可通过activeProfile指定生效环境 - 添加统一错误码规范,覆盖配置缺失、格式错误、版本不兼容等场景 - 更新验收标准,包含热更新、多环境切换、错误码一致性要求 - 添加私有化开发计划中的错误码规范、文档同步、数据迁移等任务 - 补充MySQL运维细节、证书自动续期、监控告警、日志收集等部署要求 - 添加性能基准指标,包含HTTP API、WebSocket、文件传输等性能要求 - 修复应用商店审核状态轮询中的逻辑错误,添加小米商店特殊处理 - 更新前端界面显示审核版本信息,优化状态刷新逻辑
这个提交包含在:
父节点
a1e4d5741b
当前提交
b6f2aedc70
@ -70,7 +70,7 @@
|
||||
<div class="store-review-tags">
|
||||
<template v-for="item in parseStoreReview(row.storeReviewStatus)" :key="item.store">
|
||||
<el-tooltip
|
||||
v-if="item.state === 'REJECTED' && item.reason"
|
||||
v-if="item.reason"
|
||||
:content="item.reason"
|
||||
placement="top"
|
||||
>
|
||||
@ -671,6 +671,10 @@
|
||||
<span class="meta-label">线上版本</span>
|
||||
<span class="meta-value">{{ [item.liveVersionName, item.liveVersionCode].filter(Boolean).join(' · ') }}</span>
|
||||
</div>
|
||||
<div v-if="item.reviewVersionName || item.reviewVersionCode" class="review-card-meta-item">
|
||||
<span class="meta-label">审核版本</span>
|
||||
<span class="meta-value">{{ [item.reviewVersionName, item.reviewVersionCode].filter(Boolean).join(' · ') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Rejection / withdrawal reason -->
|
||||
@ -1576,6 +1580,8 @@ type StoreReviewItem = {
|
||||
nonCurrentRelease?: boolean
|
||||
liveVersionName?: string
|
||||
liveVersionCode?: string
|
||||
reviewVersionName?: string
|
||||
reviewVersionCode?: string
|
||||
}
|
||||
const storeReviewDetailItems = ref<StoreReviewItem[]>([])
|
||||
const storeReviewDetailLive = ref(false)
|
||||
@ -1640,26 +1646,14 @@ 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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const versionId = storeReviewDetailVersion.value.id
|
||||
await updateAdminApi.refreshStoreReviewStatus(versionId)
|
||||
await loadAppVersions()
|
||||
const row = appVersions.value.find(v => v.id === versionId)
|
||||
if (row) {
|
||||
storeReviewDetailVersion.value = row
|
||||
storeReviewDetailItems.value = parseStoreReview(row.storeReviewStatus)
|
||||
}
|
||||
ElMessage.success('厂商状态已刷新')
|
||||
} catch {
|
||||
ElMessage.error('刷新失败,请稍后重试')
|
||||
@ -2527,6 +2521,8 @@ function parseStoreReview(json?: string): StoreReviewItem[] {
|
||||
nonCurrentRelease: item.nonCurrentRelease === true,
|
||||
liveVersionName: String(item.liveVersionName ?? ''),
|
||||
liveVersionCode: String(item.liveVersionCode ?? ''),
|
||||
reviewVersionName: String(item.reviewVersionName ?? ''),
|
||||
reviewVersionCode: String(item.reviewVersionCode ?? ''),
|
||||
}
|
||||
}
|
||||
return { store, state: String(value ?? ''), reason: '' }
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户