一、前端form提交到控制器为

"{driver:[3],verkeId:[2,3]}",对象,其中数字均为数组,所以后端采用“Long”接收报错

子组件弹出层返回表单,this.ids是el-table选中的id数组,所以赋给表单input的值是数组[3]

子弹出层
/**选择车辆*/
    select(){
      this.$emit("changeRelatedDriver",this.ids);
    },

表单变量赋值
this.$set(this.form, 'vehicleIds', data);
/** 司机ID */
    @Excel(name = "司机ID")
    private Long driverId;
@PreAuthorize("@ss.hasPermi('transport:driverVehicle:add')")
    @Log(title = "司机关联车辆信息", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody TransportDriverVehicle transportDriverVehicle )
    {

        transportDriverVehicleService.insertTransportDriverVehicle(transportDriverVehicle);
        return AjaxResult.success();
    }

二、解决方案

在实体类新建ext1,接收前端form变量,接收后转换

submitForm: function() {
      this.$refs["form"].validate(valid => {
        if (valid) {
            addDriverVehicle({ext1:this.form.driverId,vehicleIds:this.form.vehicleIds}).then(response => {
              if (response.code === 200) {
                this.msgSuccess("新增成功");
                this.open = false;
                this.getList();
              }
            });
        }
      });
    },

 


    private Long[] ext1;
/**
     * 新增司机关联车辆信息
     * @param transportDriverVehicle
     */
    @Override
    public void insertTransportDriverVehicle(TransportDriverVehicle transportDriverVehicle)
    {
        for(int i=0;i<transportDriverVehicle.getVehicleIds().length;i++){

            transportDriverVehicle.setDriverId(transportDriverVehicle.getExt1()[0]);
            transportDriverVehicle.setVehicleId(transportDriverVehicle.getVehicleIds()[i]);
            transportDriverVehicle.setStatus("0");
            transportDriverVehicle.setCreateTime(DateUtils.getNowDate());
            transportDriverVehicleMapper.insertTransportDriverVehicle(transportDriverVehicle);
        }
    }

 

Logo

前往低代码交流专区

更多推荐