Skip to content

Commit 2683eeb

Browse files
author
黄书伟
committed
add
1 parent 5876cdc commit 2683eeb

File tree

1 file changed

+161
-0
lines changed

1 file changed

+161
-0
lines changed
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
'use strict';
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
exports.default = {
7+
data: function data() {
8+
9+
return {
10+
skipRenderCells: []
11+
};
12+
},
13+
14+
15+
methods: {
16+
cellMergeInit: function cellMergeInit(rowIndex, field, rowData, isFrozenColumns) {
17+
if (this.skipRenderCells.indexOf(rowIndex + '-' + field) !== -1) {
18+
return false;
19+
}
20+
21+
var setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
22+
23+
if (setting && (setting.colSpan && setting.colSpan > 1 || setting.rowSpan && setting.rowSpan > 1)) {
24+
25+
this.setSkipRenderCells(setting.colSpan, setting.rowSpan, rowIndex, field, isFrozenColumns);
26+
}
27+
28+
return true;
29+
},
30+
setSkipRenderCells: function setSkipRenderCells(colSpan, rowSpan, rowIndex, field, isFrozenColumns) {
31+
32+
var columnsFields = isFrozenColumns ? this.getFrozenColumnsFields : this.getNoFrozenColumnsFields,
33+
skipCell = '',
34+
startPosX = void 0,
35+
endPosX = void 0,
36+
startPosY = void 0,
37+
endPosY = void 0;
38+
39+
endPosX = startPosX = columnsFields.indexOf(field);
40+
if (colSpan && colSpan > 1) {
41+
42+
endPosX = startPosX + colSpan - 1;
43+
}
44+
45+
endPosY = startPosY = rowIndex;
46+
if (rowSpan && rowSpan > 1) {
47+
48+
endPosY = rowIndex + rowSpan - 1;
49+
}
50+
51+
for (var posX = startPosX; posX <= endPosX; posX++) {
52+
53+
for (var posY = startPosY; posY <= endPosY; posY++) {
54+
55+
if (posX == startPosX && posY == startPosY) {
56+
continue;
57+
}
58+
59+
skipCell = posY + '-' + columnsFields[posX];
60+
61+
if (this.skipRenderCells.indexOf(skipCell) === -1) {
62+
63+
this.skipRenderCells.push(skipCell);
64+
}
65+
}
66+
}
67+
},
68+
setColRowSpan: function setColRowSpan(rowIndex, field, rowData) {
69+
70+
var result = {
71+
colSpan: '',
72+
rowSpan: ''
73+
},
74+
setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
75+
76+
if (setting) {
77+
78+
result = {
79+
colSpan: setting.colSpan ? setting.colSpan : '',
80+
rowSpan: setting.rowSpan ? setting.rowSpan : ''
81+
};
82+
}
83+
84+
return result;
85+
},
86+
isCellMergeRender: function isCellMergeRender(rowIndex, field, rowData) {
87+
88+
var setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
89+
90+
if (setting && (setting.colSpan && setting.colSpan > 1 || setting.rowSpan && setting.rowSpan > 1)) {
91+
92+
return true;
93+
}
94+
95+
return false;
96+
},
97+
getRowHeightByRowSpan: function getRowHeightByRowSpan(rowIndex, field, rowData) {
98+
99+
var setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
100+
101+
if (setting && setting.rowSpan && setting.rowSpan > 1) {
102+
103+
return this.rowHeight * setting.rowSpan;
104+
}
105+
106+
return this.rowHeight;
107+
},
108+
getRowWidthByColSpan: function getRowWidthByColSpan(rowIndex, field, rowData) {
109+
110+
var endPosX = void 0,
111+
startPosX = void 0,
112+
columnsFields = this.getColumnsFields,
113+
setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field),
114+
colSpan = setting.colSpan,
115+
totalWidth = 0;
116+
117+
if (setting && colSpan && colSpan >= 1) {
118+
119+
startPosX = columnsFields.indexOf(field);
120+
121+
endPosX = startPosX + colSpan - 1;
122+
123+
for (var i = startPosX; i <= endPosX; i++) {
124+
125+
this.internalColumns.forEach(function (x) {
126+
127+
if (columnsFields[i] === x.field) {
128+
129+
totalWidth += x.width;
130+
}
131+
});
132+
}
133+
}
134+
135+
return totalWidth;
136+
},
137+
cellMergeContentType: function cellMergeContentType(rowIndex, field, rowData) {
138+
139+
var result = {
140+
isComponent: false,
141+
isContent: false
142+
};
143+
144+
var setting = this.cellMerge && this.cellMerge(rowIndex, rowData, field);
145+
146+
if (setting) {
147+
148+
if (setting.componentName && typeof setting.componentName === 'string' && setting.componentName.length > 0) {
149+
150+
result.isComponent = true;
151+
} else if (setting.content && setting.content.length > 0) {
152+
153+
result.isContent = true;
154+
}
155+
}
156+
157+
return result;
158+
}
159+
}
160+
161+
};

0 commit comments

Comments
 (0)