Ver Fonte

fix(web): SKU编辑器适配Map类型specs + enabled Boolean转1/0

parseSpecs: 处理DTO返回的Map对象而非字符串; showDialog: enabled从DTO Boolean转为表单Integer(1/0),修复添加完修改报400。

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Sisyphus há 2 meses atrás
pai
commit
69a0c3315d
1 ficheiros alterados com 10 adições e 2 exclusões
  1. 10 2
      cfc-web/src/views/admin/components/ProductSkuEditor.vue

+ 10 - 2
cfc-web/src/views/admin/components/ProductSkuEditor.vue

@@ -173,7 +173,7 @@ const baseURL = process.env.VUE_APP_BASE_API || ''
           originalPrice: sku.originalPrice ? parseFloat(sku.originalPrice) : 0,
           stock: sku.stock || 0,
           image: sku.image || '',
-          enabled: sku.enabled !== undefined ? sku.enabled : 1
+          enabled: sku.enabled !== undefined ? (sku.enabled ? 1 : 0) : 1
         }
       } else {
         this.editingId = null
@@ -210,8 +210,16 @@ const baseURL = process.env.VUE_APP_BASE_API || ''
     parseSpecs(specs) {
       if (!specs) return '-'
       try {
+        // Handle object (Map from DTO) directly
+        if (typeof specs === 'object') {
+          return Object.entries(specs).map(([k, v]) => k + ':' + v).join('; ')
+        }
+        // Handle string (JSON string)
         const obj = JSON.parse(specs)
-        return Object.entries(obj).map(([k, v]) => k + ':' + v).join('; ')
+        if (typeof obj === 'object' && obj !== null) {
+          return Object.entries(obj).map(([k, v]) => k + ':' + v).join('; ')
+        }
+        return specs
       } catch (e) {
         return specs
       }