Преглед изворни кода

feat(admin-order): 后台订单列表/详情显示用户优惠券抵扣后的最终支付额

- 列表「金额」列改用 realPay() 显示实付金额,有优惠时附「原价 ¥xxx」小字
- 详情弹窗新增「实付金额」行,使用优惠券时加「券」标签
- 新增 realPay() 计算函数:优先 moneyAmount(含运费、已扣优惠/积分),
  回退 totalAmount - discountAmount - pointsCost 兼容旧数据
Sisyphus пре 2 недеља
родитељ
комит
a85a3333b1
1 измењених фајлова са 14 додато и 1 уклоњено
  1. 14 1
      cfc-web/src/views/admin/OrderManage.vue

+ 14 - 1
cfc-web/src/views/admin/OrderManage.vue

@@ -49,7 +49,8 @@
       <el-table-column prop="quantity" label="数量" width="60" align="center" />
       <el-table-column prop="quantity" label="数量" width="60" align="center" />
       <el-table-column label="金额" width="100" align="right">
       <el-table-column label="金额" width="100" align="right">
         <template slot-scope="{ row }">
         <template slot-scope="{ row }">
-          <span class="adm-num">{{ formatPrice(row.totalAmount) }}</span>
+          <span class="adm-num">{{ formatPrice(realPay(row)) }}</span>
+          <div v-if="row.discountAmount" class="adm-muted" style="font-size:12px;color:#909399">原价 {{ formatPrice(row.totalAmount) }}</div>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
       <el-table-column label="状态" width="100">
       <el-table-column label="状态" width="100">
@@ -115,6 +116,10 @@
           <el-descriptions-item label="单价">{{ formatPrice(detail.unitPrice) }}</el-descriptions-item>
           <el-descriptions-item label="单价">{{ formatPrice(detail.unitPrice) }}</el-descriptions-item>
           <el-descriptions-item label="总金额">{{ formatPrice(detail.totalAmount) }}</el-descriptions-item>
           <el-descriptions-item label="总金额">{{ formatPrice(detail.totalAmount) }}</el-descriptions-item>
           <el-descriptions-item label="优惠金额">{{ detail.discountAmount ? formatPrice(detail.discountAmount) : '-' }}</el-descriptions-item>
           <el-descriptions-item label="优惠金额">{{ detail.discountAmount ? formatPrice(detail.discountAmount) : '-' }}</el-descriptions-item>
+          <el-descriptions-item label="实付金额">
+            <span style="color:#f56c6c;font-weight:600">{{ formatPrice(realPay(detail)) }}</span>
+            <el-tag size="mini" type="warning" v-if="detail.couponId">券</el-tag>
+          </el-descriptions-item>
           <el-descriptions-item label="订单状态">
           <el-descriptions-item label="订单状态">
             <StatusTag :type="statusType(detail.status)" :text="statusLabel(detail.status)" />
             <StatusTag :type="statusType(detail.status)" :text="statusLabel(detail.status)" />
           </el-descriptions-item>
           </el-descriptions-item>
@@ -392,6 +397,14 @@ export default {
       if (cents == null) return '-'
       if (cents == null) return '-'
       return '¥' + (cents / 100).toFixed(2)
       return '¥' + (cents / 100).toFixed(2)
     },
     },
+    // 实付金额:现金支付金额(含运费、已扣优惠/积分);回退 totalAmount - discount - pointsCost
+    realPay(row) {
+      if (row.moneyAmount != null && row.moneyAmount !== '') return row.moneyAmount;
+      const total = row.totalAmount || 0;
+      const disc = row.discountAmount || 0;
+      const pts = row.pointsCost || 0;
+      return total - disc - pts;
+    },
     deliveryMethodLabel(method) {
     deliveryMethodLabel(method) {
       var map = { 1: '快递配送', 2: '到店自提', 3: '快递/自提', 4: '线上服务', 5: '线上预约' }
       var map = { 1: '快递配送', 2: '到店自提', 3: '快递/自提', 4: '线上服务', 5: '线上预约' }
       return map[method] || '快递'
       return map[method] || '快递'