叶静 3 tygodni temu
rodzic
commit
1be7ded86f
1 zmienionych plików z 20 dodań i 5 usunięć
  1. 20 5
      src/app/shop/admin/goods/goods/edit.vue

+ 20 - 5
src/app/shop/admin/goods/goods/edit.vue

@@ -798,6 +798,12 @@ const dataConverter = {
         let attrValueObj = {};
         try {
           attrValueObj = JSON.parse(item.attrValue || '{}');
+          // 对所有的规格值进行trim处理,确保数据一致性
+          Object.keys(attrValueObj).forEach(key => {
+            if (typeof attrValueObj[key] === 'string') {
+              attrValueObj[key] = attrValueObj[key].trim();
+            }
+          });
         } catch (e) {
           console.warn('解析 attrValue 失败:', item.attrValue, e);
         }
@@ -810,11 +816,19 @@ const dataConverter = {
         skus.forEach((sku) => {
           const value = attrValueObj[sku.name];
           if (value) {
-            goods_sku_text.push(value);
-            // 找到对应的 temp_id
-            const child = sku.children.find((c) => c.name === value);
+            // 去除首尾空格,确保数据一致性
+            const trimmedValue = value.trim();
+            goods_sku_text.push(trimmedValue);
+            // 找到对应的 temp_id,优先匹配trim后的值,如果找不到则匹配原值
+            let child = sku.children.find((c) => c.name === trimmedValue);
+            if (!child) {
+              // 如果trim后找不到,尝试匹配原值
+              child = sku.children.find((c) => c.name.trim() === trimmedValue);
+            }
             if (child) {
               goods_sku_temp_ids.push(child.temp_id);
+            } else {
+              console.warn('找不到匹配的规格值:', trimmedValue, 'in', sku.children);
             }
           }
         });
@@ -1162,8 +1176,9 @@ const loadGoodsData = async (id) => {
       // 强制触发响应式更新
       await new Promise((resolve) => {
         setTimeout(() => {
-          // 强制重新构建SKU表格
-          buildSkuPriceTable();
+          // 注意:加载商品数据时不需要调用 buildSkuPriceTable
+          // 因为从后端转换的数据已经是完整的,不需要重新生成SKU组合
+          // buildSkuPriceTable(); // 移除这行,避免生成额外的SKU
 
           // 强制重新渲染组件
           forceUpdateKey.value++;