From 557516ef1dd7a4d065fa99892a8c8f20cc5cd685 Mon Sep 17 00:00:00 2001 From: yml Date: Wed, 20 May 2026 01:04:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=BF=AB=E6=89=8B=20cloud=20=E5=B1=A5?= =?UTF-8?q?=E7=BA=A6):=20=E4=B8=89=E9=A1=B9=E5=89=8D=E7=AB=AF=E6=94=B9?= =?UTF-8?q?=E9=80=A0=20=E2=80=94=20cloudSourceKey=20=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E3=80=81=E5=A4=87=E9=80=89=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E5=A4=9A=E9=80=89=E3=80=81SKU=20=E6=8C=89=20sourceKey=20?= =?UTF-8?q?=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 需求1: cloudSourceKey 从文本输入改为下拉选择(选项来自 cloudtentacles sources 列表) - Type: AdminKuaishouCloudFulfillmentItem 新增 cloudSourceKeyFallbacks?: string[] - RuleCard.vue: cloudSourceKey 从 el-input 改为 el-select,选项来自 cloudtentaclesSourceOptions prop - RuleSection.vue: 传递 cloudtentaclesSourceOptions prop 到 RuleCard - View: 传递 config.cloudtentaclesSourceOptions 到 RuleSection 需求2: 同一 SKU 支持多个 cloudtentacles 账号(备选退避) - RuleCard.vue: 新增备选 cloud 账号多选 el-select(multiple),过滤掉已选主账号 - useKuaishouCloudConfig.ts: createEmptyItem/mapEditableItem/mapSaveItem 处理 cloudSourceKeyFallbacks 字段 需求3: 选择 cloudSkuId 后自动补全 + sourceKey 感知的 SKU 查询 - useKuaishouCloudSku.ts: cloudSkuCatalog 从全局单一缓存改为按 sourceKey 缓存(cloudSkuCatalogBySourceKey) - ensureCloudSkuCatalogLoaded(item) 传入 item 取其 sourceKey,fetchAdminCloudtentaclesSkuList({ sourceKey }) - getCloudSkuOptions/handleCloudSkuSelected/handleCloudSkuDropdownVisible 均按 sourceKey 取缓存的 catalog - refreshCloudSkuCatalog(item?) 支持按 item 的 sourceKey 刷新或全部刷新 额外: useKuaishouCloudConfig 加载时额外调用 fetchAdminCloudtentaclesSourceConfig 获取 sources 列表 --- .../kuaishou-cloud-fulfillment.ts | 1 + .../AdminKuaishouCloudFulfillmentView.vue | 1 + .../components/AdminKuaishouCloudRuleCard.vue | 35 +++++++-- .../AdminKuaishouCloudRuleSection.vue | 2 + .../composables/useKuaishouCloudConfig.ts | 73 ++++++++++++------- .../composables/useKuaishouCloudSku.ts | 68 ++++++++++++----- 6 files changed, 130 insertions(+), 50 deletions(-) diff --git a/apps/frontend/src/types/admin/platform-config/kuaishou-cloud-fulfillment.ts b/apps/frontend/src/types/admin/platform-config/kuaishou-cloud-fulfillment.ts index cf8a6224..c08140b0 100644 --- a/apps/frontend/src/types/admin/platform-config/kuaishou-cloud-fulfillment.ts +++ b/apps/frontend/src/types/admin/platform-config/kuaishou-cloud-fulfillment.ts @@ -22,6 +22,7 @@ export interface AdminKuaishouCloudFulfillmentItem { kuaishouConsumeShopId: string kuaishouConsumeShopName: string notes: string + cloudSourceKeyFallbacks?: string[] } export interface AdminKuaishouCloudFulfillmentConfig { diff --git a/apps/frontend/src/views/admin/fulfillment/kuaishou-cloud/AdminKuaishouCloudFulfillmentView.vue b/apps/frontend/src/views/admin/fulfillment/kuaishou-cloud/AdminKuaishouCloudFulfillmentView.vue index dcb942f9..8f1a00aa 100644 --- a/apps/frontend/src/views/admin/fulfillment/kuaishou-cloud/AdminKuaishouCloudFulfillmentView.vue +++ b/apps/frontend/src/views/admin/fulfillment/kuaishou-cloud/AdminKuaishouCloudFulfillmentView.vue @@ -45,6 +45,7 @@ onMounted(config.loadConfigs) +