centaline-data-driven 1.2.29 → 1.2.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/centaline/dynamicDetail/src/dynamicContactList.vue +41 -24
- package/src/centaline/dynamicSosTt/src/dynamicSosTt.vue +56 -27
- package/src/centaline/loader/src/ctl/ContactList.js +68 -17
- package/src/centaline/loader/src/ctl/SosTt.js +16 -0
- package/wwwroot/static/centaline/centaline-data-driven.js +2 -2
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
package/package.json
CHANGED
|
@@ -33,6 +33,8 @@
|
|
|
33
33
|
:rowspan="column.rowspan"
|
|
34
34
|
:colspan="column.colspan"
|
|
35
35
|
:class="[colHasWidth[colIndex],column.sortAction,model.tdClass,
|
|
36
|
+
rowBorderLeftColumns.includes(column.id)?'ct-td4':null,
|
|
37
|
+
rowBorderRightColumns.includes(column.id)?'ct-td5':null,
|
|
36
38
|
colIndex === leftShadow?'shadowLeft':null,
|
|
37
39
|
colIndex === rightShadow?'shadowRight':null,
|
|
38
40
|
column.fixed === 'left'?'left-fixation-th':null,
|
|
@@ -66,7 +68,10 @@
|
|
|
66
68
|
:colspan="tdColspan(column, row)"
|
|
67
69
|
class="ct-td"
|
|
68
70
|
:class="[colHasWidth[colIndex],model.tdClass,
|
|
69
|
-
row.flagRow?'ct-td3':null,
|
|
71
|
+
//row.flagRow && row.columnShow===column.id?'ct-td3':null,
|
|
72
|
+
rowBorderLeftColumns.includes(column.id)?'ct-td4':null,
|
|
73
|
+
rowBorderRightColumns.includes(column.id)?'ct-td5':null,
|
|
74
|
+
selectKey===row[model.rowHiddenKey]?'select':null,
|
|
70
75
|
colIndex === leftShadow?'shadowLeft':null,
|
|
71
76
|
colIndex === rightShadow?'shadowRight':null,
|
|
72
77
|
column.fixed === 'left'?'left-fixation':null,
|
|
@@ -74,8 +79,8 @@
|
|
|
74
79
|
column.fixed === 'right'?'right-fixation':null]"
|
|
75
80
|
v-bind="column.attrs">
|
|
76
81
|
<!--操作列-->
|
|
77
|
-
<div v-if="row.flagRow" :class="column.autoRowHeight ? 'lineFeedCell':'cell'">
|
|
78
|
-
{{row.descNewRow}}
|
|
82
|
+
<div v-if="row.flagRow" :class="column.autoRowHeight ? 'lineFeedCell':'cell'" style="color: #999;">
|
|
83
|
+
{{row.rowHiddenColumns && row.rowHiddenColumns.includes(column.id)?"":row.descNewRow}}
|
|
79
84
|
</div>
|
|
80
85
|
<div v-else-if="column.id==='operation' && row.rowHiddenColumns==undefined" class="div_allinline" :class="column.autoRowHeight ? 'lineFeedCell':'cell'">
|
|
81
86
|
<ct-tablecurrency v-for="(router,rowRouterIndex) in model.rowRouter" :key="rowRouterIndex"
|
|
@@ -125,6 +130,10 @@
|
|
|
125
130
|
colHasWidth: {},//有无列宽集合
|
|
126
131
|
pageRowMin: 0,//页面实际的第一行号
|
|
127
132
|
pageRowMax: 100,//页面实际的第后行号
|
|
133
|
+
rowMergedColumns:['contactNameDesc','propertyIdentityTypeID','operation'],
|
|
134
|
+
rowBorderLeftColumns:['contactNameDesc','operation'],
|
|
135
|
+
rowBorderRightColumns:['propertyIdentityTypeID','operation'],
|
|
136
|
+
selectKey:'',
|
|
128
137
|
}
|
|
129
138
|
},
|
|
130
139
|
mounted() {
|
|
@@ -178,7 +187,8 @@
|
|
|
178
187
|
});
|
|
179
188
|
router.doSearch(submitData, (res) => {
|
|
180
189
|
if (res.rtnCode === 200) {
|
|
181
|
-
res.apiRouter=self.apiRouter;
|
|
190
|
+
res.apiRouter=self.apiRouter;
|
|
191
|
+
res.rowMergedColumns=self.rowMergedColumns;
|
|
182
192
|
self.loaderObj.ContactList(res,null,self.load);
|
|
183
193
|
self.flagLook = true;
|
|
184
194
|
}
|
|
@@ -202,19 +212,21 @@
|
|
|
202
212
|
},
|
|
203
213
|
rowColorChange() {
|
|
204
214
|
var index = this.model.selectIndex;
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}
|
|
215
|
+
this.selectKey=this.model.listData[index][this.model.rowHiddenKey];
|
|
216
|
+
this.currentRow = this.$refs['rows.' + index][0] || null;
|
|
217
|
+
// if (typeof this.$refs['rows.' + index] !== "undefined" && this.currentRow !== this.$refs['rows.' + index][0]) {
|
|
218
|
+
// if (this.currentRow !== null) {
|
|
219
|
+
// for (var i = 0; i < this.currentRow.children.length; i++) {
|
|
220
|
+
// this.currentRow.children[i].classList.remove('select');
|
|
221
|
+
// }
|
|
222
|
+
// }
|
|
223
|
+
// if (this.$refs['rows.' + index][0]) {
|
|
224
|
+
// for (var j = 0; j < this.$refs['rows.' + index][0].children.length; j++) {
|
|
225
|
+
// this.$refs['rows.' + index][0].children[j].classList.add('select');
|
|
226
|
+
// }
|
|
227
|
+
// }
|
|
228
|
+
// this.currentRow = this.$refs['rows.' + index][0] || null;
|
|
229
|
+
// }
|
|
218
230
|
},
|
|
219
231
|
tdRowspan(column, row) {
|
|
220
232
|
if (!column.show) {
|
|
@@ -222,17 +234,16 @@
|
|
|
222
234
|
}
|
|
223
235
|
|
|
224
236
|
//合并行
|
|
225
|
-
if (row.$rowspan !== 0 && this.
|
|
237
|
+
if (row.$rowspan !== 0 && this.rowMergedColumns.includes(column.id)) {
|
|
226
238
|
return row.$rowspan;
|
|
227
239
|
}
|
|
228
240
|
|
|
229
241
|
return '';
|
|
230
242
|
},
|
|
231
243
|
tdColspan(column, row) {
|
|
232
|
-
if (row.colspan !== 0) {
|
|
244
|
+
if (row.colspan !== 0 && row.columnShow===column.id) {
|
|
233
245
|
return row.colspan;
|
|
234
246
|
}
|
|
235
|
-
return '';
|
|
236
247
|
},
|
|
237
248
|
tdShow(column, row) {
|
|
238
249
|
if (!column.show) {
|
|
@@ -240,11 +251,11 @@
|
|
|
240
251
|
}
|
|
241
252
|
|
|
242
253
|
//合并行
|
|
243
|
-
if (row.$rowspan === 0 && this.
|
|
254
|
+
if (row.$rowspan === 0 && this.rowMergedColumns.indexOf(column.id) > -1) {
|
|
244
255
|
return false;
|
|
245
256
|
}
|
|
246
257
|
|
|
247
|
-
if(row.flagRow && row.columnShow!==column.id){
|
|
258
|
+
if(row.flagRow && row.columnShow!==column.id && !row.rowHiddenColumns.includes(column.id)){
|
|
248
259
|
return false;
|
|
249
260
|
}
|
|
250
261
|
|
|
@@ -489,11 +500,11 @@
|
|
|
489
500
|
|
|
490
501
|
.ct-tableParent {
|
|
491
502
|
overflow: auto;
|
|
492
|
-
border-bottom:
|
|
503
|
+
border-bottom: 0px;
|
|
493
504
|
width: 100%;
|
|
494
505
|
outline: 0;
|
|
495
506
|
}
|
|
496
|
-
|
|
507
|
+
.ct-searchtable .ct-table {
|
|
497
508
|
min-width: 100%;
|
|
498
509
|
border-collapse: separate;
|
|
499
510
|
}
|
|
@@ -519,6 +530,12 @@
|
|
|
519
530
|
.ct-searchtable .ct-tr > .ct-td3 {
|
|
520
531
|
border: 1px solid #e7e8eb;
|
|
521
532
|
}
|
|
533
|
+
.ct-searchtable .ct-tr > .ct-td4 {
|
|
534
|
+
border-left: 1px solid #e7e8eb;
|
|
535
|
+
}
|
|
536
|
+
.ct-searchtable .ct-tr > .ct-td5 {
|
|
537
|
+
border-right: 1px solid #e7e8eb;
|
|
538
|
+
}
|
|
522
539
|
.shadowLeft {
|
|
523
540
|
border-right: 1px solid #e7e8eb;
|
|
524
541
|
box-shadow: 2px 0 3px -1px rgba(0,0,0,0.1);
|
|
@@ -7,35 +7,40 @@
|
|
|
7
7
|
<div v-if="model.showLabel && model.label" class="el-input-group__prepend" :class="[model.labelClass]">
|
|
8
8
|
{{model.label}}
|
|
9
9
|
</div>
|
|
10
|
-
<
|
|
11
|
-
<div>
|
|
12
|
-
<
|
|
13
|
-
<
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
<div class="ct-sostt">
|
|
11
|
+
<div :class="[model.w1=='0'?'ct-input-editor':'ct-input-editorw']" :style="{'width':(model.w1!='0'?model.w1+'px':'auto')}">
|
|
12
|
+
<el-popover ref="pop" placement="bottom-start" v-model="showDrop" :class="[model.showLabel?'showLabel':'']" :trigger="(!model.paramName || model.lock)? 'manual' : 'click'">
|
|
13
|
+
<div>
|
|
14
|
+
<div>
|
|
15
|
+
<el-input ref="searchInput" :size="model.attrs.size" suffix-icon="el-icon-search" v-model="searchText" @input="searchInputHandle"></el-input>
|
|
16
|
+
</div>
|
|
17
|
+
<ctSelectOptionVertical :model="model" @click="selectOption($event)"></ctSelectOptionVertical>
|
|
18
|
+
</div>
|
|
19
|
+
<input slot="reference" v-bind="model.attrs" readonly="readonly" v-model="model.text" :placeholder="soPlaceholder"
|
|
20
|
+
ref="ct-input" :style="{height:inputHeight + 'px','line-height':inputLineHeight + 'px'}"
|
|
21
|
+
@focus="focusHandle" @blur="blurHandle" @click="clickHandle" @input="inputHandler($event)" @change="changeHandler($event)"
|
|
22
|
+
:disabled="model.lock" :class="model.lock ? 'ct-is-disabled' : 'ct-input_inner'" />
|
|
23
|
+
</el-popover>
|
|
24
|
+
<span v-if="!model.lock" class="el-input__suffix" @click="clickHandle" :class="[model.attrs.size?'el-input--'+model.attrs.size:'']">
|
|
25
|
+
<span v-if="showClear === false" class="el-input__suffix-inner">
|
|
26
|
+
<i class="el-select__caret el-input__icon el-icon-arrow-up" :class="{'is-reverse':showDrop}"></i>
|
|
27
|
+
</span>
|
|
28
|
+
<span v-if="showClear === true" class="el-input__suffix-inner ct-close">
|
|
29
|
+
<i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
|
|
30
|
+
</span>
|
|
31
|
+
</span>
|
|
16
32
|
</div>
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
</span>
|
|
26
|
-
<span v-if="showClear === true" class="el-input__suffix-inner ct-close">
|
|
27
|
-
<i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
|
|
28
|
-
</span>
|
|
29
|
-
</span>
|
|
33
|
+
<div class="ml10" :class="[model.w2=='0'?'ct-input-editor':'ct-input-editorw']" :style="{'width':(model.w2!='0'?model.w2+'px':'auto')}">
|
|
34
|
+
<el-input :title="model.lock?model.value1:''" :type="model.inputType" v-model="model.value1" v-bind="model.attrs" @input="inputHandler($event);isShowClear()" @change="changeHandler($event)"
|
|
35
|
+
class="ct-flex-div-input max-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'']" :disabled="model.lock" :rows="model.rows"
|
|
36
|
+
:readonly="model.readonly" :show-password="model.isPassword" autocomplete="on" :maxlength="model.max" :show-word-limit="model.showWordLimit"
|
|
37
|
+
@keyup.enter.native="search()">
|
|
38
|
+
</el-input>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
30
41
|
</div>
|
|
31
42
|
</div>
|
|
32
|
-
|
|
33
|
-
<el-input :title="model.lock?model.value1:''" :type="model.inputType" v-model="model.value1" v-bind="model.attrs" @input="inputHandler($event);isShowClear()" @change="changeHandler($event)"
|
|
34
|
-
class="ct-flex-div-input max-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'']" :disabled="model.lock" :rows="model.rows"
|
|
35
|
-
:readonly="model.readonly" :show-password="model.isPassword" autocomplete="on" :maxlength="model.max" :show-word-limit="model.showWordLimit"
|
|
36
|
-
@keyup.enter.native="search()">
|
|
37
|
-
</el-input>
|
|
38
|
-
</div>
|
|
43
|
+
|
|
39
44
|
<span v-if="model.sufLabel" class="spanMessage ct-flex-div-span">{{model.sufLabel}}</span>
|
|
40
45
|
<transition name="el-fade-in">
|
|
41
46
|
<span v-show="!valid" class="errorMessage">
|
|
@@ -243,7 +248,8 @@
|
|
|
243
248
|
},
|
|
244
249
|
//不能共用的数据校验
|
|
245
250
|
selfValidExcute: function (eventName) {
|
|
246
|
-
if (this.required
|
|
251
|
+
if (this.model.required && this.model.value1 == "") {
|
|
252
|
+
this.validMessage = "必填";
|
|
247
253
|
this.valid = false;
|
|
248
254
|
return false;
|
|
249
255
|
}
|
|
@@ -280,4 +286,27 @@
|
|
|
280
286
|
.h26{
|
|
281
287
|
height: 26px;
|
|
282
288
|
}
|
|
289
|
+
.ct-so .ct-sostt {
|
|
290
|
+
width: 100%;
|
|
291
|
+
display: flex;
|
|
292
|
+
flex-wrap: wrap;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.ct-so .ct-sostt .ct-input-editor {
|
|
296
|
+
flex: 1 0 0;
|
|
297
|
+
position: relative;
|
|
298
|
+
}
|
|
299
|
+
.ct-so .ct-sostt .ct-input-editorw {
|
|
300
|
+
position: relative;
|
|
301
|
+
display:inline-block;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.ct-so .ct-sostt .ml10 {
|
|
305
|
+
margin-left:10px;
|
|
306
|
+
}
|
|
307
|
+
.ct-sostt .showLabel input {
|
|
308
|
+
border-top-left-radius: 4px !important;
|
|
309
|
+
border-bottom-left-radius: 4px !important;
|
|
310
|
+
text-align: left !important;
|
|
311
|
+
}
|
|
283
312
|
</style>
|
|
@@ -21,7 +21,8 @@ const ContactList = function (source,para ,callBack) {
|
|
|
21
21
|
selectIndex: 0,
|
|
22
22
|
formData: formData,
|
|
23
23
|
rowHiddenKey:'contactID',
|
|
24
|
-
rowHiddenColumns:['
|
|
24
|
+
rowHiddenColumns:['contactNameDesc','propertyIdentityTypeID'],
|
|
25
|
+
columnShow:'contactNoTypeDesc',
|
|
25
26
|
attrs: {
|
|
26
27
|
size: 'mini'
|
|
27
28
|
},
|
|
@@ -90,8 +91,8 @@ const ContactList = function (source,para ,callBack) {
|
|
|
90
91
|
var newRow = {};
|
|
91
92
|
newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
|
|
92
93
|
newRow.descNewRow = v.descNewRow;
|
|
93
|
-
newRow.colspan = rtn.dataFieldcolumns.length;
|
|
94
|
-
newRow.columnShow=rtn.
|
|
94
|
+
newRow.colspan = rtn.dataFieldcolumns.length-rtn.rowMergedColumns.length;
|
|
95
|
+
newRow.columnShow=rtn.columnShow;
|
|
95
96
|
newRow.flagRow=true;
|
|
96
97
|
rtn._listData.push(newRow);
|
|
97
98
|
}
|
|
@@ -283,7 +284,7 @@ const ContactList = function (source,para ,callBack) {
|
|
|
283
284
|
}
|
|
284
285
|
},
|
|
285
286
|
get rowMergedColumns() {
|
|
286
|
-
return source.
|
|
287
|
+
return source.rowMergedColumns || [];
|
|
287
288
|
},
|
|
288
289
|
get apiRouter() {
|
|
289
290
|
return source.apiRouter;
|
|
@@ -291,13 +292,14 @@ const ContactList = function (source,para ,callBack) {
|
|
|
291
292
|
getCurrentRowApiData(rtnData,router) {
|
|
292
293
|
var self = this;
|
|
293
294
|
var searchFields = self.apiRouter.getSearchPara();
|
|
295
|
+
var searchValue1=router.flagAddRowAfterAction? rtnData.content: rtn.listData[rtn.selectIndex][self.primaryKey];
|
|
294
296
|
if (self.primaryKey) {
|
|
295
297
|
searchFields.fields.push({
|
|
296
298
|
fieldName1: self.primaryFieldMappingDBName ? self.primaryFieldMappingDBName : self.primaryKey,
|
|
297
299
|
groupName: self.primaryKey,
|
|
298
300
|
operation: Enum.SearchOperation.等于,
|
|
299
301
|
searchDataType: Enum.SearchDataType.Text,
|
|
300
|
-
searchValue1:
|
|
302
|
+
searchValue1: searchValue1,
|
|
301
303
|
});
|
|
302
304
|
}
|
|
303
305
|
Vue.prototype.$api.postHandler(common.globalUri(), {
|
|
@@ -317,8 +319,8 @@ const ContactList = function (source,para ,callBack) {
|
|
|
317
319
|
var newRow = {};
|
|
318
320
|
newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
|
|
319
321
|
newRow.descNewRow = v.descNewRow;
|
|
320
|
-
newRow.colspan = rtn.dataFieldcolumns.length;
|
|
321
|
-
newRow.columnShow=rtn.
|
|
322
|
+
newRow.colspan = rtn.dataFieldcolumns.length-rtn.rowMergedColumns.length;
|
|
323
|
+
newRow.columnShow=rtn.columnShow;
|
|
322
324
|
newRow.flagRow=true;
|
|
323
325
|
rtn._listData.unshift(newRow);
|
|
324
326
|
}
|
|
@@ -327,11 +329,29 @@ const ContactList = function (source,para ,callBack) {
|
|
|
327
329
|
rtn.setHiddenRow();
|
|
328
330
|
}
|
|
329
331
|
else{
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
332
|
+
let updateData=[];
|
|
333
|
+
response.content.rows.forEach((v) => {
|
|
334
|
+
updateData.push(v);
|
|
335
|
+
if(v.descNewRow){
|
|
336
|
+
var newRow = {};
|
|
337
|
+
newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
|
|
338
|
+
newRow.descNewRow = v.descNewRow;
|
|
339
|
+
newRow.colspan = rtn.dataFieldcolumns.length-rtn.rowMergedColumns.length;
|
|
340
|
+
newRow.columnShow=rtn.columnShow;
|
|
341
|
+
newRow.flagRow=true;
|
|
342
|
+
updateData.push(newRow);
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
let strat=0;
|
|
346
|
+
let count=0;
|
|
347
|
+
rtn._listData.forEach((v,i) => {
|
|
348
|
+
if(v[rtn.rowHiddenKey]===searchValue1){
|
|
349
|
+
if(strat===0)strat=i;
|
|
350
|
+
count=count+1;
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
rtn._listData.splice(strat, count,updateData);
|
|
354
|
+
rtn.setHiddenRow();
|
|
335
355
|
}
|
|
336
356
|
}
|
|
337
357
|
}
|
|
@@ -372,8 +392,8 @@ const ContactList = function (source,para ,callBack) {
|
|
|
372
392
|
var newRow = {};
|
|
373
393
|
newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
|
|
374
394
|
newRow.descNewRow = v.descNewRow;
|
|
375
|
-
newRow.colspan = rtn.dataFieldcolumns.length;
|
|
376
|
-
newRow.columnShow=rtn.
|
|
395
|
+
newRow.colspan = rtn.dataFieldcolumns.length-rtn.rowMergedColumns.length;
|
|
396
|
+
newRow.columnShow=rtn.columnShow;
|
|
377
397
|
newRow.flagRow=true;
|
|
378
398
|
rtn._listData.unshift(newRow);
|
|
379
399
|
}
|
|
@@ -383,11 +403,30 @@ const ContactList = function (source,para ,callBack) {
|
|
|
383
403
|
break;
|
|
384
404
|
case Enum.ActionType.Update://修改
|
|
385
405
|
case Enum.ActionType.CloseTabThenUpdate://修改
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
406
|
+
var searchValue1=rtn.listData[rtn.selectIndex][self.primaryKey];
|
|
407
|
+
let updateData=[];
|
|
408
|
+
response.content.forEach((v) => {
|
|
409
|
+
updateData.push(v);
|
|
410
|
+
if(v.descNewRow){
|
|
411
|
+
var newRow = {};
|
|
412
|
+
newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
|
|
413
|
+
newRow.descNewRow = v.descNewRow;
|
|
414
|
+
newRow.colspan = rtn.dataFieldcolumns.length-rtn.rowMergedColumns.length;
|
|
415
|
+
newRow.columnShow=rtn.columnShow;
|
|
416
|
+
newRow.flagRow=true;
|
|
417
|
+
updateData.push(newRow);
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
let strat=0;
|
|
421
|
+
let count=0;
|
|
422
|
+
rtn._listData.forEach((v,i) => {
|
|
423
|
+
if(v[rtn.rowHiddenKey]===searchValue1){
|
|
424
|
+
if(strat===0)strat=i;
|
|
425
|
+
count=count+1;
|
|
389
426
|
}
|
|
390
427
|
});
|
|
428
|
+
rtn._listData.splice(strat, count,updateData);
|
|
429
|
+
rtn.setHiddenRow();
|
|
391
430
|
break;
|
|
392
431
|
default:
|
|
393
432
|
break;
|
|
@@ -430,19 +469,31 @@ const ContactList = function (source,para ,callBack) {
|
|
|
430
469
|
return;
|
|
431
470
|
}
|
|
432
471
|
let lastKey='';
|
|
472
|
+
let count=1;
|
|
473
|
+
let firstIndex=0;
|
|
433
474
|
for (let i = 0; i < rtn.listData.length; i++) {
|
|
475
|
+
rtn.listData[i].$rowspan=0;
|
|
434
476
|
if(lastKey){
|
|
435
477
|
if(rtn.listData[i][rtn.rowHiddenKey]){
|
|
436
478
|
if(rtn.listData[i][rtn.rowHiddenKey]===lastKey){
|
|
437
479
|
rtn.listData[i].rowHiddenColumns=rtn.rowHiddenColumns;
|
|
480
|
+
count++;
|
|
481
|
+
if(i===rtn.listData.length-1){
|
|
482
|
+
rtn.listData[firstIndex].$rowspan=count;
|
|
483
|
+
}
|
|
438
484
|
}
|
|
439
485
|
else{
|
|
486
|
+
rtn.listData[firstIndex].$rowspan=count;
|
|
440
487
|
lastKey=rtn.listData[i][rtn.rowHiddenKey];
|
|
488
|
+
count=1;
|
|
489
|
+
firstIndex=i;
|
|
441
490
|
}
|
|
442
491
|
}
|
|
443
492
|
}
|
|
444
493
|
else{
|
|
445
494
|
lastKey=rtn.listData[i][rtn.rowHiddenKey];
|
|
495
|
+
count=1;
|
|
496
|
+
firstIndex=i;
|
|
446
497
|
}
|
|
447
498
|
}
|
|
448
499
|
},
|
|
@@ -22,6 +22,22 @@ const SosTt = function (source, moreActionRouter) {
|
|
|
22
22
|
source.name1 = v;
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
+
get w1() {
|
|
26
|
+
if (typeof source.width1 !== 'undefined' && source.width1 != "0") {
|
|
27
|
+
return source.width1;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return '0';
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
get w2() {
|
|
34
|
+
if (typeof source.width2 !== 'undefined' && source.width2 != "0") {
|
|
35
|
+
return source.width2;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return '0';
|
|
39
|
+
}
|
|
40
|
+
},
|
|
25
41
|
get optionColCount() {
|
|
26
42
|
return parseInt(source.optCount) || 5;
|
|
27
43
|
},
|