zhangwencui
14 小时以前 a4203d1c0e24a69b3de3a4cf9f3cb1d727602224
src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
@@ -12,8 +12,8 @@
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="含税总价(元):">
          <el-text type="primary">{{ form.taxInclusiveTotalPrice }}</el-text>
        <el-form-item label="含税单价(元):">
          <el-text type="primary">{{ form.taxInclusiveUnitPrice }}</el-text>
        </el-form-item>
      </el-col>
      <el-col :span="12">
@@ -28,12 +28,27 @@
      </el-col>
      <el-col :span="12">
        <el-form-item label="来票数:">
          <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.ticketsNum" @input="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-text type="success">{{ form.ticketsAmount }}</el-text>
          <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">
        <el-form-item label="未来票数:">
          <el-text type="success">{{ form.futureTickets }}</el-text>
        </el-form-item>
      </el-col>
    </el-row>
@@ -41,47 +56,104 @@
</template>
<script setup>
import useFormData from "@/hooks/useFormData";
import { getProductRecordById } from "@/api/procurementManagement/procurementInvoiceLedger";
  import useFormData from "@/hooks/useFormData";
  import { getProductRecordById } from "@/api/procurementManagement/procurementInvoiceLedger";
  const { proxy } = getCurrentInstance();
defineOptions({
  name: "来票台账表单",
});
  defineOptions({
    name: "来票台账表单",
  });
  const temFutureTickets = ref(0);
  const { form, resetForm } = useFormData({
    id: undefined,
    purchaseContractNumber: undefined, // 采购合同号
    salesContractNo: undefined, // 销售合同号
    createdAt: undefined, // 创建时间
    invoiceNumber: undefined, // 发票号
    ticketsNum: undefined, // 来票数
    ticketsAmount: undefined, // 来票金额
    taxInclusiveUnitPrice: undefined, // 含税单价
    ticketRegistrationId: undefined, // 含税单价
  });
  const cuticketsAmount = ref(0);
  const cufutureTickets = ref(0);
  const load = async (id, purchaseLedgerId, productModelId) => {
    const { code, data } = await getProductRecordById({
      id: id,
      purchaseLedgerId: purchaseLedgerId,
      productModelId: productModelId,
    });
    if (code === 200) {
      console.log(data, "来票台账详情");
      form.id = data.id;
      form.purchaseContractNumber = data.purchaseContractNumber;
      form.salesContractNo = data.salesContractNo;
      form.createdAt = data.createdAt;
      form.invoiceNumber = data.invoiceNumber;
      form.ticketsNum = data.ticketsNum;
      form.ticketsAmount = data.ticketsAmount.toFixed(2);
      form.taxInclusiveUnitPrice = data.taxInclusiveUnitPrice;
      form.futureTickets = data.futureTickets;
      form.futureTicketsAmount = data.futureTicketsAmount.toFixed(2);
      // temFutureTickets.value = data.futureTickets;
      temFutureTickets.value = data.quantity;
      cuticketsAmount.value = data.futureTicketsAmount + data.ticketsAmount;
      cufutureTickets.value = data.futureTickets + data.ticketsNum;
const { form, resetForm } = useFormData({
  id: undefined,
  purchaseContractNumber: undefined, // 采购合同号
  salesContractNo: undefined, // 销售合同号
  createdAt: undefined, // 创建时间
  invoiceNumber: undefined, // 发票号
  ticketsNum: undefined, // 来票数
  ticketsAmount: undefined, // 来票金额
  taxInclusiveTotalPrice: undefined, // 含税总价
});
      form.ticketRegistrationId = data.ticketRegistrationId;
    }
  };
const load = async (id) => {
  const { code, data } = await getProductRecordById({ id });
  if (code === 200) {
    form.id = data.id;
    form.purchaseContractNumber = data.purchaseContractNumber;
    form.salesContractNo = data.salesContractNo;
    form.createdAt = data.createdAt;
    form.invoiceNumber = data.invoiceNumber;
    form.ticketsNum = data.ticketsNum;
    form.ticketsAmount = data.ticketsAmount.toFixed(2);
    form.taxInclusiveTotalPrice = data.taxInclusiveTotalPrice;
  }
};
  const inputTicketsNum = val => {
    // 确保含税单价存在且不为零
    if (!form.taxInclusiveUnitPrice || Number(form.taxInclusiveUnitPrice) === 0) {
      proxy.$modal.msgWarning("含税单价不能为零或未定义");
      return;
    }
    if (Number(form.ticketsNum) > Number(cufutureTickets.value)) {
      proxy.$modal.msgWarning("开票数不得大于未开票数");
      form.ticketsNum = cufutureTickets.value;
    }
const inputTicketsNum = (val) => {
  form.ticketsAmount = (val * form.taxInclusiveTotalPrice).toFixed(2);
};
    // 确保所有数值都转换为数字类型进行计算
    const ticketsAmount =
      Number(form.ticketsNum) * Number(form.taxInclusiveUnitPrice);
    const futureTickets = Number(cufutureTickets.value) - Number(form.ticketsNum);
    form.futureTickets = Number(futureTickets.toFixed(2));
    form.ticketsAmount = Number(ticketsAmount.toFixed(2));
  };
  const inputTicketsAmount = val => {
    // 确保含税单价存在且不为零
    if (!form.taxInclusiveUnitPrice || Number(form.taxInclusiveUnitPrice) === 0) {
      proxy.$modal.msgWarning("含税单价不能为零或未定义");
      return;
    }
defineExpose({
  load,
  form,
  resetForm,
});
    if (
      Number(val) >
      Number((form.futureTickets + form.ticketsNum) * form.taxInclusiveUnitPrice)
    ) {
      proxy.$modal.msgWarning("本次来票金额不得大于总金额");
      form.ticketsAmount = cuticketsAmount.value.toFixed(2);
      const ticketsNum =
        Number(form.ticketsAmount) / Number(form.taxInclusiveUnitPrice);
      form.ticketsNum = Number(ticketsNum.toFixed(2));
      form.futureTickets = Number(
        (cufutureTickets.value - form.ticketsNum).toFixed(2)
      );
      return;
    }
    // 确保所有数值都转换为数字类型进行计算
    const ticketsNum = Number(val) / Number(form.taxInclusiveUnitPrice);
    form.ticketsNum = Number(ticketsNum.toFixed(2));
  };
  defineExpose({
    load,
    form,
    resetForm,
  });
</script>
<style lang="scss" scoped></style>