Jelajahi Sumber

refactor(mallOrder/complaint): 统一商品列表数据字段并显示品相信息

重构投诉详情页的商品列表展示,使用后端返回的 `bookDetailList` 统一字段名,移除对 `goodsList` 的兼容处理。新增显示书籍品相信息,并调整图片高度以适配书籍封面比例。
ylong 6 hari lalu
induk
melakukan
3c6e2f9e6c
1 mengubah file dengan 19 tambahan dan 9 penghapusan
  1. 19 9
      src/views/mallOrder/complaint/components/page-edit.vue

+ 19 - 9
src/views/mallOrder/complaint/components/page-edit.vue

@@ -50,15 +50,15 @@
 
                 <!-- 商品列表 -->
                 <div class="product-list">
-                    <div v-for="(item, index) in goodsList" :key="index" class="product-item">
-                        <el-image :src="item.image || item.cover" class="product-img" fit="cover" />
+                    <div v-for="(item, index) in bookDetailList" :key="index" class="product-item">
+                        <el-image :src="item.cover" class="product-img" fit="cover" />
                         <div class="product-info">
-                            <div class="product-title">{{ item.title || item.bookName }}</div>
+                            <div class="product-title">{{ item.bookName }}</div>
+                            <div class="product-text">品相:{{ getConditionText(item.conditionType) }}</div>
                             <div class="product-meta">
-                                <span class="product-spec">{{ item.spec || '' }}</span>
+                                <span class="product-spec">{{ item.isbn }}</span>
                                 <span class="product-qty"
-                                    :class="{ 'text-red': (item.quantity || item.num || 1) > 1 }">X{{ item.quantity ||
-                                    item.num || 1 }}</span>
+                                    :class="{ 'text-red': item.num > 1 }">X{{ item.num }}</span>
                             </div>
                         </div>
                     </div>
@@ -96,6 +96,16 @@
         return map[status] || '协商中';
     };
 
+    const getConditionText = (type) => {
+        const map = {
+            '1': '良好',
+            '2': '中等',
+            '3': '次品',
+            '4': '全新'
+        };
+        return map[type] || '-';
+    };
+
     /** 弹窗是否打开 */
     const visible = defineModel({ type: Boolean });
 
@@ -109,7 +119,7 @@
     // 处理记录列表
     const disposeLogList = ref([]);
     // 商品列表
-    const goodsList = ref([]);
+    const bookDetailList = ref([]);
 
     /** 弹窗打开事件 */
     const handleOpen = (row) => {
@@ -143,7 +153,7 @@
                     disposeLogList.value = data.disposeLogList || [];
 
                     // 商品列表
-                    goodsList.value = data.goodsList || [];
+                    bookDetailList.value = data.bookDetailList || [];
                 } else {
                     EleMessage.error(res.data.msg || '获取投诉详情失败');
                 }
@@ -292,7 +302,7 @@
 
                 .product-img {
                     width: 80px;
-                    height: 80px;
+                    height: 90px;
                     border-radius: 4px;
                     margin-right: 10px;
                     flex-shrink: 0;