فهرست منبع

fix: 数组操作添加 ? 可选操作符,避免属性值为 null 时报错

puhui999 1 سال پیش
والد
کامیت
20f3f72670
2فایلهای تغییر یافته به همراه8 افزوده شده و 8 حذف شده
  1. 1 1
      src/views/mall/product/spu/addForm.vue
  2. 7 7
      src/views/mall/product/spu/components/BasicInfoForm.vue

+ 1 - 1
src/views/mall/product/spu/addForm.vue

@@ -104,7 +104,7 @@ const getDetail = async () => {
     formLoading.value = true
     try {
       const res = (await ProductSpuApi.getSpu(id)) as ProductSpuApi.Spu
-      res.skus!.forEach((item) => {
+      res.skus?.forEach((item) => {
         // 回显价格分转元
         item.price = formatToFraction(item.price)
         item.marketPrice = formatToFraction(item.marketPrice)

+ 7 - 7
src/views/mall/product/spu/components/BasicInfoForm.vue

@@ -256,7 +256,7 @@ watch(
       return
     }
     copyValueToTarget(formData, data)
-    formData.sliderPicUrls = data['sliderPicUrls'].map((item) => ({
+    formData.sliderPicUrls = data['sliderPicUrls']?.map((item) => ({
       url: item
     }))
     // 只有是多规格才处理
@@ -265,16 +265,16 @@ watch(
     }
     //  直接拿返回的 skus 属性逆向生成出 propertyList
     const properties = []
-    formData.skus.forEach((sku) => {
-      sku.properties.forEach(({ propertyId, propertyName, valueId, valueName }) => {
+    formData.skus?.forEach((sku) => {
+      sku.properties?.forEach(({ propertyId, propertyName, valueId, valueName }) => {
         // 添加属性
-        if (!properties.some((item) => item.id === propertyId)) {
+        if (!properties?.some((item) => item.id === propertyId)) {
           properties.push({ id: propertyId, name: propertyName, values: [] })
         }
         // 添加属性值
-        const index = properties.findIndex((item) => item.id === propertyId)
-        if (!properties[index].values.some((value) => value.id === valueId)) {
-          properties[index].values.push({ id: valueId, name: valueName })
+        const index = properties?.findIndex((item) => item.id === propertyId)
+        if (!properties[index].values?.some((value) => value.id === valueId)) {
+          properties[index].values?.push({ id: valueId, name: valueName })
         }
       })
     })