gaoluyang
8 天以前 b285a5f5a84067121e8f17803021a3b67d2c9235
天津宝东
1.销售台账、销售报价添加每件数量字段
已修改2个文件
85 ■■■■■ 文件已修改
src/views/salesManagement/salesLedger/index.vue 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesQuotation/index.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue
@@ -158,6 +158,8 @@
              </el-table-column>
              <el-table-column label="数量"
                               prop="quantity" />
              <el-table-column label="每件数量"
                               prop="singleQuantity" />
              <el-table-column label="待发货数量"
                               prop="noQuantity" />
              <el-table-column label="税率(%)"
@@ -448,6 +450,8 @@
                           prop="unit" />
          <el-table-column label="数量"
                           prop="quantity" />
          <el-table-column label="每件数量"
                           prop="singleQuantity" />
          <el-table-column label="税率(%)"
                           prop="taxRate" />
          <el-table-column label="含税单价(元)"
@@ -678,6 +682,21 @@
                               clearable
                               :precision="2"
                               @change="calculateFromQuantity"
                               style="width: 100%" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="每件数量:"
                          prop="singleQuantity">
              <el-input-number :step="1"
                               :min="1"
                               v-model="productForm.singleQuantity"
                               placeholder="请输入"
                               clearable
                               :precision="0"
                               @change="calculateFromSingleQuantity"
                               style="width: 100%" />
            </el-form-item>
          </el-col>
@@ -1118,6 +1137,7 @@
      specificationModel: "",
      unit: "",
      quantity: "",
      singleQuantity: 1,
      taxInclusiveUnitPrice: "",
      taxRate: "",
      taxInclusiveTotalPrice: "",
@@ -2450,6 +2470,7 @@
    const totalPrice = parseFloat(productForm.value.taxInclusiveTotalPrice);
    const quantity = parseFloat(productForm.value.quantity);
    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
    if (!totalPrice || !quantity || quantity <= 0) {
      return;
@@ -2457,8 +2478,8 @@
    isCalculating.value = true;
    // 计算含税单价 = 含税总价 / 数量
    productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(2);
    // 计算含税单价 = 含税总价 / (数量 * 每件数量)
    productForm.value.taxInclusiveUnitPrice = (totalPrice / (quantity * singleQuantity)).toFixed(2);
    // 如果有税率,计算不含税总价
    if (productForm.value.taxRate) {
@@ -2485,6 +2506,7 @@
    );
    const quantity = parseFloat(productForm.value.quantity);
    const taxRate = parseFloat(productForm.value.taxRate);
    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
    if (!exclusiveTotalPrice || !quantity || quantity <= 0 || !taxRate) {
      return;
@@ -2497,9 +2519,9 @@
    const inclusiveTotalPrice = exclusiveTotalPrice / (1 - taxRateDecimal);
    productForm.value.taxInclusiveTotalPrice = inclusiveTotalPrice.toFixed(2);
    // 计算含税单价 = 含税总价 / 数量
    // 计算含税单价 = 含税总价 / (数量 * 每件数量)
    productForm.value.taxInclusiveUnitPrice = (
      inclusiveTotalPrice / quantity
      inclusiveTotalPrice / (quantity * singleQuantity)
    ).toFixed(2);
    isCalculating.value = false;
@@ -2515,6 +2537,7 @@
    const quantity = parseFloat(productForm.value.quantity);
    const unitPrice = parseFloat(productForm.value.taxInclusiveUnitPrice);
    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
    if (!quantity || quantity <= 0 || !unitPrice) {
      return;
@@ -2522,8 +2545,8 @@
    isCalculating.value = true;
    // 计算含税总价
    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
    // 计算含税总价 = 单价 * 数量 * 每件数量
    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity * singleQuantity).toFixed(2);
    // 如果有税率,计算不含税总价
    if (productForm.value.taxRate) {
@@ -2547,6 +2570,7 @@
    const quantity = parseFloat(productForm.value.quantity);
    const unitPrice = parseFloat(productForm.value.taxInclusiveUnitPrice);
    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
    if (!quantity || quantity <= 0 || !unitPrice) {
      return;
@@ -2554,8 +2578,41 @@
    isCalculating.value = true;
    // 计算含税总价
    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
    // 计算含税总价 = 单价 * 数量 * 每件数量
    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity * singleQuantity).toFixed(2);
    // 如果有税率,计算不含税总价
    if (productForm.value.taxRate) {
      productForm.value.taxExclusiveTotalPrice =
        proxy.calculateTaxExclusiveTotalPrice(
          productForm.value.taxInclusiveTotalPrice,
          productForm.value.taxRate
        );
    }
    isCalculating.value = false;
  };
  // 根据每件数量变化计算总价
  const calculateFromSingleQuantity = () => {
    if (!productForm.value.taxRate) {
      proxy.$modal.msgWarning("请先选择税率");
      return;
    }
    if (isCalculating.value) return;
    const quantity = parseFloat(productForm.value.quantity);
    const unitPrice = parseFloat(productForm.value.taxInclusiveUnitPrice);
    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
    if (!quantity || quantity <= 0 || !unitPrice) {
      return;
    }
    isCalculating.value = true;
    // 计算含税总价 = 单价 * 数量 * 每件数量
    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity * singleQuantity).toFixed(2);
    // 如果有税率,计算不含税总价
    if (productForm.value.taxRate) {
src/views/salesManagement/salesQuotation/index.vue
@@ -212,6 +212,13 @@
                </el-form-item>
              </template>
            </el-table-column>
            <el-table-column prop="singleQuantity" label="每件数量" width="120">
              <template #default="scope">
                <el-form-item :prop="`products.${scope.$index}.singleQuantity`" class="product-table-form-item">
                  <el-input-number v-model="scope.row.singleQuantity" :min="1" :precision="0" style="width: 100%" />
                </el-form-item>
              </template>
            </el-table-column>
            <el-table-column prop="unitPrice" label="单价">
              <template #default="scope">
                <el-form-item :prop="`products.${scope.$index}.unitPrice`" class="product-table-form-item">
@@ -277,6 +284,7 @@
          <el-table-column prop="product" label="产品名称" />
          <el-table-column prop="specification" label="规格型号" />
          <el-table-column prop="unit" label="单位" />
          <el-table-column prop="singleQuantity" label="每件数量" />
          <el-table-column prop="unitPrice" label="单价">
            <template #default="scope">
              ¥{{ scope.row.unitPrice.toFixed(2) }}
@@ -526,6 +534,7 @@
      productModelId: product.productModelId || '',
      specification: product.specification || '',
      quantity: product.quantity || 0,
      singleQuantity: product.singleQuantity || 1,
      unit: product.unit || '',
      unitPrice: product.unitPrice || 0,
      amount: product.amount || 0
@@ -588,6 +597,7 @@
      productModelId: resolvedProductModelId,
      specification: product.specification || '',
      quantity: product.quantity || 0,
      singleQuantity: product.singleQuantity || 1,
      unit: product.unit || '',
      unitPrice: product.unitPrice || 0,
      amount: product.amount || 0,
@@ -651,6 +661,7 @@
    productName: '',
    productModelId: '',
    quantity: 1,
    singleQuantity: 1,
    unit: '',
    unitPrice: 0,
    amount: 0,
@@ -757,6 +768,7 @@
          productModelId: product.productModelId || '',
          specification: product.specification || '',
          quantity: product.quantity || 0,
          singleQuantity: product.singleQuantity || 1,
          unit: product.unit || '',
          unitPrice: product.unitPrice || 0,
          amount: product.amount || 0