centaline-data-driven 1.1.28 → 1.1.32
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/SearchList.vue +1 -1
- package/src/centaline/css/common.css +3 -4
- package/src/centaline/css/max.css +36 -0
- package/src/centaline/dynamicForm/src/dynamicFormListTable.vue +4 -0
- package/src/centaline/dynamicIti/src/dynamicIti.vue +5 -2
- package/src/centaline/dynamicMo/src/dynamicMo.vue +1 -0
- package/src/centaline/dynamicSearchList/src/dynamicSearchCategory.vue +114 -0
- package/src/centaline/dynamicSearchList/src/dynamicSearchList.vue +32 -6
- package/src/centaline/dynamicSearchList/src/dynamicSearchScreen.vue +29 -12
- package/src/centaline/dynamicSeg/src/dynamicSeg.vue +1 -2
- package/src/centaline/dynamicSensitiveEye/index.js +11 -0
- package/src/centaline/dynamicSensitiveEye/src/dynamicSensitiveEye.vue +61 -0
- package/src/centaline/dynamicSo/src/dynamicSo.vue +1 -1
- package/src/centaline/dynamicSos/src/dynamicSos.vue +1 -1
- package/src/centaline/dynamicT/src/dynamicT.vue +5 -1
- package/src/centaline/dynamicTags/src/dynamicTags.vue +1 -1
- package/src/centaline/loader/src/ctl/Base.js +13 -3
- package/src/centaline/loader/src/ctl/Checkbox.js +2 -1
- package/src/centaline/loader/src/ctl/Iti.js +1 -10
- package/src/centaline/loader/src/ctl/SearchCategory.js +50 -0
- package/src/centaline/loader/src/ctl/SearchScreen.js +6 -0
- package/src/centaline/loader/src/ctl/SensitiveEye.js +65 -0
- package/src/centaline/loader/src/ctl/So.js +1 -1
- package/src/centaline/loader/src/ctl/Sos.js +1 -2
- package/src/centaline/loader/src/ctl/lib/LibFunction.js +5 -0
- package/src/centaline/loader/src/ctl.js +1 -0
- package/wwwroot/static/centaline/centaline-data-driven.js +1 -1
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
package/package.json
CHANGED
package/src/SearchList.vue
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div id="app-search" style="height:100%;position: fixed;">
|
|
3
3
|
<!-- <ct-searchlist :searchConditionApi="'/api/third-dept-tran/tran-list/layout'" :searchDataApi="'/api/third-dept-tran/tran-list'"></ct-searchlist> -->
|
|
4
|
-
<ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'" :searchDataApi="'/PropertyRETList/
|
|
4
|
+
<ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'" :searchDataApi="'/PropertyRETList/getListOfSearchModel'" :searchCategoryApi="'/PropertyRETList/getLayoutOfSearchCategory'"></ct-searchlist>
|
|
5
5
|
<!--<ct-searchlist :searchConditionApi="'/api/invoice-info/search-condition'" :searchDataApi="'/api/invoice-info/list'" :searchDataStatisticsApi="'api/ContractList/GetLayoutOfStatisticsTool'" :apiParam="para"></ct-searchlist>-->
|
|
6
6
|
<ct-dialog-list></ct-dialog-list>
|
|
7
7
|
</div>
|
|
@@ -101,9 +101,9 @@ html {
|
|
|
101
101
|
|
|
102
102
|
.ct-tags .showLabel .ct-input_inner, .ct-so .showLabel .ct-input_inner, .ct-iti-editor input,
|
|
103
103
|
.ct-date-editor input, .ct-mt .el-input-group--prepend textarea, .ct-text .showLabel input, .ct-Dtd .ct-datepicker.showLabel .el-range-input,
|
|
104
|
-
.ct-Seg .showLabel.ct-radios, .ct-so .showLabel .ct-input_inner,.ct-
|
|
105
|
-
border-top-left-radius:
|
|
106
|
-
border-bottom-left-radius:
|
|
104
|
+
.ct-Seg .showLabel.ct-radios, .ct-so .showLabel .ct-input_inner,.ct-Dtd .el-input__inner {
|
|
105
|
+
border-top-left-radius: 4px !important;
|
|
106
|
+
border-bottom-left-radius: 4px !important;
|
|
107
107
|
text-align: left !important;
|
|
108
108
|
}
|
|
109
109
|
.ct-Seg .showLabel.ct-radios {
|
|
@@ -716,4 +716,3 @@ html {
|
|
|
716
716
|
.el-card.is-always-shadow{
|
|
717
717
|
box-shadow: none!important;
|
|
718
718
|
}
|
|
719
|
-
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
.max-btn-add button{ /*list-button*/
|
|
47
47
|
height: 26px;
|
|
48
48
|
background: #EE6B6B;
|
|
49
|
+
border-color:#EE6B6B;
|
|
49
50
|
box-shadow: 0px 2px 4px 0px rgba(238,107,107,0.25);
|
|
50
51
|
border-radius: 6px;
|
|
51
52
|
}
|
|
@@ -140,6 +141,11 @@
|
|
|
140
141
|
height:6px;
|
|
141
142
|
background-color:#f1f1f1
|
|
142
143
|
}
|
|
144
|
+
.st-serach-screen::-webkit-scrollbar,.max-seachpopper::-webkit-scrollbar{
|
|
145
|
+
display: block;
|
|
146
|
+
width:4px;
|
|
147
|
+
height:6px;
|
|
148
|
+
}
|
|
143
149
|
.ct-table .cell:last-child{
|
|
144
150
|
white-space: nowrap;
|
|
145
151
|
}
|
|
@@ -149,8 +155,38 @@
|
|
|
149
155
|
.el-card{
|
|
150
156
|
border: none;
|
|
151
157
|
}
|
|
158
|
+
.ct-tags .showLabel .ct-input_inner, .ct-so .showLabel .ct-input_inner, .ct-iti-editor input,
|
|
159
|
+
.ct-date-editor input, .ct-mt .el-input-group--prepend textarea, .ct-text .showLabel input, .ct-Dtd .ct-datepicker.showLabel .el-range-input,
|
|
160
|
+
.ct-Seg .showLabel.ct-radios, .ct-so .showLabel .ct-input_inner,.ct-Dtd .el-input__inner {
|
|
161
|
+
border-top-left-radius: 6px !important;
|
|
162
|
+
border-bottom-left-radius: 6px !important;
|
|
163
|
+
text-align: left !important;
|
|
164
|
+
}
|
|
152
165
|
.ct-iti .el-input-group--prepend .el-input__inner{
|
|
153
166
|
border-top-left-radius: 6px !important;
|
|
154
167
|
border-bottom-left-radius: 6px !important;
|
|
155
168
|
text-align: left !important;
|
|
169
|
+
}
|
|
170
|
+
/* 重置input默认颜色 选中文字颜色 */
|
|
171
|
+
.ct-search-list input::-webkit-input-placeholder{
|
|
172
|
+
color: #666666!important;
|
|
173
|
+
}
|
|
174
|
+
.ct-search-list .el-date-editor .el-range-input,.ct-search-list .el-input__inner{
|
|
175
|
+
color: #409eff;
|
|
176
|
+
}
|
|
177
|
+
.ct-so .ct-input_inner {
|
|
178
|
+
color: #409eff!important;
|
|
179
|
+
}
|
|
180
|
+
.cover-list-item .el-checkbox__input.is-checked + .el-checkbox__label,.cover-list-item .el-checkbox__input.is-checked .el-checkbox__inner{
|
|
181
|
+
color: #409eff;
|
|
182
|
+
}
|
|
183
|
+
.cover-list-item .el-checkbox__input.is-checked .el-checkbox__inner{
|
|
184
|
+
background-color:#409eff;
|
|
185
|
+
border-color: #409eff;
|
|
186
|
+
}
|
|
187
|
+
.ct-search-list .el-input-group__append, .el-input-group__prepend{
|
|
188
|
+
color: #666666!important;
|
|
189
|
+
}
|
|
190
|
+
.ct-so .ct-input_inner,.el-input__inner{
|
|
191
|
+
border-radius: 6px!important;
|
|
156
192
|
}
|
|
@@ -28,6 +28,9 @@
|
|
|
28
28
|
@input="inputHandler(model.currentRow.data[v.id], model.currentRow.data.$sourceIndex)"></component>
|
|
29
29
|
</span>
|
|
30
30
|
<!--<span v-else>{{scope.row[v.id].labelValue}}</span>-->
|
|
31
|
+
<span v-else-if="v.is=='ct-sensitiveeye'">
|
|
32
|
+
<component v-if ref="Fields" :is="v.is" :vmodel="scope.row[v.id]" :vrowmodel="scope.row" :api="model.OptApi"></component>
|
|
33
|
+
</span>
|
|
31
34
|
<ct-span v-else :vmodel="scope.row[v.id]" :rowNum="scope.row.$sourceIndex" ref="FieldsLabel"></ct-span>
|
|
32
35
|
</template>
|
|
33
36
|
</el-table-column>
|
|
@@ -127,6 +130,7 @@
|
|
|
127
130
|
},
|
|
128
131
|
//修改
|
|
129
132
|
saveRow(row, index, isCancel) {
|
|
133
|
+
console.log(row);
|
|
130
134
|
let app = this;
|
|
131
135
|
if (app.model.dialogEdit) {
|
|
132
136
|
this.editRow(row.$sourceIndex);
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<div style="width:39%" class="ct-position-relative" @mouseout="mouseOutHandle('input2')">
|
|
13
13
|
<input style="text-align:left;width:100%" class="el-range-input" :placeholder="model.attrs.placeholder1"
|
|
14
14
|
v-model="model.value" @change="changeHandler($event)" @input="onInputHandler($event);isShowClear('input2')" @focus="focusHandler" @blur="blurHandler('value','decimals')"
|
|
15
|
-
:class="model.lock ? 'ct-is-disabled' : ''" :disabled="model.lock" />
|
|
15
|
+
:class="model.lock ? 'ct-is-disabled' : ''" :disabled="model.lock" @keyup.enter="search()"/>
|
|
16
16
|
|
|
17
17
|
<!-- <span class="el-input__suffix el-input--mini" v-if="showClear.input1">
|
|
18
18
|
<span class="el-input__suffix-inner ct-close">
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<div style="width:39%" class="ct-position-relative" @mouseout="mouseOutHandle('input2')">
|
|
25
25
|
<input style="text-align:left;width:100%;" class="el-range-input" :placeholder="model.attrs.placeholder2"
|
|
26
26
|
v-model="model.value1" @change="changeHandler($event);" @input="onInputHandler($event);isShowClear('input2')" @focus="focusHandler" @blur="blurHandler('value1','decimals1')"
|
|
27
|
-
:class="model.lock ? 'ct-is-disabled' : ''" :disabled="model.lock" />
|
|
27
|
+
:class="model.lock ? 'ct-is-disabled' : ''" :disabled="model.lock" @keyup.enter="search()"/>
|
|
28
28
|
</div>
|
|
29
29
|
<span class="el-input__suffix el-input--mini" v-if="showClear.input2">
|
|
30
30
|
<span class="el-input__suffix-inner ct-close" style="display: flex;">
|
|
@@ -140,6 +140,9 @@
|
|
|
140
140
|
this.showClear[id]=false;
|
|
141
141
|
}
|
|
142
142
|
},
|
|
143
|
+
search() {
|
|
144
|
+
if(this.model.autoSearch) this.$emit('click');
|
|
145
|
+
},
|
|
143
146
|
}
|
|
144
147
|
}
|
|
145
148
|
</script>
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div style="width:100%;display:flex" v-if="model !== null" class="ct-searchcategory" :class="[model.attrs.size?'ct-searchcategory-'+model.attrs.size:''
|
|
3
|
+
]">
|
|
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]">
|
|
6
|
+
<img v-if="model.preLabel" :src="model.preLabel" style="width: 1em;height: 1em;fill: currentColor;
|
|
7
|
+
overflow: hidden;vertical-align: middle;"/>
|
|
8
|
+
{{model.label}}
|
|
9
|
+
</div>
|
|
10
|
+
<div class="ct-radios" :class="[model.showLabel?'showLabel':'',model.value !== ''?'hasValue':'']">
|
|
11
|
+
<el-radio-group v-model="model.value" @change="changeHandler1($event)">
|
|
12
|
+
<el-radio-button v-bind="model.attrs" v-for="(value, index) in model.segmentValue" :key="index" v-model="model.value"
|
|
13
|
+
:label="value[model.optionAttrs.value]" :disabled="model.lock">
|
|
14
|
+
{{value[model.optionAttrs.label]}}
|
|
15
|
+
</el-radio-button >
|
|
16
|
+
</el-radio-group>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
<span v-show="!valid" class="errorMessage">
|
|
20
|
+
{{validMessage}}
|
|
21
|
+
</span>
|
|
22
|
+
</div>
|
|
23
|
+
</template>
|
|
24
|
+
<script>
|
|
25
|
+
import dynamicElement from '../../mixins/dynamicElement';
|
|
26
|
+
export default {
|
|
27
|
+
name: 'ct-searchcategory',
|
|
28
|
+
mixins: [dynamicElement],
|
|
29
|
+
props: {
|
|
30
|
+
vmodel: Object,
|
|
31
|
+
api: String
|
|
32
|
+
},
|
|
33
|
+
data() {
|
|
34
|
+
return {
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
mounted() {
|
|
38
|
+
var self = this;
|
|
39
|
+
this.$nextTick(function () {
|
|
40
|
+
if (self.vmodel) {
|
|
41
|
+
self.load(self.vmodel);
|
|
42
|
+
}
|
|
43
|
+
else if (typeof self.source !== 'undefined') {
|
|
44
|
+
self.loaderObj.SearchCategory(self.source,self.load);
|
|
45
|
+
}
|
|
46
|
+
else if (typeof self.api !== 'undefined') {
|
|
47
|
+
self.loaderObj.SearchCategory(self.api, self.load);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
methods: {
|
|
52
|
+
load(data) {
|
|
53
|
+
this.model = data;
|
|
54
|
+
let parm={};
|
|
55
|
+
parm[this.model.id]=this.model.value;
|
|
56
|
+
this.$emit('loadedCategory',parm);
|
|
57
|
+
},
|
|
58
|
+
clearClickHandle: function (event) {
|
|
59
|
+
this.model.value = '';
|
|
60
|
+
this.inputHandler(this.model.value);
|
|
61
|
+
this.changeHandler(this.model.value);
|
|
62
|
+
},
|
|
63
|
+
changeHandler1: function (event) {
|
|
64
|
+
this.inputHandler(this.model.value);
|
|
65
|
+
this.changeHandler(this.model.value);
|
|
66
|
+
let parm={};
|
|
67
|
+
parm[this.model.id]=this.model.value;
|
|
68
|
+
this.$emit('changeCategory',parm);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
</script>
|
|
73
|
+
<style>
|
|
74
|
+
.ct-searchcategory {
|
|
75
|
+
margin-bottom: 10px;
|
|
76
|
+
line-height: 30px;
|
|
77
|
+
}
|
|
78
|
+
.ct-searchcategory .el-input-group__prepend{
|
|
79
|
+
text-align: left;
|
|
80
|
+
color:#EE6B6B;
|
|
81
|
+
font-weight: Bold;
|
|
82
|
+
text-shadow: 0 2px 2px rgb(121 0 4 / 10%);
|
|
83
|
+
font-size: 20px;
|
|
84
|
+
vertical-align: middle;
|
|
85
|
+
}
|
|
86
|
+
.ct-searchcategory .ct-radios {
|
|
87
|
+
color: #606266;
|
|
88
|
+
border-radius: 4px;
|
|
89
|
+
/*border: 1px solid #dcdfe6;*/
|
|
90
|
+
line-height: 40px;
|
|
91
|
+
padding-left: 15px;
|
|
92
|
+
text-align: right;
|
|
93
|
+
}
|
|
94
|
+
.ct-searchcategory .ct-radios:hover {
|
|
95
|
+
border-color: #c0c4cc;
|
|
96
|
+
}
|
|
97
|
+
.ct-searchcategory .ct-radios .el-radio {
|
|
98
|
+
margin-left: 0px;
|
|
99
|
+
margin-right: 10px;
|
|
100
|
+
}
|
|
101
|
+
.ct-searchcategory .ct-radios .ct-Seg-label {
|
|
102
|
+
margin-right: 15px;
|
|
103
|
+
}
|
|
104
|
+
.ct-searchcategory .el-radio-button__orig-radio:checked+.el-radio-button__inner {
|
|
105
|
+
color: #FFF;
|
|
106
|
+
background-color: #EE6B6B;
|
|
107
|
+
border-color: #EE6B6B;
|
|
108
|
+
-webkit-box-shadow: -1px 0 0 0 #EE6B6B;
|
|
109
|
+
box-shadow: -1px 0 0 0 #EE6B6B;
|
|
110
|
+
}
|
|
111
|
+
.ct-searchcategory .el-radio-button__inner:hover {
|
|
112
|
+
color: #EE6B6B;
|
|
113
|
+
}
|
|
114
|
+
</style>
|
|
@@ -3,15 +3,22 @@
|
|
|
3
3
|
<div slot="header" class="clearfix" v-if="typeof title !== 'undefined' && showTitle">
|
|
4
4
|
<span style="font-weight:bold">{{title}}</span>
|
|
5
5
|
</div>
|
|
6
|
-
<ct-
|
|
6
|
+
<ct-searchcategory v-if="searchCategoryApi" ref="category" :api="searchCategoryApi" @loadedCategory="categoryLoaded"
|
|
7
|
+
@changeCategory="categorychange" ></ct-searchcategory>
|
|
8
|
+
|
|
9
|
+
<ct-searchscreen ref="screen" :api="searchConditionApi" :key="reloadKey"
|
|
10
|
+
@loaded="screenLoaded" :screenPara="screenPara"
|
|
11
|
+
:categoryLoaded="loaded.categoryLoaded" @search="search()"
|
|
12
|
+
@showTitle="showTitleScreenHandler"></ct-searchscreen>
|
|
13
|
+
|
|
7
14
|
<ct-searchtable ref="table" :api="searchDataApi" :searchDataStatisticsApi="searchDataStatisticsApi"
|
|
8
|
-
@toolbarClick="toolbarClickHandler"
|
|
9
|
-
@refreshParent="refreshParentHandler"
|
|
15
|
+
@toolbarClick="toolbarClickHandler" @refreshParent="refreshParentHandler" :key="reloadKey"
|
|
10
16
|
@showTitle="showTitleHandler"></ct-searchtable>
|
|
11
17
|
</div>
|
|
12
18
|
</template>
|
|
13
19
|
<script>
|
|
14
20
|
import dynamicElement from '../../mixins/dynamicElement';
|
|
21
|
+
import dynamicSearchCategory from './dynamicSearchCategory.vue';
|
|
15
22
|
import dynamicSearchScreen from './dynamicSearchScreen.vue';
|
|
16
23
|
import dynamicSearchTable from './dynamicSearchTable.vue';
|
|
17
24
|
import progress from '../../progress/src/progress.vue';
|
|
@@ -21,10 +28,12 @@
|
|
|
21
28
|
components: {
|
|
22
29
|
'ct-searchscreen': dynamicSearchScreen,
|
|
23
30
|
'ct-searchtable': dynamicSearchTable,
|
|
24
|
-
'ct-progress': progress
|
|
31
|
+
'ct-progress': progress,
|
|
32
|
+
'ct-searchcategory': dynamicSearchCategory
|
|
25
33
|
},
|
|
26
34
|
props: {
|
|
27
35
|
vmodel: Object,
|
|
36
|
+
searchCategoryApi: String,
|
|
28
37
|
searchConditionApi: String,
|
|
29
38
|
searchDataApi: String,
|
|
30
39
|
searchDataStatisticsApi: String,
|
|
@@ -36,6 +45,10 @@
|
|
|
36
45
|
},
|
|
37
46
|
created() {
|
|
38
47
|
this.model = this.vmodel;
|
|
48
|
+
this.screenPara=this.apiParam;
|
|
49
|
+
if(this.searchCategoryApi){
|
|
50
|
+
this.loaded.categoryLoaded=false;
|
|
51
|
+
}
|
|
39
52
|
},
|
|
40
53
|
computed: {
|
|
41
54
|
searchListStyle: function() {
|
|
@@ -43,16 +56,20 @@
|
|
|
43
56
|
return { 'height': this.pageHeight };
|
|
44
57
|
}
|
|
45
58
|
return {};
|
|
46
|
-
}
|
|
59
|
+
},
|
|
47
60
|
},
|
|
48
61
|
data() {
|
|
49
62
|
return {
|
|
50
63
|
loaded: {
|
|
51
64
|
screenLoaded: false,
|
|
52
|
-
tableLoaded: false
|
|
65
|
+
tableLoaded: false,
|
|
66
|
+
categoryLoaded: true,
|
|
53
67
|
},
|
|
54
68
|
title:'',
|
|
55
69
|
showTitle:false,
|
|
70
|
+
screenPara:null,
|
|
71
|
+
reloadKey:0,
|
|
72
|
+
isReload:false,
|
|
56
73
|
}
|
|
57
74
|
},
|
|
58
75
|
methods: {
|
|
@@ -61,6 +78,15 @@
|
|
|
61
78
|
this.$refs.table.searchComplate(this.$refs.screen.model, defaultSearch);
|
|
62
79
|
this.$emit('loaded', this.$refs.screen.model);
|
|
63
80
|
},
|
|
81
|
+
categoryLoaded(param) {
|
|
82
|
+
this.loaded.categoryLoaded = true;
|
|
83
|
+
if(param)this.screenPara=param;
|
|
84
|
+
this.$refs.screen.searchComplate();
|
|
85
|
+
},
|
|
86
|
+
categorychange(param) {
|
|
87
|
+
if(param)this.screenPara=param;
|
|
88
|
+
this.reloadKey = this.reloadKey+1;
|
|
89
|
+
},
|
|
64
90
|
search(btn) {
|
|
65
91
|
if (this.$refs.table.model) {
|
|
66
92
|
this.$refs.table.getPage(1);
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
props: {
|
|
46
46
|
api: String,
|
|
47
47
|
vmodel: Object,
|
|
48
|
+
categoryLoaded:Boolean,
|
|
48
49
|
screenPara: {
|
|
49
50
|
type: Object,
|
|
50
51
|
default: () => { }
|
|
@@ -61,17 +62,19 @@
|
|
|
61
62
|
},
|
|
62
63
|
mounted() {
|
|
63
64
|
var self = this;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
65
|
+
if(self.categoryLoaded){
|
|
66
|
+
this.$nextTick(function () {
|
|
67
|
+
if (typeof self.api !== 'undefined') {
|
|
68
|
+
self.loaderObj.SearchScreen(self.api, self.load, self.screenPara);
|
|
69
|
+
}
|
|
70
|
+
if (typeof self.source !== 'undefined') {
|
|
71
|
+
self.load(self.loaderObj.SearchScreen(self.source));
|
|
72
|
+
}
|
|
73
|
+
if (self.vmodel) {
|
|
74
|
+
self.load(self.vmodel);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
75
78
|
},
|
|
76
79
|
methods: {
|
|
77
80
|
clickHandler(model) {
|
|
@@ -156,7 +159,21 @@
|
|
|
156
159
|
self.isLoading = false;
|
|
157
160
|
self.$emit('loaded', self.model.defaultSearch);
|
|
158
161
|
self.$emit('showTitle');
|
|
159
|
-
}
|
|
162
|
+
},
|
|
163
|
+
searchComplate() {
|
|
164
|
+
var self = this;
|
|
165
|
+
this.$nextTick(function () {
|
|
166
|
+
if (typeof self.api !== 'undefined') {
|
|
167
|
+
self.loaderObj.SearchScreen(self.api, self.load, self.screenPara);
|
|
168
|
+
}
|
|
169
|
+
if (typeof self.source !== 'undefined') {
|
|
170
|
+
self.load(self.loaderObj.SearchScreen(self.source));
|
|
171
|
+
}
|
|
172
|
+
if (self.vmodel) {
|
|
173
|
+
self.load(self.vmodel);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
},
|
|
160
177
|
}
|
|
161
178
|
}
|
|
162
179
|
</script>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import dynamicSensitiveEye from './src/dynamicSensitiveEye'
|
|
2
|
+
|
|
3
|
+
dynamicSensitiveEye.install = function (Vue) {
|
|
4
|
+
Vue.component(dynamicSensitiveEye.name, dynamicSensitiveEye);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
if (typeof window !== 'undefined' && window.Vue) {
|
|
8
|
+
window.Vue.use(dynamicSensitiveEye);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default dynamicSensitiveEye
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="field-top">
|
|
3
|
+
<div v-if="model !== null" class="ct-text ct-flex-div" :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'',model.attrs.size?'ct-font-size-'+model.attrs.size:'']">
|
|
4
|
+
<div v-if="model.showLabel && model.label" class="el-input-group__prepend field-label-div" :class="[model.labelClass]">
|
|
5
|
+
<span>{{model.label}}</span>
|
|
6
|
+
</div>
|
|
7
|
+
<span>{{showLable==true?model.labelValue1:model.labelValue}}</span>
|
|
8
|
+
<i v-if="model.labelValue" class="el-icon-view" @click="onSensitiveEye($event)"></i>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
</template>
|
|
13
|
+
<script>
|
|
14
|
+
import dynamicElement from '../../mixins/dynamicElement'
|
|
15
|
+
export default {
|
|
16
|
+
name: 'ct-sensitiveeye',
|
|
17
|
+
props: {
|
|
18
|
+
vmodel: Object,
|
|
19
|
+
vrowmodel: Object
|
|
20
|
+
},
|
|
21
|
+
mixins: [dynamicElement],
|
|
22
|
+
data: function () {
|
|
23
|
+
return {
|
|
24
|
+
showLable: false,
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
created() {
|
|
28
|
+
if (typeof this.vmodel === 'undefined') {
|
|
29
|
+
this.model = this.loaderObj.SensitiveEye(this.source);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.model = this.vmodel;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
computed: {
|
|
36
|
+
|
|
37
|
+
},
|
|
38
|
+
methods: {
|
|
39
|
+
onSensitiveEye() {
|
|
40
|
+
if (this.model.labelValue1 == '') {
|
|
41
|
+
var extraData = "";
|
|
42
|
+
if (typeof this.vrowmodel != 'undefined') {
|
|
43
|
+
let submitData = {};
|
|
44
|
+
this.model.refFieldName.forEach((v) => {
|
|
45
|
+
submitData[v] = this.vrowmodel[v].value;
|
|
46
|
+
});
|
|
47
|
+
extraData = JSON.stringify(submitData);
|
|
48
|
+
}
|
|
49
|
+
this.model.getOptions(this.model.paramAction, extraData);
|
|
50
|
+
}
|
|
51
|
+
this.showLable = !this.showLable;
|
|
52
|
+
},
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
</script>
|
|
56
|
+
<style>
|
|
57
|
+
.el-icon-view {
|
|
58
|
+
margin-left: 5px;
|
|
59
|
+
font-size: 16px;
|
|
60
|
+
}
|
|
61
|
+
</style>
|
|
@@ -152,6 +152,7 @@
|
|
|
152
152
|
}
|
|
153
153
|
this.inputHandler(self.model.value);
|
|
154
154
|
this.changeHandler(self.model.value);
|
|
155
|
+
if(this.model.autoSearch) this.$emit('click');
|
|
155
156
|
},
|
|
156
157
|
focusHandle: function () {
|
|
157
158
|
this.$refs['ct-input'].focus();
|
|
@@ -212,7 +213,6 @@
|
|
|
212
213
|
},
|
|
213
214
|
selectOption(value) {
|
|
214
215
|
if (this.model.value === value) {
|
|
215
|
-
//this.model.value = '';
|
|
216
216
|
this.$set(this, 'showDrop', false);
|
|
217
217
|
return;
|
|
218
218
|
}
|
|
@@ -158,6 +158,7 @@
|
|
|
158
158
|
}
|
|
159
159
|
this.inputHandler(self.model.value);
|
|
160
160
|
this.changeHandler(self.model.value);
|
|
161
|
+
if(this.model.autoSearch) this.$emit('click');
|
|
161
162
|
},
|
|
162
163
|
focusHandle: function () {
|
|
163
164
|
this.$set(this, 'focus', true);
|
|
@@ -223,7 +224,6 @@
|
|
|
223
224
|
},
|
|
224
225
|
selectOption(value) {
|
|
225
226
|
if (this.model.value === value) {
|
|
226
|
-
//this.model.value = '';
|
|
227
227
|
this.$set(this, 'showDrop', false);
|
|
228
228
|
return;
|
|
229
229
|
}
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
</div>
|
|
8
8
|
<el-input :title="model.lock?model.value:''" :type="model.inputType" v-model="model.value" v-bind="model.attrs" @input="inputHandler($event);isShowClear()" @change="changeHandler($event)"
|
|
9
9
|
class="ct-flex-div-input max-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'']" :disabled="model.lock" :rows="model.rows"
|
|
10
|
-
:readonly="model.readonly" :show-password="model.isPassword" autocomplete="on" :maxlength="model.max" :show-word-limit="model.showWordLimit"
|
|
10
|
+
:readonly="model.readonly" :show-password="model.isPassword" autocomplete="on" :maxlength="model.max" :show-word-limit="model.showWordLimit"
|
|
11
|
+
@keyup.enter.native="search()">
|
|
11
12
|
<span slot="suffix" v-if="model.unitName" class="ct-unitname">{{model.unitName}}</span>
|
|
12
13
|
|
|
13
14
|
<span slot="suffix" class="el-input__suffix el-input--mini" v-if="showClear" :class="model.unitName?'ct-right-10':'ct-right-0'">
|
|
@@ -69,6 +70,9 @@
|
|
|
69
70
|
this.$set(this, 'showClear', false);
|
|
70
71
|
}
|
|
71
72
|
},
|
|
73
|
+
search() {
|
|
74
|
+
if(this.model.autoSearch) this.$emit('click');
|
|
75
|
+
},
|
|
72
76
|
},
|
|
73
77
|
}</script>
|
|
74
78
|
<style>
|
|
@@ -173,9 +173,9 @@
|
|
|
173
173
|
else {
|
|
174
174
|
this.model.text = [];
|
|
175
175
|
}
|
|
176
|
-
//this.$emit('change', this.model.value);
|
|
177
176
|
this.inputHandler(self.model.value);
|
|
178
177
|
this.changeHandler(self.model.value);
|
|
178
|
+
if(this.model.autoSearch) this.$emit('click');
|
|
179
179
|
},
|
|
180
180
|
focusHandle: function () {
|
|
181
181
|
this.$set(this, 'focus', true);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Enum from '../ctl/lib/Enum';
|
|
1
2
|
const Base = function (source) {
|
|
2
3
|
let rtn = {
|
|
3
4
|
collapseName: -1,
|
|
@@ -155,7 +156,12 @@ const Base = function (source) {
|
|
|
155
156
|
searchObj:{
|
|
156
157
|
get dataType() { return source.dearchDataTyp; },
|
|
157
158
|
get fieldName1() { return source.fieldName1; },
|
|
158
|
-
get fieldName2() {
|
|
159
|
+
get fieldName2() {
|
|
160
|
+
if(source.controlType === Enum.ControlType.NumericRange){
|
|
161
|
+
if(!source.fieldName2) return source.fieldName1;
|
|
162
|
+
}
|
|
163
|
+
return source.fieldName2;
|
|
164
|
+
},
|
|
159
165
|
get groupName() { return source.groupName || source.fieldName1; },
|
|
160
166
|
get operation() { return source.searchOperation; },
|
|
161
167
|
get searchDataType() { return source.searchDataType; } ,
|
|
@@ -239,8 +245,12 @@ const Base = function (source) {
|
|
|
239
245
|
return null;
|
|
240
246
|
},
|
|
241
247
|
/*选择搜索条件后是否默认显示标签*/
|
|
242
|
-
get
|
|
243
|
-
return source.
|
|
248
|
+
get displayLabelAfterSelected() {
|
|
249
|
+
return source.displayLabelAfterSelected==undefined? false:source.displayLabelAfterSelected;
|
|
250
|
+
},
|
|
251
|
+
/*选择搜索条件后是否触发搜索*/
|
|
252
|
+
get autoSearch() {
|
|
253
|
+
return source.autoSearch==undefined? false:source.autoSearch;
|
|
244
254
|
},
|
|
245
255
|
};
|
|
246
256
|
|
|
@@ -46,7 +46,8 @@ const box = function (source, callBack) {
|
|
|
46
46
|
checked.forEach((v) => {
|
|
47
47
|
if (self.checkedItemArr.indexOf(v[this.optionAttrs.value]) > -1) {
|
|
48
48
|
v[this.optionAttrs.flagDeleted] = false;
|
|
49
|
-
currentOptions.
|
|
49
|
+
let ic=currentOptions.findIndex((op) => { return op[rtn.optionAttrs.value] === v[rtn.optionAttrs.value] });
|
|
50
|
+
if(ic>-1) currentOptions.splice(ic, 1);
|
|
50
51
|
}
|
|
51
52
|
else {
|
|
52
53
|
v[this.optionAttrs.flagDeleted] = true;
|
|
@@ -3,7 +3,6 @@ import Base from './Base';
|
|
|
3
3
|
import valid from '../../../validate/index';
|
|
4
4
|
const Iti = function (source) {
|
|
5
5
|
var rtn = {
|
|
6
|
-
|
|
7
6
|
get clearable() {
|
|
8
7
|
if (typeof source.clear === 'undefined'&&!source.locked) {
|
|
9
8
|
return true;
|
|
@@ -17,8 +16,7 @@ const Iti = function (source) {
|
|
|
17
16
|
},
|
|
18
17
|
set clearable(v) {
|
|
19
18
|
source.clear = v;
|
|
20
|
-
},
|
|
21
|
-
|
|
19
|
+
},
|
|
22
20
|
get value1() {
|
|
23
21
|
return source.code2||'';
|
|
24
22
|
},
|
|
@@ -60,13 +58,6 @@ const Iti = function (source) {
|
|
|
60
58
|
set min1(v) {
|
|
61
59
|
source.minValue2 = v;
|
|
62
60
|
},
|
|
63
|
-
//searchObj: {
|
|
64
|
-
// get searchValue() {
|
|
65
|
-
// if (source.code1 || source.code2) {
|
|
66
|
-
// return source.code1 + '^' + source.code2;
|
|
67
|
-
// }
|
|
68
|
-
// }
|
|
69
|
-
//},
|
|
70
61
|
getFormObj() {
|
|
71
62
|
var rtnFormObj = {};
|
|
72
63
|
Object.defineProperty(rtnFormObj, source.fieldName1, {
|