yyb
2026-05-09 2ac9cf7de8438aef5c6b6656df9adf7afd76e071
src/views/salesManagement/salesLedger/index.vue
@@ -306,7 +306,7 @@
            <el-table-column prop="status" label="审批状态" width="120" align="center" />
            <el-table-column prop="totalAmount" label="报价金额(元)" width="160" align="right">
               <template #default="scope">
                  {{ Number(scope.row.totalAmount ?? 0).toFixed(2) }}
                  {{ Number(scope.row.totalAmount ?? 0).toFixed(3) }}
               </template>
            </el-table-column>
            <el-table-column fixed="right" label="操作" width="120" align="center">
@@ -377,8 +377,8 @@
            <el-row :gutter="30">
               <el-col :span="12">
                  <el-form-item label="含税单价(元):" prop="taxInclusiveUnitPrice">
                     <el-input-number :step="0.01" :min="0" v-model="productForm.taxInclusiveUnitPrice" style="width: 100%"
                                              :precision="2"
                     <el-input-number :step="0.001" :min="0" v-model="productForm.taxInclusiveUnitPrice" style="width: 100%"
                                              :precision="3"
                                              placeholder="请输入" clearable @change="calculateFromUnitPrice" />
                  </el-form-item>
               </el-col>
@@ -923,7 +923,16 @@
   });
};
const formattedNumber = (row, column, cellValue) => {
   return parseFloat(cellValue).toFixed(2);
   return parseFloat(cellValue).toFixed(3);
};
/** 销售台账单价/总价统一保留 3 位小数(与全局 calculateTax* 的 2 位区分) */
const calculateSalesTaxIncludeTotalPrice = (taxInclusiveUnitPrice, quantity) => {
   return (Number(taxInclusiveUnitPrice) * Number(quantity)).toFixed(3);
};
const calculateSalesTaxExclusiveTotalPrice = (taxInclusiveTotalPrice, taxRate) => {
   const taxRateDecimal = Number(taxRate) / 100;
   const t = Number(taxInclusiveTotalPrice);
   return (t / (1 + taxRateDecimal)).toFixed(3);
};
// 获取tree子数据
const getModels = (value) => {
@@ -1158,8 +1167,8 @@
      const quantity = Number(p.quantity ?? 0) || 0;
      const unitPrice = Number(p.unitPrice ?? 0) || 0;
      const taxRate = "13"; // 默认 13%,便于直接提交(如需可在产品中自行修改)
      const taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
      const taxExclusiveTotalPrice = proxy.calculateTaxExclusiveTotalPrice(taxInclusiveTotalPrice, taxRate);
      const taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(3);
      const taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(taxInclusiveTotalPrice, taxRate);
      return {
         // 台账字段
         productCategory: p.product || p.productName || "",
@@ -1167,7 +1176,7 @@
         unit: p.unit || "",
         quantity: quantity,
         taxRate: taxRate,
         taxInclusiveUnitPrice: unitPrice.toFixed(2),
         taxInclusiveUnitPrice: unitPrice.toFixed(3),
         taxInclusiveTotalPrice: taxInclusiveTotalPrice,
         taxExclusiveTotalPrice: taxExclusiveTotalPrice,
         invoiceType: "增普票",
@@ -1815,7 +1824,7 @@
   const total = products.reduce((sum, product) => {
      return sum + (parseFloat(product.taxInclusiveTotalPrice) || 0);
   }, 0);
   return total.toFixed(2);
   return total.toFixed(3);
};
// 用于打印的计算函数
@@ -1832,7 +1841,7 @@
   const total = products.reduce((sum, product) => {
      return sum + (parseFloat(product.taxInclusiveTotalPrice) || 0);
   }, 0);
   return total.toFixed(2);
   return total.toFixed(3);
};
const mathNum = () => {
@@ -1844,18 +1853,16 @@
      return;
   }
   // 含税总价计算
   productForm.value.taxInclusiveTotalPrice =
      proxy.calculateTaxIncludeTotalPrice(
         productForm.value.taxInclusiveUnitPrice,
         productForm.value.quantity
      );
   productForm.value.taxInclusiveTotalPrice = calculateSalesTaxIncludeTotalPrice(
      productForm.value.taxInclusiveUnitPrice,
      productForm.value.quantity
   );
   if (productForm.value.taxRate) {
      // 不含税总价计算
      productForm.value.taxExclusiveTotalPrice =
         proxy.calculateTaxExclusiveTotalPrice(
            productForm.value.taxInclusiveTotalPrice,
            productForm.value.taxRate
         );
      productForm.value.taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(
         productForm.value.taxInclusiveTotalPrice,
         productForm.value.taxRate
      );
   }
};
@@ -1873,15 +1880,14 @@
   isCalculating.value = true;
   
   // 计算含税单价 = 含税总价 / 数量
   productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(2);
   productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(3);
   
   // 如果有税率,计算不含税总价
   if (productForm.value.taxRate) {
      productForm.value.taxExclusiveTotalPrice =
         proxy.calculateTaxExclusiveTotalPrice(
            totalPrice,
            productForm.value.taxRate
         );
      productForm.value.taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(
         totalPrice,
         productForm.value.taxRate
      );
   }
   
   isCalculating.value = false;
@@ -1908,10 +1914,10 @@
   // 先计算含税总价 = 不含税总价 / (1 - 税率/100)
   const taxRateDecimal = taxRate / 100;
   const inclusiveTotalPrice = exclusiveTotalPrice / (1 - taxRateDecimal);
   productForm.value.taxInclusiveTotalPrice = inclusiveTotalPrice.toFixed(2);
   productForm.value.taxInclusiveTotalPrice = inclusiveTotalPrice.toFixed(3);
   
   // 计算含税单价 = 含税总价 / 数量
   productForm.value.taxInclusiveUnitPrice = (inclusiveTotalPrice / quantity).toFixed(2);
   productForm.value.taxInclusiveUnitPrice = (inclusiveTotalPrice / quantity).toFixed(3);
   
   isCalculating.value = false;
};
@@ -1934,15 +1940,14 @@
   isCalculating.value = true;
   
   // 计算含税总价
   productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
   productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(3);
   
   // 如果有税率,计算不含税总价
   if (productForm.value.taxRate) {
      productForm.value.taxExclusiveTotalPrice =
         proxy.calculateTaxExclusiveTotalPrice(
            productForm.value.taxInclusiveTotalPrice,
            productForm.value.taxRate
         );
      productForm.value.taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(
         productForm.value.taxInclusiveTotalPrice,
         productForm.value.taxRate
      );
   }
   
   isCalculating.value = false;
@@ -1966,15 +1971,14 @@
   isCalculating.value = true;
   
   // 计算含税总价
   productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
   productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(3);
   
   // 如果有税率,计算不含税总价
   if (productForm.value.taxRate) {
      productForm.value.taxExclusiveTotalPrice =
         proxy.calculateTaxExclusiveTotalPrice(
            productForm.value.taxInclusiveTotalPrice,
            productForm.value.taxRate
         );
      productForm.value.taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(
         productForm.value.taxInclusiveTotalPrice,
         productForm.value.taxRate
      );
   }
   
   isCalculating.value = false;
@@ -1998,11 +2002,10 @@
   isCalculating.value = true;
   
   // 计算不含税总价
   productForm.value.taxExclusiveTotalPrice =
      proxy.calculateTaxExclusiveTotalPrice(
         inclusiveTotalPrice,
         taxRate
      );
   productForm.value.taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(
      inclusiveTotalPrice,
      taxRate
   );
   
   isCalculating.value = false;
};