centaline-data-driven 1.4.13 → 1.4.15
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/Detail.vue +1 -1
- package/src/Form.vue +2 -28
- package/src/SearchList.vue +4 -4
- package/src/centaline/css/max.css +3 -0
- package/src/centaline/dynamicCheckbox/src/dynamicCheckbox.vue +1 -0
- package/src/centaline/dynamicDetail/src/dynamicPropertyDetailOFI.vue +3 -1
- package/src/centaline/dynamicDetail/src/dynamicPropertyDetailRET.vue +3 -1
- package/src/centaline/dynamicFile/src/dynamicFile.vue +10 -4
- package/src/centaline/dynamicForm/src/dynamicForm.vue +3 -0
- package/src/centaline/dynamicPhotoSelect/src/dynamicPhotoSelect.vue +8 -10
- package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +6 -2
- package/src/centaline/dynamicT/src/dynamicT.vue +61 -4
- package/src/centaline/dynamicViewerFile/src/dynamicViewerFile.vue +3 -1
- package/src/centaline/loader/src/ctl/Base.js +9 -0
- package/src/centaline/loader/src/ctl/Checkbox.js +78 -15
- package/src/centaline/loader/src/ctl/Sos.js +0 -6
- package/src/centaline/loader/src/ctl/T.js +24 -0
- package/src/centaline/progress/src/progress.vue +3 -0
- package/src/main.js +4 -4
- package/wwwroot/static/centaline/centaline-data-driven.js +3 -3
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
- package/centaline-data-driven-1.4.12.tgz +0 -0
package/package.json
CHANGED
package/src/Detail.vue
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="'/third-dept-tran/transaction/edit'" :apiParam="apiParam" :topHeight="topHeight"></ct-form>
|
|
5
5
|
<ct-dialog-list></ct-dialog-list>
|
|
6
6
|
</div>
|
|
7
7
|
</template>
|
|
@@ -12,33 +12,7 @@
|
|
|
12
12
|
data() {
|
|
13
13
|
return {
|
|
14
14
|
apiParam:{
|
|
15
|
-
actionType
|
|
16
|
-
:
|
|
17
|
-
2,
|
|
18
|
-
buildingID
|
|
19
|
-
:
|
|
20
|
-
"1",
|
|
21
|
-
estateID
|
|
22
|
-
:
|
|
23
|
-
"1",
|
|
24
|
-
floorID
|
|
25
|
-
:
|
|
26
|
-
"1",
|
|
27
|
-
pageOnly
|
|
28
|
-
:
|
|
29
|
-
true,
|
|
30
|
-
pageTitle
|
|
31
|
-
:
|
|
32
|
-
"开盘",
|
|
33
|
-
propertyID
|
|
34
|
-
:
|
|
35
|
-
"",
|
|
36
|
-
roomNo
|
|
37
|
-
:
|
|
38
|
-
"1527",
|
|
39
|
-
tradeID
|
|
40
|
-
:
|
|
41
|
-
"200",
|
|
15
|
+
"originalTraId":"1594610564600369153","actionType":3,"pageStyle":2,"pageTitle":"修改成交单","pageOnly":true
|
|
42
16
|
},
|
|
43
17
|
topHeight:10,
|
|
44
18
|
}
|
package/src/SearchList.vue
CHANGED
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
:searchStatsApi="'/ProfileWorklistList/getListStats'">
|
|
12
12
|
</ct-searchlist> -->
|
|
13
13
|
|
|
14
|
-
<ct-searchlist
|
|
14
|
+
<!-- <ct-searchlist
|
|
15
15
|
:searchConditionApi="'/api/distribution/distributionList/getLayoutOfSearch'"
|
|
16
16
|
:searchDataApi="'/api/distribution/distributionList'">
|
|
17
|
-
</ct-searchlist>
|
|
17
|
+
</ct-searchlist> -->
|
|
18
18
|
|
|
19
19
|
<!-- <ct-searchlist
|
|
20
20
|
:searchCategoryApi="'/PropertyPublishList/getLayoutOfSearchCategory'"
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
:searchDataApi="'/PropertyPublishList/getListOfSearchModelForRET'">
|
|
23
23
|
</ct-searchlist> -->
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
<ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'"
|
|
26
26
|
:searchDataApi="'/PropertyRETList/getListOfSearchModel'"
|
|
27
27
|
:searchCategoryApi="'/PropertyRETList/getLayoutOfSearchCategory'"
|
|
28
28
|
:searchStatsApi="'/PropertyRETList/getListStats'">
|
|
29
|
-
</ct-searchlist>
|
|
29
|
+
</ct-searchlist>
|
|
30
30
|
|
|
31
31
|
<!-- <ct-searchlist :searchConditionApi="'/PropertyOFIList/getLayoutOfSearch'"
|
|
32
32
|
:searchDataApi="'/PropertyOFIList/getListOfSearchModel'"
|
|
@@ -202,6 +202,9 @@
|
|
|
202
202
|
.cover-list-item .el-checkbox__input.is-checked + .el-checkbox__label,.cover-list-item .el-checkbox__input.is-checked .el-checkbox__inner{
|
|
203
203
|
color: #409eff;
|
|
204
204
|
}
|
|
205
|
+
.ct-inputNumber input.el-range-input {
|
|
206
|
+
color: #409eff!important;
|
|
207
|
+
}
|
|
205
208
|
.cover-list-item .el-checkbox__input.is-checked .el-checkbox__inner{
|
|
206
209
|
background-color:#409eff;
|
|
207
210
|
border-color: #409eff;
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
<div ref="main" class="main" v-if="model !== null">
|
|
3
3
|
<div class="details-content">
|
|
4
4
|
<div ref="header" class="details-head base-box mb10">
|
|
5
|
-
<div class="head-type"
|
|
5
|
+
<div class="head-type" :style="{background:model.fields1Dic.flagActive.value=='0'?'rgba(153, 153, 153, 1)':'#ee6b6b'}">
|
|
6
|
+
{{ model.fields1Dic.Trade.value }}
|
|
7
|
+
</div>
|
|
6
8
|
<div class="head-info">
|
|
7
9
|
<div class="title">
|
|
8
10
|
<span>{{ model.fields1Dic.StatusName.value }}</span>
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
<div ref="main" class="main" v-if="model !== null">
|
|
3
3
|
<div class="details-content">
|
|
4
4
|
<div ref="header" class="details-head base-box mb10">
|
|
5
|
-
<div class="head-type"
|
|
5
|
+
<div class="head-type" :style="{background:model.fields1Dic.flagActive.value=='0'?'rgba(153, 153, 153, 1)':'#ee6b6b'}">
|
|
6
|
+
{{ model.fields1Dic.Trade.value }}
|
|
7
|
+
</div>
|
|
6
8
|
<div class="head-info">
|
|
7
9
|
<div class="title">
|
|
8
10
|
<span>{{ model.fields1Dic.StatusName.value }}</span>
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
<div class="cover-list-item">
|
|
31
31
|
<el-image fit="fill" :src="file.url?file.url:file.mediaUrl?file.mediaUrl+'/100/100':require('../../../assets/blank.png')" style="width: 100px; height: 100px" :z-index="previewZIndex" @click="viewerfile(file)">
|
|
32
32
|
</el-image>
|
|
33
|
-
<span class="cover-list-item-span-Default" v-if="model.rightDefault&&model.rightDefault==1&&file.mediaTypeID==2">
|
|
33
|
+
<span class="cover-list-item-span-Default" v-if="(model.lock&&file.flagDefault)||(model.rightDefault&&model.rightDefault==1&&file.mediaTypeID==2)">
|
|
34
34
|
<i>
|
|
35
|
-
<el-radio v-model="file.flagDefault" :label="true" @change="handleDefault($event,file)" :disabled="model.lock" title="设为封面"> </el-radio>
|
|
35
|
+
<el-radio v-model="file.flagDefault" :label="true" :class="{'browseDefault':model.lock}" @change="handleDefault($event,file)" :disabled="model.lock" title="设为封面"> </el-radio>
|
|
36
36
|
</i>
|
|
37
37
|
</span>
|
|
38
38
|
<span class="cover-list-item-span-delete" v-if="!model.lock && file.rightDel">
|
|
@@ -103,9 +103,9 @@
|
|
|
103
103
|
<div class="cover-list-item">
|
|
104
104
|
<el-image fit="fill" :src="file.fileName?file.url:require('../../../assets/blank.png')" style="width: 100px; height: 100px" :z-index="previewZIndex" @click="viewerfile(file)">
|
|
105
105
|
</el-image>
|
|
106
|
-
<span class="cover-list-item-span-Default" v-if="model.rightDefault&&model.rightDefault==1&&file.mediaTypeID==2">
|
|
106
|
+
<span class="cover-list-item-span-Default" v-if="(model.lock&&file.flagDefault)||(model.rightDefault&&model.rightDefault==1&&file.mediaTypeID==2)">
|
|
107
107
|
<i>
|
|
108
|
-
<el-radio v-model="file.flagDefault" :label="true" @change="handleDefault($event,file)" :disabled="model.lock" title="设为封面"> </el-radio>
|
|
108
|
+
<el-radio v-model="file.flagDefault" :label="true" :class="{'browseDefault':model.lock}" @change="handleDefault($event,file)" :disabled="model.lock" title="设为封面"> </el-radio>
|
|
109
109
|
</i>
|
|
110
110
|
</span>
|
|
111
111
|
<span class="cover-list-item-span-delete" v-if="!model.lock && file.rightDel">
|
|
@@ -600,4 +600,10 @@
|
|
|
600
600
|
top: 38px;
|
|
601
601
|
left: 32px;
|
|
602
602
|
}
|
|
603
|
+
|
|
604
|
+
.browseDefault .el-radio__input.is-checked .el-radio__inner {
|
|
605
|
+
border-color: #409eff ;
|
|
606
|
+
background: #409eff ;
|
|
607
|
+
}
|
|
608
|
+
|
|
603
609
|
</style>
|
|
@@ -31,16 +31,14 @@
|
|
|
31
31
|
<span style="width: 80px; height: 26px; display: inline-flex;">
|
|
32
32
|
{{ item.mediaLabelName }} </span>
|
|
33
33
|
</span>
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
@click="radiochecked(photoList, item)"
|
|
43
|
-
>
|
|
34
|
+
<template v-if="modelPhotoselect.lock">
|
|
35
|
+
<span v-if="item.flagDefault &&(item.flagDefault == true || item.flagDefault == 'true')"
|
|
36
|
+
class="checked isradio">
|
|
37
|
+
</span>
|
|
38
|
+
</template>
|
|
39
|
+
<span v-else-if="item.rightDefault==true||item.rightDefault=='true'"
|
|
40
|
+
:class="[item.flagDefault &&(item.flagDefault == true || item.flagDefault == 'true')? 'checked': 'Unchecked','isradio',]"
|
|
41
|
+
@click="radiochecked(photoList, item)">
|
|
44
42
|
</span>
|
|
45
43
|
</span>
|
|
46
44
|
</div>
|
|
@@ -168,8 +168,9 @@
|
|
|
168
168
|
确认
|
|
169
169
|
</el-button>
|
|
170
170
|
</div>
|
|
171
|
+
|
|
171
172
|
<div v-if="isLoading && searchLoading" v-loading="isLoading" style="top: 30px"></div>
|
|
172
|
-
<iframe :src="downloadUrl" style="height:0px;width:0px;border-width: 0px;">
|
|
173
|
+
<iframe :src="downloadUrl" style="height:0px;width:0px;border-width: 0px;position: absolute;bottom: 0px;">
|
|
173
174
|
</iframe>
|
|
174
175
|
</div>
|
|
175
176
|
</template>
|
|
@@ -253,6 +254,9 @@ export default {
|
|
|
253
254
|
|
|
254
255
|
};
|
|
255
256
|
},
|
|
257
|
+
deactivated(){
|
|
258
|
+
this.downloadUrl="";
|
|
259
|
+
},
|
|
256
260
|
activated() {
|
|
257
261
|
this.$nextTick(() => {
|
|
258
262
|
this.setTableHeight();
|
|
@@ -659,7 +663,7 @@ export default {
|
|
|
659
663
|
h7 = this.$refs.listHeader.$el.offsetHeight | 0;
|
|
660
664
|
}
|
|
661
665
|
var h8 = this.$refs.tableStats ? (this.$refs.tableStats.$el.offsetHeight + 7) | 0 : 0;
|
|
662
|
-
let tableHeight = h1 - h2 - h3 - h4 - h5 - h6 - h7 - h8 - 290;
|
|
666
|
+
let tableHeight = h1 - h2 - h3 - h4 - h5 - h6 - h7 - h8 - 290 -7;
|
|
663
667
|
if (h2 == 0) {
|
|
664
668
|
tableHeight = tableHeight + 15;
|
|
665
669
|
}
|
|
@@ -7,10 +7,32 @@
|
|
|
7
7
|
<div v-if="model.showLabel && model.label" class="el-input-group__prepend field-label-div max-input-group" :class="[model.labelClass]">
|
|
8
8
|
<span>{{model.label}}</span>
|
|
9
9
|
</div>
|
|
10
|
+
|
|
10
11
|
<div ref="highlights" v-if="model.forbiddenWords" class="backdrop" :style="{width:forbiddenWordsWidth+'px',height:forbiddenWordsHeight+'px',left:forbiddenWordsLeft+'px',top:forbiddenWordsTop+'px'}">
|
|
11
12
|
<div class="highlights" v-html="forbiddenWordsValue"></div>
|
|
12
13
|
</div>
|
|
13
|
-
|
|
14
|
+
|
|
15
|
+
<el-popover v-if="model.autoFill && model.paramName" placement="bottom-start" v-model="showDrop" :trigger="'manual'" class="autoFill">
|
|
16
|
+
<div>
|
|
17
|
+
<ctSelectOptionVertical :model="model" @click="selectOption($event)"></ctSelectOptionVertical>
|
|
18
|
+
</div>
|
|
19
|
+
<el-input slot="reference" ref="input" :title="model.lock?model.value:''" :type="model.inputType" v-model="model.value" v-bind="model.attrs"
|
|
20
|
+
@input="inputHandler($event);showDropHandle();isShowClear();applyHighlights()" @change="changeHandler($event)"
|
|
21
|
+
class="ct-flex-div-input max-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'',model.forbiddenWords?'inputHighlights':'']"
|
|
22
|
+
:disabled="model.lock" :rows="model.rows" :resize="model.forbiddenWords?'none':'vertical'"
|
|
23
|
+
:readonly="model.readonly" :show-password="model.isPassword" autocomplete="on" :maxlength="model.max" :show-word-limit="model.showWordLimit"
|
|
24
|
+
@keyup.enter.native="search()" style="z-index: 3;background-color: transparent;">
|
|
25
|
+
<span slot="suffix" v-if="model.unitName" class="ct-unitname" :class="showClear?'unitName-20':'unitName-0'">{{model.unitName}}</span>
|
|
26
|
+
|
|
27
|
+
<span slot="suffix" class="el-input__suffix el-input--mini is-show-Span" v-if="!model.isPassword&&showClear" :class="model.unitName?'ct-right-10':'ct-right-0'">
|
|
28
|
+
<span 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>
|
|
32
|
+
</el-input>
|
|
33
|
+
</el-popover>
|
|
34
|
+
|
|
35
|
+
<el-input v-else ref="input" :title="model.lock?model.value:''" :type="model.inputType" v-model="model.value" v-bind="model.attrs" @input="inputHandler($event);isShowClear();applyHighlights()" @change="changeHandler($event)"
|
|
14
36
|
class="ct-flex-div-input max-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'',model.forbiddenWords?'inputHighlights':'']"
|
|
15
37
|
:disabled="model.lock" :rows="model.rows" :resize="model.forbiddenWords?'none':'vertical'"
|
|
16
38
|
:readonly="model.readonly" :show-password="model.isPassword" autocomplete="on" :maxlength="model.max" :show-word-limit="model.showWordLimit"
|
|
@@ -22,10 +44,10 @@
|
|
|
22
44
|
<i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
|
|
23
45
|
</span>
|
|
24
46
|
</span>
|
|
25
|
-
</el-input>
|
|
47
|
+
</el-input>
|
|
26
48
|
<span v-if="this.minText" :style="{left: minTextLeft+'px'}" style="color: #909399;background: #FFF;position: absolute;font-size: 12px;bottom: 5px;z-index: 3;">{{this.minText}}</span>
|
|
27
49
|
<span v-if="model.sufLabel" class="spanMessage ct-flex-div-span">{{model.sufLabel}}</span>
|
|
28
|
-
<ctQuickInputSos v-if="!model.lock && model.paramName" class="ct-flex-div-span" :pn="model.paramName" :action="api" :flagNew="true" @click="quickSelect"></ctQuickInputSos>
|
|
50
|
+
<ctQuickInputSos v-if="!model.lock && model.paramName && !model.autoFill" class="ct-flex-div-span" :pn="model.paramName" :action="api" :flagNew="true" @click="quickSelect"></ctQuickInputSos>
|
|
29
51
|
|
|
30
52
|
<div v-if="model.moreActionRouter && !model.lock">
|
|
31
53
|
<img v-if="model.moreActionRouter.imgUrl" class="ct-tablecurrencyImg ct-tablecurrencyItem"
|
|
@@ -46,14 +68,17 @@
|
|
|
46
68
|
<script>
|
|
47
69
|
import dynamicElement from '../../mixins/dynamicElement';
|
|
48
70
|
import ctQuickInputSos from '../../quickInputSos/src/quickInput'
|
|
71
|
+
import ctSelectOptionVertical from '../../selectOption/src/selectOptionVertical'
|
|
49
72
|
export default {
|
|
50
73
|
name: 'ct-text',
|
|
51
74
|
mixins: [dynamicElement],
|
|
52
75
|
components: {
|
|
53
76
|
'ctQuickInputSos': ctQuickInputSos,
|
|
77
|
+
'ctSelectOptionVertical': ctSelectOptionVertical
|
|
54
78
|
},
|
|
55
79
|
props: {
|
|
56
|
-
vmodel: Object
|
|
80
|
+
vmodel: Object,
|
|
81
|
+
api: String,
|
|
57
82
|
},
|
|
58
83
|
data() {
|
|
59
84
|
return {
|
|
@@ -65,6 +90,8 @@
|
|
|
65
90
|
forbiddenWordsHeight:0,
|
|
66
91
|
forbiddenWordsLeft:0,
|
|
67
92
|
forbiddenWordsTop:0,
|
|
93
|
+
showDrop:false,
|
|
94
|
+
searchText:'',
|
|
68
95
|
}
|
|
69
96
|
},
|
|
70
97
|
created() {
|
|
@@ -103,11 +130,38 @@
|
|
|
103
130
|
mouseOutHandle: function () {
|
|
104
131
|
this.$set(this, 'showClear', false);
|
|
105
132
|
},
|
|
133
|
+
showDropHandle:function(){
|
|
134
|
+
var self = this;
|
|
135
|
+
if (this.model.value === undefined || this.model.value === null || this.model.value === '') {
|
|
136
|
+
this.showDrop=false;
|
|
137
|
+
}
|
|
138
|
+
else{
|
|
139
|
+
if (this.model.value !== this.searchText) {
|
|
140
|
+
setTimeout(function () {
|
|
141
|
+
self.searchText=self.model.value;
|
|
142
|
+
self.model.getOptions(self.api, self.model.value,function(){
|
|
143
|
+
if(self.model.options && self.model.options.length>0){
|
|
144
|
+
self.showDrop=true;
|
|
145
|
+
}
|
|
146
|
+
else{
|
|
147
|
+
self.showDrop=false;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}, self.model.searchTick);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
selectOption(value) {
|
|
155
|
+
this.showDrop=false;
|
|
156
|
+
this.model.value = value;
|
|
157
|
+
this.search();
|
|
158
|
+
},
|
|
106
159
|
clearClickHandle: function (event) {
|
|
107
160
|
this.model.value = '';
|
|
108
161
|
this.inputHandler(this.model.value);
|
|
109
162
|
this.changeHandler(this.model.value);
|
|
110
163
|
this.isShowClear();
|
|
164
|
+
this.showDropHandle();
|
|
111
165
|
event.stopPropagation();
|
|
112
166
|
},
|
|
113
167
|
isShowClear() {
|
|
@@ -228,4 +282,7 @@
|
|
|
228
282
|
padding: 5px 15px 5px 15px;
|
|
229
283
|
line-height: 1.5;
|
|
230
284
|
}
|
|
285
|
+
.autoFill{
|
|
286
|
+
width: 100%;
|
|
287
|
+
}
|
|
231
288
|
</style>
|
|
@@ -307,6 +307,15 @@ const Base = function (source) {
|
|
|
307
307
|
get joinChar() {
|
|
308
308
|
return source.joinChar;
|
|
309
309
|
},
|
|
310
|
+
get autoFill() {
|
|
311
|
+
return source.autoFill;
|
|
312
|
+
},
|
|
313
|
+
get searchTick() {
|
|
314
|
+
return parseInt(source.searchTick) || 250;
|
|
315
|
+
},
|
|
316
|
+
set searchTick(v) {
|
|
317
|
+
source.searchTick = v;
|
|
318
|
+
},
|
|
310
319
|
};
|
|
311
320
|
|
|
312
321
|
return rtn;
|
|
@@ -7,10 +7,27 @@ const box = function (source, callBack) {
|
|
|
7
7
|
var self = this;
|
|
8
8
|
var init = function (data) {
|
|
9
9
|
var rtn = {
|
|
10
|
+
checkedAllCode:'-99999',
|
|
11
|
+
_flagCheckedAll:null,
|
|
12
|
+
get flagCheckedAll() {
|
|
13
|
+
if (this._flagCheckedAll !== null) {
|
|
14
|
+
return this._flagCheckedAll;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
this._checkedItemArr=false;
|
|
18
|
+
source.selectItems1.forEach((v) => {
|
|
19
|
+
if (v[this.optionAttrs.value]===this.checkedAllCode) {
|
|
20
|
+
this._checkedItemArr=true;
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return this._checkedItemArr;
|
|
25
|
+
}
|
|
26
|
+
},
|
|
10
27
|
get options() {
|
|
11
28
|
return source.selectItems1;
|
|
12
29
|
},
|
|
13
|
-
|
|
30
|
+
get width1() {
|
|
14
31
|
return source.width1;
|
|
15
32
|
},
|
|
16
33
|
checkedIsInit: false,
|
|
@@ -20,7 +37,6 @@ const box = function (source, callBack) {
|
|
|
20
37
|
}
|
|
21
38
|
else {
|
|
22
39
|
this._checkedItemArr = this.getCheckedItemArr();
|
|
23
|
-
//return this._checkedItemArr;
|
|
24
40
|
return this._checkedItemArr;
|
|
25
41
|
}
|
|
26
42
|
},
|
|
@@ -34,9 +50,24 @@ const box = function (source, callBack) {
|
|
|
34
50
|
}
|
|
35
51
|
}
|
|
36
52
|
});
|
|
53
|
+
if(this.flagCheckedAll){
|
|
54
|
+
let ic=itemArr.findIndex((op) => { return op === this.checkedAllCode });
|
|
55
|
+
let opl=ic>-1?this.options.length: this.options.length-1;
|
|
56
|
+
if(ic>-1 || itemArr.length===opl){
|
|
57
|
+
itemArr.splice(0, itemArr.length);
|
|
58
|
+
source.code1=JSON.stringify(this.options);
|
|
59
|
+
this.options.forEach((v) => {
|
|
60
|
+
if (v[this.optionAttrs.value]) {
|
|
61
|
+
itemArr.push(v[this.optionAttrs.value]);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
else if(itemArr.length<opl){
|
|
66
|
+
if(ic>-1) itemArr.splice(ic, 1);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
37
69
|
return itemArr;
|
|
38
70
|
},
|
|
39
|
-
//checkedItemArr1:[],
|
|
40
71
|
//手动维护code1值
|
|
41
72
|
updateCode1() {
|
|
42
73
|
let self = this;
|
|
@@ -46,19 +77,33 @@ const box = function (source, callBack) {
|
|
|
46
77
|
|
|
47
78
|
if (source.code1 !== '') {
|
|
48
79
|
var checked = source.code1 === '' ? [] : [].concat(JSON.parse(source.code1));
|
|
49
|
-
checked.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
80
|
+
let icOld=checked.findIndex((op) => { return op[rtn.optionAttrs.value] === self.checkedAllCode && op[rtn.optionAttrs.flagDeleted] === false });
|
|
81
|
+
let icNew=self.checkedItemArr.findIndex((op) => { return op === self.checkedAllCode });
|
|
82
|
+
let opl=icNew>-1?self.options.length: self.options.length-1;
|
|
83
|
+
if(self.flagCheckedAll && icOld>-1 && icNew===-1){
|
|
84
|
+
source.code1 = '';
|
|
85
|
+
}
|
|
86
|
+
else{
|
|
87
|
+
if(self.flagCheckedAll && self.checkedItemArr.length<opl && icNew>-1 && icOld>-1){
|
|
88
|
+
self.checkedItemArr.splice(icNew, 1);
|
|
89
|
+
let ic1=currentOptions.findIndex((op) => { return op[rtn.optionAttrs.value] === self.checkedAllCode });
|
|
90
|
+
if(ic1>-1) currentOptions.splice(ic1, 1);
|
|
57
91
|
}
|
|
58
|
-
});
|
|
59
92
|
|
|
60
|
-
|
|
61
|
-
|
|
93
|
+
checked.forEach((v) => {
|
|
94
|
+
if (self.checkedItemArr.indexOf(v[this.optionAttrs.value]) > -1) {
|
|
95
|
+
v[this.optionAttrs.flagDeleted] = false;
|
|
96
|
+
let ic=currentOptions.findIndex((op) => { return op[rtn.optionAttrs.value] === v[rtn.optionAttrs.value] });
|
|
97
|
+
if(ic>-1) currentOptions.splice(ic, 1);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
v[this.optionAttrs.flagDeleted] = true;
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
checked = checked.concat(currentOptions);
|
|
105
|
+
source.code1 = JSON.stringify(checked);
|
|
106
|
+
}
|
|
62
107
|
}
|
|
63
108
|
else {
|
|
64
109
|
if (self.checkedItemArr.length === 0) {
|
|
@@ -68,6 +113,7 @@ const box = function (source, callBack) {
|
|
|
68
113
|
source.code1 = JSON.stringify(currentOptions);
|
|
69
114
|
}
|
|
70
115
|
}
|
|
116
|
+
this.forceUpdate();
|
|
71
117
|
},
|
|
72
118
|
reset() {
|
|
73
119
|
this.value = this.defaultValue;
|
|
@@ -87,7 +133,24 @@ const box = function (source, callBack) {
|
|
|
87
133
|
if (this.self.$forceUpdate) {
|
|
88
134
|
this.self.$forceUpdate();
|
|
89
135
|
}
|
|
90
|
-
}
|
|
136
|
+
},
|
|
137
|
+
getFormObj() {
|
|
138
|
+
var rtnFormObj = {};
|
|
139
|
+
Object.defineProperty(rtnFormObj, source.fieldName1, {
|
|
140
|
+
get: function () {
|
|
141
|
+
if(rtn.flagCheckedAll && source.code1){
|
|
142
|
+
let v=JSON.parse(source.code1);
|
|
143
|
+
let ic=v.findIndex((op) => { return op[rtn.optionAttrs.value] === rtn.checkedAllCode });
|
|
144
|
+
if(ic>-1) v.splice(ic,1);
|
|
145
|
+
return JSON.stringify(v);
|
|
146
|
+
}
|
|
147
|
+
return source.code1;
|
|
148
|
+
},
|
|
149
|
+
enumerable: true,
|
|
150
|
+
configurable: true
|
|
151
|
+
});
|
|
152
|
+
return rtnFormObj;
|
|
153
|
+
},
|
|
91
154
|
};
|
|
92
155
|
rtn = base.copy(Base(data), rtn);
|
|
93
156
|
rtn = base.copy(rtn, valid.Init(rtn));
|
|
@@ -79,12 +79,6 @@ const Sos = function (source, moreActionRouter) {
|
|
|
79
79
|
set clearable(v) {
|
|
80
80
|
source.clear = v;
|
|
81
81
|
},
|
|
82
|
-
get searchTick() {
|
|
83
|
-
return parseInt(source.searchTick) || 250;
|
|
84
|
-
},
|
|
85
|
-
set searchTick(v) {
|
|
86
|
-
source.searchTick = v;
|
|
87
|
-
},
|
|
88
82
|
getOptions(paramsAction,key) {
|
|
89
83
|
var self = this;
|
|
90
84
|
var apiAddrs = paramsAction || this.api;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import base from '../../index';
|
|
2
2
|
import Base from './Base';
|
|
3
3
|
import valid from '../../../validate/index';
|
|
4
|
+
import common from '../../../common';
|
|
5
|
+
import Vue from 'vue';
|
|
4
6
|
const T = function (source, inputType, readonly, isPassword,moreActionRouter) {
|
|
5
7
|
var rtn = {
|
|
6
8
|
optionAttrs: {
|
|
@@ -62,6 +64,28 @@ const T = function (source, inputType, readonly, isPassword,moreActionRouter) {
|
|
|
62
64
|
return false;
|
|
63
65
|
},
|
|
64
66
|
moreActionRouter: moreActionRouter,//更多高级查询
|
|
67
|
+
options: [{ code: source.code1, name: source.code1 }],
|
|
68
|
+
getOptions(paramsAction,key,back) {
|
|
69
|
+
var self = this;
|
|
70
|
+
var apiAddrs = paramsAction || this.api;
|
|
71
|
+
var params = {
|
|
72
|
+
action: apiAddrs,
|
|
73
|
+
para: {
|
|
74
|
+
paramName: self.paramName,
|
|
75
|
+
parentValue: rtn.getFormParentFieldPara(),
|
|
76
|
+
key: key,
|
|
77
|
+
extraData: rtn.getFormRefFieldPara()
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
Vue.prototype.$api.postHandler(common.globalUri(), params).then((response) => {
|
|
81
|
+
if (response.rtnCode === 200) {
|
|
82
|
+
self.options = response.content;
|
|
83
|
+
if(back){
|
|
84
|
+
back();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
},
|
|
65
89
|
};
|
|
66
90
|
rtn = base.copy(Base(source), rtn);
|
|
67
91
|
rtn = base.copy(rtn, valid.Init(rtn));
|
package/src/main.js
CHANGED
|
@@ -12,10 +12,10 @@ Vue.use(ElementUI, { size: 'mini'});
|
|
|
12
12
|
// 关闭生产模式下给出的提示
|
|
13
13
|
Vue.config.productionTip = false;
|
|
14
14
|
Vue.use(centaline, {
|
|
15
|
-
baseUrl: "http://10.88.22.46:7070/v1/form/router",
|
|
15
|
+
baseUrl: "http://10.88.22.46:7070/max-uplink-api/v1/form/router",
|
|
16
16
|
// baseUrl: "http://10.25.10.63:9999/v1/form/router",
|
|
17
17
|
// baseUrl: "http://10.88.22.42:9999/v1/form/router",
|
|
18
|
-
// baseUrl: "http://10.88.22.
|
|
18
|
+
// baseUrl: "http://10.88.22.69:8080/api/",
|
|
19
19
|
// baseUrl: "http://tjcptest.centaline.com.cn/",
|
|
20
20
|
// flagRouterSelf: true,
|
|
21
21
|
zindex: 999,
|
|
@@ -42,8 +42,8 @@ Vue.use(centaline, {
|
|
|
42
42
|
// 获取请求头
|
|
43
43
|
getRequestHeaders: function () {
|
|
44
44
|
return {
|
|
45
|
-
oldToken: '
|
|
46
|
-
token:'aplus eyJhbGciOiJIUzI1NiIsInppcCI6IkRFRiJ9.
|
|
45
|
+
oldToken: '3f518e5b-85c3-4a3e-9aa2-d476c6e43b75',
|
|
46
|
+
token:'aplus eyJhbGciOiJIUzI1NiIsInppcCI6IkRFRiJ9.eNrEjrsOgkAQRf9laiZx3GFnh04XbPwIsg9IsDICicb472qEjt5TnOI09z5hnCNUIAu4oZVWF3BDKy0Rq5Bt8KDikS0bdOQderaeT3Vj_LGGArr7FSqyVo01qlTAEKZf2IuU3zCP3e3cPf5x7jINn9nsovSZMnIfBDn1CWOiEnmnmiNLDNHB6w0AAP__.S8GpMp0QsAvU3rUclegNyD0VCgVWxpMFKmKQNFPcn-4',
|
|
47
47
|
|
|
48
48
|
originalRequestURL: 'http://10.88.22.67:8080',
|
|
49
49
|
EstateInfo: '{"estateId":"FAF029E8-EC28-4297-83CF-B8FFD826DB91","estateName":"AABBCC"}',
|