Skip to content

Commit c3217f9

Browse files
author
黄书伟
committed
update
1 parent 6dfa838 commit c3217f9

File tree

3 files changed

+35
-21
lines changed

3 files changed

+35
-21
lines changed

libs/v-table/src/frozen-columns-mixin.js

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ exports.default = {
1616
});
1717
},
1818
frozenTitleCols: function frozenTitleCols() {
19-
var frozenTitleCols = [];
19+
var frozenTitleCols = [],
20+
self = this;
2021

2122
if (this.internalTitleRows.length > 0) {
2223
var frozenFields = this.frozenCols.map(function (x) {
@@ -34,15 +35,29 @@ exports.default = {
3435
}
3536
}
3637
});
38+
3739
if (frozenTitleRows.length > 0) {
40+
3841
frozenTitleCols.push(frozenTitleRows);
42+
43+
var minRowspan = self.getMinRowspan(frozenTitleRows);
44+
45+
if (minRowspan && minRowspan > 0) {
46+
47+
for (var i = 0; i < minRowspan; i++) {
48+
49+
frozenTitleCols.push([]);
50+
}
51+
}
3952
}
4053
});
4154
}
55+
4256
return frozenTitleCols;
4357
},
4458
noFrozenTitleCols: function noFrozenTitleCols() {
45-
var noFrozenTitleCols = [];
59+
var noFrozenTitleCols = [],
60+
self = this;
4661

4762
if (this.internalTitleRows.length > 0) {
4863
var noFrozenFields = this.noFrozenCols.map(function (x) {
@@ -61,6 +76,16 @@ exports.default = {
6176

6277
if (noFrozenTitleRows.length > 0) {
6378
noFrozenTitleCols.push(noFrozenTitleRows);
79+
80+
var minRowspan = self.getMinRowspan(noFrozenTitleRows);
81+
82+
if (minRowspan && minRowspan > 0) {
83+
84+
for (var i = 0; i < minRowspan; i++) {
85+
86+
noFrozenTitleCols.push([]);
87+
}
88+
}
6489
}
6590
});
6691
}

libs/v-table/src/table.vue

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<tr v-for="row in frozenTitleCols">
1616
<td v-for="col in row"
1717
:class="[col.titleCellClassName]"
18-
:colspan="col.colspan" :rowspan="dealTitleRowspan(row,col.rowspan)"
18+
:colspan="col.colspan" :rowspan="col.rowspan"
1919

2020
@mousemove.stop="handleTitleMouseMove($event,col.fields)"
2121
@mousedown.stop="handleTitleMouseDown($event)"
@@ -177,7 +177,7 @@
177177
<tr v-for="row in noFrozenTitleCols">
178178
<td v-for="col in row"
179179
:class="[col.titleCellClassName]"
180-
:colspan="col.colspan" :rowspan="dealTitleRowspan(row,col.rowspan)"
180+
:colspan="col.colspan" :rowspan="col.rowspan"
181181
@mousemove.stop="handleTitleMouseMove($event,col.fields)"
182182
@mousedown.stop="handleTitleMouseDown($event)"
183183
@mouseout.stop="handleTitleMouseOut()"
@@ -587,6 +587,7 @@
587587
bodyViewHeight(){
588588
var result;
589589
if (this.internalTitleRows.length > 0) {
590+
590591
result = this.internalHeight - this.titleRowHeight * (this.internalTitleRows.length + this.getTitleRowspanTotalCount);
591592
} else {
592593
result = this.internalHeight - this.titleRowHeight;

libs/v-table/src/title-cell-merge-mixin.js

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,29 +63,17 @@ exports.default = {
6363
return [];
6464
}
6565
},
66-
dealTitleRowspan: function dealTitleRowspan(row, rowspan) {
66+
getMinRowspan: function getMinRowspan(row) {
6767

68-
var result = rowspan,
69-
rowspanCountArr = void 0,
70-
minVal = void 0;
68+
var result = void 0;
7169

72-
rowspanCountArr = this.getTitleRowspanCountArr(row);
70+
var rowspanCountArr = this.getTitleRowspanCountArr(row);
7371

7472
if (Array.isArray(rowspanCountArr) && rowspanCountArr.length > 0) {
7573

76-
rowspan = parseInt(rowspan);
77-
78-
minVal = Math.min.apply(null, rowspanCountArr);
79-
80-
if (rowspan === minVal) {
81-
82-
result = 1;
83-
} else {
84-
85-
result = rowspan - minVal + 1;
86-
}
74+
result = Math.min.apply(null, rowspanCountArr);
8775
}
88-
return result;
76+
return result - 1;
8977
}
9078
}
9179

0 commit comments

Comments
 (0)