|
@@ -1,372 +1,3 @@
|
|
-<script>
|
|
|
|
- export default {
|
|
|
|
- data() {
|
|
|
|
- return {
|
|
|
|
- tableData: [{
|
|
|
|
- date: '2016-05-03',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036',
|
|
|
|
- tag: 'Home'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-02',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036',
|
|
|
|
- tag: 'Office'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-04',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036',
|
|
|
|
- tag: 'Home'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-01',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036',
|
|
|
|
- tag: 'Office'
|
|
|
|
- }],
|
|
|
|
- tableData2: [{
|
|
|
|
- date: '2016-05-02',
|
|
|
|
- name: 'Tom',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-04',
|
|
|
|
- name: 'Tom',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- $info: true
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-01',
|
|
|
|
- name: 'Tom',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-03',
|
|
|
|
- name: 'Tom',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- $positive: true
|
|
|
|
- }],
|
|
|
|
- tableData3: [{
|
|
|
|
- date: '2016-05-03',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-02',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-04',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-01',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-08',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-06',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-07',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }],
|
|
|
|
- tableData4: [{
|
|
|
|
- date: '2016-05-03',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-02',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-04',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-01',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-08',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-06',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-07',
|
|
|
|
- name: 'Tom',
|
|
|
|
- state: 'California',
|
|
|
|
- city: 'Los Angeles',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- zip: 'CA 90036'
|
|
|
|
- }],
|
|
|
|
- tableData6: [{
|
|
|
|
- id: '12987122',
|
|
|
|
- name: 'Tom',
|
|
|
|
- amount1: '234',
|
|
|
|
- amount2: '3.2',
|
|
|
|
- amount3: 10
|
|
|
|
- }, {
|
|
|
|
- id: '12987123',
|
|
|
|
- name: 'Tom',
|
|
|
|
- amount1: '165',
|
|
|
|
- amount2: '4.43',
|
|
|
|
- amount3: 12
|
|
|
|
- }, {
|
|
|
|
- id: '12987124',
|
|
|
|
- name: 'Tom',
|
|
|
|
- amount1: '324',
|
|
|
|
- amount2: '1.9',
|
|
|
|
- amount3: 9
|
|
|
|
- }, {
|
|
|
|
- id: '12987125',
|
|
|
|
- name: 'Tom',
|
|
|
|
- amount1: '621',
|
|
|
|
- amount2: '2.2',
|
|
|
|
- amount3: 17
|
|
|
|
- }, {
|
|
|
|
- id: '12987126',
|
|
|
|
- name: 'Tom',
|
|
|
|
- amount1: '539',
|
|
|
|
- amount2: '4.1',
|
|
|
|
- amount3: 15
|
|
|
|
- }],
|
|
|
|
- tableData7: [{
|
|
|
|
- date: '2016-05-02',
|
|
|
|
- name: 'Tom',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-04',
|
|
|
|
- name: 'John',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-01',
|
|
|
|
- name: 'Morgan',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- }, {
|
|
|
|
- date: '2016-05-03',
|
|
|
|
- name: 'Jessy',
|
|
|
|
- address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
- }],
|
|
|
|
- currentRow: null,
|
|
|
|
- multipleSelection: [],
|
|
|
|
- search: '',
|
|
|
|
- };
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- methods: {
|
|
|
|
- getSummaries(param) {
|
|
|
|
- const { columns, data } = param;
|
|
|
|
- const sums = [];
|
|
|
|
- columns.forEach((column, index) => {
|
|
|
|
- if (index === 0) {
|
|
|
|
- sums[index] = 'Total Cost';
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- const values = data.map(item => Number(item[column.property]));
|
|
|
|
- if (!values.every(value => isNaN(value))) {
|
|
|
|
- sums[index] = '$ ' + values.reduce((prev, curr) => {
|
|
|
|
- const value = Number(curr);
|
|
|
|
- if (!isNaN(value)) {
|
|
|
|
- return prev + curr;
|
|
|
|
- } else {
|
|
|
|
- return prev;
|
|
|
|
- }
|
|
|
|
- }, 0);
|
|
|
|
- } else {
|
|
|
|
- sums[index] = 'N/A';
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- return sums;
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- resetDateFilter() {
|
|
|
|
- this.$refs.filterTable.clearFilter('date');
|
|
|
|
- },
|
|
|
|
- clearFilter() {
|
|
|
|
- this.$refs.filterTable.clearFilter();
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- setCurrent(row) {
|
|
|
|
- this.$refs.singleTable.setCurrentRow(row);
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- toggleSelection(rows) {
|
|
|
|
- if (rows) {
|
|
|
|
- rows.forEach(row => {
|
|
|
|
- this.$refs.multipleTable.toggleRowSelection(row);
|
|
|
|
- });
|
|
|
|
- } else {
|
|
|
|
- this.$refs.multipleTable.clearSelection();
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- handleClick() {
|
|
|
|
- console.log('click');
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- handleEdit(index, row) {
|
|
|
|
- console.log(index, row);
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- handleDelete(index, row) {
|
|
|
|
- console.log(index, row);
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- handleSelectionChange(val) {
|
|
|
|
- this.multipleSelection = val;
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- handleCurrentChange(val) {
|
|
|
|
- this.currentRow = val;
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- formatter(row, column) {
|
|
|
|
- return row.address;
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- filterTag(value, row) {
|
|
|
|
- return row.tag === value;
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- filterHandler(value, row, column) {
|
|
|
|
- const property = column['property'];
|
|
|
|
- return row[property] === value;
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- tableRowClassName({row, rowIndex}) {
|
|
|
|
- if (rowIndex === 1) {
|
|
|
|
- return 'warning-row';
|
|
|
|
- } else if (rowIndex === 3) {
|
|
|
|
- return 'success-row';
|
|
|
|
- }
|
|
|
|
- return '';
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- deleteRow(index, rows) {
|
|
|
|
- rows.splice(index, 1);
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- arraySpanMethod({ row, column, rowIndex, columnIndex }) {
|
|
|
|
- if (rowIndex % 2 === 0) {
|
|
|
|
- if (columnIndex === 0) {
|
|
|
|
- return [1, 2];
|
|
|
|
- } else if (columnIndex === 1) {
|
|
|
|
- return [0, 0];
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
|
|
|
- if (columnIndex === 0) {
|
|
|
|
- if (rowIndex % 2 === 0) {
|
|
|
|
- return {
|
|
|
|
- rowspan: 2,
|
|
|
|
- colspan: 1
|
|
|
|
- };
|
|
|
|
- } else {
|
|
|
|
- return {
|
|
|
|
- rowspan: 0,
|
|
|
|
- colspan: 0
|
|
|
|
- };
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- indexMethod(index) {
|
|
|
|
- return index * 2;
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- watch: {
|
|
|
|
- multipleSelection(val) {
|
|
|
|
- console.log('selection: ', val);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- };
|
|
|
|
-</script>
|
|
|
|
-
|
|
|
|
-<style>
|
|
|
|
- .el-table .warning-row {
|
|
|
|
- background: oldlace;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .el-table .success-row {
|
|
|
|
- background: #f0f9eb;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .demo-table .name-wrapper {
|
|
|
|
- display: inline-block;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .demo-table .demo-table-expand {
|
|
|
|
- label {
|
|
|
|
- width: 90px;
|
|
|
|
- color: #99a9bf;
|
|
|
|
- }
|
|
|
|
- .el-form-item {
|
|
|
|
- margin-right: 0;
|
|
|
|
- margin-bottom: 0;
|
|
|
|
- width: 50%;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-</style>
|
|
|
|
-
|
|
|
|
## Table
|
|
## Table
|
|
|
|
|
|
Display multiple data with similar format. You can sort, filter, compare your data in a table.
|
|
Display multiple data with similar format. You can sort, filter, compare your data in a table.
|
|
@@ -1977,7 +1608,7 @@ Configuring rowspan and colspan allows you to merge cells
|
|
### Custom index
|
|
### Custom index
|
|
|
|
|
|
You can customize row index in `type=index` columns.
|
|
You can customize row index in `type=index` columns.
|
|
-:::demo To customize row indices, use `index` attribute on <el-table-column> with `type=index`. If it is assigned to a number, all indices will have an offset of that number. It also accepts a method with each index (starting from `0`) as parameter, and the returned value will be displayed as index.
|
|
|
|
|
|
+:::demo To customize row indices, use `index` attribute on `el-table-column` with `type=index`. If it is assigned to a number, all indices will have an offset of that number. It also accepts a method with each index (starting from `0`) as parameter, and the returned value will be displayed as index.
|
|
|
|
|
|
```html
|
|
```html
|
|
<template>
|
|
<template>
|