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