• vue+element实现多级表头加树结构


    标题两种展示方式

    方式一

    在这里插入图片描述
    完整代码:

    <template>
      <div class="box">
        <el-table
          ref="areaPointTable"
          :data="tableData"
          border
          :span-method="objectSpanMethod"
          :header-cell-style="tableHeaderMerge"
        >
          <el-table-column
            :prop="item.prop?item.prop:''"
            :label="item.titleName"
            align="center"
            v-for="(item, index) in tableHeader"
            :key="index"
          >
            <template slot-scope="{ row, column, $index }">
              <span
                v-if="column.property=='bigType'"
                @click="handleDeleteN(row, column, $index)"
                :class="row[item.prop] == '未达标' ? 'text-red' : ''"
                :style="row[item.prop] < 0 ? 'color:red;' : ''"
                style="cursor: pointer;"
              >
                {{
                isNaN(row[item.prop])?row[item.prop]:
                row[item.prop] >= 0
                ? row[item.prop]
                : Math.abs(row[item.prop])
                }}
              </span>
              <span
                v-else
                :class="row[item.prop] == '未达标' ? 'text-red' : ''"
                :style="row[item.prop] < 0 ? 'color:red;' : ''"
              >
                {{
                isNaN(row[item.prop])?row[item.prop]:
                row[item.prop] >= 0
                ? row[item.prop]
                : Math.abs(row[item.prop])
                }}
              </span>
            </template>
            <el-table-column
              :prop="iteam.prop"
              :label="iteam.titleName"
              align="center"
              v-for="(iteam, idx) in item.childTitle"
              :key="idx"
            >
              <template slot-scope="{ row }">
                <span
                  :class="row[iteam.prop] == '未达标' ? 'text-red' : ''"
                  :style="row[iteam.prop] < 0 ? 'color:red;' : ''"
                >
                  {{
                  isNaN(row[iteam.prop])?row[iteam.prop]:
                  row[iteam.prop] >= 0
                  ? row[iteam.prop]
                  : Math.abs(row[iteam.prop])
                  }}
                </span>
              </template>
            </el-table-column>
          </el-table-column>
        
        </el-table>
      </div>
    </template>
    <script>
    export default {
      name: 'demo',
      data() {
        return {
          input: '',
        
          tableHeader: [
            {
              titleName: '类型',
              childTitle: null,
              prop: 'bigType',
            },
            {
              titleName: '类型',
              childTitle: null,
              prop: 'smallType1',
            },
            {
              titleName: 'A',
              childTitle: [
                {
                  titleName: 'a1',
                  childTitle: null,
                  prop: 'prop2',
                },
                {
                  titleName: 'a2',
                  childTitle: null,
                  prop: 'prop3',
                },
              ],
            },
            {
              titleName: 'B',
              childTitle: [
                {
                  titleName: 'b1',
                  childTitle: null,
                  prop: 'prop4',
                },
                {
                  titleName: 'b2',
                  childTitle: null,
                  prop: 'prop5',
                },
                {
                  titleName: 'b3',
                  childTitle: null,
                  prop: 'prop6',
                },
                {
                  titleName: 'b4',
                  childTitle: null,
                  prop: 'prop7',
                },
              ],
            },
            {
              titleName: 'C',
              childTitle: [
                {
                  titleName: 'c1',
                  childTitle: null,
                  prop: 'prop8',
                },
                {
                  titleName: 'c2',
                  childTitle: null,
                  prop: 'prop9',
                },
                {
                  titleName: 'c3',
                  childTitle: null,
                  prop: 'prop10',
                },
              ],
            },
            {
              titleName: 'D',
              childTitle: [
                {
                  titleName: 'd1',
                  childTitle: null,
                  prop: 'prop11',
                },
                {
                  titleName: 'd2',
                  childTitle: null,
                  prop: 'prop12',
                },
              ],
            },
            {
              titleName: 'W',
              childTitle: [
                {
                  titleName: 'w1',
                  childTitle: null,
                  prop: 'prop13',
                },
                {
                  titleName: 'w2',
                  childTitle: null,
                  prop: 'prop14',
                },
              ],
            },
          ],
          initTableData: [
            {
              id: 23,
              bigType: 'AA',
              smallType1: 'aa1',
              prop2: '1.0',
              prop3: '2.5',
              prop4: '40.0',
              prop5: '1.0',
              prop6: '2.5',
              prop7: '未达标',
              prop8: '0.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '1.0',
              prop12: '100.0',
              prop13: '1.0',
              prop14: '100.0',
              rowspan: 1,
            },
            {
              id: 38,
              bigType: 'AA',
              smallType1: 'aa2',
              prop2: '8.0',
              prop3: '100.0',
              prop4: '2.0',
              prop5: '8.0',
              prop6: '100.0',
              prop7: '达标',
              prop8: '8.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '6.0',
              prop12: '75.0',
              prop13: '8.0',
              prop14: '100.0',
            },
            {
              id: 53,
              bigType: 'AA',
              smallType1: 'aa3',
              prop2: '19.0',
              prop3: '47.5',
              prop4: '40.0',
              prop5: '19.0',
              prop6: '47.5',
              prop7: '未达标',
              prop8: '19.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '19.0',
              prop12: '100.0',
              prop13: '19.0',
              prop14: '100.0',
            },
            {
              id: 68,
              bigType: 'AA',
              smallType1: 'aa4',
              prop2: '0.0',
              prop3: '0.0',
              prop4: '0.0',
              prop5: '0.0',
              prop6: '0.0',
              prop7: '未达标',
              prop8: '0.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '0.0',
              prop12: '0.0',
              prop13: '0.0',
              prop14: '0.0',
            },
            {
              id: 83,
              bigType: 'XX',
              smallType1: 'xx1',
              prop2: '55.0',
              prop3: '0.0',
              prop4: '0.0',
              prop5: '76.0',
              prop6: '0.0',
              prop7: '未达标',
              prop8: '64.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '65.0',
              prop12: '85.53',
              prop13: '61.0',
              prop14: '80.26',
              rowspan: 1,
            },
            {
              id: 831,
              bigType: 'XX',
              smallType1: 'xx2',
              prop2: '55.0',
              prop3: '0.0',
              prop4: '0.0',
              prop5: '76.0',
              prop6: '0.0',
              prop7: '未达标',
              prop8: '64.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '65.0',
              prop12: '85.53',
              prop13: '61.0',
              prop14: '80.26',
              rowspan: 1,
            },
            {
              id: 832,
              bigType: 'XX',
              smallType1: 'xx3',
              prop2: '55.0',
              prop3: '0.0',
              prop4: '0.0',
              prop5: '76.0',
              prop6: '0.0',
              prop7: '未达标',
              prop8: '64.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '65.0',
              prop12: '85.53',
              prop13: '61.0',
              prop14: '80.26',
              rowspan: 1,
            },
            {
              id: 98,
              bigType: 'QQ',
              smallType1: '-',
              prop2: '0.0',
              prop3: '0.0',
              prop4: '0.0',
              prop5: '0.0',
              prop6: '0.0',
              prop7: '未达标',
              prop8: '0.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '0.0',
              prop12: '0.0',
              prop13: '0.0',
              prop14: '0.0',
              rowspan: 1,
            },
            {
              id: 113,
              bigType: 'WW',
              smallType1: 'ww',
              prop2: '0.0',
              prop3: '0.0',
              prop4: '0.0',
              prop5: '0.0',
              prop6: '0.0',
              prop7: '未达标',
              prop8: '0.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '0.0',
              prop12: '0.0',
              prop13: '0.0',
              prop14: '0.0',
              rowspan: 1,
            },
            {
              id: 128,
              bigType: 'DD',
              smallType1: 'dd1',
              prop2: '1.0',
              prop3: '1.25',
              prop4: '80.0',
              prop5: '1.0',
              prop6: '1.25',
              prop7: '未达标',
              prop8: '1.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '1.0',
              prop12: '100.0',
              prop13: '1.0',
              prop14: '100.0',
              rowspan: 1,
            },
            {
              id: 1281,
              bigType: 'DD',
              smallType1: 'dd2',
              prop2: '1.0',
              prop3: '1.25',
              prop4: '80.0',
              prop5: '1.0',
              prop6: '1.25',
              prop7: '未达标',
              prop8: '1.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '1.0',
              prop12: '100.0',
              prop13: '1.0',
              prop14: '100.0',
              rowspan: 1,
            },
            {
              id: 1282,
              bigType: 'DD',
              smallType1: 'dd3',
              prop2: '1.0',
              prop3: '1.25',
              prop4: '80.0',
              prop5: '1.0',
              prop6: '1.25',
              prop7: '未达标',
              prop8: '1.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '1.0',
              prop12: '100.0',
              prop13: '1.0',
              prop14: '100.0',
              rowspan: 1,
            },
          ],
          dialogTypeMergeArr: [
            {
              rowspan: 4,
              colspan: 1,
            },
            {
              rowspan: 0,
              colspan: 0,
            },
            {
              rowspan: 0,
              colspan: 0,
            },
            {
              rowspan: 0,
              colspan: 0,
            },
            {
              rowspan: 1,
              colspan: 1,
            },
            {
              rowspan: 1,
              colspan: 1,
            },
            {
              rowspan: 1,
              colspan: 1,
            },
            {
              rowspan: 1,
              colspan: 1,
            },
          ],
          tableData: [],
          select_box: [],
        }
      },
      mounted() {
        this.dealTableData(this.initTableData)
        this.dialogHeaderMergeArr = this.mergeTableHeader(this.tableHeader)
      },
      methods: {
        tableHeaderMerge({ row, column, rowIndex, columnIndex }) {
          console.log(312312)
          if (rowIndex == 0) {
            this.$nextTick(() => {
              // row[columnIndex].colSpan=this.dialogHeaderMergeArr[columnIndex];
              if (document.getElementsByClassName(column.id).length !== 0) {
                document
                  .getElementsByClassName(column.id)[0]
                  .setAttribute('colSpan', this.dialogHeaderMergeArr[columnIndex])
              }
            })
            if (this.dialogHeaderMergeArr[columnIndex] == 0) {
              return { display: 'none' }
            }
          }
        },
        mergeTableHeader(data) {
          let countArr = []
          let labelArr = []
          data.map((item) => {
            labelArr = countArr.map((obj) => obj.label)
            if (item.childTitle) {
              countArr.push({
                label: item.titleName,
                colSpan: item.childTitle.length,
                hasChild: true,
              })
            } else {
              if (labelArr.includes(item.titleName)) {
                countArr.map((iteam) => {
                  if (iteam.label == item.titleName) iteam.colSpan += 1
                })
              } else {
                countArr.push({
                  label: item.titleName,
                  colSpan: 1,
                  hasChild: false,
                })
              }
            }
          })
          let tableHeaderCountArr = []
          countArr.map((item) => {
            if (!item.hasChild) {
              for (var i = 0; i < item.colSpan - 1; i++) {
                tableHeaderCountArr.push(0)
              }
            }
            tableHeaderCountArr.push(item.colSpan)
          })
          return tableHeaderCountArr
        },
        /**
         * 处理表格数据合并行
         */
        dealTableData(data) {
          //把日期相同的数据并排在一块
          const list = this.margePropData(data, 'bigType')
          //处理日期相同的合并
          this.tableData = this.mergeRows(list, 'bigType')
        },
    
        handleDeleteN(row, column, $index) {
          this.initTableData.filter((item, index) => {
            if (row.bigType === item.bigType && index !== $index) {
            }
    
            // row.bigType === item.bigType && index !== 0
          })
          let curChildern = this.tableData.filter(
            (item, index) => row.bigType === item.bigType && index !== $index
          )
          let curChildern_init = this.initTableData.filter(
            (item, index) => row.bigType === item.bigType && row.smallType1 !== item.smallType1
          )
    
          if (this.tableData.filter((item, index) => row.bigType === item.bigType).length == 1) {
            if (curChildern.length > 1) {
              this.tableData.push(...curChildern)
    
              this.dealTableData(this.tableData)
            } else {
              this.tableData.push(...curChildern_init)
    
              this.dealTableData(this.tableData)
              return
            }
          } else {
            let newTableData = this.tableData.filter(
              (e) => curChildern.filter((x) => e.id != x.id).length == curChildern.length
            )
    
            // this.tableData = newTableData
            // this.tableData = this.tableData.filter((it, i) => row.id === it.id)
            this.dealTableData(newTableData)
          }
        },
    
        /**
         * 合并行
         * @param row
         * @param column
         * @param rowIndex
         * @param columnIndex
         * @returns {{colspan: number, rowspan: (number|*)}}
         */
        objectSpanMethod({ row, column, rowIndex, columnIndex }) {
          if ([0].includes(columnIndex)) {
            return {
              rowspan: row.rowspan,
              colspan: 1,
            }
          }
          // if (column.property == 'bigType') {
          //   return this.dialogTypeMergeArr[rowIndex]
          // }
        },
        /**
         * 数组中,某个属性相同的数据放在一块,如把某个日期相同的相连一起
         * @param list 传入的数组
         * @param prop 那个属性相同的数据
         * @returns {*[]}
         */
        margePropData(list = [], prop) {
          let arr = [],
            tempArr = {}
          list.forEach((item) => {
            if (!tempArr[item[prop]]) {
              tempArr[item[prop]] = [item]
            } else {
              tempArr[item[prop]].push(item)
            }
          })
          for (const tempArrKey in tempArr) {
            arr = [...arr, ...tempArr[tempArrKey]]
          }
          return arr
        },
        /**
         * 根据当前数据的位置,在数组中插入数据
         * 如数组【1,2,4,5】想要在2后面插入3,
         *1:首先获取到2的下标,
         *2:然后获取要插入之前的数据,获取要插入之后的数据,中间就是插入的位置
         *3:最后把这三个按顺序合并就得到在想要的位置插入数据
         * @param list
         * @param index
         * @param target
         */
        insertArrPositionOfIndex(list = [], index = 0, target = {}) {
          //根据index 找出小于index的数据放在左边
          const leftList = list.filter((t, i) => i < index)
          //根据index 找出大于index的数据放在右边
          const rightList = list.filter((t, i) => i >= index)
          // 最终合并数据
          return [...leftList, target, ...rightList]
        },
        /**
         * 合并行
         * @param list
         * @param prop
         */
        mergeRows(list = [], prop) {
          list.forEach((ele) => {
            ele.rowspan = 1
          })
          const len = list.length
          for (let i = 0; i < len; i++) {
            for (let j = i + 1; j < len; j++) {
              if (list[i][prop] === list[j][prop]) {
                list[i].rowspan++
                list[j].rowspan--
              }
            }
            // 这里跳过已经重复的数据
            i = i + list[i].rowspan - 1
          }
          return list
        },
      },
      /**
       * 对象数组去重
       * @param arr 数组
       * @param prop 根据什么字段去重
       * @returns {any[]}
       */ arrayDeduplication(arr, prop) {
        let map = new Map()
        return arr.filter((item) => !map.has(item[prop]) && map.set(item[prop], 1))
      },
    }
    </script>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
    • 324
    • 325
    • 326
    • 327
    • 328
    • 329
    • 330
    • 331
    • 332
    • 333
    • 334
    • 335
    • 336
    • 337
    • 338
    • 339
    • 340
    • 341
    • 342
    • 343
    • 344
    • 345
    • 346
    • 347
    • 348
    • 349
    • 350
    • 351
    • 352
    • 353
    • 354
    • 355
    • 356
    • 357
    • 358
    • 359
    • 360
    • 361
    • 362
    • 363
    • 364
    • 365
    • 366
    • 367
    • 368
    • 369
    • 370
    • 371
    • 372
    • 373
    • 374
    • 375
    • 376
    • 377
    • 378
    • 379
    • 380
    • 381
    • 382
    • 383
    • 384
    • 385
    • 386
    • 387
    • 388
    • 389
    • 390
    • 391
    • 392
    • 393
    • 394
    • 395
    • 396
    • 397
    • 398
    • 399
    • 400
    • 401
    • 402
    • 403
    • 404
    • 405
    • 406
    • 407
    • 408
    • 409
    • 410
    • 411
    • 412
    • 413
    • 414
    • 415
    • 416
    • 417
    • 418
    • 419
    • 420
    • 421
    • 422
    • 423
    • 424
    • 425
    • 426
    • 427
    • 428
    • 429
    • 430
    • 431
    • 432
    • 433
    • 434
    • 435
    • 436
    • 437
    • 438
    • 439
    • 440
    • 441
    • 442
    • 443
    • 444
    • 445
    • 446
    • 447
    • 448
    • 449
    • 450
    • 451
    • 452
    • 453
    • 454
    • 455
    • 456
    • 457
    • 458
    • 459
    • 460
    • 461
    • 462
    • 463
    • 464
    • 465
    • 466
    • 467
    • 468
    • 469
    • 470
    • 471
    • 472
    • 473
    • 474
    • 475
    • 476
    • 477
    • 478
    • 479
    • 480
    • 481
    • 482
    • 483
    • 484
    • 485
    • 486
    • 487
    • 488
    • 489
    • 490
    • 491
    • 492
    • 493
    • 494
    • 495
    • 496
    • 497
    • 498
    • 499
    • 500
    • 501
    • 502
    • 503
    • 504
    • 505
    • 506
    • 507
    • 508
    • 509
    • 510
    • 511
    • 512
    • 513
    • 514
    • 515
    • 516
    • 517
    • 518
    • 519
    • 520
    • 521
    • 522
    • 523
    • 524
    • 525
    • 526
    • 527
    • 528
    • 529
    • 530
    • 531
    • 532
    • 533
    • 534
    • 535
    • 536
    • 537
    • 538
    • 539
    • 540
    • 541
    • 542
    • 543
    • 544
    • 545
    • 546
    • 547
    • 548
    • 549
    • 550
    • 551
    • 552
    • 553
    • 554
    • 555
    • 556
    • 557
    • 558
    • 559
    • 560
    • 561
    • 562
    • 563
    • 564
    • 565
    • 566
    • 567
    • 568
    • 569
    • 570
    • 571
    • 572
    • 573
    • 574
    • 575
    • 576
    • 577
    • 578
    • 579
    • 580
    • 581
    • 582
    • 583
    • 584
    • 585
    • 586
    • 587
    • 588
    • 589
    • 590
    • 591
    • 592
    • 593
    • 594
    • 595
    • 596
    • 597
    • 598
    • 599
    • 600
    • 601
    • 602
    • 603
    • 604
    • 605
    • 606
    • 607
    • 608
    • 609
    • 610
    • 611
    • 612
    • 613
    • 614
    • 615
    • 616
    • 617
    • 618
    • 619
    • 620
    • 621
    • 622
    • 623
    • 624
    • 625
    • 626
    • 627
    • 628
    • 629
    • 630
    • 631
    • 632
    • 633
    • 634
    • 635
    • 636
    • 637
    • 638
    • 639
    • 640

    方式二

    在这里插入图片描述

    <template>
      <el-table
        :data="tableData"
        row-key="id"
        :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
      >
        <el-table-column
          v-for="(column, index) in columns"
          :key="index"
          :label="column.titleName"
          :prop="column.prop"
          :width="column.width"
          :align="column.align"
        >
          <template slot-scope="{ row, $index }">{{ row[column.prop] }}</template>
          <el-table-column
            v-if="column.childTitle"
            v-for="(subColumn, subIndex) in column.childTitle"
            :key="subIndex"
            :label="subColumn.titleName"
            :prop="subColumn.prop"
            :width="subColumn.width"
            :align="subColumn.align"
          >
            <template slot-scope="{ row, $index }">{{ row[subColumn.prop] }}</template>
          </el-table-column>
        </el-table-column>
      </el-table>
    </template>
    
    <script>
    export default {
      data() {
        return {
          tableData: [
            {
              id: 1,
              bigType: 'AA',
              smallType1: 'aa1',
              prop2: '2.0',
              prop3: '5.0',
              prop4: '40.0',
              prop5: '2.0',
              prop6: '5.0',
              prop7: '未达标',
              prop8: '0.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '2.0',
              prop12: '100.0',
              prop13: '2.0',
              prop14: '100.0',
              children: [
                {
                  bigType: 'aa1',
                  smallType1: 'aa1',
                  prop2: '2.0',
                  prop3: '5.0',
                  prop4: '40.0',
                  prop5: '2.0',
                  prop6: '5.0',
                  prop7: '未达标',
                  prop8: '0.0',
                  prop9: '0.0',
                  prop10: '0.0',
                  prop11: '2.0',
                  prop12: '100.0',
                  prop13: '2.0',
                  prop14: '100.0',
                  id: 2,
                },
                {
                  bigType: 'aa2',
                  smallType1: 'aa2',
                  prop2: '8.0',
                  prop3: '100.0',
                  prop4: '2.0',
                  prop5: '8.0',
                  prop6: '100.0',
                  prop7: '达标',
                  prop8: '8.0',
                  prop9: '0.0',
                  prop10: '0.0',
                  prop11: '6.0',
                  prop12: '75.0',
                  prop13: '8.0',
                  prop14: '100.0',
                  id: 3,
                },
                {
                  bigType: 'aa3',
                  smallType1: 'aa3',
                  prop2: '19.0',
                  prop3: '47.5',
                  prop4: '40.0',
                  prop5: '19.0',
                  prop6: '47.5',
                  prop7: '未达标',
                  prop8: '19.0',
                  prop9: '0.0',
                  prop10: '0.0',
                  prop11: '19.0',
                  prop12: '100.0',
                  prop13: '19.0',
                  prop14: '100.0',
                  id: 4,
                },
                {
                  bigType: 'aa4',
                  smallType1: 'aa4',
                  prop2: '0.0',
                  prop3: '0.0',
                  prop4: '0.0',
                  prop5: '0.0',
                  prop6: '0.0',
                  prop7: '未达标',
                  prop8: '0.0',
                  prop9: '0.0',
                  prop10: '0.0',
                  prop11: '0.0',
                  prop12: '0.0',
                  prop13: '0.0',
                  prop14: '0.0',
                  id: 5,
                },
              ],
            },
            {
              id: 6,
              bigType: 'BB',
              prop2: '55.0',
              prop3: '0.0',
              prop4: '0.0',
              prop5: '76.0',
              prop6: '0.0',
              prop7: '未达标',
              prop8: '64.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '65.0',
              prop12: '85.53',
              prop13: '61.0',
              prop14: '80.26',
              children: [
                {
                  bigType: 'bb1',
                  smallType1: 'bb1',
                  prop2: '55.0',
                  prop3: '0.0',
                  prop4: '0.0',
                  prop5: '76.0',
                  prop6: '0.0',
                  prop7: '未达标',
                  prop8: '64.0',
                  prop9: '0.0',
                  prop10: '0.0',
                  prop11: '65.0',
                  prop12: '85.53',
                  prop13: '61.0',
                  prop14: '80.26',
                  id: 7,
                },
                {
                  bigType: 'bb2',
                  smallType1: 'bb2',
                  prop2: '55.0',
                  prop3: '0.0',
                  prop4: '0.0',
                  prop5: '76.0',
                  prop6: '0.0',
                  prop7: '未达标',
                  prop8: '64.0',
                  prop9: '0.0',
                  prop10: '0.0',
                  prop11: '65.0',
                  prop12: '85.53',
                  prop13: '61.0',
                  prop14: '80.26',
                  id: 17,
                },
              ],
            },
            {
              id: 8,
              bigType: 'DD',
              prop2: '0.0',
              prop3: '0.0',
              prop4: '0.0',
              prop5: '0.0',
              prop6: '0.0',
              prop7: '未达标',
              prop8: '0.0',
              prop9: '0.0',
              prop10: '0.0',
              prop11: '0.0',
              prop12: '0.0',
              prop13: '0.0',
              prop14: '0.0',
              children: [
                {
                  bigType: 'dd1',
                  smallType1: 'dd1',
                  prop2: '0.0',
                  prop3: '0.0',
                  prop4: '0.0',
                  prop5: '0.0',
                  prop6: '0.0',
                  prop7: '未达标',
                  prop8: '0.0',
                  prop9: '0.0',
                  prop10: '0.0',
                  prop11: '0.0',
                  prop12: '0.0',
                  prop13: '0.0',
                  prop14: '0.0',
                  id: 9,
                },
              ],
            },
          ],
          columns: [
            {
              titleName: '类型',
              childTitle: null,
              prop: 'bigType',
            },
    
            {
              titleName: 'A',
              childTitle: [
                {
                  titleName: 'a1',
                  childTitle: null,
                  prop: 'prop2',
                },
                {
                  titleName: 'a2',
                  childTitle: null,
                  prop: 'prop3',
                },
              ],
            },
            {
              titleName: 'B',
              childTitle: [
                {
                  titleName: 'b1',
                  childTitle: null,
                  prop: 'prop4',
                },
                {
                  titleName: 'b2',
                  childTitle: null,
                  prop: 'prop5',
                },
                {
                  titleName: 'b3',
                  childTitle: null,
                  prop: 'prop6',
                },
                {
                  titleName: 'b4',
                  childTitle: null,
                  prop: 'prop7',
                },
              ],
            },
            {
              titleName: 'C',
              childTitle: [
                {
                  titleName: 'c1',
                  childTitle: null,
                  prop: 'prop8',
                },
                {
                  titleName: 'c2',
                  childTitle: null,
                  prop: 'prop9',
                },
                {
                  titleName: 'c3',
                  childTitle: null,
                  prop: 'prop10',
                },
              ],
            },
            {
              titleName: 'D',
              childTitle: [
                {
                  titleName: 'd1',
                  childTitle: null,
                  prop: 'prop11',
                },
                {
                  titleName: 'd2',
                  childTitle: null,
                  prop: 'prop12',
                },
              ],
            },
            {
              titleName: 'W',
              childTitle: [
                {
                  titleName: 'w1',
                  childTitle: null,
                  prop: 'prop13',
                },
                {
                  titleName: 'w2',
                  childTitle: null,
                  prop: 'prop14',
                },
              ],
            },
          ],
        }
      },
    }
    </script>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
  • 相关阅读:
    前端食堂技术周刊第 48 期:ESLint 新配置系统、Vue3 中文文档正式上线、Astro 1.0、小程序新渲染引擎
    Java简介、基本语法
    C语言有关内存的几个疑问,以memset以及memcpy为例
    金蝶云星空企业版v8.0内网穿透配置详解:实现便捷的异地远程访问
    一个简单的异步爬虫
    [附源码]计算机毕业设计企业售后服务管理系统Springboot程序
    JZ4 二维数组中的查找
    浅谈——网络安全架构设计(三)
    PLC有几种编程语言以及它们的特点是什么
    docker离线安装问题解决
  • 原文地址:https://blog.csdn.net/liuy_1314/article/details/134474455