yyb
2026-05-09 2ac9cf7de8438aef5c6b6656df9adf7afd76e071
销售台账单价和总价保留3位小数
已修改1个文件
91 ■■■■ 文件已修改
src/views/salesManagement/salesLedger/index.vue 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
};