Browse Source

[fix]品质管理:

退换货
新增添加品质报告前端按钮
新增添加品质报告后端接口
新增品质报告页面qualityOrderReport.html
退换货详情新增备注和检验完成时间字段
dev
liuxiaoxu 6 months ago
parent
commit
16aec3d480
  1. 16
      ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityRefundsExchangesController.java
  2. 28
      ruoyi-admin/src/main/java/com/ruoyi/quality/domain/QualityRefundsExchangesDetail.java
  3. 25
      ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityRefundsExchangesDetailServiceImpl.java
  4. 6
      ruoyi-admin/src/main/resources/mapper/quality/QualityRefundsExchangesDetailMapper.xml
  5. 6
      ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/add.html
  6. 25
      ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/qualityOrderReport.html

16
ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityRefundsExchangesController.java

@ -6,8 +6,10 @@ import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.erp.domain.ErpMaterialVo; import com.ruoyi.erp.domain.ErpMaterialVo;
import com.ruoyi.erp.service.IErpMaterialService; import com.ruoyi.erp.service.IErpMaterialService;
import com.ruoyi.quality.domain.QualityOrderReport; import com.ruoyi.quality.domain.QualityOrderReport;
import com.ruoyi.quality.domain.QualityRefundsExchangesDetail;
import com.ruoyi.quality.domain.QualityRefundsExchangesUnqualified; import com.ruoyi.quality.domain.QualityRefundsExchangesUnqualified;
import com.ruoyi.quality.domain.VO.CheckoutMaterialVO; import com.ruoyi.quality.domain.VO.CheckoutMaterialVO;
import com.ruoyi.quality.service.IQualityRefundsExchangesDetailService;
import com.ruoyi.quality.service.IQualityRefundsExchangesUnqualifiedService; import com.ruoyi.quality.service.IQualityRefundsExchangesUnqualifiedService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T; import org.apache.poi.ss.formula.functions.T;
@ -47,6 +49,9 @@ public class QualityRefundsExchangesController extends BaseController
@Autowired @Autowired
private IQualityRefundsExchangesUnqualifiedService refundsExchangesUnqualifiedService; private IQualityRefundsExchangesUnqualifiedService refundsExchangesUnqualifiedService;
@Autowired
private IQualityRefundsExchangesDetailService refundsExchangesDetailService;
@RequiresPermissions("quality:refundsExchanges:view") @RequiresPermissions("quality:refundsExchanges:view")
@GetMapping() @GetMapping()
public String refundsExchanges() public String refundsExchanges()
@ -188,11 +193,8 @@ public class QualityRefundsExchangesController extends BaseController
if (StringUtils.isEmpty(refundsExchangesCode)){ if (StringUtils.isEmpty(refundsExchangesCode)){
log.warn("退换货号为空:{}",refundsExchangesCode); log.warn("退换货号为空:{}",refundsExchangesCode);
} }
QualityRefundsExchangesUnqualified tempRefundsExchangesUnqualified = new QualityRefundsExchangesUnqualified(); mmap.put("materialNo",materialNo);
tempRefundsExchangesUnqualified.setRefundsExchangesCode(refundsExchangesCode); mmap.put("refundsExchangesCode",refundsExchangesCode);
tempRefundsExchangesUnqualified.setMaterialNo(materialNo);
QualityRefundsExchangesUnqualified refundsExchangesUnqualified=refundsExchangesUnqualifiedService.selectRefundsExchangesUnqualifiedByNoAndCode(tempRefundsExchangesUnqualified);
mmap.put("refundsExchangesUnqualified", refundsExchangesUnqualified);
return prefix + "/qualityOrderReport"; return prefix + "/qualityOrderReport";
} }
@ -203,9 +205,9 @@ public class QualityRefundsExchangesController extends BaseController
@Log(title = "品质管理品质单", businessType = BusinessType.INSERT) @Log(title = "品质管理品质单", businessType = BusinessType.INSERT)
@PostMapping("/qualityReport") @PostMapping("/qualityReport")
@ResponseBody @ResponseBody
public AjaxResult qualityReportSave(@RequestBody QualityRefundsExchangesUnqualified refundsExchangesUnqualified) public AjaxResult qualityReportSave(@RequestBody QualityRefundsExchangesDetail refundsExchangesDetail)
{ {
return toAjax(refundsExchangesUnqualifiedService.addRefundsExchangesUnqualified(refundsExchangesUnqualified)); return toAjax(refundsExchangesDetailService.insertQualityRefundsExchangesDetail(refundsExchangesDetail));
} }
} }

28
ruoyi-admin/src/main/java/com/ruoyi/quality/domain/QualityRefundsExchangesDetail.java

@ -1,6 +1,8 @@
package com.ruoyi.quality.domain; package com.ruoyi.quality.domain;
import java.util.Date; import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -97,10 +99,18 @@ public class QualityRefundsExchangesDetail extends BaseEntity
@Excel(name = "交付质检时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "交付质检时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date deliveryInspectionTime; private Date deliveryInspectionTime;
/** 检验完成时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "检验完成时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date inspectionTime;
/** 品质备注 */ /** 品质备注 */
@Excel(name = "品质备注") @Excel(name = "品质备注")
private String qualityRemark; private String qualityRemark;
/*不合格分类列表*/
private List<QualityRefundsExchangesUnqualified> refundsExchangesUnqualifieds;
public void setRefundsExchangesDetailId(Long refundsExchangesDetailId) public void setRefundsExchangesDetailId(Long refundsExchangesDetailId)
{ {
this.refundsExchangesDetailId = refundsExchangesDetailId; this.refundsExchangesDetailId = refundsExchangesDetailId;
@ -291,6 +301,22 @@ public class QualityRefundsExchangesDetail extends BaseEntity
return qualityRemark; return qualityRemark;
} }
public Date getInspectionTime() {
return inspectionTime;
}
public void setInspectionTime(Date inspectionTime) {
this.inspectionTime = inspectionTime;
}
public List<QualityRefundsExchangesUnqualified> getRefundsExchangesUnqualifieds() {
return refundsExchangesUnqualifieds;
}
public void setRefundsExchangesUnqualifieds(List<QualityRefundsExchangesUnqualified> refundsExchangesUnqualifieds) {
this.refundsExchangesUnqualifieds = refundsExchangesUnqualifieds;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -314,12 +340,14 @@ public class QualityRefundsExchangesDetail extends BaseEntity
.append("materialProcessMethod", getMaterialProcessMethod()) .append("materialProcessMethod", getMaterialProcessMethod())
.append("refundsExchangesNum", getRefundsExchangesNum()) .append("refundsExchangesNum", getRefundsExchangesNum())
.append("deliveryInspectionTime", getDeliveryInspectionTime()) .append("deliveryInspectionTime", getDeliveryInspectionTime())
.append("inspectionTime", getInspectionTime())
.append("qualityRemark", getQualityRemark()) .append("qualityRemark", getQualityRemark())
.append("remark", getRemark()) .append("remark", getRemark())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("refundsExchangesUnqualifieds",getRefundsExchangesUnqualifieds())
.toString(); .toString();
} }
} }

25
ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityRefundsExchangesDetailServiceImpl.java

@ -1,14 +1,19 @@
package com.ruoyi.quality.service.impl; package com.ruoyi.quality.service.impl;
import java.util.Date;
import java.util.List; import java.util.List;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.quality.domain.QualityRefundsExchangesUnqualified;
import com.ruoyi.quality.mapper.QualityOrderReportUnqualifiedMapper;
import com.ruoyi.quality.mapper.QualityRefundsExchangesUnqualifiedMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.quality.mapper.QualityRefundsExchangesDetailMapper; import com.ruoyi.quality.mapper.QualityRefundsExchangesDetailMapper;
import com.ruoyi.quality.domain.QualityRefundsExchangesDetail; import com.ruoyi.quality.domain.QualityRefundsExchangesDetail;
import com.ruoyi.quality.service.IQualityRefundsExchangesDetailService; import com.ruoyi.quality.service.IQualityRefundsExchangesDetailService;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;
/** /**
* 品质管理退换货单详情Service业务层处理 * 品质管理退换货单详情Service业务层处理
@ -22,6 +27,9 @@ public class QualityRefundsExchangesDetailServiceImpl implements IQualityRefunds
@Autowired @Autowired
private QualityRefundsExchangesDetailMapper qualityRefundsExchangesDetailMapper; private QualityRefundsExchangesDetailMapper qualityRefundsExchangesDetailMapper;
@Autowired
private QualityRefundsExchangesUnqualifiedMapper unqualifiedMapper;
/** /**
* 查询品质管理退换货单详情 * 查询品质管理退换货单详情
* *
@ -52,12 +60,29 @@ public class QualityRefundsExchangesDetailServiceImpl implements IQualityRefunds
* @param qualityRefundsExchangesDetail 品质管理退换货单详情 * @param qualityRefundsExchangesDetail 品质管理退换货单详情
* @return 结果 * @return 结果
*/ */
@Transactional
@Override @Override
public int insertQualityRefundsExchangesDetail(QualityRefundsExchangesDetail qualityRefundsExchangesDetail) public int insertQualityRefundsExchangesDetail(QualityRefundsExchangesDetail qualityRefundsExchangesDetail)
{ {
String loginName = ShiroUtils.getLoginName(); String loginName = ShiroUtils.getLoginName();
qualityRefundsExchangesDetail.setCreateBy(loginName); qualityRefundsExchangesDetail.setCreateBy(loginName);
qualityRefundsExchangesDetail.setCreateTime(DateUtils.getNowDate()); qualityRefundsExchangesDetail.setCreateTime(DateUtils.getNowDate());
//获取前端不合格分类列表
List<QualityRefundsExchangesUnqualified> refundsExchangesUnqualifieds = qualityRefundsExchangesDetail.getRefundsExchangesUnqualifieds();
for (QualityRefundsExchangesUnqualified temp : refundsExchangesUnqualifieds) {
QualityRefundsExchangesUnqualified refundsExchangesUnqualified = new QualityRefundsExchangesUnqualified();
refundsExchangesUnqualified.setRefundsExchangesCode(qualityRefundsExchangesDetail.getRefundsExchangesCode());
refundsExchangesUnqualified.setMaterialNo(qualityRefundsExchangesDetail.getMaterialNo());
refundsExchangesUnqualified.setInspectionTime(qualityRefundsExchangesDetail.getInspectionTime());
refundsExchangesUnqualified.setProcessBadClassification(temp.getProcessBadClassification());
refundsExchangesUnqualified.setProcessBadGrade(temp.getProcessBadGrade());
refundsExchangesUnqualified.setProcessBadNum(temp.getProcessBadNum());
refundsExchangesUnqualified.setRemark(temp.getRemark());
refundsExchangesUnqualified.setCreateBy(loginName);
refundsExchangesUnqualified.setCreateTime(new Date());
unqualifiedMapper.insertQualityRefundsExchangesUnqualified(refundsExchangesUnqualified);
}
return qualityRefundsExchangesDetailMapper.insertQualityRefundsExchangesDetail(qualityRefundsExchangesDetail); return qualityRefundsExchangesDetailMapper.insertQualityRefundsExchangesDetail(qualityRefundsExchangesDetail);
} }

6
ruoyi-admin/src/main/resources/mapper/quality/QualityRefundsExchangesDetailMapper.xml

@ -25,6 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="materialProcessMethod" column="material_process_method" /> <result property="materialProcessMethod" column="material_process_method" />
<result property="refundsExchangesNum" column="refunds_exchanges_num" /> <result property="refundsExchangesNum" column="refunds_exchanges_num" />
<result property="deliveryInspectionTime" column="delivery_inspection_time" /> <result property="deliveryInspectionTime" column="delivery_inspection_time" />
<result property="inspectionTime" column="inspection_time" />
<result property="qualityRemark" column="quality_remark" /> <result property="qualityRemark" column="quality_remark" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
@ -34,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectQualityRefundsExchangesDetailVo"> <sql id="selectQualityRefundsExchangesDetailVo">
select refunds_exchanges_detail_id, refunds_exchanges_code, refunds_exchanges_status, quality_warehouse_status, quality_purchase_status, related_order_code, in_storage_code, quality_return_node, material_total, num_total, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, refunds_exchanges_num, delivery_inspection_time, quality_remark, remark, create_by, create_time, update_by, update_time from quality_refunds_exchanges_detail select refunds_exchanges_detail_id, refunds_exchanges_code, refunds_exchanges_status, quality_warehouse_status, quality_purchase_status, related_order_code, in_storage_code, quality_return_node, material_total, num_total, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, refunds_exchanges_num, delivery_inspection_time, inspection_time ,quality_remark, remark, create_by, create_time, update_by, update_time from quality_refunds_exchanges_detail
</sql> </sql>
<select id="selectQualityRefundsExchangesDetailList" parameterType="QualityRefundsExchangesDetail" resultMap="QualityRefundsExchangesDetailResult"> <select id="selectQualityRefundsExchangesDetailList" parameterType="QualityRefundsExchangesDetail" resultMap="QualityRefundsExchangesDetailResult">
@ -70,6 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialProcessMethod != null">material_process_method,</if> <if test="materialProcessMethod != null">material_process_method,</if>
<if test="refundsExchangesNum != null">refunds_exchanges_num,</if> <if test="refundsExchangesNum != null">refunds_exchanges_num,</if>
<if test="deliveryInspectionTime != null">delivery_inspection_time,</if> <if test="deliveryInspectionTime != null">delivery_inspection_time,</if>
<if test="inspectionTime != null">inspection_time,</if>
<if test="qualityRemark != null">quality_remark,</if> <if test="qualityRemark != null">quality_remark,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
@ -97,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialProcessMethod != null">#{materialProcessMethod},</if> <if test="materialProcessMethod != null">#{materialProcessMethod},</if>
<if test="refundsExchangesNum != null">#{refundsExchangesNum},</if> <if test="refundsExchangesNum != null">#{refundsExchangesNum},</if>
<if test="deliveryInspectionTime != null">#{deliveryInspectionTime},</if> <if test="deliveryInspectionTime != null">#{deliveryInspectionTime},</if>
<if test="inspectionTime != null">#{inspectionTime},</if>
<if test="qualityRemark != null">#{qualityRemark},</if> <if test="qualityRemark != null">#{qualityRemark},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
@ -128,6 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialProcessMethod != null">material_process_method = #{materialProcessMethod},</if> <if test="materialProcessMethod != null">material_process_method = #{materialProcessMethod},</if>
<if test="refundsExchangesNum != null">refunds_exchanges_num = #{refundsExchangesNum},</if> <if test="refundsExchangesNum != null">refunds_exchanges_num = #{refundsExchangesNum},</if>
<if test="deliveryInspectionTime != null">delivery_inspection_time = #{deliveryInspectionTime},</if> <if test="deliveryInspectionTime != null">delivery_inspection_time = #{deliveryInspectionTime},</if>
<if test="inspectionTime != null">inspection_time = #{inspectionTime},</if>
<if test="qualityRemark != null">quality_remark = #{qualityRemark},</if> <if test="qualityRemark != null">quality_remark = #{qualityRemark},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>

6
ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/add.html

@ -8,7 +8,7 @@
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-refundsExchanges-add"> <form class="form-horizontal m" id="form-refundsExchanges-add">
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">付质检时间:</label> <label class="col-sm-4 control-label">交检时间:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="input-group date"> <div class="input-group date">
<input name="deliveryInspectionTime" class="form-control" placeholder="yyyy-MM-dd" type="text"> <input name="deliveryInspectionTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
@ -17,7 +17,7 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">品质备注:</label> <label class="col-sm-4 control-label">品质备注:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="qualityRemark" class="form-control" type="text"> <input name="qualityRemark" class="form-control" type="text">
</div> </div>
@ -163,7 +163,7 @@
formatter: function(value, row, index) { formatter: function(value, row, index) {
// 这里直接使用row对象获取refundsExchangesCode,假设它是存在的 // 这里直接使用row对象获取refundsExchangesCode,假设它是存在的
var actions = []; var actions = [];
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="qualityReport(\'' + row.materialNo + '\', \'' + row.refundsExchangesCode + '\')"><i class="fa fa-plus"></i>报告</a> '); actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="qualityReport(\'' + row.materialNo + '\', \'' + refundsExchangesCode + '\')"><i class="fa fa-plus"></i>报告</a> ');
return actions.join(''); return actions.join('');
} }
}, },

25
ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/qualityOrderReport.html

@ -6,7 +6,7 @@
</head> </head>
<body class="white-bg"> <body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-qualityOrderReport-edit" th:object="${QualityRefundsExchangesUnqualified}"> <form class="form-horizontal m" id="form-qualityOrderReport-add">
<input name="materialNo" th:field="*{materialNo}" type="hidden"> <input name="materialNo" th:field="*{materialNo}" type="hidden">
<div class="container"> <div class="container">
<!--不合格数--> <!--不合格数-->
@ -30,10 +30,10 @@
<!--其他字段--> <!--其他字段-->
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 control-label">检验完成时间:</label> <label class="col-sm-3 control-label">检验完成时间:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="input-group date"> <div class="input-group date">
<input name="inspectionTime" th:value="${#dates.format(QualityRefundsExchangesUnqualified.inspectionTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text"> <input name="inspectionTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div> </div>
</div> </div>
@ -41,7 +41,7 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 control-label">备注:</label> <label class="col-sm-4 control-label">备注:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<textarea name="remark" th:field="*{remark}" class="form-control" type="text"></textarea> <textarea name="remark" class="form-control" type="text"></textarea>
</div> </div>
</div> </div>
</form> </form>
@ -50,18 +50,23 @@
<th:block th:include="include :: datetimepicker-js" /> <th:block th:include="include :: datetimepicker-js" />
<th:block th:include="include :: bootstrap-table-editable-js"/> <th:block th:include="include :: bootstrap-table-editable-js"/>
<script th:inline="javascript"> <script th:inline="javascript">
var prefix = ctx + "quality/refundsExchanges";
var materialNo = /*[[${materialNo}]]*/'';
var refundsExchangesCode = /*[[${refundsExchangesCode}]]*/'';
var processBadClassificationDatas = [[${@dict.getType('process_bad_classification')}]]; var processBadClassificationDatas = [[${@dict.getType('process_bad_classification')}]];
var processBadGradeDatas = [[${@dict.getType('process_bad_grade')}]]; var processBadGradeDatas = [[${@dict.getType('process_bad_grade')}]];
var $table = $("#bootstrap-unqualified-table"); var $table = $("#bootstrap-unqualified-table");
var prefix = ctx + "quality/refundsExchanges";
$("#form-qualityOrderReport-edit").validate({ $("#form-qualityOrderReport-add").validate({
focusCleanup: true focusCleanup: true
}); });
function submitHandler() { function submitHandler() {
// 获取表单数据 // 获取表单数据
const qualityReportData = $("#form-qualityOrderReport-edit").serializeArray().reduce((obj, item) => { const qualityReportData = $("#form-qualityOrderReport-add").serializeArray().reduce((obj, item) => {
obj[item.name] = item.value; obj[item.name] = item.value;
return obj; return obj;
}, {}); }, {});
@ -85,7 +90,11 @@
}; };
}); });
const combinedData = Object.assign({}, qualityReportData, { unqualifiedDataList: unqualifiedDataList }); const combinedData = Object.assign({}, qualityReportData, {
refundsExchangesUnqualifieds: unqualifiedDataList ,
materialNo:materialNo,
refundsExchangesCode:refundsExchangesCode
});
// 合并表单数据和表格数据 // 合并表单数据和表格数据
// const combinedData = Object.assign({}, ...complaintNoticeData.array(item => ({ [item.name]: item.value })), ...materialData); // const combinedData = Object.assign({}, ...complaintNoticeData.array(item => ({ [item.name]: item.value })), ...materialData);
console.log(combinedData) console.log(combinedData)

Loading…
Cancel
Save