浏览代码

feat(goodsDetail): 更新状态显示逻辑,区分已发货、已收货和驳回状态;修复浮点数精度问题

xieyong 4 天之前
父节点
当前提交
a27b69fefd
共有 2 个文件被更改,包括 14 次插入6 次删除
  1. 4 1
      src/views/entrust/components/addInvoice.vue
  2. 10 5
      src/views/entrust/components/goodsDetail.vue

+ 4 - 1
src/views/entrust/components/addInvoice.vue

@@ -201,7 +201,10 @@
           this.workinProgress = (res.data || []).map((item) => {
             const remainingDeliverableQuantity =
               (Number(item.totalQuantity) || 0) - (Number(item.quantity) || 0);
-              item.remainingDeliverableQuantity = remainingDeliverableQuantity < 0 ? 0 : remainingDeliverableQuantity;
+            // 精度处理:避免出现 6.9999999999 这类浮点尾数
+            item.remainingDeliverableQuantity = Number(
+              (remainingDeliverableQuantity < 0 ? 0 : remainingDeliverableQuantity).toFixed(2)
+            );
             return item;
           });
         });

+ 10 - 5
src/views/entrust/components/goodsDetail.vue

@@ -53,7 +53,7 @@
 
       <template v-slot:status="{ row }">
         <el-tag :type="Number(row.status) === 0 ? 'info' : 'success'">
-          {{ Number(row.status) === 0 ? '待发货' : '已发货' }}
+          {{ Number(row.status) === 0 ? '待发货' : row.status == 1 ? "已发货" : row.status == 2 ? "已收货" : "驳回" }}
         </el-tag>
       </template>
     </ele-pro-table>
@@ -306,10 +306,15 @@
 
       chooseData(dataList) {
         if (dataList.length === 0) return;
-        this.goodsList = dataList.map((item) => {
-          item.quantity = item.remainingDeliverableQuantity;
-          return this.deepCopy(item);
-        }).filter(item => item.quantity > 0);
+        this.goodsList = dataList
+          .map((item) => {
+            // 精度处理:后端 totalQuantity - quantity 会出现 6.9999999999 之类的浮点尾数
+            item.quantity = Number(
+              Number(item.remainingDeliverableQuantity || 0).toFixed(2)
+            );
+            return this.deepCopy(item);
+          })
+          .filter((item) => item.quantity > 0);
       },
 
       rejectReason() {},