element表格(树形结构按钮)
element表格树形结构加勾选按钮,点击某行数据的勾选框,如果他有children那么子数据的勾选状态会变成当前勾选的状态,如果当行有父数据那么他全部的父数据都要计算下子数据是否都勾选了
index.vue
1 <template> 2 <el-table 3 border 4 :data="ColumnData2" 5 row-key="id" 6 ref="multipleTable" 7 @select="checkboxSelect" 8 @selection-change="handleSelectionChange" 9 @select-all="selectAll" 10 :tree-props="{ children: 'children', hasChildren: 'haschildren' }" 11 > 12 <el-table-column type="selection" width="75px" fixed="left" align="center" /> 13 <el-table-column prop="dpname" label="名称" width="300" :show-overflow-tooltip="true" /> 14 <el-table-column prop="subjectName" label="描述" :show-overflow-tooltip="true" /> 15 <el-table-column prop="specName" label="所属团队" width="200" :show-overflow-tooltip="true" /> 16 </el-table> 17 </template> 18 <script> 19 import { treeData } from './data' 20 import { processingData, getTableAllData } from './utils' 21 export default { 22 data() { 23 return { 24 ColumnData2: [], 25 checkedKeys: false, 26 selectedItem: [] // 得到勾选的数据 27 } 28 }, 29 created() { 30 const treeDataCopy = treeData 31 processingData(treeDataCopy) 32 this.ColumnData2 = treeDataCopy 33 }, 34 methods: { 35 selectAll() { // 全选/非全选 36 this.checkedKeys = !this.checkedKeys 37 this.splite(this.ColumnData2, this.checkedKeys) 38 }, 39 // change children or all 40 splite(data, flag) { 41 data.forEach((row) => { 42 this.$set(row, 'isSelected', flag) 43 this.$refs.multipleTable.toggleRowSelection(row, flag) 44 row.children && this.splite(row.children, flag) 45 }) 46 }, 47 handleSelectionChange() { 48 this.selectedItem = this.getCheckList() 49 }, 50 checkboxSelect(val, row, a) { 51 const thisSelect = !row.isSelected 52 this.$set(row, 'isSelected', thisSelect) 53 this.$refs.multipleTable.toggleRowSelection(row, thisSelect) 54 row.children && this.splite(row.children, thisSelect) // 点击父节点,则子勾选 55 // 如row.idCopy有'-'说明有父数据,则父数据可能不止一个,所以要转为数组,从后到前循环判断子数据是否都已经全部勾选 56 if (row.idCopy.includes('-')) { 57 const idArr = row.idCopy.split('-') 58 const allTableData = this.getAllOfTable() 59 for (let i = idArr.length - 2; i >= 0; i--) { 60 const item = allTableData.find(item => item.id == idArr[i]) 61 item && this.$refs.multipleTable.toggleRowSelection(item, item.children.every(i => i.isSelected)) 62 item && this.$set(item, 'isSelected', item.children.every(i => i.isSelected)) 63 } 64 } 65 }, 66 getCheckList() { 67 return getTableAllData(this.ColumnData2).filter(item => item.isSelected) 68 }, 69 getAllOfTable() { 70 return getTableAllData(this.ColumnData2) 71 } 72 }, 73 watch: { 74 'selectedItem': { 75 handler(val) { 76 console.log('this.selectedItem', this.selectedItem, 'getCheckList', this.getCheckList(), '对比是否一样', val.length === this.getCheckList().length) 77 } 78 } 79 } 80 } 81 </script>
data.js(测试数据)
1 export const treeData = [ 2 { 3 'id': 26, 4 'dpid': '30B94CFE089FE56A482569D40037891C', 5 'dpname': '零售业务管理总部', 6 'subjectName': null, 7 'subjectId': null, 8 'specName': null, 9 'conf': null, 10 'budgetUsername': null, 11 'desc': null, 12 'count': 12, 13 'applyAmount': 1440000, 14 'applyUAmount': 1440000, 15 'approvalAmount': 0, 16 'approvalUAmount': 0, 17 'changeAmount': null, 18 'status': '0', 19 'remark': null, 20 'edit': false, 21 'activityId': '04', 22 'children': [{ 23 'id': 261, 24 'dpid': '515AF64E1B7C810648257B9D000E4C5C', 25 'dpname': '电子商务部', 26 'subjectName': null, 27 'subjectId': null, 28 'specName': null, 29 'conf': null, 30 'budgetUsername': null, 31 'desc': null, 32 'count': 4, 33 'applyAmount': 720000, 34 'applyUAmount': 720000, 35 'approvalAmount': 0, 36 'approvalUAmount': 0, 37 'changeAmount': null, 38 'status': '0', 39 'remark': null, 40 'edit': true, 41 'activityId': '04', 42 'children': [{ 43 'id': 2611, 44 'dpid': '79B5243D3A1D981848257E0E003244F4', 45 'dpname': '广州林和西路营业部', 46 'subjectName': null, 47 'subjectId': null, 48 'specName': null, 49 'conf': null, 50 'budgetUsername': null, 51 'desc': null, 52 'count': 2, 53 'applyAmount': 360000, 54 'applyUAmount': 360000, 55 'approvalAmount': 0, 56 'approvalUAmount': 0, 57 'changeAmount': null, 58 'status': null, 59 'remark': null, 60 'edit': false, 61 'activityId': null, 62 'children': [{ 63 'id': 26111, 64 'dpid': '79B5243D3A1D981848257E0E003244F4', 65 'dpname': '广州林和西路营业部', 66 'subjectName': '固定资产采购-电脑设备-服务器', 67 'subjectId': null, 68 'specName': '海光服务器-规格6', 69 'conf': 'CPU:2* 海光7280; 内存:64GB 3200MHz 硬盘:2 * 960G SSD, RAID卡:支持RIAD 0/1/10/5/6,支持直通,2G Cache,含掉电保护; 网口:2*10GE光口(含光模块),2*1G电口; 冗余电源;5年7x24*4', 70 'budgetUsername': null, 71 'desc': null, 72 'count': 2, 73 'applyAmount': 360000, 74 'applyUAmount': 360000, 75 'approvalAmount': 360000, 76 'approvalUAmount': 360000, 77 'changeAmount': null, 78 'status': '0', 79 'remark': null, 80 'edit': false, 81 'activityId': null, 82 'children': null, 83 'childrenDetails': null, 84 'groupDpid': '515AF64E1B7C810648257B9D000E4C5C', 85 'flowType': '2', 86 'splitSubjectFlag': false 87 }], 88 'childrenDetails': null, 89 'groupDpid': null, 90 'flowType': null, 91 'splitSubjectFlag': false 92 }, 93 { 94 'id': 2612, 95 'dpid': '7DBDCC0A6D8F1F134825824A00160727', 96 'dpname': '广州花城大道美林基业大厦营业部', 97 'subjectName': null, 98 'subjectId': null, 99 'specName': null, 100 'conf': null, 101 'budgetUsername': null, 102 'desc': null, 103 'count': 2, 104 'applyAmount': 360000, 105 'applyUAmount': 360000, 106 'approvalAmount': 0, 107 'approvalUAmount': 0, 108 'changeAmount': null, 109 'status': null, 110 'remark': null, 111 'edit': false, 112 'activityId': null, 113 'children': [{ 114 'id': 26121, 115 'dpid': '7DBDCC0A6D8F1F134825824A00160727', 116 'dpname': '广州花城大道美林基业大厦营业部', 117 'subjectName': '固定资产采购-电脑设备-服务器', 118 'subjectId': null, 119 'specName': 'ARM服务器-规格15', 120 'conf': 'CPU:2*鲲鹏920 5250,48Core\n内存:256GB\n硬盘:2*480GB SSD,2*1.92TB SSD,12*8TB SAS\nRAID卡:支持RIAD 0/1/10/5/6,2G Cache,含掉电保护\n网口:4*10GE光口(含光模块),4*1G电口;\n冗余电源;5年7x24*4', 121 'budgetUsername': null, 122 'desc': null, 123 'count': 2, 124 'applyAmount': 360000, 125 'applyUAmount': 360000, 126 'approvalAmount': 360000, 127 'approvalUAmount': 360000, 128 'changeAmount': null, 129 'status': '0', 130 'remark': null, 131 'edit': false, 132 'activityId': null, 133 'children': null, 134 'childrenDetails': null, 135 'groupDpid': '515AF64E1B7C810648257B9D000E4C5C', 136 'flowType': '2', 137 'splitSubjectFlag': false 138 }], 139 'childrenDetails': null, 140 'groupDpid': null, 141 'flowType': null, 142 'splitSubjectFlag': false 143 } 144 ], 145 'childrenDetails': null, 146 'groupDpid': '30B94CFE089FE56A482569D40037891C', 147 'flowType': null, 148 'splitSubjectFlag': true 149 }, 150 { 151 'id': 262, 152 'dpid': 'C3B6C8EDA11A87B648257F4C0024949B', 153 'dpname': '机构与同业部', 154 'subjectName': null, 155 'subjectId': null, 156 'specName': null, 157 'conf': null, 158 'budgetUsername': null, 159 'desc': null, 160 'count': 8, 161 'applyAmount': 720000, 162 'applyUAmount': 720000, 163 'approvalAmount': 0, 164 'approvalUAmount': 0, 165 'changeAmount': null, 166 'status': '0', 167 'remark': null, 168 'edit': true, 169 'activityId': '04', 170 'children': [{ 171 'id': 2621, 172 'dpid': 'C3B6C8EDA11A87B648257F4C0024949B', 173 'dpname': '机构与同业部', 174 'subjectName': '固定资产采购-电脑设备-服务器', 175 'subjectId': null, 176 'specName': '海光服务器-规格6', 177 'conf': 'CPU:2* 海光7280; 内存:64GB 3200MHz 硬盘:2 * 960G SSD, RAID卡:支持RIAD 0/1/10/5/6,支持直通,2G Cache,含掉电保护; 网口:2*10GE光口(含光模块),2*1G电口; 冗余电源;5年7x24*4', 178 'budgetUsername': null, 179 'desc': null, 180 'count': 2, 181 'applyAmount': 180000, 182 'applyUAmount': 180000, 183 'approvalAmount': 180000, 184 'approvalUAmount': 180000, 185 'changeAmount': '', 186 'status': '0', 187 'remark': null, 188 'edit': false, 189 'activityId': null, 190 'children': null, 191 'childrenDetails': null, 192 'groupDpid': 'C3B6C8EDA11A87B648257F4C0024949B', 193 'flowType': '3', 194 'splitSubjectFlag': false 195 }, 196 { 197 'id': 2622, 198 'dpid': 'C3B6C8EDA11A87B648257F4C0024949B', 199 'dpname': '机构与同业部', 200 'subjectName': '固定资产采购-电脑设备-服务器', 201 'subjectId': null, 202 'specName': 'ARM服务器-规格15', 203 'conf': 'CPU:2*鲲鹏920 5250,48Core\n内存:256GB\n硬盘:2*480GB SSD,2*1.92TB SSD,12*8TB SAS\nRAID卡:支持RIAD 0/1/10/5/6,2G Cache,含掉电保护\n网口:4*10GE光口(含光模块),4*1G电口;\n冗余电源;5年7x24*4', 204 'budgetUsername': null, 205 'desc': null, 206 'count': 2, 207 'applyAmount': 180000, 208 'applyUAmount': 180000, 209 'approvalAmount': 180000, 210 'approvalUAmount': 180000, 211 'changeAmount': '', 212 'status': '0', 213 'remark': null, 214 'edit': false, 215 'activityId': null, 216 'children': null, 217 'childrenDetails': null, 218 'groupDpid': 'C3B6C8EDA11A87B648257F4C0024949B', 219 'flowType': '3', 220 'splitSubjectFlag': false 221 }, 222 { 223 'id': 2623, 224 'dpid': 'C3B6C8EDA11A87B648257F4C0024949B', 225 'dpname': '机构与同业部', 226 'subjectName': '固定资产采购-电脑设备-服务器', 227 'subjectId': null, 228 'specName': '海光服务器-规格6', 229 'conf': 'CPU:2* 海光7280; 内存:64GB 3200MHz 硬盘:2 * 960G SSD, RAID卡:支持RIAD 0/1/10/5/6,支持直通,2G Cache,含掉电保护; 网口:2*10GE光口(含光模块),2*1G电口; 冗余电源;5年7x24*4', 230 'budgetUsername': null, 231 'desc': null, 232 'count': 4, 233 'applyAmount': 360000, 234 'applyUAmount': 360000, 235 'approvalAmount': 360000, 236 'approvalUAmount': 360000, 237 'changeAmount': '', 238 'status': '0', 239 'remark': null, 240 'edit': false, 241 'activityId': null, 242 'children': null, 243 'childrenDetails': null, 244 'groupDpid': 'C3B6C8EDA11A87B648257F4C0024949B', 245 'flowType': '3', 246 'splitSubjectFlag': false 247 } 248 ], 249 'childrenDetails': null, 250 'groupDpid': '30B94CFE089FE56A482569D40037891C', 251 'flowType': null, 252 'splitSubjectFlag': true 253 } 254 ], 255 'childrenDetails': [], 256 'groupDpid': '', 257 'flowType': null, 258 'splitSubjectFlag': false 259 }, 260 { 261 'id': 27, 262 'dpid': 'B3F8A7FD8EE9077C482569D400378941', 263 'dpname': '信息技术部', 264 'subjectName': null, 265 'subjectId': null, 266 'specName': null, 267 'conf': null, 268 'budgetUsername': null, 269 'desc': null, 270 'count': 8, 271 'applyAmount': 720000, 272 'applyUAmount': 720000, 273 'approvalAmount': 0, 274 'approvalUAmount': 0, 275 'changeAmount': null, 276 'status': '0', 277 'remark': null, 278 'edit': true, 279 'activityId': '04', 280 'children': [{ 281 'id': 271, 282 'dpid': 'B3F8A7FD8EE9077C482569D400378941', 283 'dpname': '信息技术部', 284 'subjectName': '固定资产采购-电脑设备-服务器', 285 'subjectId': null, 286 'specName': '海光服务器-规格6', 287 'conf': 'CPU:2* 海光7280; 内存:64GB 3200MHz 硬盘:2 * 960G SSD, RAID卡:支持RIAD 0/1/10/5/6,支持直通,2G Cache,含掉电保护; 网口:2*10GE光口(含光模块),2*1G电口; 冗余电源;5年7x24*4', 288 'budgetUsername': null, 289 'desc': null, 290 'count': 2, 291 'applyAmount': 180000, 292 'applyUAmount': 180000, 293 'approvalAmount': 0, 294 'approvalUAmount': 0, 295 'changeAmount': '', 296 'status': '0', 297 'remark': null, 298 'edit': false, 299 'activityId': null, 300 'children': null, 301 'childrenDetails': null, 302 'groupDpid': 'B3F8A7FD8EE9077C482569D400378941', 303 'flowType': '4', 304 'splitSubjectFlag': false 305 }, 306 { 307 'id': 272, 308 'dpid': 'B3F8A7FD8EE9077C482569D400378941', 309 'dpname': '信息技术部', 310 'subjectName': '固定资产采购-电脑设备-服务器', 311 'subjectId': null, 312 'specName': 'ARM服务器-规格15', 313 'conf': 'CPU:2*鲲鹏920 5250,48Core\n内存:256GB\n硬盘:2*480GB SSD,2*1.92TB SSD,12*8TB SAS\nRAID卡:支持RIAD 0/1/10/5/6,2G Cache,含掉电保护\n网口:4*10GE光口(含光模块),4*1G电口;\n冗余电源;5年7x24*4', 314 'budgetUsername': null, 315 'desc': null, 316 'count': 2, 317 'applyAmount': 180000, 318 'applyUAmount': 180000, 319 'approvalAmount': 0, 320 'approvalUAmount': 0, 321 'changeAmount': '', 322 'status': '0', 323 'remark': null, 324 'edit': false, 325 'activityId': null, 326 'children': null, 327 'childrenDetails': null, 328 'groupDpid': 'B3F8A7FD8EE9077C482569D400378941', 329 'flowType': '4', 330 'splitSubjectFlag': false 331 }, 332 { 333 'id': 273, 334 'dpid': 'B3F8A7FD8EE9077C482569D400378941', 335 'dpname': '信息技术部', 336 'subjectName': '固定资产采购-电脑设备-服务器', 337 'subjectId': null, 338 'specName': '海光服务器-规格6', 339 'conf': 'CPU:2* 海光7280; 内存:64GB 3200MHz 硬盘:2 * 960G SSD, RAID卡:支持RIAD 0/1/10/5/6,支持直通,2G Cache,含掉电保护; 网口:2*10GE光口(含光模块),2*1G电口; 冗余电源;5年7x24*4', 340 'budgetUsername': null, 341 'desc': null, 342 'count': 4, 343 'applyAmount': 360000, 344 'applyUAmount': 360000, 345 'approvalAmount': 0, 346 'approvalUAmount': 0, 347 'changeAmount': '', 348 'status': '0', 349 'remark': null, 350 'edit': false, 351 'activityId': null, 352 'children': null, 353 'childrenDetails': null, 354 'groupDpid': 'B3F8A7FD8EE9077C482569D400378941', 355 'flowType': '4', 356 'splitSubjectFlag': false 357 } 358 ], 359 'childrenDetails': null, 360 'groupDpid': '', 361 'flowType': null, 362 'splitSubjectFlag': true 363 }, 364 { 365 'id': 28, 366 'dpid': '515AF64E1B7C810648257B9D000E4C5C', 367 'dpname': '电子商务部', 368 'subjectName': null, 369 'subjectId': null, 370 'specName': null, 371 'conf': null, 372 'budgetUsername': null, 373 'desc': null, 374 'count': 4, 375 'applyAmount': 720000, 376 'applyUAmount': 720000, 377 'approvalAmount': 0, 378 'approvalUAmount': 0, 379 'changeAmount': null, 380 'status': '0', 381 'remark': null, 382 'edit': true, 383 'activityId': '04', 384 'children': [{ 385 'id': 281, 386 'dpid': '79B5243D3A1D981848257E0E003244F4', 387 'dpname': '广州林和西路营业部', 388 'subjectName': null, 389 'subjectId': null, 390 'specName': null, 391 'conf': null, 392 'budgetUsername': null, 393 'desc': null, 394 'count': 2, 395 'applyAmount': 360000, 396 'applyUAmount': 360000, 397 'approvalAmount': 0, 398 'approvalUAmount': 0, 399 'changeAmount': null, 400 'status': null, 401 'remark': null, 402 'edit': false, 403 'activityId': null, 404 'children': [{ 405 'id': 2811, 406 'dpid': '79B5243D3A1D981848257E0E003244F4', 407 'dpname': '广州林和西路营业部', 408 'subjectName': '固定资产采购-电脑设备-服务器', 409 'subjectId': null, 410 'specName': '海光服务器-规格6', 411 'conf': 'CPU:2* 海光7280; 内存:64GB 3200MHz 硬盘:2 * 960G SSD, RAID卡:支持RIAD 0/1/10/5/6,支持直通,2G Cache,含掉电保护; 网口:2*10GE光口(含光模块),2*1G电口; 冗余电源;5年7x24*4', 412 'budgetUsername': null, 413 'desc': null, 414 'count': 2, 415 'applyAmount': 360000, 416 'applyUAmount': 360000, 417 'approvalAmount': 360000, 418 'approvalUAmount': 360000, 419 'changeAmount': null, 420 'status': '0', 421 'remark': null, 422 'edit': false, 423 'activityId': null, 424 'children': null, 425 'childrenDetails': null, 426 'groupDpid': '515AF64E1B7C810648257B9D000E4C5C', 427 'flowType': '2', 428 'splitSubjectFlag': false 429 }], 430 'childrenDetails': null, 431 'groupDpid': null, 432 'flowType': null, 433 'splitSubjectFlag': false 434 }, 435 { 436 'id': 282, 437 'dpid': '7DBDCC0A6D8F1F134825824A00160727', 438 'dpname': '广州花城大道美林基业大厦营业部', 439 'subjectName': null, 440 'subjectId': null, 441 'specName': null, 442 'conf': null, 443 'budgetUsername': null, 444 'desc': null, 445 'count': 2, 446 'applyAmount': 360000, 447 'applyUAmount': 360000, 448 'approvalAmount': 0, 449 'approvalUAmount': 0, 450 'changeAmount': null, 451 'status': null, 452 'remark': null, 453 'edit': false, 454 'activityId': null, 455 'children': [{ 456 'id': 2821, 457 'dpid': '7DBDCC0A6D8F1F134825824A00160727', 458 'dpname': '广州花城大道美林基业大厦营业部', 459 'subjectName': '固定资产采购-电脑设备-服务器', 460 'subjectId': null, 461 'specName': 'ARM服务器-规格15', 462 'conf': 'CPU:2*鲲鹏920 5250,48Core\n内存:256GB\n硬盘:2*480GB SSD,2*1.92TB SSD,12*8TB SAS\nRAID卡:支持RIAD 0/1/10/5/6,2G Cache,含掉电保护\n网口:4*10GE光口(含光模块),4*1G电口;\n冗余电源;5年7x24*4', 463 'budgetUsername': null, 464 'desc': null, 465 'count': 2, 466 'applyAmount': 360000, 467 'applyUAmount': 360000, 468 'approvalAmount': 360000, 469 'approvalUAmount': 360000, 470 'changeAmount': null, 471 'status': '0', 472 'remark': null, 473 'edit': false, 474 'activityId': null, 475 'children': null, 476 'childrenDetails': null, 477 'groupDpid': '515AF64E1B7C810648257B9D000E4C5C', 478 'flowType': '2', 479 'splitSubjectFlag': false 480 }], 481 'childrenDetails': null, 482 'groupDpid': null, 483 'flowType': null, 484 'splitSubjectFlag': false 485 } 486 ], 487 'childrenDetails': null, 488 'groupDpid': '30B94CFE089FE56A482569D40037891C', 489 'flowType': null, 490 'splitSubjectFlag': true 491 }, 492 { 493 'id': 29, 494 'dpid': 'C3B6C8EDA11A87B648257F4C0024949B', 495 'dpname': '机构与同业部', 496 'subjectName': null, 497 'subjectId': null, 498 'specName': null, 499 'conf': null, 500 'budgetUsername': null, 501 'desc': null, 502 'count': 8, 503 'applyAmount': 720000, 504 'applyUAmount': 720000, 505 'approvalAmount': 0, 506 'approvalUAmount': 0, 507 'changeAmount': null, 508 'status': '0', 509 'remark': null, 510 'edit': true, 511 'activityId': '04', 512 'children': [{ 513 'id': 291, 514 'dpid': 'C3B6C8EDA11A87B648257F4C0024949B', 515 'dpname': '机构与同业部', 516 'subjectName': '固定资产采购-电脑设备-服务器', 517 'subjectId': null, 518 'specName': '海光服务器-规格6', 519 'conf': 'CPU:2* 海光7280; 内存:64GB 3200MHz 硬盘:2 * 960G SSD, RAID卡:支持RIAD 0/1/10/5/6,支持直通,2G Cache,含掉电保护; 网口:2*10GE光口(含光模块),2*1G电口; 冗余电源;5年7x24*4', 520 'budgetUsername': null, 521 'desc': null, 522 'count': 2, 523 'applyAmount': 180000, 524 'applyUAmount': 180000, 525 'approvalAmount': 180000, 526 'approvalUAmount': 180000, 527 'changeAmount': '', 528 'status': '0', 529 'remark': null, 530 'edit': false, 531 'activityId': null, 532 'children': null, 533 'childrenDetails': null, 534 'groupDpid': 'C3B6C8EDA11A87B648257F4C0024949B', 535 'flowType': '3', 536 'splitSubjectFlag': false 537 }, 538 { 539 'id': 292, 540 'dpid': 'C3B6C8EDA11A87B648257F4C0024949B', 541 'dpname': '机构与同业部', 542 'subjectName': '固定资产采购-电脑设备-服务器', 543 'subjectId': null, 544 'specName': 'ARM服务器-规格15', 545 'conf': 'CPU:2*鲲鹏920 5250,48Core\n内存:256GB\n硬盘:2*480GB SSD,2*1.92TB SSD,12*8TB SAS\nRAID卡:支持RIAD 0/1/10/5/6,2G Cache,含掉电保护\n网口:4*10GE光口(含光模块),4*1G电口;\n冗余电源;5年7x24*4', 546 'budgetUsername': null, 547 'desc': null, 548 'count': 2, 549 'applyAmount': 180000, 550 'applyUAmount': 180000, 551 'approvalAmount': 180000, 552 'approvalUAmount': 180000, 553 'changeAmount': '', 554 'status': '0', 555 'remark': null, 556 'edit': false, 557 'activityId': null, 558 'children': null, 559 'childrenDetails': null, 560 'groupDpid': 'C3B6C8EDA11A87B648257F4C0024949B', 561 'flowType': '3', 562 'splitSubjectFlag': false 563 }, 564 { 565 'id': 293, 566 'dpid': 'C3B6C8EDA11A87B648257F4C0024949B', 567 'dpname': '机构与同业部', 568 'subjectName': '固定资产采购-电脑设备-服务器', 569 'subjectId': null, 570 'specName': '海光服务器-规格6', 571 'conf': 'CPU:2* 海光7280; 内存:64GB 3200MHz 硬盘:2 * 960G SSD, RAID卡:支持RIAD 0/1/10/5/6,支持直通,2G Cache,含掉电保护; 网口:2*10GE光口(含光模块),2*1G电口; 冗余电源;5年7x24*4', 572 'budgetUsername': null, 573 'desc': null, 574 'count': 4, 575 'applyAmount': 360000, 576 'applyUAmount': 360000, 577 'approvalAmount': 360000, 578 'approvalUAmount': 360000, 579 'changeAmount': '', 580 'status': '0', 581 'remark': null, 582 'edit': false, 583 'activityId': null, 584 'children': null, 585 'childrenDetails': null, 586 'groupDpid': 'C3B6C8EDA11A87B648257F4C0024949B', 587 'flowType': '3', 588 'splitSubjectFlag': false 589 } 590 ], 591 'childrenDetails': null, 592 'groupDpid': '30B94CFE089FE56A482569D40037891C', 593 'flowType': null, 594 'splitSubjectFlag': true 595 } 596 ]
utils.js
1 // 处理数据:让每个有children子级的添加openLeaves: false,标识为是否打开了子级 2 // 发请求,后端返回数据直接处理完再赋值到this.data.xxx中 3 export const processingData = (tableData, ids = '') => { 4 tableData && tableData.forEach((item, idx) => { 5 item.id == null && (item.id = `sjd${idx}`) // 如id为null,那么自定义id 6 item.isSelected = false // 是否勾选 7 item.idCopy = ids + item.id 8 item.approvalOpinion = '0' // 只是暂时添加后面有接口就注释 9 item.val = item.jjj - item.eee // 暂时添加这个属性用来做用于变动金额的显示 10 if (item.children) { 11 item.openLeaves = false // 是否打开了子节点 12 processingData(item.children, `${item.idCopy}-`) 13 } 14 }) 15 } 16 17 // 得到表格data中的全部数据,包括children里的 18 // 此方法也要作用于每个环节的审批的金额是否已经填写 19 export const getTableAllData = (tableData, arr = []) => { 20 tableData && tableData.forEach(item => { 21 arr.push(item) 22 getTableAllData(item.children, arr) 23 }) 24 return arr 25 }
这样就更好得到勾选的每个数据了