要避免在 selectedData
中传递空值,可以在构建 selectedData
的过程中进行过滤,只将那些具有有效 productName
和非空的 loanInfoCode
传递。具体来说,你可以添加一些条件来检查每个产品和其对应的贷款信息。以下是修改后的代码:
// 新增客户信息的函数
const addCustomer = (values) => {
console.log(productRows.value);
const selectedData = formModal.value.productName.map((productName) => {
const loanCodes = formModal.value.loanInfoCode.filter((loanCode) =>
workOrderLoans.value.some(
(loan) => loan.productName === productName && loan.loanInfoCode === loanCode
)
);
// 检查是否有有效的贷款代码,如果没有,则不返回该产品数据
if (loanCodes.length > 0) {
return {
productName,
loanInfoCode: loanCodes,
};
}
}).filter(item => item); // 过滤掉 undefined 的项
// 合并 selectedData 和 productRows 并且移除无效数据
const workOrderLoansTosend = [
...selectedData,
...productRows.value.filter(row => row.productName && row.loanInfoCode[0]) // 确保不传递空行
];
const params = {
workOrderType: formModal.value.workOrderType,
callType: formModal.value.callType,
complainType: formModal.value.complainType,
ident: formModal.value.ident,
customerName: formModal.value.customerName,
phoneNumber: formModal.value.phoneNumber,
workOrderLoans: workOrderLoansTosend,
customerProblem: formModal.value.customerProblem,
customerAppeal: formModal.value.customerAppeal,
};
console.log(params, productRows);
// 假设有一个 addWorkOrder 函数来处理添加工作订单请求
addWorkOrder(params).then((response) => {
if (response.success) {
message.success(response.message);
} else {
message.error(response.message);
}
});
};
修改说明:
- 选中数据过滤:在构建
selectedData
时,增加了一个判断逻辑,只有当loanCodes.length > 0
时才会将这个产品名称及其贷款信息添加到结果中。 - 合并数据过滤:在合并
selectedData
和productRows
时,通过filter
方法确保只将那些包含有效数据(即有产品名称和至少一个贷款信息)的行传递。
这样可以保证最终发送的参数中不会含有任何空值或未填充的数据。
内容由零声教学AI助手提供,问题来源于学员提问