问题:对于复杂的参数结构,我们一般要怎么处理呢?比如:
{
"orgId": 0,
"outpClinicAreaId": 0,
"roomList": [
{
"deskList": [
{
"locationId": 0,
"memo": "string",
"outpClinicDeskId": 0,
"outpClinicDeskName": "string",
"outpClinicRoomId": 0
}
],
"locationId": 0,
"memo": "string",
"outpClinicAreaId": 0,
"outpClinicRoomId": 0,
"outpClinicRoomName": "string"
}
],
"triageServiceClassCode": 0
}
我们需要给后端传这样结构的参数,那么,如果组合呢?
首先: roomList 是一个对象数组,即数组中的每一项都是对象;
所以, roomList 一定是数组遍历然后push一个对象
首先我们简化下参数结构:
{
"orgId": 0,
"outpClinicAreaId": 0,
"roomList": [],
"triageServiceClassCode": 0
}
其实只有四个字段,不过roomList是一个数组,而且是一个嵌套数组,我们继续往下拆:
roomList: [{
deskList: [
{
locationId: 0,
memo: "string",
outpClinicDeskId: 0,
outpClinicDeskName: "string",
outpClinicRoomId: 0
}
]
locationId: 0,
memo: "string",
outpClinicAreaId: 0,
outpClinicRoomId: 0,
outpClinicRoomName: "string"
}]
而deskList也是一个数组:
{
deskList: []
locationId: 0,
memo: "string",
outpClinicAreaId: 0,
outpClinicRoomId: 0,
outpClinicRoomName: "string"
}
所以最终我们可以这里来组合这种参数结构:
分两步:
(1):组织deskList 数组
{
orgId: 0,
outpClinicAreaId: 0,
roomList: [{
deskList: this.deskListData
locationId: 0,
memo: "string",
outpClinicAreaId: 0,
outpClinicRoomId: 0,
outpClinicRoomName: "string"
}],
"triageServiceClassCode": 0
}
(2) 组织roomList 数组
{
orgId: 0,
outpClinicAreaId: 0,
roomList: this.roomListData
"triageServiceClassCode": 0
}
而 this.deskListData 可以通过遍历 this.multipleSelectionList 这个数组来获得
saveClinicAreaInfo () {
let deskDataList = []
this.multipleSelectionDeskList.forEach(item => {
deskDataList.push({
locationId: this.associatedPosition || null,
memo: '',
outpClinicDeskId: 0,
outpClinicDeskName: item.outpClinicDeskName,
outpClinicRoomId: item.outpClinicRoomId
})
})
而 roomList 这个数组可以这样来组合:
this.multipleSelectionRoomList.forEach(item => {
this.roomDataList.push({
deskList: deskDataList,
locationId: item.locationId,
memo: '',
outpClinicAreaId: this.editClinicDeskRowdata.outpClinicDeskId,
outpClinicRoomId: item.outpClinicRoomId,
outpClinicRoomName: item.outpClinicRoomName
})
})