diff --git a/tenant-platform/src/views/update/VersionManagementView.vue b/tenant-platform/src/views/update/VersionManagementView.vue index cdd651e..16cd198 100644 --- a/tenant-platform/src/views/update/VersionManagementView.vue +++ b/tenant-platform/src/views/update/VersionManagementView.vue @@ -923,9 +923,8 @@ import { updateAdminApi, type AppPackageInspectResult, type AppVersion, - type GrayMemberGroup, type GrayMode, - type GraySelectionSource, + type GrayTag, type PublishMode, type RnBundle, type RnBundleInspectResult, @@ -1420,21 +1419,17 @@ async function removeStoreConfig(type: StoreType) { } function normalizePublishConfig(raw: Record | null | undefined) { - const normalizeCallbackUrl = (value: unknown) => { + const normalizeUrl = (value: unknown) => { const text = String(value ?? '').trim() return /^https?:\/\//i.test(text) ? text : '' } - const grayMode = String(raw?.grayMode ?? 'PERCENT') as GrayMode - const graySelectionSource = String(raw?.graySelectionSource ?? 'LOCAL') as GraySelectionSource return { - allowAnonymousUpdateCheck: Boolean(raw?.allowAnonymousUpdateCheck ?? raw?.defaultAllowAnonymousUpdateCheck ?? false), - defaultGrayPercent: Number((raw as Record)?.defaultGrayPercent ?? 0), - grayMode, - graySelectionSource, - graySelectCallbackUrl: normalizeCallbackUrl((raw as Record)?.graySelectCallbackUrl), - graySelectCallbackSecret: String((raw as Record)?.graySelectCallbackSecret ?? ''), - grayDirectorySyncCallbackUrl: normalizeCallbackUrl((raw as Record)?.grayDirectorySyncCallbackUrl), - grayDirectorySyncCallbackSecret: String((raw as Record)?.grayDirectorySyncCallbackSecret ?? ''), + allowAnonymousUpdateCheck: Boolean(raw?.allowAnonymousUpdateCheck ?? false), + defaultGrayPercent: Number(raw?.defaultGrayPercent ?? 0), + grayMode: String(raw?.grayMode ?? 'PERCENT') as GrayMode, + graySyncUrl: normalizeUrl(raw?.graySyncUrl), + publishCallbackUrl: normalizeUrl(raw?.publishCallbackUrl), + enableRealtimeNotification: Boolean(raw?.enableRealtimeNotification ?? false), parallelStoreUpload: raw?.parallelStoreUpload !== false, } } @@ -1457,10 +1452,6 @@ async function loadPublishConfig() { publishConfigForm.value = parsePublishConfig(res.data.data.configJson) if (allowAnonymousUpdateCheck.value) { publishConfigForm.value.grayMode = 'PERCENT' - publishConfigForm.value.graySelectionSource = 'LOCAL' - } - if (publishConfigForm.value.grayMode === 'MEMBERS' && !hasAnyGrayCallback.value) { - publishConfigForm.value.grayMode = 'PERCENT' } } catch { publishConfigForm.value = normalizePublishConfig({}) @@ -1472,26 +1463,18 @@ async function loadPublishConfig() { async function savePublishConfig() { savingPublishConfig.value = true try { - const normalizeCallbackUrl = (value: string) => { + const normalizeUrl = (value: string) => { const trimmed = value.trim() return /^https?:\/\//i.test(trimmed) ? trimmed : '' } const payload = { ...publishConfigForm.value, defaultGrayPercent: Math.min(Math.max(Number(publishConfigForm.value.defaultGrayPercent || 0), 0), 100), - graySelectCallbackUrl: normalizeCallbackUrl(publishConfigForm.value.graySelectCallbackUrl), - grayDirectorySyncCallbackUrl: normalizeCallbackUrl(publishConfigForm.value.grayDirectorySyncCallbackUrl), + graySyncUrl: normalizeUrl(publishConfigForm.value.graySyncUrl), + publishCallbackUrl: normalizeUrl(publishConfigForm.value.publishCallbackUrl), } if (payload.allowAnonymousUpdateCheck) { payload.grayMode = 'PERCENT' - payload.graySelectionSource = 'LOCAL' - } - if (payload.grayMode === 'MEMBERS' && !hasAnyGrayCallback.value) { - ElMessage.warning('成员模式至少需要配置一个回调地址') - return - } - if (payload.grayMode === 'MEMBERS' && !hasGrayDirectorySyncCallback.value) { - payload.graySelectionSource = 'CALLBACK' } await updateAdminApi.savePublishConfig(appKey.value, payload) ElMessage.success('发布配置已保存') @@ -2464,15 +2447,9 @@ watch(storeConfigs, () => { } }, { deep: true }) -watch([grayMemberKeyword, grayMemberGroupFilter], () => { - if (showGray.value && grayForm.value.grayMode === 'MEMBERS' && grayForm.value.selectionSource === 'LOCAL') { - loadGrayMembers() - } -}) - watch(grayForm, () => { - if (showGray.value && grayForm.value.grayMode === 'MEMBERS' && grayForm.value.selectionSource === 'LOCAL') { - loadGrayMembers() + if (showGray.value && grayForm.value.grayMode === 'MEMBERS') { + loadGrayTags() } }, { deep: true })