element上多选框的值和标签都存放在一个数组里
存放的类型是String
当直接向后端传递
['上海', '北京']
显示报错信息:
"Error: 系统故障,请稍后重试或联系管理员[JSON parse error: Cannot deserialize value of type int
from String “上海”: not a valid int
value; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type int
from String “上海”: not a valid int
value
这是JSON解析错误,前端传过来的值与后端值类型不匹配
传递的是String类型,后端要存放int类型
想到要给复选框加id
传递id值
html
<el-form-item label="城市:" prop="objectContactType">
<el-checkbox-group v-model="addProductForm.objectContactType" size="small" @click="handleCheckAllChangeBed">
<el-checkbox v-for="(item, index) in ways" :key="index" :label="item.id">{
{
item.name }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
JS
export default {
data() {
return {
ways: [
{
id: 0,
name: '北京'
},
{
id: 1,
name: '上海'
},
{
id: 2,
name: '成都'
}
],
addProductForm: {
objectContactType: []
}
}
},
methods: {
handleCheckAllChangeBed() {
this.ways = this.objectContactType.map(item => item.id)
},
}
}
向后端传参
objectContactTypeList: this.addProductForm.objectContactType,