centaline-data-driven 1.1.3 → 1.1.7
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/.vs/Centaline.Front_End.DataDriven/DesignTimeBuild/.dtbcache.v2 +0 -0
- package/package.json +1 -1
- package/src/Form.vue +2 -2
- package/src/SearchList.vue +1 -1
- package/src/centaline/css/common.css +49 -1
- package/src/centaline/dialogList/src/dialog.vue +9 -6
- package/src/centaline/dynamicCheckbox/src/dynamicCheckbox.vue +26 -26
- package/src/centaline/dynamicComboBoxWithTextBox/src/dynamicComboBoxWithTextBox.vue +98 -98
- package/src/centaline/dynamicD/src/dynamicD.vue +20 -20
- package/src/centaline/dynamicDtd/src/dynamicDtd.vue +40 -40
- package/src/centaline/dynamicForm/src/dynamicForm.vue +1 -0
- package/src/centaline/dynamicInputNumber/src/dynamicInputNumber.vue +27 -27
- package/src/centaline/dynamicIti/src/dynamicIti.vue +66 -66
- package/src/centaline/dynamicL/src/dynamicL.vue +15 -15
- package/src/centaline/dynamicMo/src/dynamicMo.vue +59 -59
- package/src/centaline/dynamicRichText/src/dynamicRichText.vue +8 -8
- package/src/centaline/dynamicSearchList/src/dynamicSearchScreen.vue +2 -2
- package/src/centaline/dynamicSearchList/src/dynamicTableToolbar.vue +15 -15
- package/src/centaline/dynamicSeg/src/dynamicSeg.vue +23 -23
- package/src/centaline/dynamicSo/src/dynamicSo.vue +48 -48
- package/src/centaline/dynamicSos/src/dynamicSos.vue +55 -55
- package/src/centaline/dynamicSw/src/dynamicSw.vue +20 -20
- package/src/centaline/dynamicT/src/dynamicT.vue +20 -20
- package/src/centaline/dynamicTags/src/dynamicTags.vue +62 -62
- package/src/centaline/dynamicTimeSelect/src/dynamicTimeSelect.vue +33 -33
- package/src/centaline/loader/src/ctl/Base.js +24 -25
- package/src/centaline/loader/src/ctl/Button.js +1 -0
- package/src/centaline/loader/src/ctl/File.js +2 -4
- package/src/centaline/loader/src/ctl/Form.js +12 -4
- package/src/centaline/loader/src/ctl/Mo.js +6 -6
- package/src/centaline/loader/src/ctl/SearchScreen.js +17 -12
- package/src/centaline/loader/src/ctl/SearchTable.js +15 -4
- package/src/centaline/loader/src/ctl/So.js +10 -10
- package/src/centaline/loader/src/ctl/lib/Enum.js +80 -80
- package/src/centaline/loader/src/ctl/lib/LibFunction.js +24 -24
- package/src/main.js +2 -2
- package/wwwroot/static/centaline/centaline-data-driven.js +2 -2
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="field-top">
|
|
3
|
-
<div style="width:100%;display:flex">
|
|
4
|
-
<div style="flex:1" class="ct-so" :class="[(focus || showDrop)?'isfocus':'',model.attrs.size?'ct-so-'+model.attrs.size:''
|
|
5
|
-
]" @mouseover="mouseOverHandle" @mouseout="mouseOutHandle">
|
|
6
|
-
<div :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'']">
|
|
7
|
-
<div v-if="model.showLabel && model.label" class="el-input-group__prepend" :class="[model.labelClass]">
|
|
8
|
-
{{model.label}}
|
|
9
|
-
</div>
|
|
10
|
-
<el-popover ref="pop" placement="bottom-start" v-model="showDrop" :class="[model.showLabel?'showLabel':'']" :trigger="(model.popupSearchListType > 0 || model.lock) ? 'manual' : 'click'">
|
|
11
|
-
<div>
|
|
12
|
-
<div>
|
|
13
|
-
<el-input ref="searchInput" :size="model.attrs.size" suffix-icon="el-icon-search" v-model="searchText" @input="searchInputHandle"></el-input>
|
|
14
|
-
</div>
|
|
15
|
-
<ctSelectOptionVertical :model="model" @click="selectOption($event)"></ctSelectOptionVertical>
|
|
16
|
-
</div>
|
|
17
|
-
<input slot="reference" v-bind="model.attrs" readonly="readonly" v-model="model.text" :placeholder="soPlaceholder"
|
|
18
|
-
ref="ct-input" :style="{height:inputHeight + 'px','line-height':inputLineHeight + 'px'}"
|
|
19
|
-
@focus="focusHandle" @blur="blurHandle" @click="clickHandle" @input="inputHandler($event)" @change="changeHandler($event)"
|
|
20
|
-
:disabled="model.lock" :class="model.lock ? 'ct-is-disabled' : 'ct-input_inner'" />
|
|
21
|
-
</el-popover>
|
|
22
|
-
<span v-if="!model.lock" class="el-input__suffix" @click="clickHandle" :class="[model.attrs.size?'el-input--'+model.attrs.size:'']">
|
|
23
|
-
<span v-if="showClear === false" class="el-input__suffix-inner">
|
|
24
|
-
<i class="el-select__caret el-input__icon el-icon-arrow-up" :class="{'is-reverse':showDrop}"></i>
|
|
25
|
-
</span>
|
|
26
|
-
<span v-if="showClear === true" class="el-input__suffix-inner ct-close">
|
|
27
|
-
<i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
|
|
28
|
-
</span>
|
|
29
|
-
</span>
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
<transition name="el-fade-in">
|
|
33
|
-
<span v-show="!valid" class="errorMessage">
|
|
34
|
-
{{validMessage}}
|
|
35
|
-
</span>
|
|
36
|
-
</transition>
|
|
37
|
-
<div v-if="!model.lock && model.popupSearchListType === 1">
|
|
38
|
-
<el-button v-if="!model.moreActionBtnName" size="mini" type="primary" icon="el-icon-search" @click="popupSearchListHandle"></el-button>
|
|
39
|
-
<el-button v-else size="mini" type="primary" @click="popupSearchListHandle">{{model.moreActionBtnName}}</el-button>
|
|
40
|
-
</div>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="field-top">
|
|
3
|
+
<div style="width:100%;display:flex">
|
|
4
|
+
<div style="flex:1" class="ct-so" :class="[(focus || showDrop)?'isfocus':'',model.attrs.size?'ct-so-'+model.attrs.size:''
|
|
5
|
+
]" @mouseover="mouseOverHandle" @mouseout="mouseOutHandle">
|
|
6
|
+
<div :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'']">
|
|
7
|
+
<div v-if="model.showLabel && model.label" class="el-input-group__prepend" :class="[model.labelClass]">
|
|
8
|
+
{{model.label}}
|
|
9
|
+
</div>
|
|
10
|
+
<el-popover ref="pop" placement="bottom-start" v-model="showDrop" :class="[model.showLabel?'showLabel':'']" :trigger="(model.popupSearchListType > 0 || model.lock) ? 'manual' : 'click'">
|
|
11
|
+
<div>
|
|
12
|
+
<div>
|
|
13
|
+
<el-input ref="searchInput" :size="model.attrs.size" suffix-icon="el-icon-search" v-model="searchText" @input="searchInputHandle"></el-input>
|
|
14
|
+
</div>
|
|
15
|
+
<ctSelectOptionVertical :model="model" @click="selectOption($event)"></ctSelectOptionVertical>
|
|
16
|
+
</div>
|
|
17
|
+
<input slot="reference" v-bind="model.attrs" readonly="readonly" v-model="model.text" :placeholder="soPlaceholder"
|
|
18
|
+
ref="ct-input" :style="{height:inputHeight + 'px','line-height':inputLineHeight + 'px'}"
|
|
19
|
+
@focus="focusHandle" @blur="blurHandle" @click="clickHandle" @input="inputHandler($event)" @change="changeHandler($event)"
|
|
20
|
+
:disabled="model.lock" :class="model.lock ? 'ct-is-disabled' : 'ct-input_inner'" />
|
|
21
|
+
</el-popover>
|
|
22
|
+
<span v-if="!model.lock" class="el-input__suffix" @click="clickHandle" :class="[model.attrs.size?'el-input--'+model.attrs.size:'']">
|
|
23
|
+
<span v-if="showClear === false" class="el-input__suffix-inner">
|
|
24
|
+
<i class="el-select__caret el-input__icon el-icon-arrow-up" :class="{'is-reverse':showDrop}"></i>
|
|
25
|
+
</span>
|
|
26
|
+
<span v-if="showClear === true" class="el-input__suffix-inner ct-close">
|
|
27
|
+
<i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
|
|
28
|
+
</span>
|
|
29
|
+
</span>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
<transition name="el-fade-in">
|
|
33
|
+
<span v-show="!valid" class="errorMessage">
|
|
34
|
+
{{validMessage}}
|
|
35
|
+
</span>
|
|
36
|
+
</transition>
|
|
37
|
+
<div v-if="!model.lock && model.popupSearchListType === 1">
|
|
38
|
+
<el-button v-if="!model.moreActionBtnName" size="mini" type="primary" icon="el-icon-search" @click="popupSearchListHandle"></el-button>
|
|
39
|
+
<el-button v-else size="mini" type="primary" @click="popupSearchListHandle">{{model.moreActionBtnName}}</el-button>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
43
|
</template>
|
|
44
44
|
|
|
45
45
|
<script>
|
|
@@ -171,26 +171,26 @@
|
|
|
171
171
|
}
|
|
172
172
|
if (this.model.popupSearchListType === 1) {
|
|
173
173
|
this.popupSearchListHandle();
|
|
174
|
-
}
|
|
175
|
-
//else if (this.model.popupSearchListType === 1) {
|
|
174
|
+
}
|
|
175
|
+
//else if (this.model.popupSearchListType === 1) {
|
|
176
176
|
// //todo 以后可加上即可选单搜索 又可高级搜索
|
|
177
177
|
//}
|
|
178
|
-
else {
|
|
178
|
+
else {
|
|
179
179
|
if (this.model.paramName) {
|
|
180
180
|
this.$set(this, 'showDrop', !this.showDrop);
|
|
181
181
|
if (this.showDrop) {
|
|
182
182
|
this.getOptions();
|
|
183
183
|
}
|
|
184
|
-
this.focusHandle();
|
|
185
|
-
}
|
|
186
|
-
else if ((this.model.popupSearchListType === 0)) {
|
|
187
|
-
this.$message.warning("请配置参数paramName1");
|
|
184
|
+
this.focusHandle();
|
|
185
|
+
}
|
|
186
|
+
else if ((this.model.popupSearchListType === 0)) {
|
|
187
|
+
this.$message.warning("请配置参数paramName1");
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
190
|
},
|
|
191
191
|
popupSearchListHandle: function () {
|
|
192
|
-
var self = this;
|
|
193
|
-
self.$emit('popupSearchList', true, self.model, self.model.moreActionRouter, (option) => {
|
|
192
|
+
var self = this;
|
|
193
|
+
self.$emit('popupSearchList', true, self.model, self.model.moreActionRouter, (option) => {
|
|
194
194
|
if (option) {
|
|
195
195
|
self.model.value = option[self.model.optionAttrs.value];
|
|
196
196
|
self.model.text = option[self.model.optionAttrs.label];
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
});
|
|
201
201
|
|
|
202
202
|
self.soChange();
|
|
203
|
-
}
|
|
203
|
+
}
|
|
204
204
|
});
|
|
205
205
|
},
|
|
206
206
|
getOptionText: function (value) {
|
|
@@ -220,10 +220,10 @@
|
|
|
220
220
|
return "success";
|
|
221
221
|
}
|
|
222
222
|
},
|
|
223
|
-
selectOption(value) {
|
|
223
|
+
selectOption(value) {
|
|
224
224
|
if (this.model.value === value) {
|
|
225
|
-
//this.model.value = '';
|
|
226
|
-
this.$set(this, 'showDrop', false);
|
|
225
|
+
//this.model.value = '';
|
|
226
|
+
this.$set(this, 'showDrop', false);
|
|
227
227
|
return;
|
|
228
228
|
}
|
|
229
229
|
else {
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="field-top">
|
|
3
|
-
<div v-if="model !== null" class="ct-Sw">
|
|
4
|
-
<div :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
|
-
{{model.label}}
|
|
7
|
-
</div>
|
|
8
|
-
<div class="ct-radios">
|
|
9
|
-
<el-switch v-model="model.value" class="ct-switch" :disabled="model.lock"
|
|
10
|
-
@change="changeSwitchHandler">
|
|
11
|
-
</el-switch>
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|
|
14
|
-
<transition name="el-fade-in">
|
|
15
|
-
<span v-show="!valid" class="errorMessage">
|
|
16
|
-
{{validMessage}}
|
|
17
|
-
</span>
|
|
18
|
-
</transition>
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="field-top">
|
|
3
|
+
<div v-if="model !== null" class="ct-Sw">
|
|
4
|
+
<div :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
|
+
{{model.label}}
|
|
7
|
+
</div>
|
|
8
|
+
<div class="ct-radios">
|
|
9
|
+
<el-switch v-model="model.value" class="ct-switch" :disabled="model.lock"
|
|
10
|
+
@change="changeSwitchHandler">
|
|
11
|
+
</el-switch>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
<transition name="el-fade-in">
|
|
15
|
+
<span v-show="!valid" class="errorMessage">
|
|
16
|
+
{{validMessage}}
|
|
17
|
+
</span>
|
|
18
|
+
</transition>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
21
|
</template>
|
|
22
22
|
<script>
|
|
23
23
|
import dynamicElement from '../../mixins/dynamicElement';
|
|
@@ -1,23 +1,23 @@
|
|
|
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
|
-
<el-input :title="model.lock?model.value:''" :type="model.inputType" v-model="model.value" v-bind="model.attrs" @input="inputHandler($event)" @change="changeHandler($event)"
|
|
8
|
-
class="ct-flex-div-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'']" :disabled="model.lock" :rows="model.rows"
|
|
9
|
-
:readonly="model.readonly" :show-password="model.isPassword" autocomplete="on">
|
|
10
|
-
<span slot="suffix" v-if="model.unitName" class="ct-unitname">{{model.unitName}}</span>
|
|
11
|
-
</el-input>
|
|
12
|
-
<span v-if="model.sufLabel" class="spanMessage ct-flex-div-span">{{model.sufLabel}}</span>
|
|
13
|
-
<transition name="el-fade-in" class="ct-flex-div-span">
|
|
14
|
-
<span v-show="!valid" class="errorMessage ">
|
|
15
|
-
{{validMessage}}
|
|
16
|
-
</span>
|
|
17
|
-
</transition>
|
|
18
|
-
<ct-quick-input v-if="!model.lock && model.paramName" class="ct-flex-div-span" :pn="model.paramName" :action="api" @input="model.value=$event"></ct-quick-input>
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
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
|
+
<el-input :title="model.lock?model.value:''" :type="model.inputType" v-model="model.value" v-bind="model.attrs" @input="inputHandler($event)" @change="changeHandler($event)"
|
|
8
|
+
class="ct-flex-div-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'']" :disabled="model.lock" :rows="model.rows"
|
|
9
|
+
:readonly="model.readonly" :show-password="model.isPassword" autocomplete="on">
|
|
10
|
+
<span slot="suffix" v-if="model.unitName" class="ct-unitname">{{model.unitName}}</span>
|
|
11
|
+
</el-input>
|
|
12
|
+
<span v-if="model.sufLabel" class="spanMessage ct-flex-div-span">{{model.sufLabel}}</span>
|
|
13
|
+
<transition name="el-fade-in" class="ct-flex-div-span">
|
|
14
|
+
<span v-show="!valid" class="errorMessage ">
|
|
15
|
+
{{validMessage}}
|
|
16
|
+
</span>
|
|
17
|
+
</transition>
|
|
18
|
+
<ct-quick-input v-if="!model.lock && model.paramName" class="ct-flex-div-span" :pn="model.paramName" :action="api" @input="model.value=$event"></ct-quick-input>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
21
|
</template>
|
|
22
22
|
<script>
|
|
23
23
|
import dynamicElement from '../../mixins/dynamicElement';
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="field-top">
|
|
3
|
-
<div class="ct-tags" style="width:100%;display:flex">
|
|
4
|
-
<div style="flex:1;display:flex" :class="[(focus || showDrop)?'isfocus':'',model.attrs.size?'ct-tags-'+model.attrs.size:''
|
|
5
|
-
]" @mouseover="mouseOverHandle" @mouseout="mouseOutHandle">
|
|
6
|
-
<div style="flex:1;position: relative;" :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'']">
|
|
7
|
-
<div v-if="model.showLabel && model.label" class="el-input-group__prepend" :class="[model.labelClass]">
|
|
8
|
-
{{model.label}}
|
|
9
|
-
</div>
|
|
10
|
-
<div>
|
|
11
|
-
<div ref="cttags" class="el-select__tags" :style="{'max-width':tagsWidth + 'px'}" @click="clickHandle">
|
|
12
|
-
<span>
|
|
13
|
-
<span class="ct-tags-value-label">{{model.valueLabel}}</span>
|
|
14
|
-
<span class="el-tag el-tag--info" :class="[model.attrs.size?'el-tag--'+model.attrs.size:'']" v-for="item in model.value">
|
|
15
|
-
<span class="el-select__tags-text">{{getOptionText(item)}}</span>
|
|
16
|
-
<i v-if="!model.lock" class="el-tag__close el-icon-close" @click="deleteOption(item,$event)"></i>
|
|
17
|
-
</span>
|
|
18
|
-
</span>
|
|
19
|
-
</div>
|
|
20
|
-
<el-popover ref="pop" placement="bottom-start" v-model="showDrop" :class="[model.showLabel1?'showLabel':'']" :trigger="(model.popupSearchListType === 2 || model.lock) ? 'manual' : 'click'">
|
|
21
|
-
<div>
|
|
22
|
-
<div>
|
|
23
|
-
<el-input ref="searchInput" :size="model.attrs.size" suffix-icon="el-icon-search" v-model="searchText" @input="searchInputHandle"></el-input>
|
|
24
|
-
</div>
|
|
25
|
-
<ctSelectOptionVertical :model="model" @click="selectOption($event)"></ctSelectOptionVertical>
|
|
26
|
-
</div>
|
|
27
|
-
<input slot="reference" v-bind="model.attrs" :placeholder="tagsPlaceholder"
|
|
28
|
-
ref="ct-input" class="" :style="{height:inputHeight + 'px','line-height':inputLineHeight + 'px'}"
|
|
29
|
-
:class="model.lock ? 'ct-is-disabled' : 'ct-input_inner'"
|
|
30
|
-
@focus="focusHandle" @blur="blurHandle" @click="clickHandle"
|
|
31
|
-
:disabled="model.lock" />
|
|
32
|
-
</el-popover>
|
|
33
|
-
<span v-if="!model.lock" class="el-input__suffix" @click="clickHandle" :class="[model.attrs.size?'el-input--'+model.attrs.size:'']">
|
|
34
|
-
<span v-if="showClear === false" class="el-input__suffix-inner">
|
|
35
|
-
<i class="el-select__caret el-input__icon el-icon-arrow-up" :class="{'is-reverse':showDrop}"></i>
|
|
36
|
-
</span>
|
|
37
|
-
<span v-if="showClear === true" class="el-input__suffix-inner ct-close">
|
|
38
|
-
<i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
|
|
39
|
-
</span>
|
|
40
|
-
</span>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
<span v-show="!valid" class="errorMessage">
|
|
44
|
-
{{validMessage}}
|
|
45
|
-
</span>
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
<div v-if="model.popupSearchListType === 1 && !model.lock">
|
|
49
|
-
<el-button v-if="!model.moreActionBtnName" size="mini" type="primary" icon="el-icon-search" @click="popupSearchListHandle"></el-button>
|
|
50
|
-
<el-button v-else size="mini" type="primary" @click="popupSearchListHandle">{{model.moreActionBtnName}}</el-button>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="field-top">
|
|
3
|
+
<div class="ct-tags" style="width:100%;display:flex">
|
|
4
|
+
<div style="flex:1;display:flex" :class="[(focus || showDrop)?'isfocus':'',model.attrs.size?'ct-tags-'+model.attrs.size:''
|
|
5
|
+
]" @mouseover="mouseOverHandle" @mouseout="mouseOutHandle">
|
|
6
|
+
<div style="flex:1;position: relative;" :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'']">
|
|
7
|
+
<div v-if="model.showLabel && model.label" class="el-input-group__prepend" :class="[model.labelClass]">
|
|
8
|
+
{{model.label}}
|
|
9
|
+
</div>
|
|
10
|
+
<div>
|
|
11
|
+
<div ref="cttags" class="el-select__tags" :style="{'max-width':tagsWidth + 'px'}" @click="clickHandle">
|
|
12
|
+
<span>
|
|
13
|
+
<span class="ct-tags-value-label">{{model.valueLabel}}</span>
|
|
14
|
+
<span class="el-tag el-tag--info" :class="[model.attrs.size?'el-tag--'+model.attrs.size:'']" v-for="item in model.value">
|
|
15
|
+
<span class="el-select__tags-text">{{getOptionText(item)}}</span>
|
|
16
|
+
<i v-if="!model.lock" class="el-tag__close el-icon-close" @click="deleteOption(item,$event)"></i>
|
|
17
|
+
</span>
|
|
18
|
+
</span>
|
|
19
|
+
</div>
|
|
20
|
+
<el-popover ref="pop" placement="bottom-start" v-model="showDrop" :class="[model.showLabel1?'showLabel':'']" :trigger="(model.popupSearchListType === 2 || model.lock) ? 'manual' : 'click'">
|
|
21
|
+
<div>
|
|
22
|
+
<div>
|
|
23
|
+
<el-input ref="searchInput" :size="model.attrs.size" suffix-icon="el-icon-search" v-model="searchText" @input="searchInputHandle"></el-input>
|
|
24
|
+
</div>
|
|
25
|
+
<ctSelectOptionVertical :model="model" @click="selectOption($event)"></ctSelectOptionVertical>
|
|
26
|
+
</div>
|
|
27
|
+
<input slot="reference" v-bind="model.attrs" :placeholder="tagsPlaceholder"
|
|
28
|
+
ref="ct-input" class="" :style="{height:inputHeight + 'px','line-height':inputLineHeight + 'px'}"
|
|
29
|
+
:class="model.lock ? 'ct-is-disabled' : 'ct-input_inner'"
|
|
30
|
+
@focus="focusHandle" @blur="blurHandle" @click="clickHandle"
|
|
31
|
+
:disabled="model.lock" />
|
|
32
|
+
</el-popover>
|
|
33
|
+
<span v-if="!model.lock" class="el-input__suffix" @click="clickHandle" :class="[model.attrs.size?'el-input--'+model.attrs.size:'']">
|
|
34
|
+
<span v-if="showClear === false" class="el-input__suffix-inner">
|
|
35
|
+
<i class="el-select__caret el-input__icon el-icon-arrow-up" :class="{'is-reverse':showDrop}"></i>
|
|
36
|
+
</span>
|
|
37
|
+
<span v-if="showClear === true" class="el-input__suffix-inner ct-close">
|
|
38
|
+
<i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
|
|
39
|
+
</span>
|
|
40
|
+
</span>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
<span v-show="!valid" class="errorMessage">
|
|
44
|
+
{{validMessage}}
|
|
45
|
+
</span>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div v-if="model.popupSearchListType === 1 && !model.lock">
|
|
49
|
+
<el-button v-if="!model.moreActionBtnName" size="mini" type="primary" icon="el-icon-search" @click="popupSearchListHandle"></el-button>
|
|
50
|
+
<el-button v-else size="mini" type="primary" @click="popupSearchListHandle">{{model.moreActionBtnName}}</el-button>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
54
|
</template>
|
|
55
55
|
|
|
56
56
|
<script>
|
|
@@ -190,24 +190,24 @@
|
|
|
190
190
|
if (this.model.popupSearchListType === 1) {
|
|
191
191
|
this.popupSearchListHandle();
|
|
192
192
|
}
|
|
193
|
-
else {
|
|
193
|
+
else {
|
|
194
194
|
if (this.model.paramName) {
|
|
195
195
|
this.$set(this, 'showDrop', !this.showDrop);
|
|
196
196
|
if (this.showDrop) {
|
|
197
197
|
this.getOptions();
|
|
198
198
|
}
|
|
199
|
-
this.focusHandle();
|
|
200
|
-
}
|
|
201
|
-
else if ((this.model.popupSearchListType === 0)) {
|
|
202
|
-
this.$message.warning("请配置参数paramName1");
|
|
199
|
+
this.focusHandle();
|
|
200
|
+
}
|
|
201
|
+
else if ((this.model.popupSearchListType === 0)) {
|
|
202
|
+
this.$message.warning("请配置参数paramName1");
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
},
|
|
206
206
|
popupSearchListHandle: function () {
|
|
207
|
-
var self = this;
|
|
208
|
-
|
|
209
|
-
self.$emit('popupSearchList', false, self.model, self.model.moreActionRouter, (optionArr) => {
|
|
210
|
-
self.selectOptionArr(optionArr);
|
|
207
|
+
var self = this;
|
|
208
|
+
|
|
209
|
+
self.$emit('popupSearchList', false, self.model, self.model.moreActionRouter, (optionArr) => {
|
|
210
|
+
self.selectOptionArr(optionArr);
|
|
211
211
|
});
|
|
212
212
|
},
|
|
213
213
|
resetInputHeight() {
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="field-top">
|
|
3
|
-
<div style="width:100%" v-if="model !== null" class="ct-input-number" :class="[model.attrs.size?'ct-checkbox-'+model.attrs.size:''
|
|
4
|
-
]">
|
|
5
|
-
<div class="ct-input-number-div" :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'']">
|
|
6
|
-
<div v-if="model.showLabel && model.label" class="el-input-group__prepend">
|
|
7
|
-
{{model.label}}
|
|
8
|
-
</div>
|
|
9
|
-
<div class="ct-datepicker" style="width:100%" v-if="model !== null" :class="[model.showLabel?'showLabel':'']">
|
|
10
|
-
<!--<el-time-picker :is-range="model.isRange" style="width:100%"
|
|
11
|
-
v-model="model.timeValue"
|
|
12
|
-
range-separator="-"
|
|
13
|
-
start-placeholder="开始时间"
|
|
14
|
-
end-placeholder="结束时间"
|
|
15
|
-
:placeholder="model.attrs.placeholder1"
|
|
16
|
-
:disabled="model.lock"
|
|
17
|
-
@change="onChangeHandler($event)">
|
|
18
|
-
</el-time-picker>-->
|
|
19
|
-
<el-time-picker v-model="model.timeValue1"
|
|
20
|
-
placeholder="任意时间点">
|
|
21
|
-
</el-time-picker>
|
|
22
|
-
<!--<span v-if="!model.lock" class="cover-list-item-span">
|
|
23
|
-
<i class="el-input__icon el-icon-circle-close" @click="clearClickHandle"></i>
|
|
24
|
-
</span>-->
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
27
|
-
<transition name="el-fade-in">
|
|
28
|
-
<span v-show="!valid" class="errorMessage">
|
|
29
|
-
{{validMessage}}
|
|
30
|
-
</span>
|
|
31
|
-
</transition>
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="field-top">
|
|
3
|
+
<div style="width:100%" v-if="model !== null" class="ct-input-number" :class="[model.attrs.size?'ct-checkbox-'+model.attrs.size:''
|
|
4
|
+
]">
|
|
5
|
+
<div class="ct-input-number-div" :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'']">
|
|
6
|
+
<div v-if="model.showLabel && model.label" class="el-input-group__prepend">
|
|
7
|
+
{{model.label}}
|
|
8
|
+
</div>
|
|
9
|
+
<div class="ct-datepicker" style="width:100%" v-if="model !== null" :class="[model.showLabel?'showLabel':'']">
|
|
10
|
+
<!--<el-time-picker :is-range="model.isRange" style="width:100%"
|
|
11
|
+
v-model="model.timeValue"
|
|
12
|
+
range-separator="-"
|
|
13
|
+
start-placeholder="开始时间"
|
|
14
|
+
end-placeholder="结束时间"
|
|
15
|
+
:placeholder="model.attrs.placeholder1"
|
|
16
|
+
:disabled="model.lock"
|
|
17
|
+
@change="onChangeHandler($event)">
|
|
18
|
+
</el-time-picker>-->
|
|
19
|
+
<el-time-picker v-model="model.timeValue1"
|
|
20
|
+
placeholder="任意时间点">
|
|
21
|
+
</el-time-picker>
|
|
22
|
+
<!--<span v-if="!model.lock" class="cover-list-item-span">
|
|
23
|
+
<i class="el-input__icon el-icon-circle-close" @click="clearClickHandle"></i>
|
|
24
|
+
</span>-->
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
<transition name="el-fade-in">
|
|
28
|
+
<span v-show="!valid" class="errorMessage">
|
|
29
|
+
{{validMessage}}
|
|
30
|
+
</span>
|
|
31
|
+
</transition>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
34
|
</template>
|
|
35
35
|
<script>
|
|
36
36
|
import dynamicElement from '../../mixins/dynamicElement';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const Base = function (source) {
|
|
1
|
+
const Base = function (source) {
|
|
2
2
|
let rtn = {
|
|
3
3
|
collapseName: -1,
|
|
4
4
|
index: 0,
|
|
@@ -56,9 +56,9 @@ const Base = function (source) {
|
|
|
56
56
|
set labelValue(v) {
|
|
57
57
|
source.code1 = v;
|
|
58
58
|
},
|
|
59
|
-
defaultValue: source.defaultCode1,
|
|
60
|
-
defaultValue1: source.defaultCode2,
|
|
61
|
-
defaultValue2: source.defaultCode3,
|
|
59
|
+
defaultValue: source.defaultCode1 || '',
|
|
60
|
+
defaultValue1: source.defaultCode2 || '',
|
|
61
|
+
defaultValue2: source.defaultCode3 || '',
|
|
62
62
|
get type() {
|
|
63
63
|
return source.controlType;
|
|
64
64
|
},
|
|
@@ -81,7 +81,7 @@ const Base = function (source) {
|
|
|
81
81
|
source.api = v;
|
|
82
82
|
},
|
|
83
83
|
get paramName() {
|
|
84
|
-
return source.paramName1;
|
|
84
|
+
return source.paramName1;
|
|
85
85
|
},
|
|
86
86
|
set paramName(v) {
|
|
87
87
|
source.paramName1 = v;
|
|
@@ -94,7 +94,7 @@ const Base = function (source) {
|
|
|
94
94
|
},
|
|
95
95
|
set change(v) {
|
|
96
96
|
source.onChanged = v;
|
|
97
|
-
},
|
|
97
|
+
},
|
|
98
98
|
//必填
|
|
99
99
|
get required() {
|
|
100
100
|
return source.required;
|
|
@@ -103,13 +103,12 @@ const Base = function (source) {
|
|
|
103
103
|
set required(v) {
|
|
104
104
|
source.required = v;
|
|
105
105
|
},
|
|
106
|
-
get labelClass() {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
106
|
+
get labelClass() {
|
|
107
|
+
if (source.required) {
|
|
108
|
+
return 'requiredLabel'
|
|
109
|
+
}
|
|
111
110
|
|
|
112
|
-
return
|
|
111
|
+
return '';
|
|
113
112
|
},
|
|
114
113
|
get mrf() {//当mrf对应的Field的code1等于mrv时,当前组件必填
|
|
115
114
|
return source.requiredRelationField;
|
|
@@ -138,17 +137,17 @@ const Base = function (source) {
|
|
|
138
137
|
get lock() {
|
|
139
138
|
return source.locked;
|
|
140
139
|
//return true;
|
|
141
|
-
},
|
|
142
|
-
get listBind() {
|
|
143
|
-
let bind = {};
|
|
144
|
-
bind = {
|
|
145
|
-
style: {
|
|
146
|
-
//width: 200 + 'px',
|
|
147
|
-
'width': source.width + 'px',
|
|
148
|
-
display: 'inline-table'
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return bind;
|
|
140
|
+
},
|
|
141
|
+
get listBind() {
|
|
142
|
+
let bind = {};
|
|
143
|
+
bind = {
|
|
144
|
+
style: {
|
|
145
|
+
//width: 200 + 'px',
|
|
146
|
+
'width': source.width + 'px',
|
|
147
|
+
display: 'inline-table'
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return bind;
|
|
152
151
|
},
|
|
153
152
|
reset() {
|
|
154
153
|
this.value = this.defaultValue;
|
|
@@ -210,8 +209,8 @@ const Base = function (source) {
|
|
|
210
209
|
set min(v) {
|
|
211
210
|
source.minValue1 = v;
|
|
212
211
|
}
|
|
213
|
-
};
|
|
214
|
-
|
|
212
|
+
};
|
|
213
|
+
|
|
215
214
|
return rtn;
|
|
216
215
|
};
|
|
217
216
|
export default Base;
|
|
@@ -231,15 +231,13 @@ const box = function (source, fileSourceList, router, optionApi) {
|
|
|
231
231
|
Vue.set(file, "progressFlag", false);
|
|
232
232
|
Vue.set(file, "loadProgress", 100);
|
|
233
233
|
|
|
234
|
-
|
|
235
|
-
rtn.fileList = fileList;
|
|
236
|
-
}
|
|
234
|
+
rtn.fileList = fileList;//无数据会监听不到
|
|
237
235
|
}
|
|
238
236
|
else {
|
|
239
237
|
Vue.prototype.$message.error(res.rtnMsg);
|
|
240
238
|
}
|
|
241
239
|
},
|
|
242
|
-
deleteFile(file, forceDelete) {
|
|
240
|
+
deleteFile(file, forceDelete) {
|
|
243
241
|
for (let i = 0; i < rtn.fileList.length; i++) {
|
|
244
242
|
if (rtn.fileList[i].uid === file.uid) {
|
|
245
243
|
if (forceDelete) {
|
|
@@ -60,7 +60,8 @@ const Form = function (source, callBack, apiParam, failCallBack) {
|
|
|
60
60
|
|
|
61
61
|
rtn._fields.push(item);
|
|
62
62
|
}
|
|
63
|
-
}
|
|
63
|
+
}
|
|
64
|
+
rtn.allRequiredHandle();//必填关联组件
|
|
64
65
|
return rtn._fields;
|
|
65
66
|
},
|
|
66
67
|
get col() {
|
|
@@ -513,9 +514,14 @@ const Form = function (source, callBack, apiParam, failCallBack) {
|
|
|
513
514
|
field.self.validExcute();
|
|
514
515
|
}
|
|
515
516
|
}
|
|
517
|
+
},
|
|
518
|
+
allRequiredHandle() {
|
|
519
|
+
rtn.fields.forEach(v => {
|
|
520
|
+
rtn.requiredHandle(v, null, false);
|
|
521
|
+
});
|
|
516
522
|
},
|
|
517
523
|
//处理必填关联组件
|
|
518
|
-
requiredHandle(item, update) {
|
|
524
|
+
requiredHandle(item, update, doMrf) {
|
|
519
525
|
if (item.id) {
|
|
520
526
|
let field = null;
|
|
521
527
|
|
|
@@ -543,8 +549,10 @@ const Form = function (source, callBack, apiParam, failCallBack) {
|
|
|
543
549
|
}
|
|
544
550
|
}
|
|
545
551
|
}
|
|
546
|
-
|
|
547
|
-
|
|
552
|
+
|
|
553
|
+
if (doMrf !== false) {
|
|
554
|
+
rtn.validMrf(item);
|
|
555
|
+
}
|
|
548
556
|
}
|
|
549
557
|
},
|
|
550
558
|
//绑定联动参数组件
|
|
@@ -56,12 +56,12 @@ const Mo = function (source, moreActionRouter) {
|
|
|
56
56
|
source.code1 = JSON.stringify(v);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
},
|
|
60
|
-
get valueLabel() {
|
|
61
|
-
if (source.isList && this.value.length > 0 && rtn.attrs.placeholder) {
|
|
62
|
-
return rtn.attrs.placeholder + ":";
|
|
63
|
-
}
|
|
64
|
-
return '';
|
|
59
|
+
},
|
|
60
|
+
get valueLabel() {
|
|
61
|
+
if (source.isList && this.value.length > 0 && rtn.attrs.placeholder) {
|
|
62
|
+
return rtn.attrs.placeholder + ":";
|
|
63
|
+
}
|
|
64
|
+
return '';
|
|
65
65
|
},
|
|
66
66
|
get optionColCount() {
|
|
67
67
|
return parseInt(source.optCount) || 5;
|