gaoluyang
11 小时以前 3ab45f295fb26c7794b4829976f3fb20c68a012e
src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
@@ -28,12 +28,12 @@
      </el-col>
      <el-col :span="12">
        <el-form-item label="来票数:">
          <el-input-number :step="0.1" :min="0" style="width: 100%" v-model="form.ticketsNum" @change="inputTicketsNum" />
          <el-input-number :step="0.1" :min="0" style="width: 100%" v-model="form.ticketsNum" @change="inputTicketsNum" :precision="2"/>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="本次来票金额(元):">
               <el-input-number :step="0.1" :min="0" style="width: 100%" v-model="form.ticketsAmount" @change="inputTicketsAmount" />
               <el-input-number :step="0.1" :min="0" style="width: 100%" v-model="form.ticketsAmount" @change="inputTicketsAmount" :precision="2"/>
        </el-form-item>
      </el-col>
      <el-col :span="12">
@@ -46,14 +46,16 @@
</template>
<script setup>
import { getCurrentInstance, ref } from "vue";
import useFormData from "@/hooks/useFormData";
import { getProductRecordById } from "@/api/procurementManagement/procurementInvoiceLedger";
import { truncate } from "@/utils/index.js";
const { proxy } = getCurrentInstance()
defineOptions({
  name: "来票台账表单",
});
const temFutureTickets = ref(0)
const { form, resetForm } = useFormData({
  id: undefined,
  purchaseContractNumber: undefined, // 采购合同号
@@ -63,6 +65,7 @@
  ticketsNum: undefined, // 来票数
  ticketsAmount: undefined, // 来票金额
   taxInclusiveUnitPrice: undefined, // 含税单价
   ticketRegistrationId: undefined, // 含税单价
});
const load = async (id) => {
@@ -74,9 +77,11 @@
    form.createdAt = data.createdAt;
    form.invoiceNumber = data.invoiceNumber;
    form.ticketsNum = data.ticketsNum;
    form.ticketsAmount = data.ticketsAmount.toFixed(2);
    form.ticketsAmount = truncate(data.ticketsAmount, 3);
    form.taxInclusiveUnitPrice = data.taxInclusiveUnitPrice;
    form.futureTickets = data.futureTickets;
    temFutureTickets.value = data.futureTickets;
      form.ticketRegistrationId = data.ticketRegistrationId;
  }
};
@@ -86,16 +91,16 @@
      proxy.$modal.msgWarning("含税单价不能为零或未定义");
      return;
   }
   if (Number(form.ticketsNum) > Number(form.futureTickets)) {
   if (Number(form.ticketsNum) > Number(temFutureTickets.value)) {
      proxy.$modal.msgWarning("开票数不得大于未开票数");
      form.ticketsNum = form.futureTickets
      return;
      form.ticketsNum = temFutureTickets.value
   }
   
   // 确保所有数值都转换为数字类型进行计算
   const ticketsAmount = Number(val) * Number(form.taxInclusiveUnitPrice);
   form.ticketsAmount = Number(ticketsAmount.toFixed(2));
   const ticketsAmount = Number(form.ticketsNum) * Number(form.taxInclusiveUnitPrice);
   const futureTickets = Number(temFutureTickets.value) - Number(form.ticketsNum);
   form.futureTickets = Number(truncate(futureTickets, 3));
   form.ticketsAmount = Number(truncate(ticketsAmount, 3));
};
const inputTicketsAmount = (val) => {
   // 确保含税单价存在且不为零
@@ -106,15 +111,15 @@
   
   if (Number(val) > Number(form.futureTickets*form.taxInclusiveUnitPrice)) {
      proxy.$modal.msgWarning("本次来票金额不得大于总金额");
      form.ticketsAmount = (form.futureTickets*form.taxInclusiveUnitPrice).toFixed(2)
      form.ticketsAmount = truncate(form.futureTickets*form.taxInclusiveUnitPrice, 3)
      const ticketsNum = Number(form.ticketsAmount) / Number(form.taxInclusiveUnitPrice);
      form.ticketsNum = Number(ticketsNum.toFixed(2))
      form.ticketsNum = Number(truncate(ticketsNum, 3))
      return;
   }
   
   // 确保所有数值都转换为数字类型进行计算
   const ticketsNum = Number(val) / Number(form.taxInclusiveUnitPrice);
   form.ticketsNum = Number(ticketsNum.toFixed(2));
   form.ticketsNum = Number(truncate(ticketsNum, 3));
};
defineExpose({