centaline-data-driven 1.3.49 → 1.3.52
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/Form.vue +2 -6
- package/src/SearchList.vue +5 -5
- package/src/centaline/css/max.css +13 -0
- package/src/centaline/dialogList/src/dialog.vue +14 -2
- package/src/centaline/dynamicCheckbox/src/dynamicCheckbox.vue +1 -1
- package/src/centaline/dynamicDetail/src/dynamicPropertyDetailOFI.vue +24 -2
- package/src/centaline/dynamicDetail/src/dynamicPropertyDetailRET.vue +1 -0
- package/src/centaline/dynamicForm/src/dynamicForm.vue +27 -14
- package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchList.vue +2 -2
- package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchListTable.vue +40 -17
- package/src/centaline/dynamicSearchList/src/dynamicSearchList.vue +10 -1
- package/src/centaline/dynamicSearchList/src/dynamicSearchScreen.vue +3 -3
- package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +15 -12
- package/src/centaline/dynamicSearchList/src/dynamicTableToolbar.vue +1 -1
- package/src/centaline/dynamicViewerFile/src/dynamicViewerFile.vue +338 -381
- package/src/centaline/loader/src/ctl/Base.js +9 -0
- package/src/centaline/loader/src/ctl/Checkbox.js +3 -0
- package/src/centaline/loader/src/ctl/SearchTable.js +5 -4
- package/src/centaline/loader/src/ctl/lib/LibFunction.js +17 -7
- package/src/main.js +9 -6
- package/wwwroot/static/centaline/centaline-data-driven.js +3 -3
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
package/package.json
CHANGED
package/src/Form.vue
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div id="form-app" class="data-driven" style="width:100%;height:100%;overflow:auto">
|
|
3
3
|
<!-- <ct-form :source="formdata.content" :apiParam="apiParam"></ct-form> -->
|
|
4
|
-
<ct-form :api="'/
|
|
4
|
+
<ct-form :api="'/commissionmanage/apply'" :apiParam="apiParam" :topHeight="topHeight"></ct-form>
|
|
5
5
|
<ct-dialog-list></ct-dialog-list>
|
|
6
6
|
</div>
|
|
7
7
|
</template>
|
|
@@ -12,11 +12,7 @@
|
|
|
12
12
|
data() {
|
|
13
13
|
return {
|
|
14
14
|
apiParam:{
|
|
15
|
-
|
|
16
|
-
originalTraId: "1556877589776220161",
|
|
17
|
-
pageOnly: true,
|
|
18
|
-
pageStyle: 2,
|
|
19
|
-
pageTitle: "成交报告"
|
|
15
|
+
|
|
20
16
|
},
|
|
21
17
|
topHeight:10,
|
|
22
18
|
}
|
package/src/SearchList.vue
CHANGED
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
:searchCategoryApi="'/ProfileWorklistList/getLayoutOfSearchCategory'"
|
|
9
9
|
:searchDataApi="'/ProfileWorklistList/getListOfSearchModel'" :apiParam="para"></ct-searchlist> -->
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
:searchDataApi="'/api/
|
|
13
|
-
</ct-searchlist>
|
|
11
|
+
<ct-searchlist :searchConditionApi="'/api/agenttrans/transactionList/getLayoutOfSearch'"
|
|
12
|
+
:searchDataApi="'/api/agenttrans/transactionList/getTableList'">
|
|
13
|
+
</ct-searchlist>
|
|
14
14
|
|
|
15
|
-
<ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'"
|
|
15
|
+
<!-- <ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'"
|
|
16
16
|
:searchDataApi="'/PropertyRETList/getListOfSearchModel'"
|
|
17
17
|
:searchCategoryApi="'/PropertyRETList/getLayoutOfSearchCategory'"
|
|
18
18
|
:searchStatsApi="'/exampleList/getListStats'">
|
|
19
|
-
</ct-searchlist>
|
|
19
|
+
</ct-searchlist> -->
|
|
20
20
|
|
|
21
21
|
<ct-dialog-list></ct-dialog-list>
|
|
22
22
|
</div>
|
|
@@ -280,3 +280,16 @@
|
|
|
280
280
|
justify-content: flex-start;
|
|
281
281
|
align-items: center;
|
|
282
282
|
}
|
|
283
|
+
.max-tableToolbar {
|
|
284
|
+
padding-top: 10px !important;
|
|
285
|
+
}
|
|
286
|
+
.st-serach-screen .max-shortcutFollow {
|
|
287
|
+
padding-left: 0px !important;
|
|
288
|
+
padding-bottom: 10px !important;
|
|
289
|
+
}
|
|
290
|
+
.st-serach-screen .max-list-field {
|
|
291
|
+
padding-left: 0px !important;
|
|
292
|
+
}
|
|
293
|
+
.st-serach-screen .max-ptb5 {
|
|
294
|
+
padding-bottom: 5px !important;
|
|
295
|
+
}
|
|
@@ -152,8 +152,20 @@
|
|
|
152
152
|
if(item.attrs.height){
|
|
153
153
|
ph=parseInt(item.attrs.height.replace('px',''));
|
|
154
154
|
}
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
|
|
156
|
+
if(item.attrs.documentHeight && item.attrs.documentHeight!='auto'){
|
|
157
|
+
let dh=parseInt(item.attrs.documentHeight.replace('px',''));
|
|
158
|
+
if(dh<ph){
|
|
159
|
+
item.attrs.height=item.attrs.documentHeight;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else if(self.vmodel.pane && self.vmodel.pane.$el){
|
|
163
|
+
if(self.vmodel.pane.$el.clientHeight<ph) {
|
|
164
|
+
item.attrs.height=(self.vmodel.pane.$el.clientHeight-60)+'px';
|
|
165
|
+
}
|
|
166
|
+
if(item.component=='ct-form'){
|
|
167
|
+
item.attrs.documentHeight=(self.vmodel.pane.$el.clientHeight-60)+'px';
|
|
168
|
+
}
|
|
157
169
|
}
|
|
158
170
|
|
|
159
171
|
return h('div', {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
</div>
|
|
8
8
|
<div class="ct-checkbox-mian cover-list-item" :class="[model.showLabel?'showLabel':'',model.value !== ''?'hasValue':'',model.label?'':'lableNaN']">
|
|
9
9
|
<el-checkbox-group v-model="model.checkedItemArr" @change="changeHandler1">
|
|
10
|
-
<el-checkbox :disabled="model.lock" v-for="item in model.options" :label="item[model.optionAttrs.value]" :key="item[model.optionAttrs.value]">{{item[model.optionAttrs.label]}}</el-checkbox>
|
|
10
|
+
<el-checkbox :disabled="model.lock" v-for="item in model.options" :label="item[model.optionAttrs.value]" :key="item[model.optionAttrs.value]" :style="{ width: model.width1 + 'px' }">{{item[model.optionAttrs.label]}}</el-checkbox>
|
|
11
11
|
<span v-if="!model.lock" class="cover-list-item-span max-cover-list-item">
|
|
12
12
|
<i class="el-input__icon el-icon-circle-close" @click="clearClickHandle"></i>
|
|
13
13
|
</span>
|
|
@@ -848,8 +848,29 @@ export default {
|
|
|
848
848
|
// if (typeof field.onClick !== 'undefined') {
|
|
849
849
|
// verified = self.$common.excute.call(self.model.scripts, field.onClick);
|
|
850
850
|
// }
|
|
851
|
-
|
|
852
|
-
|
|
851
|
+
if (field.isBrowseAttachment) {//浏览附件
|
|
852
|
+
var MediaAlbum = [
|
|
853
|
+
{ albumName: self.model.title || "媒体", medias: [] },
|
|
854
|
+
];
|
|
855
|
+
if (field.action) {
|
|
856
|
+
var callback = function (data) {
|
|
857
|
+
MediaAlbum[0].medias = data;
|
|
858
|
+
self.$common.viewerfile(field, MediaAlbum, 0, 0);
|
|
859
|
+
}
|
|
860
|
+
var vsubmitData = {
|
|
861
|
+
...field.getActionPara(submitData).para,
|
|
862
|
+
...submitData
|
|
863
|
+
};
|
|
864
|
+
self.model.getAction(field.action, vsubmitData, callback);
|
|
865
|
+
}
|
|
866
|
+
else {
|
|
867
|
+
submitData.mediaData.forEach((v) => {
|
|
868
|
+
MediaAlbum[0].medias.push(v);
|
|
869
|
+
});
|
|
870
|
+
self.$common.viewerfile(field, MediaAlbum, 0, 0);
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
else if (field.isOpenForm) {
|
|
853
874
|
var dialogOption = {
|
|
854
875
|
title: field.pageTitle,
|
|
855
876
|
pane: self.$common.getParentPane(self),
|
|
@@ -1223,6 +1244,7 @@ export default {
|
|
|
1223
1244
|
|
|
1224
1245
|
.hous-t {
|
|
1225
1246
|
width: 260px;
|
|
1247
|
+
margin-top: 10px;
|
|
1226
1248
|
.swiper-i {
|
|
1227
1249
|
position: relative;
|
|
1228
1250
|
width: 100%;
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
<!--头部元素-->
|
|
11
11
|
<el-row v-if="collapseFieldsRow.length > 0">
|
|
12
12
|
<el-col v-for="(col, index) in collapseFieldsRow[0]" :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
|
|
13
|
-
<component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model" v-bind="col.bindPara"
|
|
13
|
+
<component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model" v-bind="col.bindPara"
|
|
14
|
+
:fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight"
|
|
14
15
|
@click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
|
|
15
16
|
@input="inputHandler(col,$event)" @importComplete="importComplete"
|
|
16
17
|
@popupSearchList="popupSearchListHandler"
|
|
@@ -24,7 +25,8 @@
|
|
|
24
25
|
v-for="(item, index) in collapse" v-if="item.show !== false" :key="index">
|
|
25
26
|
<el-row>
|
|
26
27
|
<el-col v-for="(col, index) in collapseFieldsRow[index + 1]" :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
|
|
27
|
-
<component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model" v-bind="col.bindPara"
|
|
28
|
+
<component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model" v-bind="col.bindPara"
|
|
29
|
+
:fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight"
|
|
28
30
|
@click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
|
|
29
31
|
@input="inputHandler(col,$event)" @importComplete="importComplete"
|
|
30
32
|
@popupSearchList="popupSearchListHandler"
|
|
@@ -43,7 +45,8 @@
|
|
|
43
45
|
</template>
|
|
44
46
|
<el-row>
|
|
45
47
|
<el-col v-for="(col, index) in collapseFieldsRow[index + 1]" :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
|
|
46
|
-
<component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model" v-bind="col.bindPara"
|
|
48
|
+
<component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model" v-bind="col.bindPara"
|
|
49
|
+
:fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight"
|
|
47
50
|
@click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
|
|
48
51
|
@input="inputHandler(col,$event)" @importComplete="importComplete"
|
|
49
52
|
@popupSearchList="popupSearchListHandler"
|
|
@@ -56,7 +59,8 @@
|
|
|
56
59
|
<!--尾部元素-->
|
|
57
60
|
<el-row v-if="independentItem.length > 0" style="margin-top: 20px;">
|
|
58
61
|
<el-col v-for="(col, index) in independentItem" :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
|
|
59
|
-
<component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model" v-bind="col.bindPara"
|
|
62
|
+
<component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model" v-bind="col.bindPara"
|
|
63
|
+
:fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight"
|
|
60
64
|
@click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)"
|
|
61
65
|
@input="inputHandler(col,$event)" @importComplete="importComplete"
|
|
62
66
|
@popupSearchList="popupSearchListHandler"
|
|
@@ -105,7 +109,11 @@
|
|
|
105
109
|
showTitle: {
|
|
106
110
|
type: Boolean,
|
|
107
111
|
default: false
|
|
108
|
-
}
|
|
112
|
+
},
|
|
113
|
+
documentHeight:{
|
|
114
|
+
String,
|
|
115
|
+
default: 'auto',
|
|
116
|
+
},
|
|
109
117
|
},
|
|
110
118
|
data() {
|
|
111
119
|
return {
|
|
@@ -117,17 +125,16 @@
|
|
|
117
125
|
collapseActiveNames: [],//默认展开的分组name
|
|
118
126
|
collapseFieldsRow: [],//分组数组对应的行列布局
|
|
119
127
|
independentItem: [],//最后一个独立分组的行列布局
|
|
120
|
-
minHeight:'auto'
|
|
128
|
+
minHeight:'auto',
|
|
121
129
|
};
|
|
122
130
|
},
|
|
123
131
|
mounted() {
|
|
124
132
|
this.init();
|
|
125
|
-
|
|
126
|
-
this.minHeight=(document.documentElement.clientHeight-this.topHeight-20)+'px';
|
|
127
|
-
}
|
|
133
|
+
this.setCss();
|
|
128
134
|
},
|
|
129
135
|
updated(){
|
|
130
136
|
if(this.$el.parentElement.scrollHeight>this.$el.parentElement.clientHeight
|
|
137
|
+
&& this.model
|
|
131
138
|
&& !this.model.isHorizontalLayout){
|
|
132
139
|
this.isScroll=true;
|
|
133
140
|
}
|
|
@@ -356,12 +363,12 @@
|
|
|
356
363
|
content: [{
|
|
357
364
|
component: 'ct-form',
|
|
358
365
|
attrs: {
|
|
359
|
-
//ssource: data.content,
|
|
360
366
|
api: field.action,
|
|
361
367
|
apiParam: field.getActionPara(submitData).para,
|
|
362
368
|
showTitle: false,
|
|
363
369
|
width: field.dialogWidth + 'px',
|
|
364
|
-
height: field.dialogHeight + 'px'
|
|
370
|
+
height: field.dialogHeight + 'px',
|
|
371
|
+
documentHeight:self.documentHeight,
|
|
365
372
|
},
|
|
366
373
|
on: {
|
|
367
374
|
submit(ev) {
|
|
@@ -704,7 +711,8 @@
|
|
|
704
711
|
apiParam: submitData,
|
|
705
712
|
singleSelectio: singleSelectio,
|
|
706
713
|
width: router.dialogWidth + 'px',
|
|
707
|
-
height: (router.dialogHeight || 500) + 'px'
|
|
714
|
+
height: (router.dialogHeight || 500) + 'px',
|
|
715
|
+
documentHeight:self.documentHeight,
|
|
708
716
|
},
|
|
709
717
|
on: {
|
|
710
718
|
submit(option) {
|
|
@@ -751,8 +759,8 @@
|
|
|
751
759
|
i++;
|
|
752
760
|
|
|
753
761
|
if (!jump) {
|
|
754
|
-
if (
|
|
755
|
-
|
|
762
|
+
if (self.model.isHorizontalLayout) {//水平布局
|
|
763
|
+
self.activeName = f.model.collapseName.toString()==='-1'?self.activeName:f.model.collapseName.toString();
|
|
756
764
|
jump = true;
|
|
757
765
|
}
|
|
758
766
|
else {//垂直布局
|
|
@@ -827,6 +835,11 @@
|
|
|
827
835
|
}
|
|
828
836
|
return submitData;
|
|
829
837
|
},
|
|
838
|
+
setCss() {
|
|
839
|
+
if(this.topHeight>-1){
|
|
840
|
+
this.minHeight=(document.documentElement.clientHeight-this.topHeight-20)+'px';
|
|
841
|
+
}
|
|
842
|
+
},
|
|
830
843
|
}
|
|
831
844
|
}
|
|
832
845
|
</script>
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div v-loading="loading" style="width:100%">
|
|
3
3
|
<div v-if="model !== null && !loading" class="ct-form">
|
|
4
|
-
<div class="ct-ptb5 max-flex">
|
|
4
|
+
<div ref="search" class="ct-ptb5 max-flex">
|
|
5
5
|
<template v-for="(col, index) in model.fields" v-if="col.show !== false">
|
|
6
|
-
<!-- <br v-if="col.is === 'ct-linefeed'" /> -->
|
|
7
6
|
<div v-if="col.is === 'ct-linefeed'" style="width: 100%;">
|
|
8
7
|
<el-divider></el-divider>
|
|
9
8
|
</div>
|
|
@@ -67,6 +66,7 @@
|
|
|
67
66
|
}
|
|
68
67
|
this.loadFields();
|
|
69
68
|
this.$nextTick(() => {
|
|
69
|
+
this.$refs.table.setELTableHeight(this.$el.parentElement.clientHeight,this.$refs.search.clientHeight)
|
|
70
70
|
this.$refs.table.searchComplate(this.model,this.model.flagSearch);
|
|
71
71
|
});
|
|
72
72
|
this.loading = false;
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div style="padding:0 8px 0 10px">
|
|
3
|
-
<div v-if="model !== null
|
|
4
|
-
<el-table ref="multipleTable"
|
|
5
|
-
:
|
|
6
|
-
|
|
7
|
-
tooltip-effect="dark"
|
|
8
|
-
size="mini"
|
|
9
|
-
style="width: 100%;"
|
|
10
|
-
max-height="450"
|
|
11
|
-
fit
|
|
12
|
-
:row-class-name="tableRowClassName"
|
|
3
|
+
<div v-if="model !== null">
|
|
4
|
+
<el-table ref="multipleTable" :data="tableData"
|
|
5
|
+
highlight-current-row tooltip-effect="dark" size="mini" style="width: 100%;" fit :row-class-name="tableRowClassName"
|
|
6
|
+
:height="elTableHeight" v-loading="loading"
|
|
13
7
|
@selection-change="handleSelectionChange"
|
|
14
8
|
@current-change="handleCurrentChange">
|
|
15
|
-
<el-table-column type="selection"
|
|
16
|
-
width="55" v-if="!singleSelectio">
|
|
17
|
-
</el-table-column>
|
|
9
|
+
<el-table-column type="selection" width="55" v-if="!singleSelectio"></el-table-column>
|
|
18
10
|
<el-table-column v-for="(col, index) in model.columns" v-if="col.show" :key="index"
|
|
19
11
|
:prop="col.id" :label="col.name" :min-width="col.width">
|
|
20
12
|
</el-table-column>
|
|
@@ -26,7 +18,7 @@
|
|
|
26
18
|
<el-button size="mini" @click="confirmClickHandler()" class="max-search-btn" style="float:right;" type="primary">确认</el-button>
|
|
27
19
|
</div>
|
|
28
20
|
</div>
|
|
29
|
-
<div style="min-height:250px" v-loading="
|
|
21
|
+
<div style="min-height:250px;" v-loading="loadingOne" v-if="loadingOne"></div>
|
|
30
22
|
</div>
|
|
31
23
|
</template>
|
|
32
24
|
|
|
@@ -52,16 +44,24 @@
|
|
|
52
44
|
tableData: [],
|
|
53
45
|
multipleSelection: [],
|
|
54
46
|
currentRow: null,
|
|
47
|
+
loadingOne: true,
|
|
55
48
|
loading: true,
|
|
56
|
-
jumpStr: ''
|
|
49
|
+
jumpStr: '',
|
|
50
|
+
isBusy:false,
|
|
51
|
+
elTableHeight:0,
|
|
57
52
|
}
|
|
58
53
|
},
|
|
59
54
|
methods: {
|
|
60
55
|
load(data) {
|
|
56
|
+
this.loadingOne=false;
|
|
61
57
|
this.model = data;
|
|
62
58
|
this.loadFields();
|
|
63
59
|
this.loading = false;
|
|
64
60
|
this.resetTabelWidth();
|
|
61
|
+
this.$nextTick(() => {
|
|
62
|
+
var selectWrap = this.$refs.multipleTable.bodyWrapper;
|
|
63
|
+
selectWrap.addEventListener('scroll', this.scrollHandle);
|
|
64
|
+
});
|
|
65
65
|
|
|
66
66
|
//通知父组件加载完成
|
|
67
67
|
this.$emit('loaded');
|
|
@@ -82,7 +82,6 @@
|
|
|
82
82
|
this.multipleSelection = [];
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
//self.tableData.concat(this.model.listData);
|
|
86
85
|
self.tableData.push.apply(self.tableData, this.model.listData);
|
|
87
86
|
},
|
|
88
87
|
//是否需要保留已选
|
|
@@ -215,7 +214,31 @@
|
|
|
215
214
|
self.load(self.vmodel);
|
|
216
215
|
}
|
|
217
216
|
});
|
|
218
|
-
}
|
|
217
|
+
},
|
|
218
|
+
scrollHandle(ev) {
|
|
219
|
+
var self = this;
|
|
220
|
+
let selectWrap = this.$refs.multipleTable.bodyWrapper;
|
|
221
|
+
if (selectWrap.scrollTop + selectWrap.clientHeight >= selectWrap.scrollHeight - 5) {
|
|
222
|
+
if (!self.isBusy) {
|
|
223
|
+
self.isBusy = true;
|
|
224
|
+
self.loading = true;
|
|
225
|
+
self.model.nextPage((rtn,response) => {
|
|
226
|
+
if (rtn) {
|
|
227
|
+
response.content.rows.forEach((nr) => {
|
|
228
|
+
self.tableData.push(nr);
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
self.isBusy = false;
|
|
232
|
+
self.loading = false;
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
ev.cancelBubble = true;
|
|
237
|
+
ev.stopPropagation();
|
|
238
|
+
},
|
|
239
|
+
setELTableHeight(h0,h1){
|
|
240
|
+
this.elTableHeight=h0-h1-60-25;
|
|
241
|
+
},
|
|
219
242
|
}
|
|
220
243
|
}
|
|
221
244
|
</script>
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
:categoryLoaded="loaded.categoryLoaded" @search="search()" @saveShortcut="saveShortcut"
|
|
13
13
|
@showTitle="showTitleScreenHandler"></ct-searchscreen>
|
|
14
14
|
|
|
15
|
-
<ct-searchtable ref="table" :api="searchDataApi" :searchStatsApi="searchStatsApi" :from="from"
|
|
15
|
+
<ct-searchtable ref="table" :api="searchDataApi" :searchStatsApi="searchStatsApi" :from="from" :isIframe="isIframe" :documentHeight="documentHeight"
|
|
16
|
+
@loaded="tableLoaded"
|
|
16
17
|
@toolbarClick="toolbarClickHandler" @refreshParent="refreshParentHandler" :key="reloadKeyTable" @searchComplate="searchComplate"
|
|
17
18
|
@rowClickHandle="rowClickHandle" @scrollHandle="scrollHandle" @refreshRowHandle="refreshRowHandle" @doClosePopoverHandle="doClosePopoverHandle"
|
|
18
19
|
@showTitle="showTitleHandler"></ct-searchtable>
|
|
@@ -62,6 +63,10 @@
|
|
|
62
63
|
String,
|
|
63
64
|
default:'searchlist'
|
|
64
65
|
},
|
|
66
|
+
documentHeight:{
|
|
67
|
+
String,
|
|
68
|
+
default: 'auto',
|
|
69
|
+
},
|
|
65
70
|
},
|
|
66
71
|
created() {
|
|
67
72
|
this.model = this.vmodel;
|
|
@@ -69,6 +74,9 @@
|
|
|
69
74
|
if(this.searchCategoryApi){
|
|
70
75
|
this.loaded.categoryLoaded=false;
|
|
71
76
|
}
|
|
77
|
+
if(this.apiParam && this.apiParam.isIframe && this.apiParam.isIframe=='true'){
|
|
78
|
+
this.isIframe=true;
|
|
79
|
+
}
|
|
72
80
|
},
|
|
73
81
|
computed: {
|
|
74
82
|
},
|
|
@@ -112,6 +120,7 @@
|
|
|
112
120
|
selectIndex:-1,
|
|
113
121
|
rowCount:0,
|
|
114
122
|
detailKey:0,
|
|
123
|
+
isIframe: false,
|
|
115
124
|
}
|
|
116
125
|
},
|
|
117
126
|
methods: {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="st-serach-screen">
|
|
3
3
|
<div v-bind="model.attrs" style="width:100%" v-if="!isLoading">
|
|
4
|
-
<div class="ct-ptb5" v-if="showScreen">
|
|
4
|
+
<div class="ct-ptb5 max-ptb5" v-if="showScreen">
|
|
5
5
|
<template v-for="(col, index) in model.screen" v-if="col.show !== false">
|
|
6
6
|
<br v-if="col.is === 'ct-linefeed'" />
|
|
7
|
-
<component v-else class="list-field" v-bind="col.listBind" :is="col.is" :vmodel="col" :api="model.optionApi" @click="clickHandler(col)"></component>
|
|
7
|
+
<component v-else class="list-field max-list-field" v-bind="col.listBind" :is="col.is" :vmodel="col" :api="model.optionApi" @click="clickHandler(col)"></component>
|
|
8
8
|
</template>
|
|
9
9
|
<component v-for="(col, index) in model.btnScreen" :key="index" :is="col.is" :vmodel="col" :api="model.optionApi" @click="clickHandler(col)"></component>
|
|
10
10
|
</div>
|
|
11
|
-
<div class="shortcutFollow" style="padding-left: 20px;" v-if="model.shortcutForm">
|
|
11
|
+
<div class="shortcutFollow max-shortcutFollow" style="padding-left: 20px;" v-if="model.shortcutForm">
|
|
12
12
|
<ct-form :source="model.shortcutForm.code1" @submit="saveShortcut"></ct-form>
|
|
13
13
|
</div>
|
|
14
14
|
<el-popover class="SeachScreenPop max-seachpopper" placement="top" transition="el-zoom-in-top" v-model="highScreen" trigger="click" visible-arrow="false">
|
|
@@ -191,6 +191,14 @@ export default {
|
|
|
191
191
|
String,
|
|
192
192
|
default: "searchlist",
|
|
193
193
|
},
|
|
194
|
+
isIframe: {
|
|
195
|
+
Boolean,
|
|
196
|
+
default: false,
|
|
197
|
+
},
|
|
198
|
+
documentHeight:{
|
|
199
|
+
String,
|
|
200
|
+
default: 'auto',
|
|
201
|
+
},
|
|
194
202
|
},
|
|
195
203
|
computed: {},
|
|
196
204
|
data() {
|
|
@@ -212,7 +220,6 @@ export default {
|
|
|
212
220
|
rightShadow: -1, //右阴影个数
|
|
213
221
|
currentRow: null,
|
|
214
222
|
colHasWidth: {}, //有无列宽集合
|
|
215
|
-
test: true,
|
|
216
223
|
firstRow: 0, //展示出来可视的第一行号
|
|
217
224
|
pageRowMin: 0, //页面实际的第一行号
|
|
218
225
|
pageRowMax: 100, //页面实际的第后行号
|
|
@@ -626,11 +633,7 @@ export default {
|
|
|
626
633
|
},
|
|
627
634
|
scrollHandle(ev) {
|
|
628
635
|
var self = this;
|
|
629
|
-
if (
|
|
630
|
-
this.$refs.tableParent.scrollTop +
|
|
631
|
-
this.$refs.tableParent.clientHeight >=
|
|
632
|
-
this.$refs.tableParent.scrollHeight - 5
|
|
633
|
-
) {
|
|
636
|
+
if ( this.$refs.tableParent.scrollTop + this.$refs.tableParent.clientHeight >= this.$refs.tableParent.scrollHeight - 5) {
|
|
634
637
|
if (!this.isBusy) {
|
|
635
638
|
self.isBusy = true;
|
|
636
639
|
self.tableLoading = true;
|
|
@@ -644,11 +647,7 @@ export default {
|
|
|
644
647
|
});
|
|
645
648
|
}
|
|
646
649
|
}
|
|
647
|
-
this.$emit(
|
|
648
|
-
"scrollHandle",
|
|
649
|
-
this.$refs.tableParent.scrollTop,
|
|
650
|
-
this.$refs.tableParent.scrollLeft
|
|
651
|
-
);
|
|
650
|
+
this.$emit("scrollHandle", this.$refs.tableParent.scrollTop, this.$refs.tableParent.scrollLeft);
|
|
652
651
|
ev.cancelBubble = true;
|
|
653
652
|
ev.stopPropagation();
|
|
654
653
|
},
|
|
@@ -961,12 +960,12 @@ export default {
|
|
|
961
960
|
{
|
|
962
961
|
component: field.navToNewPageName,
|
|
963
962
|
attrs: {
|
|
964
|
-
//source: data.content,
|
|
965
963
|
api: action,
|
|
966
964
|
apiParam: field.getActionPara(submitData).para,
|
|
967
965
|
showTitle: false,
|
|
968
966
|
width: field.dialogWidth + "px",
|
|
969
967
|
height: field.dialogHeight + "px",
|
|
968
|
+
documentHeight:self.documentHeight,
|
|
970
969
|
},
|
|
971
970
|
on: {
|
|
972
971
|
submit(ev) {
|
|
@@ -1039,6 +1038,7 @@ export default {
|
|
|
1039
1038
|
apiParam: submitData,
|
|
1040
1039
|
width: field.dialogWidth + "px",
|
|
1041
1040
|
height: field.dialogHeight + "px",
|
|
1041
|
+
documentHeight:self.documentHeight,
|
|
1042
1042
|
},
|
|
1043
1043
|
on: {
|
|
1044
1044
|
refreshParent() {
|
|
@@ -1099,6 +1099,9 @@ export default {
|
|
|
1099
1099
|
let title = field.pageTitle == undefined ? field.label : field.pageTitle;
|
|
1100
1100
|
submitData.actionType = field.actionType;
|
|
1101
1101
|
var fun = self.$common.getDataDrivenOpts().handler[action];
|
|
1102
|
+
if(self.isIframe){
|
|
1103
|
+
submitData.isIframe=self.isIframe;
|
|
1104
|
+
}
|
|
1102
1105
|
fun(submitData, title, self.$parent);
|
|
1103
1106
|
}
|
|
1104
1107
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="ct-tableToolbar" style="width:100%;" v-if="buttons && buttons.length > 0">
|
|
2
|
+
<div class="ct-tableToolbar max-tableToolbar" style="width:100%;" v-if="buttons && buttons.length > 0">
|
|
3
3
|
|
|
4
4
|
<div v-if="buttonsLeft&&buttonsLeft.length>0" class="bool_btn_l">
|
|
5
5
|
<ul>
|