gaoluyang
2025-12-09 539231de1e68f45a6f11bc88df665cc1f161941f
src/views/salesManagement/invoiceRegistration/index.vue
@@ -2,7 +2,7 @@
  <div class="app-container">
    <div class="search_form">
      <el-form :inline="true" :model="searchForm">
        <el-form-item label="开票登记">
        <el-form-item label="客户名称">
          <el-input
            v-model="searchForm.customerName"
            style="width: 240px"
@@ -36,15 +36,18 @@
        <el-form-item>
          <el-button type="primary" @click="handleQuery"> 搜索 </el-button>
          <el-button @click="resetForm"> 重置 </el-button>
          <el-button @click="handleExport" style="margin-right: 10px">导出</el-button>
        </el-form-item>
      </el-form>
    </div>
    <div class="table_list">
      <div class="flex justify-between">
        <div></div>
        <div>
        <el-button type="primary" @click="openForm" style="margin-bottom: 8px">
          新增登记
        </el-button>
        </div>
      </div>
      <el-table
        :data="tableData"
@@ -81,7 +84,7 @@
              />
              <el-table-column label="单位" prop="unit" width="70" />
              <el-table-column label="数量" prop="quantity" width="70" />
              <el-table-column label="税率(%)" prop="taxRate" width="70" />
              <el-table-column label="税率(%)" prop="taxRate" width="80" />
              <el-table-column
                label="含税单价(元)"
                prop="taxInclusiveUnitPrice"
@@ -139,7 +142,7 @@
          show-overflow-tooltip
          width="240"
        />
        <el-table-column label="业务员" prop="salesman" show-overflow-tooltip />
        <el-table-column label="业务员" prop="salesman" show-overflow-tooltip width="90"/>
        <el-table-column
          label="项目名称"
          prop="projectName"
@@ -358,7 +361,6 @@
                disabled
                v-model="scope.row.noInvoiceAmount"
                :formatter="formattedInputNumber"
                :precision="2"
                :step="0.01"
              ></el-input>
            </template>
@@ -452,6 +454,7 @@
    salesLedgerId: [{ required: true, message: "请选择", trigger: "change" }],
    createUer: [{ required: true, message: "请选择", trigger: "blur" }],
    issueDate: [{ required: true, message: "请选择", trigger: "change" }],
    invoiceNo: [{ required: true, message: "请输入", trigger: "change" }],
    createTime: [{ required: true, message: "请选择", trigger: "change" }],
  },
});
@@ -554,6 +557,7 @@
  getSalesLedgerWithProducts({ id: selectedRows.value[0].id }).then((res) => {
    form.value = { ...res };
    form.value.createTime = dayjs().format("YYYY-MM-DD");
    form.value.issueDate = dayjs().format("YYYY-MM-DD");
    form.value.createUer = userStore.nickName;
    productData.value = form.value.productData.map((item) => {
      return item;
@@ -595,11 +599,27 @@
    });
};
// 导出销售台账
const handleExport = () => {
  ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", {
    confirmButtonText: "确认",
    cancelButtonText: "取消",
    type: "warning",
  })
    .then(() => {
      proxy.download("/sales/ledger/exportOne", { ...searchForm, ...page }, "开票登记.xlsx");
    })
    .catch(() => {
      proxy.$modal.msg("已取消");
    });
};
//本次开票失焦操作
const invoiceNumBlur = (row) => {
  if (!row.currentInvoiceNum) {
    row.currentInvoiceNum = 0;
  }
   row.currentInvoiceNum =  row.currentInvoiceNum.toFixed(5);
  if (row.currentInvoiceNum > row.tempNoInvoiceNum) {
    proxy.$modal.msgWarning("本次开票数不得大于未开票数");
    row.currentInvoiceNum = 0;
@@ -607,21 +627,22 @@
  // 计算本次开票金额
  row.currentInvoiceAmount = (
    row.currentInvoiceNum * row.taxInclusiveUnitPrice
  ).toFixed(2);
  ).toFixed(5);
  // 计算未开票数
  row.noInvoiceNum = (row.originalNoInvoiceNum - row.currentInvoiceNum).toFixed(
    2
    5
  );
  // 计算未开票金额
  row.noInvoiceAmount = (
    row.tempnoInvoiceAmount - row.currentInvoiceAmount
  ).toFixed(2);
  ).toFixed(5);
};
// 本次开票金额失焦操作
const invoiceAmountBlur = (row) => {
  if (!row.currentInvoiceAmount) {
    row.currentInvoiceAmount = 0;
  }
   row.currentInvoiceAmount =  row.currentInvoiceAmount.toFixed(5);
  // 计算是否超过开票总金额
  if (row.currentInvoiceAmount > row.tempnoInvoiceAmount) {
    proxy.$modal.msgWarning("本次开票金额不得大于未开票金额");
@@ -630,17 +651,17 @@
  // 计算本次开票数
  row.currentInvoiceNum = (
    row.currentInvoiceAmount / row.taxInclusiveUnitPrice
  ).toFixed(2);
  ).toFixed(5);
  console.log("row.currentInvoiceNum ", row.currentInvoiceNum);
  console.log(" row.originalNoInvoiceNum  ", row.originalNoInvoiceNum);
  // 计算未开票数
  row.noInvoiceNum = (row.originalNoInvoiceNum - row.currentInvoiceNum).toFixed(
    2
    5
  );
  // 计算未开票金额
  row.noInvoiceAmount = (
    row.tempnoInvoiceAmount - row.currentInvoiceAmount
  ).toFixed(2);
  ).toFixed(5);
};
onMounted(() => {