zhangwencui
20 小时以前 06218ac82891facefc6f36e57a1dfc6b3998540d
Merge branch 'dev_New' of http://114.132.189.42:9002/r/product-inventory-management into dev_New
已修改4个文件
54 ■■■■■ 文件已修改
src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/invoiceEntry/components/Modal.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionDispatching/components/formDia.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/receiptPayment/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
@@ -179,7 +179,6 @@
    contractTerm: 0,
    contractStartTime: "",
    contractEndTime: "",
    staffState: "",
    sysPostId: undefined,
    sysDeptId: undefined,
  },
@@ -268,7 +267,6 @@
  }
  proxy.$refs.formRef.validate(valid => {
    if (valid) {
      form.value.staffState = 1
      if (operationType.value === "add") {
        createStaffOnJob(form.value).then(res => {
          proxy.$modal.msgSuccess("提交成功");
src/views/procurementManagement/invoiceEntry/components/Modal.vue
@@ -411,13 +411,15 @@
                    item.futureTicketsAmount !== undefined ? item.futureTicketsAmount : (item.taxInclusiveTotalPrice || 0)
                );
                // 新增时:本次开票默认不填(0),避免一打开就把“未来票数”扣成 0
                item.ticketsNum = 0;
                item.ticketsAmount = 0;
                // 页面展示的“未来票数/未来票金额”默认展示原始未来值
                item.futureTickets = item.tempFutureTickets;
                item.futureTicketsAmount = item.tempFutureTicketsAmount;
                // 新增时:本次开票数默认 = 未来票数(且不能大于未来票数)
                item.ticketsNum = Number(item.tempFutureTickets || 0);
                // 联动计算本次开票金额、未来票数、未来票金额
                const unitPrice = Number(item.taxInclusiveUnitPrice || 0);
                item.ticketsAmount = Number((item.ticketsNum * unitPrice).toFixed(2));
                item.futureTickets = Number((item.tempFutureTickets - item.ticketsNum).toFixed(2));
                item.futureTicketsAmount = Number(
                    (item.tempFutureTicketsAmount - item.ticketsAmount).toFixed(2)
                );
            });
            
            form.productData = allProductData;
@@ -426,7 +428,7 @@
            const totalAmount = allProductData.reduce((sum, item) => {
                return sum + (Number(item.ticketsAmount) || 0);
            }, 0);
            form.invoiceAmount = totalAmount.toFixed(2);
            form.invoiceAmount = Number(totalAmount.toFixed(2));
            
            // 存储选中的合同数据
            selectedContracts.value = selectedRows;
@@ -467,11 +469,11 @@
        row.ticketsNum = Number(row.tempFutureTickets || 0);
    }
    // 计算本次来票金额
    row.ticketsAmount = (row.ticketsNum * row.taxInclusiveUnitPrice).toFixed(2)
    row.ticketsAmount = Number((Number(row.ticketsNum) * Number(row.taxInclusiveUnitPrice || 0)).toFixed(2));
    // 计算未来票数
    row.futureTickets = (row.tempFutureTickets - row.ticketsNum).toFixed(2)
    row.futureTickets = Number((Number(row.tempFutureTickets || 0) - Number(row.ticketsNum || 0)).toFixed(2));
    // 计算未来票金额
    row.futureTicketsAmount = (row.tempFutureTicketsAmount - row.ticketsAmount).toFixed(2)
    row.futureTicketsAmount = Number((Number(row.tempFutureTicketsAmount || 0) - Number(row.ticketsAmount || 0)).toFixed(2));
    calculateinvoiceAmount();
};
@@ -494,12 +496,12 @@
        proxy.$modal.msgWarning("本次开票数不能大于未来票数");
        row.ticketsNum = Number(row.tempFutureTickets || 0);
        // 重新计算本次来票金额
        row.ticketsAmount = (row.ticketsNum * row.taxInclusiveUnitPrice).toFixed(2);
        row.ticketsAmount = Number((Number(row.ticketsNum) * Number(row.taxInclusiveUnitPrice || 0)).toFixed(2));
    }
    // 计算未来票数
    row.futureTickets = (row.tempFutureTickets - row.ticketsNum).toFixed(2)
    row.futureTickets = Number((Number(row.tempFutureTickets || 0) - Number(row.ticketsNum || 0)).toFixed(2));
    // 计算未来票金额
    row.futureTicketsAmount = (row.tempFutureTicketsAmount - row.ticketsAmount).toFixed(2)
    row.futureTicketsAmount = Number((Number(row.tempFutureTicketsAmount || 0) - Number(row.ticketsAmount || 0)).toFixed(2));
    calculateinvoiceAmount();
};
@@ -510,7 +512,7 @@
            invoiceAmountTotal += Number(item.ticketsAmount);
        }
    });
    form.invoiceAmount = invoiceAmountTotal.toFixed(2);
    form.invoiceAmount = Number(invoiceAmountTotal.toFixed(2));
};
const open = async (type, selectedRows) => {
@@ -518,9 +520,15 @@
    
    // 如果是批量操作,设置标题
    if (Array.isArray(selectedRows) && selectedRows.length > 1) {
        modalOptions.title = `批量新增 (${selectedRows.length}条)`;
        modalOptions.value = {
            ...(modalOptions.value || {}),
            title: `批量新增 (${selectedRows.length}条)`,
        };
    } else {
        modalOptions.title = type === "add" ? "新增" : "编辑";
        modalOptions.value = {
            ...(modalOptions.value || {}),
            title: type === "add" ? "新增" : "编辑",
        };
    }
    
    // 如果是单个操作,获取id
src/views/productionManagement/productionDispatching/components/formDia.vue
@@ -111,7 +111,7 @@
<script setup>
import {ref} from "vue";
import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
// import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
import {userListNoPageByTenantId} from "@/api/system/user.js";
import {productionDispatch} from "@/api/productionManagement/productionOrder.js";
import useUserStore from "@/store/modules/user.js";
src/views/salesManagement/receiptPayment/index.vue
@@ -421,7 +421,11 @@
    proxy.$modal.msgError("请选择至少一条数据");
    return;
  }
  const validRows = selectedRows.value.filter((item) => item.noReceiptAmount !== 0);
  // 仅允许“待回款金额 > 0”的记录进入新增回款弹窗,并过滤掉可能混入的空对象
  const validRows = selectedRows.value.filter((item) => {
    if (!item || !item.id) return false;
    return Number(item.pendingInvoiceTotal ?? 0) > 0;
  });
  if (validRows.length === 0) {
    proxy.$modal.msgWarning("所选记录均无需回款");
    return;
@@ -485,6 +489,8 @@
const closeDia = () => {
  forms.value = [];
  dialogFormVisible.value = false;
  // 避免二次打开弹窗时仍携带上一次的选择导致“多出一行/脏数据”
  selectedRows.value = [];
};
// 删除回款记录