ZBLOG

关联客户

要在 addCustomer 事件中处理 mode="tags" 的情况,并确保无论是从选项中选择的产品名称和借据号,还是手动输入的内容都能正确传递,您可以在构造请求参数时进行相应的处理。以下是如何实现这一目标的步骤:

  1. 提取用户输入:当使用 tags 模式时,用户可能会手动输入产品名称和借据号。因此,需要收集这些手动输入的值。

  2. 整合数据:即使手动输入了数据,也需要确保这些数据与 workOrderLoans 中的数据一致,以便能够生成一个有效的请求。

下面是您代码中 addCustomer 方法的一种修改方案:

  1. const addCustomer = (values) => {
  2. // 获取手动输入的产品名称(tags)和借据号(tags)
  3. const selectedProducts = formModal.value.productName;
  4. const selectedLoanCodes = formModal.value.loanInfoCode;
  5. // 根据workOrderLoans中的信息构建selectedData
  6. const selectedData = [];
  7. // 遍历所有已选择的产品名称
  8. selectedProducts.forEach((productName) => {
  9. // 找到与该产品名称对应的借据号
  10. const loanCodes = workOrderLoans.value
  11. .filter(loan => loan.productName === productName)
  12. .map(loan => loan.loanInfoCode);
  13. // 如果模式为tags且用户手动输入了借据号,将其添加到loanCodes中
  14. if (isCustomerNotFound.value && selectedLoanCodes.includes(productName)) {
  15. loanCodes.push(productName); // 假设这里需要加上用户直接输入的信息,你也可以根据需要调整逻辑
  16. }
  17. // 创建包含productName和对应loanInfoCode对象并推入数组
  18. selectedData.push({
  19. productName,
  20. loanInfoCode: [...new Set([...loanCodes, ...selectedLoanCodes])], // 合并去重后的借据号列表
  21. });
  22. });
  23. const params = {
  24. workOrderLoans: selectedData,
  25. };
  26. addWorkOrder(params)
  27. .then((response) => {
  28. if (response.success) {
  29. message.success(response.message);
  30. } else {
  31. message.error(response.message);
  32. }
  33. });
  34. };

在上述代码中做了以下处理:

  1. 获取所有选择:将所有选择(包括从下拉框或标签模式下用户输入)的产品名称和借据号都保留在变量中。

  2. 过滤贷款信息:通过遍历选定的产品,在 workOrderLoans 中查找匹配的贷款代码。如果有新输入的内容(例如标签模式),则将它们合并到最终传递的数据结构中,并去重。

  3. 生成最终参数:构建包含 productName 和对应的 loanInfoCode 的数组,最后发送请求时只需利用这个数组即可。

这样一来,无论是从列表选择还是手动添加,都能保证最终提交的数据完整且符合预期。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22842

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?