centaline-data-driven 1.5.21 → 1.5.22
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/build/centaline/centaline.path.js +1 -0
- package/package.json +1 -1
- package/release-log.md +36 -0
- package/src/Form.vue +2 -2
- package/src/SearchList.vue +12 -2
- package/src/centaline/css/common.css +2 -2
- package/src/centaline/dynamicCb/src/dynamicCb.vue +5 -1
- package/src/centaline/dynamicContainer/index.js +14 -0
- package/src/centaline/dynamicContainer/src/dynamicContainer.vue +151 -0
- package/src/centaline/dynamicDetail/src/dynamicAlbums.vue +5 -5
- package/src/centaline/dynamicDetail/src/dynamicDetail.vue +19 -2
- package/src/centaline/dynamicDetail/src/dynamicEstateBuildingDetail.vue +16 -219
- package/src/centaline/dynamicDetail/src/dynamicEstateSimpleDetail.vue +41 -19
- package/src/centaline/dynamicDetail/src/dynamicPropertySimpleDetailRET.vue +30 -11
- package/src/centaline/dynamicForm/src/dynamicForm.vue +19 -4
- package/src/centaline/dynamicInputNumber/src/dynamicInputNumber.vue +5 -1
- package/src/centaline/dynamicLayout/src/dynamicLayout.vue +1 -2
- package/src/centaline/dynamicLayout/src/dynamicLayoutLabel.vue +2 -2
- package/src/centaline/dynamicPhotoSelect/src/dynamicPhotoSelect.vue +3 -2
- package/src/centaline/dynamicSearchList/src/dynamicSearchList.vue +64 -30
- package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +25 -13
- package/src/centaline/dynamicSeg/src/dynamicSeg.vue +5 -1
- package/src/centaline/loader/src/ctl/CellLayout.js +20 -3
- package/src/centaline/loader/src/ctl/Container.js +208 -0
- package/src/centaline/loader/src/ctl/Form.js +12 -0
- package/src/centaline/loader/src/ctl/FormList.js +5 -3
- package/src/centaline/loader/src/ctl/Router.js +3 -0
- package/src/centaline/loader/src/ctl/SearchTable.js +14 -6
- package/src/centaline/loader/src/ctl/lib/Enum.js +7 -0
- package/src/centaline/loader/src/ctl/lib/LibFunction.js +5 -1
- package/src/centaline/loader/src/ctl.js +1 -0
- package/src/centaline/validate/index.js +4 -2
- package/src/main.js +5 -5
- package/wwwroot/static/centaline/centaline-data-driven.js +3 -3
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div ref="main" style="width: 100%;height: 100%;display: flex;" :class="{'domDisabled':pageDisabled}">
|
|
3
|
-
<div class="ct-search-list" :style="{'height':
|
|
3
|
+
<div class="ct-search-list" :style="{'height': pageHeightReal? pageHeightReal:'100%','width':searchWidth?searchWidth+'px':'100%'}" >
|
|
4
4
|
<div slot="header" class="clearfix" v-if="typeof title !== 'undefined' && showTitle">
|
|
5
5
|
<span style="font-weight:bold">{{title}}</span>
|
|
6
6
|
</div>
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
:style="{'height': pageHeight? pageHeight:'100%','width':sideBarWidth+'px',right:sideBarRight+'px'}"
|
|
23
23
|
class="sidebar">
|
|
24
24
|
<ct-Detail ref="detail" :api="sideBarApi" :apiParam="sideBarApiParam" :pageType="sideBarPageType"
|
|
25
|
+
:searchConditionApi="sideBarSearchConditionApi" :searchStatsApi="sideBarSearchStatsApi" :searchDataApi="sideBarSearchDataApi" :listHeight="listHeight"
|
|
25
26
|
:selectIndex="selectIndex" :rowCount="rowCount" :key="detailKey" :drowerClose="drowerClose"
|
|
26
27
|
@clickNextHandler="clickNextHandler" @clickPrevHandler="clickPrevHandler" @simpleRouterclickHandler="simpleRouterclickHandler"
|
|
27
28
|
@closeSideHandler="closeSideHandler"></ct-Detail>
|
|
@@ -77,35 +78,6 @@
|
|
|
77
78
|
default:false,
|
|
78
79
|
},
|
|
79
80
|
},
|
|
80
|
-
data() {
|
|
81
|
-
return {
|
|
82
|
-
drowerClose:'',
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
created() {
|
|
86
|
-
this.model = this.vmodel;
|
|
87
|
-
this.screenPara=this.apiParam;
|
|
88
|
-
if(this.searchCategoryApi){
|
|
89
|
-
this.loaded.categoryLoaded=false;
|
|
90
|
-
}
|
|
91
|
-
if(this.apiParam && this.apiParam.isIframe && this.apiParam.isIframe=='true'){
|
|
92
|
-
this.isIframe=true;
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
computed: {
|
|
96
|
-
},
|
|
97
|
-
activated() {
|
|
98
|
-
this.$nextTick(() => {
|
|
99
|
-
if(this.$refs.detail){
|
|
100
|
-
if(this.$refs.detail.$children && this.$refs.detail.$children.length>0){
|
|
101
|
-
this.$refs.detail.$children[0].refreshPage();
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if(this.$refs.table){
|
|
105
|
-
this.$refs.table.resetScrollActivated();
|
|
106
|
-
}
|
|
107
|
-
})
|
|
108
|
-
},
|
|
109
81
|
data() {
|
|
110
82
|
return {
|
|
111
83
|
loaded: {
|
|
@@ -138,7 +110,49 @@
|
|
|
138
110
|
rowCount:0,
|
|
139
111
|
detailKey:0,
|
|
140
112
|
isIframe: false,
|
|
113
|
+
|
|
114
|
+
drowerClose:'',
|
|
115
|
+
listHeight:0,
|
|
116
|
+
pageHeightReal: '',
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
created() {
|
|
120
|
+
this.model = this.vmodel;
|
|
121
|
+
this.screenPara=this.apiParam;
|
|
122
|
+
if(this.pageHeight) {
|
|
123
|
+
this.pageHeightReal=this.pageHeight;
|
|
141
124
|
}
|
|
125
|
+
if(this.searchCategoryApi){
|
|
126
|
+
this.loaded.categoryLoaded=false;
|
|
127
|
+
}
|
|
128
|
+
if(this.apiParam && this.apiParam.isIframe && this.apiParam.isIframe=='true'){
|
|
129
|
+
this.isIframe=true;
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
computed: {
|
|
133
|
+
},
|
|
134
|
+
mounted() {
|
|
135
|
+
var self=this;
|
|
136
|
+
this.$nextTick(() => {
|
|
137
|
+
if(this.$refs.main){
|
|
138
|
+
this.listHeight=this.$refs.main.offsetHeight;
|
|
139
|
+
}
|
|
140
|
+
})
|
|
141
|
+
},
|
|
142
|
+
activated() {
|
|
143
|
+
this.$nextTick(() => {
|
|
144
|
+
if(this.$refs.main){
|
|
145
|
+
this.listHeight=this.$refs.main.offsetHeight;
|
|
146
|
+
}
|
|
147
|
+
if(this.$refs.detail){
|
|
148
|
+
if(this.$refs.detail.$children && this.$refs.detail.$children.length>0){
|
|
149
|
+
this.$refs.detail.$children[0].refreshPage(this.listHeight);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if(this.$refs.table){
|
|
153
|
+
this.$refs.table.resetScrollActivated();
|
|
154
|
+
}
|
|
155
|
+
})
|
|
142
156
|
},
|
|
143
157
|
methods: {
|
|
144
158
|
screenLoaded(defaultSearch) {
|
|
@@ -210,6 +224,14 @@
|
|
|
210
224
|
this.searchWidth=this.$refs.main.clientWidth-this.sideBarWidth;
|
|
211
225
|
}
|
|
212
226
|
}
|
|
227
|
+
if(this.$refs.main){
|
|
228
|
+
this.listHeight=this.$refs.main.offsetHeight;
|
|
229
|
+
if(this.$refs.detail){
|
|
230
|
+
if(this.$refs.detail.$children && this.$refs.detail.$children.length>0){
|
|
231
|
+
this.$refs.detail.$children[0].refreshPage(this.listHeight);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
213
235
|
},
|
|
214
236
|
showTitleHandler() {
|
|
215
237
|
if (this.$refs.table.model && this.$refs.table.model.flagShowTitle) {
|
|
@@ -235,6 +257,9 @@
|
|
|
235
257
|
|
|
236
258
|
if(this.$refs.table.model.rowSelectRouter){
|
|
237
259
|
this.sideBarApi=this.$refs.table.model.rowSelectRouter.action;
|
|
260
|
+
this.sideBarSearchConditionApi=this.$refs.table.model.rowSelectRouter.actionForSearchLayout;
|
|
261
|
+
this.sideBarSearchStatsApi=this.$refs.table.model.rowSelectRouter.actionForSearchStats;
|
|
262
|
+
this.sideBarSearchDataApi=this.$refs.table.model.rowSelectRouter.actionForSearch;
|
|
238
263
|
this.sideBarPageType=this.$refs.table.model.rowSelectRouter.actionSource;
|
|
239
264
|
}
|
|
240
265
|
else{
|
|
@@ -273,6 +298,7 @@
|
|
|
273
298
|
this.searchWidth=0;
|
|
274
299
|
}
|
|
275
300
|
this.$emit('tableLoaded', this.$refs.table.model);
|
|
301
|
+
this.$emit('loaded', this.$refs.table.model);
|
|
276
302
|
},
|
|
277
303
|
rowClickHandle() {
|
|
278
304
|
var self = this;
|
|
@@ -326,6 +352,14 @@
|
|
|
326
352
|
window.localStorage.setItem(this.sideBarPageType+"key", this.sideBarStatus);
|
|
327
353
|
this.$refs.table.setTableHeight();
|
|
328
354
|
},
|
|
355
|
+
refreshPage(pageHeight) {
|
|
356
|
+
if(pageHeight){
|
|
357
|
+
this.pageHeightReal=pageHeight+'px';
|
|
358
|
+
}
|
|
359
|
+
if(this.$refs.table){
|
|
360
|
+
this.$refs.table.setTableHeight();
|
|
361
|
+
}
|
|
362
|
+
},
|
|
329
363
|
closeSideHandler() {
|
|
330
364
|
this.$refs.sideMenu.clickHandler();
|
|
331
365
|
},
|
|
@@ -458,6 +458,8 @@ export default {
|
|
|
458
458
|
{
|
|
459
459
|
var submitData={'columnName':col.id,columnWidth:col.width}
|
|
460
460
|
self.model.getAction(self.model.columnWidthSaveAction, submitData);
|
|
461
|
+
}else if(!self.model.columnWidthSaveAction){
|
|
462
|
+
window.localStorage.setItem(self.model.title+"_"+ col.id, col.width);
|
|
461
463
|
}
|
|
462
464
|
|
|
463
465
|
//如果是高度可变的列,重新计算整个表的高度
|
|
@@ -512,7 +514,7 @@ export default {
|
|
|
512
514
|
document.addEventListener("mousemove", MouseMoveHandle, false);
|
|
513
515
|
}
|
|
514
516
|
},
|
|
515
|
-
getPage(index) {
|
|
517
|
+
getPage(index,flagRefreshRowHandle) {
|
|
516
518
|
var self = this;
|
|
517
519
|
if (typeof self.$refs.tableParent !== "undefined") {
|
|
518
520
|
self.$refs.tableParent.scrollTop = 0;
|
|
@@ -522,6 +524,9 @@ export default {
|
|
|
522
524
|
}
|
|
523
525
|
var next = function (rtn) {
|
|
524
526
|
if (rtn) {
|
|
527
|
+
if(flagRefreshRowHandle){
|
|
528
|
+
self.$emit('refreshRowHandle');
|
|
529
|
+
}
|
|
525
530
|
self.$forceUpdate();
|
|
526
531
|
self.$nextTick(() => {
|
|
527
532
|
if (self.$refs.tableParent && self.$refs.tableParent.scrollHeight <= self.$refs.tableParent.offsetHeight) {
|
|
@@ -693,7 +698,7 @@ export default {
|
|
|
693
698
|
var h6 = this.$refs.listFooter.$el.offsetHeight | 0;
|
|
694
699
|
var h7 = this.$refs.tableStats ? (this.$refs.tableStats.$el.offsetHeight + 7) | 0 : 0;
|
|
695
700
|
var h8 = this.$refs.popupButton ? this.$refs.popupButton.offsetHeight + 21 : 0;
|
|
696
|
-
let tableHeight = h1 - h2 - h3 - h4 - h5 - h6 - h7 - h8 -
|
|
701
|
+
let tableHeight = h1 - h2 - h3 - h4 - h5 - h6 - h7 - h8 - 8;
|
|
697
702
|
this.model.tableHeight = tableHeight < 40 ? 350 : tableHeight;
|
|
698
703
|
this.$nextTick(() => {
|
|
699
704
|
self.getScrollAttr();
|
|
@@ -733,6 +738,8 @@ export default {
|
|
|
733
738
|
let tableHeight = h1 - h2 - h3 - h4 - h5 - h6 - h7 - h8 - 290 -7;
|
|
734
739
|
if(this.flagAppMode){
|
|
735
740
|
tableHeight = tableHeight + 40;
|
|
741
|
+
}else{
|
|
742
|
+
tableHeight = tableHeight - 40;
|
|
736
743
|
}
|
|
737
744
|
if (h2 == 0) {
|
|
738
745
|
tableHeight = tableHeight + 15;
|
|
@@ -1186,6 +1193,7 @@ export default {
|
|
|
1186
1193
|
height: field.dialogHeight + "px",
|
|
1187
1194
|
documentHeight: self.documentHeight,
|
|
1188
1195
|
documentWidth: self.documentWidth,
|
|
1196
|
+
flagScroll:true,
|
|
1189
1197
|
},
|
|
1190
1198
|
on: {
|
|
1191
1199
|
submit(ev) {
|
|
@@ -1368,7 +1376,6 @@ export default {
|
|
|
1368
1376
|
routerCellClickHandler(field, submitData, action, rowindex, forname, forrowindex) {
|
|
1369
1377
|
let self = this;
|
|
1370
1378
|
action = action || field.action;
|
|
1371
|
-
|
|
1372
1379
|
var clickAcion = function () {
|
|
1373
1380
|
//若不是客户端方法,则直接访问接口
|
|
1374
1381
|
if (!field.isClientFuntion) {
|
|
@@ -1486,6 +1493,7 @@ export default {
|
|
|
1486
1493
|
showTitle: false,
|
|
1487
1494
|
width: field.dialogWidth + "px",
|
|
1488
1495
|
height: field.dialogHeight + "px",
|
|
1496
|
+
flagScroll:true,
|
|
1489
1497
|
},
|
|
1490
1498
|
on: {
|
|
1491
1499
|
submit(ev) {
|
|
@@ -1573,6 +1581,16 @@ export default {
|
|
|
1573
1581
|
self.model.currentCallTelrouter = "router" + forname + forrowindex;
|
|
1574
1582
|
self.callTelClick(self.$refs["layout" + rowindex][0], data, forname, forrowindex);
|
|
1575
1583
|
}
|
|
1584
|
+
else {
|
|
1585
|
+
if (!field.flagFreshCurrentRow && !field.flagAddRowAfterAction) {
|
|
1586
|
+
self.model.doAction({ responseData: data });
|
|
1587
|
+
self.$emit("refreshRowHandle");
|
|
1588
|
+
}
|
|
1589
|
+
self.$forceUpdate();
|
|
1590
|
+
self.tableComplate = true;
|
|
1591
|
+
self.updateCurrentRow(field, data);
|
|
1592
|
+
self.tableComplate = false;
|
|
1593
|
+
}
|
|
1576
1594
|
});
|
|
1577
1595
|
}
|
|
1578
1596
|
}
|
|
@@ -1732,10 +1750,7 @@ export default {
|
|
|
1732
1750
|
}
|
|
1733
1751
|
|
|
1734
1752
|
//合并行
|
|
1735
|
-
if (
|
|
1736
|
-
row.$rowspan !== 0 &&
|
|
1737
|
-
this.model.rowMergedColumns.indexOf(column.id) > -1
|
|
1738
|
-
) {
|
|
1753
|
+
if ( row.$rowspan !== 0 && this.model.rowMergedColumns.indexOf(column.id) > -1 ) {
|
|
1739
1754
|
return row.$rowspan;
|
|
1740
1755
|
}
|
|
1741
1756
|
|
|
@@ -1747,10 +1762,7 @@ export default {
|
|
|
1747
1762
|
}
|
|
1748
1763
|
|
|
1749
1764
|
//合并行
|
|
1750
|
-
if (
|
|
1751
|
-
row.$rowspan === 0 &&
|
|
1752
|
-
this.model.rowMergedColumns.indexOf(column.id) > -1
|
|
1753
|
-
) {
|
|
1765
|
+
if ( row.$rowspan === 0 && this.model.rowMergedColumns.indexOf(column.id) > -1) {
|
|
1754
1766
|
return false;
|
|
1755
1767
|
}
|
|
1756
1768
|
|
|
@@ -1774,7 +1786,7 @@ export default {
|
|
|
1774
1786
|
self.model.searchStats = m;
|
|
1775
1787
|
if (flagRefreshTable) {
|
|
1776
1788
|
self.disabledStats=true;
|
|
1777
|
-
self.getPage(1);
|
|
1789
|
+
self.getPage(1,true);
|
|
1778
1790
|
}
|
|
1779
1791
|
},
|
|
1780
1792
|
getRowRouterShow(row) {
|
|
@@ -2108,7 +2120,7 @@ export default {
|
|
|
2108
2120
|
border-color: #faecd8;
|
|
2109
2121
|
width: 100%;
|
|
2110
2122
|
box-shadow: 0 2px 10px 0 rgb(0 0 0 / 10%);
|
|
2111
|
-
margin-bottom:
|
|
2123
|
+
margin-bottom: 4px;
|
|
2112
2124
|
}
|
|
2113
2125
|
.theadLine {
|
|
2114
2126
|
position: relative;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div class="field-top">
|
|
3
3
|
<div style="width:100%;display:flex" v-if="model !== null" class="ct-Seg" :class="[model.attrs.size?'ct-Seg-'+model.attrs.size:'']">
|
|
4
4
|
<div style="flex:1;" :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'']">
|
|
5
|
-
<div v-if="model.showLabel && model.label" class="el-input-group__prepend" :class="[model.labelClass]">
|
|
5
|
+
<div v-if="model.showLabel && model.label" class="el-input-group__prepend Seg-line-feed" :class="[model.labelClass]">
|
|
6
6
|
{{model.label}}
|
|
7
7
|
</div>
|
|
8
8
|
<div class="ct-radios" :class="[model.showLabel?'showLabel':'',model.value !== ''?'hasValue':'']">
|
|
@@ -132,4 +132,8 @@
|
|
|
132
132
|
.ct-Seg .ct-radios .ct-Seg-label {
|
|
133
133
|
margin-right: 15px;
|
|
134
134
|
}
|
|
135
|
+
.ct-form .ct-Seg .Seg-line-feed {
|
|
136
|
+
word-wrap: break-word;
|
|
137
|
+
white-space: normal;
|
|
138
|
+
}
|
|
135
139
|
</style>
|
|
@@ -30,6 +30,26 @@ const CellLayout = function (source, actionRouter,rowdata, forname, forrowindex)
|
|
|
30
30
|
return '0';
|
|
31
31
|
}
|
|
32
32
|
else {
|
|
33
|
+
if (typeof source.visibility !== "undefined") {
|
|
34
|
+
if (source.visibility.indexOf('!=') > -1) {
|
|
35
|
+
var str = source.visibility.split('!=')
|
|
36
|
+
if ((',' + str[1] + ',').indexOf(',' + str[0] + ',') > -1) {
|
|
37
|
+
return '0';
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return '1';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else if (source.visibility.indexOf('=') > -1) {
|
|
44
|
+
var str = source.visibility.split('=')
|
|
45
|
+
if ((',' + str[1] + ',').indexOf(',' + str[0] + ',') > -1) {
|
|
46
|
+
return '1';
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return '0';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
33
53
|
return source.visibility;
|
|
34
54
|
}
|
|
35
55
|
},
|
|
@@ -191,9 +211,6 @@ const CellLayout = function (source, actionRouter,rowdata, forname, forrowindex)
|
|
|
191
211
|
self._styleObject.backgroundImage = 'linear-gradient(' + source.gradientColor.replace(/-/g, ",") + ')';
|
|
192
212
|
}
|
|
193
213
|
}
|
|
194
|
-
if (typeof source.visibility !== 'undefined') {
|
|
195
|
-
self._styleObject.visibility = source.visibility;
|
|
196
|
-
}
|
|
197
214
|
if (typeof source.weight !== 'undefined') {
|
|
198
215
|
self._styleObject.flex = source.weight;
|
|
199
216
|
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import base from '../../index';
|
|
2
|
+
import Base from './Base';
|
|
3
|
+
import LibFunction from './lib/LibFunction';
|
|
4
|
+
import Router from './Router';
|
|
5
|
+
import Enum from './lib/Enum';
|
|
6
|
+
|
|
7
|
+
const Container = function (source, sourceParent) {
|
|
8
|
+
var rtn = {
|
|
9
|
+
get label() {
|
|
10
|
+
let l = '';
|
|
11
|
+
if (source.controlLabel) {
|
|
12
|
+
l = source.controlLabel;
|
|
13
|
+
}
|
|
14
|
+
if (source.labelDelimiter) {
|
|
15
|
+
l = l + source.labelDelimiter;
|
|
16
|
+
}
|
|
17
|
+
return l;
|
|
18
|
+
},
|
|
19
|
+
isChanged: false,
|
|
20
|
+
set label(v) {
|
|
21
|
+
source.controlLabel = v;
|
|
22
|
+
},
|
|
23
|
+
_buttons: null,
|
|
24
|
+
get buttons() {
|
|
25
|
+
if (rtn._buttons !== null) {
|
|
26
|
+
return rtn._buttons;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
rtn._buttons = [];
|
|
30
|
+
if (sourceParent.buttons) {
|
|
31
|
+
sourceParent.buttons.forEach((v) => {
|
|
32
|
+
var button = Router(v);
|
|
33
|
+
button.is = "ct-btn";
|
|
34
|
+
rtn._buttons.push(button);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return rtn._buttons;
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
_links: null,
|
|
41
|
+
get links() {
|
|
42
|
+
if (rtn._links !== null) {
|
|
43
|
+
return rtn._links;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
rtn._links = [];
|
|
47
|
+
if (sourceParent.links) {
|
|
48
|
+
sourceParent.links.forEach((v) => {
|
|
49
|
+
var button = Router(v);
|
|
50
|
+
button.is = "ct-btn";
|
|
51
|
+
if (button.show) {
|
|
52
|
+
rtn._links.push(button);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return rtn._links;
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
_actionRouters: null,
|
|
60
|
+
get actionRouters() {
|
|
61
|
+
if (rtn._actionRouters !== null) {
|
|
62
|
+
return rtn._actionRouters;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
rtn._actionRouters = [];
|
|
66
|
+
if (sourceParent.actionRouters) {
|
|
67
|
+
sourceParent.actionRouters.forEach((v) => {
|
|
68
|
+
var button = Router(v);
|
|
69
|
+
button.is = "ct-btn";
|
|
70
|
+
rtn._actionRouters.push(button);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return rtn._actionRouters;
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
getFormObj() {
|
|
77
|
+
var rtnFormObj = {};
|
|
78
|
+
rtn.fields.forEach((f) => {
|
|
79
|
+
if (typeof f.id !== 'undefined') {
|
|
80
|
+
Object.assign(rtnFormObj, f.getFormObj());
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
return rtnFormObj;
|
|
84
|
+
},
|
|
85
|
+
_compoundfieldsDic: null,//字典,方便取值
|
|
86
|
+
get compoundfieldsDic() {
|
|
87
|
+
if (rtn._compoundfieldsDic !== null) {
|
|
88
|
+
return rtn._compoundfieldsDic;
|
|
89
|
+
}
|
|
90
|
+
rtn._compoundfieldsDic = {};
|
|
91
|
+
if (source.compoundFields) {
|
|
92
|
+
source.compoundFields.forEach((f) => {
|
|
93
|
+
let item = LibFunction.GetControl(f, sourceParent, false, false);
|
|
94
|
+
rtn._compoundfieldsDic[item.id] = item;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return rtn._compoundfieldsDic;
|
|
98
|
+
},
|
|
99
|
+
_fields: null,//数组,方便遍历
|
|
100
|
+
get fields() {
|
|
101
|
+
if (rtn._fields !== null) {
|
|
102
|
+
return rtn._fields;
|
|
103
|
+
}
|
|
104
|
+
let Index = 0;
|
|
105
|
+
rtn._fields = [];
|
|
106
|
+
source.compoundFields.forEach((v) => {
|
|
107
|
+
Index++;
|
|
108
|
+
let showLabel = true;
|
|
109
|
+
let item = LibFunction.GetControl(v, sourceParent, showLabel, false);
|
|
110
|
+
if (item instanceof Object) {
|
|
111
|
+
item.width = v.width;
|
|
112
|
+
item.form = rtn;
|
|
113
|
+
if (Index == 1 && item.label == "") {
|
|
114
|
+
item.label = rtn.label;
|
|
115
|
+
}
|
|
116
|
+
rtn.hiddenHandle(item);//是否隐藏关联组件
|
|
117
|
+
rtn._fields.push(item);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
rtn.allRequiredHandle();//必填关联组件
|
|
121
|
+
return rtn._fields;
|
|
122
|
+
},
|
|
123
|
+
//隐藏关联组件
|
|
124
|
+
hiddenHandle(item, update) {
|
|
125
|
+
if (item.id) {
|
|
126
|
+
let sign = false;
|
|
127
|
+
let field = null;
|
|
128
|
+
|
|
129
|
+
for (var i in source.compoundFields) {
|
|
130
|
+
if (source.compoundFields[i].hiddenRelationField === item.id) {
|
|
131
|
+
field = source.compoundFields[i];
|
|
132
|
+
if (field) {
|
|
133
|
+
let hiddenValueArr = field.hiddenRelationFieldValue.split(',');
|
|
134
|
+
if (hiddenValueArr.indexOf(item.code1) > -1) {
|
|
135
|
+
field.show = false;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
field.show = true;
|
|
139
|
+
}
|
|
140
|
+
sign = true;
|
|
141
|
+
|
|
142
|
+
if (update && rtn.self && sign) {
|
|
143
|
+
rtn.self.$forceUpdate();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
//验证必填关联组件
|
|
152
|
+
validMrf(item) {
|
|
153
|
+
let field = rtn.fields[item.mrf];
|
|
154
|
+
|
|
155
|
+
if (field && field.self) {
|
|
156
|
+
if (field.type === Enum.ControlType.List) {
|
|
157
|
+
//f.required = '0';
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
field.self.validExcute();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
allRequiredHandle() {
|
|
165
|
+
rtn.fields.forEach(v => {
|
|
166
|
+
rtn.requiredHandle(v, null, false);
|
|
167
|
+
});
|
|
168
|
+
},
|
|
169
|
+
//处理必填关联组件
|
|
170
|
+
requiredHandle(item, update, doMrf) {
|
|
171
|
+
if (item.id) {
|
|
172
|
+
let field = null;
|
|
173
|
+
for (var i in source.compoundFields) {
|
|
174
|
+
if (source.compoundFields[i].requiredRelationField === item.id) {
|
|
175
|
+
field = source.compoundFields[i];
|
|
176
|
+
let f = rtn.compoundfieldsDic[field.fieldName1];
|
|
177
|
+
|
|
178
|
+
if (field) {
|
|
179
|
+
let hiddenValueArr = field.requiredRelationFieldValue.split(',');
|
|
180
|
+
if (hiddenValueArr.indexOf(item.value) > -1) {
|
|
181
|
+
field.required = true;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
field.required = false;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (f && f.self && f.self.$forceUpdate) {
|
|
188
|
+
f.self.$forceUpdate();
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if (update && rtn.self) {
|
|
192
|
+
rtn.self.$forceUpdate();
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (doMrf !== false) {
|
|
199
|
+
rtn.validMrf(item);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
|
|
204
|
+
};
|
|
205
|
+
rtn = base.copy(Base(source), rtn);
|
|
206
|
+
return rtn;
|
|
207
|
+
};
|
|
208
|
+
export default Container;
|
|
@@ -55,6 +55,13 @@ const Form = function (source, callBack, apiParam, failCallBack, isFormList) {
|
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
+
// else if (f.type == Enum.ControlType.ContainerControl) {
|
|
59
|
+
// if (f.compoundFields) {
|
|
60
|
+
// f.compoundFields.forEach((v) => {
|
|
61
|
+
// rtn._fieldsDic[v.id] = v;
|
|
62
|
+
// });
|
|
63
|
+
// }
|
|
64
|
+
// }
|
|
58
65
|
rtn._fieldsDic[f.id] = f;
|
|
59
66
|
});
|
|
60
67
|
}
|
|
@@ -774,6 +781,11 @@ const Form = function (source, callBack, apiParam, failCallBack, isFormList) {
|
|
|
774
781
|
parentFieldNameArr.forEach((v) => {
|
|
775
782
|
let vs=v.split('.');
|
|
776
783
|
submitData[vs[vs.length-1]] = tempFormData[v];
|
|
784
|
+
if(submitData[vs[vs.length-1]]==undefined){
|
|
785
|
+
if(rtn.self && rtn.self.parentModelForm){
|
|
786
|
+
submitData[vs[vs.length-1]] = rtn.self.parentModelForm.getFormObj()[v];
|
|
787
|
+
}
|
|
788
|
+
}
|
|
777
789
|
});
|
|
778
790
|
|
|
779
791
|
if(JSON.stringify(submitData) == "{}"){
|
|
@@ -376,10 +376,11 @@ const FormList = function (source, master) {
|
|
|
376
376
|
"text": "提交",
|
|
377
377
|
"buttonType": Enum.ButtonType.Submit
|
|
378
378
|
}
|
|
379
|
-
]
|
|
379
|
+
],
|
|
380
380
|
},
|
|
381
381
|
width: rtn.pageWidth+'px',
|
|
382
|
-
height: rtn.pageHeight+'px'
|
|
382
|
+
height: rtn.pageHeight+'px',
|
|
383
|
+
parentModelForm:self.$self.parentModel,
|
|
383
384
|
},
|
|
384
385
|
on: {
|
|
385
386
|
submit: function (ev) {
|
|
@@ -452,7 +453,8 @@ const FormList = function (source, master) {
|
|
|
452
453
|
]
|
|
453
454
|
},
|
|
454
455
|
width: rtn.pageWidth+'px',
|
|
455
|
-
height: rtn.pageHeight+'px'
|
|
456
|
+
height: rtn.pageHeight+'px',
|
|
457
|
+
parentModelForm:self.$self.parentModel,
|
|
456
458
|
},
|
|
457
459
|
on: {
|
|
458
460
|
submit: function (ev) {
|
|
@@ -56,6 +56,14 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
|
|
|
56
56
|
|
|
57
57
|
source.content.columns.forEach((v) => {
|
|
58
58
|
v.columnWidth = v.columnWidth ? v.columnWidth : 'auto';
|
|
59
|
+
var colWidth ;
|
|
60
|
+
if (!self.columnWidthSaveAction) {
|
|
61
|
+
colWidth =window.localStorage.getItem(self.title+"_"+ common.initialsToLowerCase(v.fieldName)) ;
|
|
62
|
+
colWidth =colWidth ? colWidth : v.columnWidth;
|
|
63
|
+
v.columnWidth = colWidth;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
|
|
59
67
|
var col = {
|
|
60
68
|
fixedSize: 0,
|
|
61
69
|
get source() {
|
|
@@ -788,7 +796,8 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
|
|
|
788
796
|
let rowMerged = rtn.rowMergedColumns[j];
|
|
789
797
|
if (row[rowMerged] === rtn._lastRowspan[rowMerged]) {
|
|
790
798
|
equalNum++;
|
|
791
|
-
}
|
|
799
|
+
}
|
|
800
|
+
else {
|
|
792
801
|
break;
|
|
793
802
|
}
|
|
794
803
|
}
|
|
@@ -797,11 +806,13 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
|
|
|
797
806
|
if (equalNum === rtn.rowMergedColumns.length) {
|
|
798
807
|
row.$rowspan = 0;
|
|
799
808
|
rtn._lastRowspan.$rowspan++;
|
|
800
|
-
}
|
|
809
|
+
}
|
|
810
|
+
else {
|
|
801
811
|
row.$rowspan = 1;
|
|
802
812
|
rtn._lastRowspan = row;
|
|
803
813
|
}
|
|
804
|
-
}
|
|
814
|
+
}
|
|
815
|
+
else {
|
|
805
816
|
row.$rowspan = 1;
|
|
806
817
|
rtn._lastRowspan = row;
|
|
807
818
|
}
|
|
@@ -845,9 +856,6 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
|
|
|
845
856
|
}
|
|
846
857
|
|
|
847
858
|
source.page.rows = source.page.rows - deleteRow.length;
|
|
848
|
-
if (rtn.cellLayout) {
|
|
849
|
-
rtn.$vue.$delete(rtn.listData, rtn.selectIndex);
|
|
850
|
-
}
|
|
851
859
|
break;
|
|
852
860
|
|
|
853
861
|
case Enum.ActionType.New: //新增
|
|
@@ -240,15 +240,22 @@ const Enum = {
|
|
|
240
240
|
/// 表单
|
|
241
241
|
/// </summary>
|
|
242
242
|
From: 49,
|
|
243
|
+
|
|
243
244
|
/// <summary>
|
|
244
245
|
/// 列表的的自定义列
|
|
245
246
|
/// </summary>
|
|
246
247
|
CustomizeColumns: 50,
|
|
248
|
+
|
|
247
249
|
/// <summary>
|
|
248
250
|
/// 分片上传
|
|
249
251
|
/// </summary>
|
|
250
252
|
SliceUpload: 51,
|
|
251
253
|
|
|
254
|
+
/// <summary>
|
|
255
|
+
/// 容器控件(包含一组 Field ,显示容器样式 布局遵循表单的几列布局模式)
|
|
256
|
+
/// </summary>
|
|
257
|
+
ContainerControl: 52,
|
|
258
|
+
|
|
252
259
|
},
|
|
253
260
|
|
|
254
261
|
//返回状态码
|
|
@@ -36,7 +36,7 @@ import Repeat from '../Repeat';
|
|
|
36
36
|
import Compound from '../Compound';
|
|
37
37
|
import RichText from '../RichText';
|
|
38
38
|
import DragSort from '../DragSort';
|
|
39
|
-
|
|
39
|
+
import Container from '../Container';
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
const LibFunction = {
|
|
@@ -237,6 +237,10 @@ const LibFunction = {
|
|
|
237
237
|
item = Compound(field, source);
|
|
238
238
|
item.is = 'ct-compound';
|
|
239
239
|
break;
|
|
240
|
+
case Enum.ControlType.ContainerControl: //容器控件
|
|
241
|
+
item = Container(field, source);
|
|
242
|
+
item.is = 'ct-container';
|
|
243
|
+
break;
|
|
240
244
|
case Enum.ControlType.Hidden: //隐藏控件
|
|
241
245
|
item = Hd(field);
|
|
242
246
|
break;
|