From 0a8011d9bebe2dd9964d387d826bc85bd4a2b433 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Thu, 11 Jun 2026 12:36:27 +0800 Subject: [PATCH] =?UTF-8?q?refactor(version):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=AE=A1=E7=90=86=E4=B8=AD=E7=9A=84=E7=81=B0?= =?UTF-8?q?=E5=BA=A6=E5=8F=91=E5=B8=83=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 GrayMemberGroup 和 GraySelectionSource 类型定义 - 添加 GrayTag 类型定义以支持标签模式 - 重命名 normalizeCallbackUrl 函数为 normalizeUrl - 简化灰度发布配置逻辑,移除本地选择源相关代码 - 将灰度同步回调URL和发布回调URL统一为 graySyncUrl 和 publishCallbackUrl - 更新灰度成员加载逻辑为标签加载逻辑 - 移除成员模式下的回调地址验证和选择源设置 - 简化灰度模式切换条件判断逻辑 --- .../views/update/VersionManagementView.vue | 49 +++++-------------- 1 file changed, 13 insertions(+), 36 deletions(-) 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 })