RowspanTable.vue 7.29 KB
<template>
  <a-card :bordered="false">
    <!-- table区域-begin -->
    <a-table
      ref="table"
      size="default"
      bordered
      rowKey="id"
      :columns="columns"
      :pagination="false"
      :dataSource="dataSource">

    </a-table>
    <!-- table区域-end -->


  </a-card>
</template>

<script>

export default {
  name: "RowspanTable",
  components: {},
  data() {
    return {
      description: '存放位置设置表管理页面',
      levelNum: {},
      gridNum: 0,
      boxNum: 0,
      cabinetNo: "",
      // 表头
      columns: [{
        title: '分组一',
        align: "center",
        dataIndex: 'cabinetNo',
        customRender: (value, row, index) => {
          const obj = {
            children: value,
            attrs: {},
          };
          if (index === 0) {
            obj.attrs.rowSpan = this.dataSource.length;
          } else {
            obj.attrs.rowSpan = 0;
          }
          return obj;
        },
      },
        {
          title: '分组二',
          align: "center",
          dataIndex: 'levelNo',
          customRender: (value, row, index) => {
            const obj = {
              children: value,
              attrs: {},
            };
            //当前列跨行的条数
            var a = parseInt(this.levelNum);
            var b = parseInt(this.gridNum) * parseInt(this.boxNum);
            console.log(a);
            for (var c = 0; c <= a; c++) {
              if (index === (c * b)) {
                console.log(1);
                console.log(c * b);
                obj.attrs.rowSpan = b;
                break;
              } else {
                obj.attrs.rowSpan = 0;
              }
            }
            return obj;
          }
        },
        {
          title: '分组三',
          align: "center",
          dataIndex: 'gridNo',
          customRender: (value, row, index) => {
            const obj = {
              children: value,
              attrs: {},
            };
            var a = parseInt(this.levelNum) * parseInt(this.gridNum);
            var b = parseInt(this.boxNum);
            for (var c = 0; c <= a; c++) {
              if (index === (c * b)) {
                obj.attrs.rowSpan = b;
                break;
              } else {
                obj.attrs.rowSpan = 0;
              }
            }
            return obj;
          },
        }, {
          title: '字段一',
          align: "center",
          dataIndex: 'boxNo'
        }, {
          title: '字段二',
          align: 'center',
          dataIndex: 'storedNum'
        }, {
          title: '字段三',
          align: "center",
          dataIndex: 'maxNum'
        },],
      //数据集
      dataSource: [{
        "id": "cb1dfd12cbeca3f8ba121439ee7e2411",
        "attributeId": "e62831f314e1390edbd884e9d9e6aca6",
        "cabinetNo": "1",
        "levelNo": "1",
        "gridNo": "1",
        "boxNo": "1",
        "storedNum": 2,
        "maxNum": 2,
        "unitNum": 2,
        "assignStatus": "1",
        "storageStatus": "1",
        "remark": null,
        "createBy": "admin",
        "createTime": "2019-04-02",
        "updateBy": "admin",
        "updateTime": "2019-04-02"
      }, {
        "id": "f903d50d02904b14175dccf2a7948777",
        "attributeId": "e62831f314e1390edbd884e9d9e6aca6",
        "cabinetNo": "1",
        "levelNo": "1",
        "gridNo": "1",
        "boxNo": "2",
        "storedNum": 2,
        "maxNum": 2,
        "unitNum": 2,
        "assignStatus": "1",
        "storageStatus": "1",
        "remark": null,
        "createBy": "admin",
        "createTime": "2019-04-02",
        "updateBy": "admin",
        "updateTime": "2019-04-02"
      }, {
        "id": "4f04c0ca4202535d678871b07e706cf6",
        "attributeId": "e62831f314e1390edbd884e9d9e6aca6",
        "cabinetNo": "1",
        "levelNo": "1",
        "gridNo": "2",
        "boxNo": "1",
        "storedNum": 2,
        "maxNum": 2,
        "unitNum": 2,
        "assignStatus": "1",
        "storageStatus": "1",
        "remark": null,
        "createBy": "admin",
        "createTime": "2019-04-02",
        "updateBy": "admin",
        "updateTime": "2019-04-02"
      }, {
        "id": "d0c91dabedfc03efad0126e50ea72e80",
        "attributeId": "e62831f314e1390edbd884e9d9e6aca6",
        "cabinetNo": "1",
        "levelNo": "1",
        "gridNo": "2",
        "boxNo": "2",
        "storedNum": 2,
        "maxNum": 2,
        "unitNum": 2,
        "assignStatus": "1",
        "storageStatus": "1",
        "remark": null,
        "createBy": "admin",
        "createTime": "2019-04-02",
        "updateBy": "admin",
        "updateTime": "2019-04-08"
      }, {
        "id": "1e8bfcbe4352afbab8878f9fd368e007",
        "attributeId": "e62831f314e1390edbd884e9d9e6aca6",
        "cabinetNo": "1",
        "levelNo": "2",
        "gridNo": "1",
        "boxNo": "1",
        "storedNum": 1,
        "maxNum": 2,
        "unitNum": 1,
        "assignStatus": "1",
        "storageStatus": "0",
        "remark": null,
        "createBy": "admin",
        "createTime": "2019-04-02",
        "updateBy": "admin",
        "updateTime": "2019-04-08"
      }, {
        "id": "d76087d8d3ebc7a59d43458588f26941",
        "attributeId": "e62831f314e1390edbd884e9d9e6aca6",
        "cabinetNo": "1",
        "levelNo": "2",
        "gridNo": "1",
        "boxNo": "2",
        "storedNum": 0,
        "maxNum": 2,
        "unitNum": 0,
        "assignStatus": "1",
        "storageStatus": "0",
        "remark": null,
        "createBy": "admin",
        "createTime": "2019-04-02",
        "updateBy": "admin",
        "updateTime": "2019-04-02"
      }, {
        "id": "7bf7754f12e1bf95edcd501cc6b85e62",
        "attributeId": "e62831f314e1390edbd884e9d9e6aca6",
        "cabinetNo": "1",
        "levelNo": "2",
        "gridNo": "2",
        "boxNo": "1",
        "storedNum": 0,
        "maxNum": 2,
        "unitNum": 0,
        "assignStatus": "1",
        "storageStatus": "0",
        "remark": null,
        "createBy": "admin",
        "createTime": "2019-04-02",
        "updateBy": "admin",
        "updateTime": "2019-04-02"
      }, {
        "id": "9cd08d733657d5b286bec870f12f6ecf",
        "attributeId": "e62831f314e1390edbd884e9d9e6aca6",
        "cabinetNo": "1",
        "levelNo": "2",
        "gridNo": "2",
        "boxNo": "2",
        "storedNum": 0,
        "maxNum": 2,
        "unitNum": 0,
        "assignStatus": "1",
        "storageStatus": "0",
        "remark": null,
        "createBy": "admin",
        "createTime": "2019-04-02",
        "updateBy": "admin",
        "updateTime": "2019-04-02"
      }],
      isorter: {
        column: 'createTime',
        order: 'desc',
      },
      url: {},
    }
  },
  created() {
    this.loadData();
  },
  methods: {
    loadData() {
      this.levelNum = 4;
      this.gridNum = 2;
      this.boxNum = 2;

    }
  }
}
</script>
<style scoped>
.ant-card-body .table-operator {
  margin-bottom: 18px;
}

.ant-table-tbody .ant-table-row td {
  padding-top: 15px;
  padding-bottom: 15px;
}

.anty-row-operator button {
  margin: 0 5px
}

.ant-btn-danger {
  background-color: #ffffff
}

.ant-modal-cust-warp {
  height: 100%
}

.ant-modal-cust-warp .ant-modal-body {
  height: calc(100% - 110px) !important;
  overflow-y: auto
}

.ant-modal-cust-warp .ant-modal-content {
  height: 90% !important;
  overflow-y: hidden
}
</style>