update sku mapping

This commit is contained in:
2026-04-15 09:34:32 +08:00
parent 417ac5e1f9
commit e925ec76dc
+10 -5
View File
@@ -88,6 +88,7 @@ const filteredStoreOptions = computed(() => {
}) })
// Remote search for SKU origins // Remote search for SKU origins
let skipCompanyWatch = false
const skuSearchOptions = ref<{ value: number; label: string }[]>([]) const skuSearchOptions = ref<{ value: number; label: string }[]>([])
const skuSearching = ref(false) const skuSearching = ref(false)
let skuSearchTimer: ReturnType<typeof setTimeout> | null = null let skuSearchTimer: ReturnType<typeof setTimeout> | null = null
@@ -157,6 +158,12 @@ function openCreate() {
function openEdit(record: SkuMappingForm & { id: number }) { function openEdit(record: SkuMappingForm & { id: number }) {
editingId.value = record.id editingId.value = record.id
modalTitle.value = '编辑连接' modalTitle.value = '编辑连接'
// 先预填 options,再赋值 form(避免 watch 清空后丢失)
skuSearchOptions.value = record.origin_sku_id
? [{ value: record.origin_sku_id as number, label: record.origin_sku || '' }]
: []
// 暂停 watch 重置逻辑
skipCompanyWatch = true
Object.assign(form, { Object.assign(form, {
company_id: record.company_id, company_id: record.company_id,
platform_id: record.platform_id, platform_id: record.platform_id,
@@ -170,10 +177,7 @@ function openEdit(record: SkuMappingForm & { id: number }) {
enabled: record.enabled ?? true, enabled: record.enabled ?? true,
note: record.note || '', note: record.note || '',
}) })
// 从已有列表数据预填 origin SKU 选项,无需额外 API 调用 nextTick(() => { skipCompanyWatch = false })
skuSearchOptions.value = record.origin_sku_id
? [{ value: record.origin_sku_id as number, label: record.origin_sku || '' }]
: []
modalVisible.value = true modalVisible.value = true
} }
@@ -284,10 +288,11 @@ function applyGenerated() {
} }
} }
// Watch company change to reset SKU search // Watch company change to reset SKU search (skip during openEdit)
watch( watch(
() => form.company_id, () => form.company_id,
() => { () => {
if (skipCompanyWatch) return
form.origin_sku_id = undefined form.origin_sku_id = undefined
form.origin_sku = '' form.origin_sku = ''
skuSearchOptions.value = [] skuSearchOptions.value = []