yuan
4 天以前 2e8667e5e254ab96a1e7f28172d7ec2bbcd24cb7
src/views/procurementManagement/procurementLedger/index.vue
@@ -68,7 +68,7 @@
              <el-table-column label="可用数量" prop="availableQuality" />
              <el-table-column label="退货数量" prop="returnQuality" />
              <el-table-column label="税率(%)" prop="taxRate" />
              <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="unitPriceFormatter" />
              <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
              <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
              <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
            </el-table>
@@ -208,9 +208,9 @@
          <el-table-column label="规格型号" prop="specificationModel" />
          <el-table-column label="单位" prop="unit" width="70" />
          <el-table-column label="数量" prop="quantity" width="70" />
          <el-table-column label="库存预警数量" prop="warnNum" width="120" show-overflow-tooltip />
<!--          <el-table-column label="库存预警数量" prop="warnNum" width="120" show-overflow-tooltip />-->
          <el-table-column label="税率(%)" prop="taxRate" width="80" />
          <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="unitPriceFormatter" width="150" />
          <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" width="150" />
          <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" width="150" />
          <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" width="150" />
          <el-table-column label="是否质检" prop="isChecked" width="150">
@@ -310,7 +310,7 @@
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="含税单价(元):" prop="taxInclusiveUnitPrice">
              <el-input-number v-model="productForm.taxInclusiveUnitPrice" :precision="6" :step="0.1" :min="0" clearable
              <el-input-number v-model="productForm.taxInclusiveUnitPrice" :precision="6" :step="0.000001" :min="0" clearable
                style="width: 100%" @change="mathNum" />
            </el-form-item>
          </el-col>
@@ -324,13 +324,13 @@
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="含税总价(元):" prop="taxInclusiveTotalPrice">
              <el-input-number v-model="productForm.taxInclusiveTotalPrice" :precision="2" :step="0.1" :min="0"
              <el-input-number v-model="productForm.taxInclusiveTotalPrice" :precision="6" :step="0.000001" :min="0"
                clearable style="width: 100%" @change="reverseMathNum('taxInclusiveTotalPrice')" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="不含税总价(元):" prop="taxExclusiveTotalPrice">
              <el-input-number v-model="productForm.taxExclusiveTotalPrice" :precision="2" :step="0.1" :min="0"
              <el-input-number v-model="productForm.taxExclusiveTotalPrice" :precision="6" :step="0.000001" :min="0"
                clearable style="width: 100%" @change="reverseMathNum('taxExclusiveTotalPrice')" />
            </el-form-item>
          </el-col>
@@ -344,14 +344,12 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="库存预警数量:" prop="warnNum">
              <el-input-number v-model="productForm.warnNum" :precision="2" :step="0.1" :min="0" clearable
                style="width: 100%" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
<!--          <el-col :span="12">-->
<!--            <el-form-item label="库存预警数量:" prop="warnNum">-->
<!--              <el-input-number v-model="productForm.warnNum" :precision="2" :step="0.1" :min="0" clearable-->
<!--                style="width: 100%" />-->
<!--            </el-form-item>-->
<!--          </el-col>-->
          <el-col :span="12">
            <el-form-item label="是否质检:" prop="isChecked">
              <el-radio-group v-model="productForm.isChecked">
@@ -361,6 +359,16 @@
            </el-form-item>
          </el-col>
        </el-row>
<!--        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="是否质检:" prop="isChecked">
              <el-radio-group v-model="productForm.isChecked">
                <el-radio label="是" :value="true" />
                <el-radio label="否" :value="false" />
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>-->
      </el-form>
    </FormDialog>
    <FileList v-if="fileListDialogVisible" v-model:visible="fileListDialogVisible" record-type="purchase_ledger"
@@ -437,6 +445,7 @@
import { modelList, productTreeList } from "@/api/basicData/product.js";
import dayjs from "dayjs";
import FileUpload from "@/components/AttachmentUpload/file/index.vue";
import { tableAmountFormatter, formatDecimal, buildAmountSummaryFormat } from '@/utils/numberFormat';
const userStore = useUserStore();
@@ -632,13 +641,6 @@
const { form, rules } = toRefs(data);
const { form: searchForm } = useFormData({
  ...data.searchForm,
  // 设置录入日期范围为当天
  entryDate: [
    dayjs().startOf("day").format("YYYY-MM-DD"),
    dayjs().endOf("day").format("YYYY-MM-DD"),
  ],
  entryDateStart: dayjs().startOf("day").format("YYYY-MM-DD"),
  entryDateEnd: dayjs().endOf("day").format("YYYY-MM-DD"),
});
// 产品表单弹框数据
@@ -671,7 +673,7 @@
      { required: true, message: "请输入", trigger: "blur" },
    ],
    taxRate: [{ required: true, message: "请选择", trigger: "change" }],
    warnNum: [{ required: true, message: "请选择", trigger: "change" }],
    // warnNum: [{ required: true, message: "请选择", trigger: "change" }],
    taxInclusiveTotalPrice: [
      { required: true, message: "请输入", trigger: "blur" },
    ],
@@ -770,12 +772,7 @@
  handleQuery();
};
const formattedNumber = (row, column, cellValue) => {
  return parseFloat(cellValue).toFixed(2);
};
const unitPriceFormatter = (row, column, cellValue) => {
  return parseFloat(cellValue).toFixed(6);
};
const formattedNumber = tableAmountFormatter;
// 查询列表
/** 搜索按钮操作 */
const handleQuery = () => {
@@ -893,10 +890,19 @@
      "futureTickets",
      "futureTicketsAmount",
    ],
    {
      ticketsNum: { noDecimal: true }, // 不保留小数
      futureTickets: { noDecimal: true }, // 不保留小数
    }
    buildAmountSummaryFormat(
      [
        "taxInclusiveUnitPrice",
        "taxInclusiveTotalPrice",
        "taxExclusiveTotalPrice",
        "ticketsAmount",
        "futureTicketsAmount",
      ],
      {
        ticketsNum: { noDecimal: true },
        futureTickets: { noDecimal: true },
      }
    )
  );
};
const paginationChange = obj => {
@@ -959,15 +965,27 @@
};
// 主表合计方法
const summarizeMainTable = param => {
  return proxy.summarizeTable(param, ["contractAmount"]);
  return proxy.summarizeTable(
    param,
    ["contractAmount"],
    buildAmountSummaryFormat(["contractAmount"])
  );
};
// 子表合计方法
const summarizeProTable = param => {
  return proxy.summarizeTable(param, [
    "taxInclusiveUnitPrice",
    "taxInclusiveTotalPrice",
    "taxExclusiveTotalPrice",
  ]);
  return proxy.summarizeTable(
    param,
    [
      "taxInclusiveUnitPrice",
      "taxInclusiveTotalPrice",
      "taxExclusiveTotalPrice",
    ],
    buildAmountSummaryFormat([
      "taxInclusiveUnitPrice",
      "taxInclusiveTotalPrice",
      "taxExclusiveTotalPrice",
    ])
  );
};
// 打开弹框
const openForm = async (type, row) => {
@@ -1476,10 +1494,10 @@
  if (field === "taxInclusiveTotalPrice") {
    // 已知含税总价和数量,反算含税单价
    if (productForm.value.quantity) {
      productForm.value.taxInclusiveUnitPrice = (
      productForm.value.taxInclusiveUnitPrice = formatDecimal(
        Number(productForm.value.taxInclusiveTotalPrice) /
        Number(productForm.value.quantity)
      ).toFixed(6);
      );
      // 确保结果不为负数
      if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
        productForm.value.taxInclusiveUnitPrice = "0";
@@ -1497,30 +1515,30 @@
      }
    }
    // 反算不含税总价
    productForm.value.taxExclusiveTotalPrice = (
    productForm.value.taxExclusiveTotalPrice = formatDecimal(
      Number(productForm.value.taxInclusiveTotalPrice) /
      (1 + taxRate / 100)
    ).toFixed(2);
    );
    // 确保结果不为负数
    if (Number(productForm.value.taxExclusiveTotalPrice) < 0) {
      productForm.value.taxExclusiveTotalPrice = "0";
    }
  } else if (field === "taxExclusiveTotalPrice") {
    // 反算含税总价
    productForm.value.taxInclusiveTotalPrice = (
    productForm.value.taxInclusiveTotalPrice = formatDecimal(
      Number(productForm.value.taxExclusiveTotalPrice) *
      (1 + taxRate / 100)
    ).toFixed(2);
    );
    // 确保结果不为负数
    if (Number(productForm.value.taxInclusiveTotalPrice) < 0) {
      productForm.value.taxInclusiveTotalPrice = "0";
    }
    // 已知数量,反算含税单价
    if (productForm.value.quantity) {
      productForm.value.taxInclusiveUnitPrice = (
      productForm.value.taxInclusiveUnitPrice = formatDecimal(
        Number(productForm.value.taxInclusiveTotalPrice) /
        Number(productForm.value.quantity)
      ).toFixed(6);
      );
      // 确保结果不为负数
      if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
        productForm.value.taxInclusiveUnitPrice = "0";