ZN
2026-04-01 533d1e4ae9ffeafdd9ff65ddcefd7bd005f7d78c
src/views/salesManagement/salesLedger/index.vue
@@ -61,7 +61,11 @@
                        </template>
                     </el-table-column>
              <el-table-column label="数量" prop ="quantity" />
               <el-table-column label="已发货数量" prop="partSendAmount" />
               <el-table-column label="已发货数量" prop="partSendAmount" >
                  <template #default="scope">
                              {{ scope.row.partSendAmount || 0 }}
                        </template>
                  </el-table-column>
              <el-table-column label="税率(%)" prop="taxRate" />
              <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
              <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
@@ -555,7 +559,7 @@
      >
         <el-form :model="deliveryForm" label-width="120px" label-position="top" :rules="deliveryRules" ref="deliveryFormRef">
            <el-row :gutter="30">
               <el-col :span="12">
               <!-- <el-col :span="12">
                  <el-form-item label="发货类型:" prop="type">
                     <el-select
                        v-model="deliveryForm.type"
@@ -566,9 +570,9 @@
                        <el-option label="快递" value="快递" />
                     </el-select>
                  </el-form-item>
               </el-col>
               </el-col> -->
      <el-col :span="12">
                  <el-form-item label="待发货数量:">
                  <el-form-item label="待发货数量:" prop="remainAmount">
                     <el-input v-model="deliveryForm.remainAmount" disabled placeholder="请输入待发货数量"></el-input>
                  </el-form-item>
               </el-col>
@@ -866,6 +870,18 @@
    type: [
      { required: true, message: "请选择发货类型", trigger: "change" }
    ],
    remainAmount: [
      {
        validator: (rule, value, callback) => {
          const remain = Number(value) || 0;
          if (remain <= 0) {
            return callback(new Error("待发货数量需要大于0"));
          }
          return callback();
        },
        trigger: "change",
      }
    ],
    deliveryMode: [
      { required: true, message: "请选择发货模式", trigger: "change" }
    ],
@@ -908,7 +924,7 @@
   if (!deliveryDetailSalesLedgerId.value) return;
   deliveryDetailLoading.value = true;
   return deliveryLedgerListPage({
      salesLedgerId: deliveryDetailSalesLedgerId.value,
      salesLedgerProductId: deliveryDetailSalesLedgerId.value,
      current: deliveryDetailPage.current,
      size: deliveryDetailPage.size,
   }).then((res) => {
@@ -926,7 +942,7 @@
};
const openDeliveryDetail = (row) => {
   deliveryDetailSalesLedgerId.value = row?.salesLedgerId ?? null;
   deliveryDetailSalesLedgerId.value = row?.id ?? null;
   deliveryDetailPage.current = 1;
   deliveryDetailVisible.value = true;
   getDeliveryDetailList();
@@ -2138,30 +2154,18 @@
 * @param row 行数据
 */
const getShippingStatusText = (row) => {
   // 如果已发货(有发货日期或车牌号),显示"已发货"
   if (row.shippingDate || row.shippingCarNumber) {
      return '已发货';
   }
   // 获取发货状态字段
   const status = row.shippingStatus;
   // 如果状态为空或未定义,默认为"待发货"
   if (status === null || status === undefined || status === '') {
   const total = Number(row?.quantity || 0);
   const shipped = Number(row?.partSendAmount || 0);
   if (shipped <= 0) {
      return '待发货';
   }
   // 状态是字符串
   const statusStr = String(status).trim();
   const statusTextMap = {
      '待发货': '待发货',
      '待审核': '待审核',
      '审核中': '审核中',
      '审核拒绝': '审核拒绝',
      '审核通过': '审核通过',
      '已发货': '已发货'
   };
   return statusTextMap[statusStr] || '待发货';
   if (shipped < total) {
      return '发货中';
   }
   if (shipped >= total && total > 0) {
      return '已发货';
   }
   return '待发货';
};
/**
@@ -2169,30 +2173,18 @@
 * @param row 行数据
 */
const getShippingStatusType = (row) => {
   // 如果已发货(有发货日期或车牌号),显示绿色
   if (row.shippingDate || row.shippingCarNumber) {
      return 'success';
   }
   // 获取发货状态字段
   const status = row.shippingStatus;
   // 如果状态为空或未定义,默认为灰色(待发货)
   if (status === null || status === undefined || status === '') {
   const total = Number(row?.quantity || 0);
   const shipped = Number(row?.partSendAmount || 0);
   if (shipped <= 0) {
      return 'info';
   }
   // 状态是字符串
   const statusStr = String(status).trim();
   const typeTextMap = {
      '待发货': 'info',
      '待审核': 'info',
      '审核中': 'warning',
      '审核拒绝': 'danger',
      '审核通过': 'success',
      '已发货': 'success'
   };
   return typeTextMap[statusStr] || 'info';
   if (shipped < total) {
      return 'warning';
   }
   if (shipped >= total && total > 0) {
      return 'success';
   }
   return 'info';
};
const getRemainAmount = (row) => {