centaline-data-driven 1.3.25 → 1.3.28
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 +9 -3
- package/src/SearchList.vue +6 -3
- package/src/centaline/css/ccai.css +4 -1
- package/src/centaline/css/max.css +26 -1
- package/src/centaline/dialogList/src/dialog.vue +4 -2
- package/src/centaline/dynamicDragSort/src/dynamicDragSort.vue +102 -58
- package/src/centaline/dynamicForm/src/dynamicForm.vue +24 -2
- package/src/centaline/dynamicForm/src/dynamicFormListTable.vue +5 -4
- package/src/centaline/dynamicMt/src/dynamicMt.vue +8 -2
- package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +7 -16
- package/src/centaline/dynamicT/src/dynamicT.vue +12 -5
- package/src/centaline/loader/src/ctl/FormList.js +42 -39
- package/src/centaline/loader/src/ctl/QuickInputSos.js +3 -4
- package/src/centaline/loader/src/ctl/Router.js +5 -1
- package/src/centaline/loader/src/ctl/lib/Enum.js +7 -1
- package/src/centaline/loader/src/ctl/lib/LibFunction.js +0 -1
- package/src/centaline/quickInputSos/src/quickInput.vue +16 -12
- package/src/centaline/selectOption/src/selectOptionVertical.vue +4 -3
- package/src/centaline/validate/index.js +19 -0
- package/src/main.js +3 -3
- package/wwwroot/static/centaline/centaline-data-driven.js +2 -2
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
package/package.json
CHANGED
package/src/Form.vue
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div id="app
|
|
2
|
+
<div id="form-app" class="data-driven" style="width:100%;height:100%;overflow:auto">
|
|
3
3
|
<!-- <ct-form :api="'/PropertyRET/getLayoutOfNew'" :apiParam="apiParam"></ct-form> -->
|
|
4
4
|
<!-- <ct-form :source="formdata.content" :apiParam="apiParam"></ct-form> -->
|
|
5
|
-
<ct-form :api="'/
|
|
5
|
+
<ct-form :api="'/api/finance/account-flow/task'" :apiParam="apiParam"></ct-form>
|
|
6
6
|
<!--<ct-form :api="'api/Form/formdata'"></ct-form>-->
|
|
7
7
|
<ct-dialog-list></ct-dialog-list>
|
|
8
8
|
</div>
|
|
@@ -14,10 +14,16 @@
|
|
|
14
14
|
data() {
|
|
15
15
|
return {
|
|
16
16
|
apiParam:{
|
|
17
|
-
|
|
17
|
+
actionType: 1,
|
|
18
|
+
businessId: "1547837545432465409",
|
|
19
|
+
pageOnly: true,
|
|
20
|
+
pageStyle: 2,
|
|
21
|
+
stepId: "1547838255872065538"
|
|
18
22
|
}
|
|
19
23
|
}
|
|
20
24
|
},
|
|
25
|
+
activated(){
|
|
26
|
+
},
|
|
21
27
|
methods: {
|
|
22
28
|
test111(val) {
|
|
23
29
|
alert(JSON.stringify(val));
|
package/src/SearchList.vue
CHANGED
|
@@ -8,13 +8,16 @@
|
|
|
8
8
|
:searchCategoryApi="'/ProfileWorklistList/getLayoutOfSearchCategory'"
|
|
9
9
|
:searchDataApi="'/ProfileWorklistList/getListOfSearchModel'" :apiParam="para"></ct-searchlist> -->
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
<ct-searchlist :searchConditionApi="'/ProfileWorklistList/getLayoutOfSearch'"
|
|
12
|
+
:searchCategoryApi="'/ProfileWorklistList/getLayoutOfSearchCategory'"
|
|
13
|
+
:searchDataApi="'/ProfileWorklistList/getListOfSearchModel'">
|
|
14
|
+
</ct-searchlist>
|
|
12
15
|
|
|
13
|
-
<ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'"
|
|
16
|
+
<!-- <ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'"
|
|
14
17
|
:searchDataApi="'/PropertyRETList/getListOfSearchModel'"
|
|
15
18
|
:searchCategoryApi="'/PropertyRETList/getLayoutOfSearchCategory'"
|
|
16
19
|
:searchStatsApi="'/exampleList/getListStats'"
|
|
17
|
-
></ct-searchlist>
|
|
20
|
+
></ct-searchlist> -->
|
|
18
21
|
|
|
19
22
|
<ct-dialog-list></ct-dialog-list>
|
|
20
23
|
</div>
|
|
@@ -39,9 +39,20 @@
|
|
|
39
39
|
.max-ToolbarButton .max-btn-gray{
|
|
40
40
|
height: 26px;
|
|
41
41
|
background: #FFFFFF;
|
|
42
|
-
border: 1px solid #CCCCCC;
|
|
42
|
+
/* border: 1px solid #CCCCCC; */
|
|
43
43
|
border-radius: 6px;
|
|
44
44
|
}
|
|
45
|
+
.max-ToolbarButton .max-btn-gray button.el-button.el-button--primary.el-button--mini {
|
|
46
|
+
height: 26px;
|
|
47
|
+
background: #fff;
|
|
48
|
+
}
|
|
49
|
+
.max-ToolbarButton .max-btn-gray button.el-button.el-button--primary.el-button--mini:hover {
|
|
50
|
+
color: #666;
|
|
51
|
+
border: 1px solid #ced0d9;
|
|
52
|
+
background: -webkit-gradient(linear,left top, left bottom,from(#F4F4F5),to(#DFE3F1));
|
|
53
|
+
background: linear-gradient(#F4F4F5,#DFE3F1);
|
|
54
|
+
}
|
|
55
|
+
|
|
45
56
|
/* 弹层新增按钮 */
|
|
46
57
|
.max-btn-add button,.max-btn-add{ /*list-button*/
|
|
47
58
|
height: 26px;
|
|
@@ -251,3 +262,17 @@
|
|
|
251
262
|
.ct-text .showLabel label{
|
|
252
263
|
line-height: 27px!important;
|
|
253
264
|
}
|
|
265
|
+
|
|
266
|
+
.dragItem .el-checkbox__input.is-checked+.el-checkbox__label {
|
|
267
|
+
/* color: #409EFF !important; */
|
|
268
|
+
color: #666 !important;
|
|
269
|
+
}
|
|
270
|
+
#dragAll .el-checkbox__input.is-checked+.el-checkbox__label{
|
|
271
|
+
font-weight: 700;
|
|
272
|
+
}
|
|
273
|
+
/* .dragItem .el-checkbox__input.is-checked .el-checkbox__inner,
|
|
274
|
+
.dragItem .el-checkbox__input.is-indeterminate .el-checkbox__inner {
|
|
275
|
+
background-color: #409EFF !important;
|
|
276
|
+
border-color: #409EFF !important;
|
|
277
|
+
} */
|
|
278
|
+
|
|
@@ -160,7 +160,8 @@
|
|
|
160
160
|
width: item.attrs.width,
|
|
161
161
|
'height': item.attrs.height,
|
|
162
162
|
'overflow': 'auto',
|
|
163
|
-
}
|
|
163
|
+
},
|
|
164
|
+
ref:'content'
|
|
164
165
|
}, [
|
|
165
166
|
h(item.component, {
|
|
166
167
|
props: item.attrs,
|
|
@@ -168,7 +169,8 @@
|
|
|
168
169
|
}, [])
|
|
169
170
|
]);
|
|
170
171
|
}
|
|
171
|
-
else {
|
|
172
|
+
else {
|
|
173
|
+
var ph=0;
|
|
172
174
|
if(item.attrs.height){
|
|
173
175
|
ph=parseInt(item.attrs.height.replace('px',''));
|
|
174
176
|
}
|
|
@@ -1,75 +1,88 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<!--使用draggable组件-->
|
|
3
|
-
<div class="dragCol">
|
|
4
|
-
<div class="dragItem">
|
|
5
|
-
<el-checkbox id="
|
|
6
|
-
|
|
3
|
+
<div class="dragCol" ref="dragCol">
|
|
4
|
+
<div class="dragItem dragHeader" ref="dragHeader">
|
|
5
|
+
<el-checkbox id="dragAll" v-model="checkAll" :indeterminate="isIndeterminate" @change="handleAllChecked"
|
|
6
|
+
class="checkbox-common">{{
|
|
7
|
+
this.vmodel.label
|
|
8
|
+
}}
|
|
7
9
|
</el-checkbox>
|
|
8
10
|
<span class="svgIcon">
|
|
9
11
|
<!-- <svg-icon icon-class="sort" style="cursor: pointer"></svg-icon> -->
|
|
10
12
|
</span>
|
|
11
13
|
</div>
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
<!-- <div class="dragMain" style="height:dragMainHeight;"> -->
|
|
15
|
+
<div class="dragMain" ref="dragMain" :style="{ height: mainHeight }">
|
|
16
|
+
<draggable v-model="testList"
|
|
17
|
+
:options="{ group: { name: 'itxst', pull: 'clone' }, sort: true }" animation="300"
|
|
18
|
+
:move="onMove" dragClass="dragClass" ghostClass="ghostClass" chosenClass="chosenClass"
|
|
19
|
+
@input="handleListChange($event)">
|
|
20
|
+
<transition-group>
|
|
21
|
+
<div class="dragItem canDragon" v-for="(item, index) in testList" :key="index" ref="dragItem">
|
|
22
|
+
<el-checkbox v-model="item.checked" :disabled="item.locked" name="checkItem"
|
|
23
|
+
@change="handleChecked(item, $event)" class="checkbox-common"> {{ item.displayName
|
|
24
|
+
}}</el-checkbox>
|
|
25
|
+
<span class="svgIcon">
|
|
26
|
+
<img :src="iconSort" alt="" width="100%" />
|
|
27
|
+
</span>
|
|
28
|
+
</div>
|
|
29
|
+
</transition-group>
|
|
30
|
+
</draggable>
|
|
31
|
+
</div>
|
|
26
32
|
</div>
|
|
27
33
|
</template>
|
|
28
34
|
|
|
29
35
|
<script>
|
|
30
36
|
//导入draggable组件
|
|
31
|
-
import draggable from
|
|
37
|
+
import draggable from "vuedraggable";
|
|
32
38
|
|
|
33
39
|
export default {
|
|
34
40
|
//注册draggable组件
|
|
35
|
-
name:
|
|
41
|
+
name: "ct-dragSort",
|
|
36
42
|
components: {
|
|
37
|
-
draggable
|
|
43
|
+
draggable
|
|
38
44
|
},
|
|
39
45
|
props: {
|
|
40
46
|
vmodel: Object,
|
|
41
|
-
api: String
|
|
47
|
+
api: String
|
|
42
48
|
},
|
|
43
49
|
data() {
|
|
44
50
|
return {
|
|
45
51
|
iconSort: require("../../../assets/sort.png"),
|
|
46
52
|
drag: false,
|
|
47
53
|
checkAll: true,
|
|
48
|
-
controlLabel: '列名',
|
|
49
54
|
//定义要被拖拽对象的数组
|
|
50
55
|
testList: [],
|
|
56
|
+
mainHeight: 500,
|
|
57
|
+
isIndeterminate: true
|
|
51
58
|
};
|
|
52
59
|
},
|
|
53
60
|
watch: {
|
|
54
|
-
testList: {
|
|
61
|
+
testList: {
|
|
62
|
+
// 监听事件,监听复选框是否全部选中,全部选中则全选的复选框勾选上
|
|
55
63
|
handler(val) {
|
|
56
|
-
var i = 0
|
|
64
|
+
var i = 0;
|
|
57
65
|
this.testList.forEach(item => {
|
|
58
66
|
if (item.checked === true) {
|
|
59
|
-
i
|
|
67
|
+
i++;
|
|
60
68
|
}
|
|
61
69
|
if (i === this.testList.length) {
|
|
62
|
-
this.checkAll = true
|
|
70
|
+
this.checkAll = true;
|
|
71
|
+
this.isIndeterminate = false
|
|
63
72
|
} else {
|
|
64
|
-
this.checkAll = false
|
|
73
|
+
this.checkAll = false;
|
|
74
|
+
if (i > 0 && i < this.testList.length) {
|
|
75
|
+
this.isIndeterminate = true
|
|
76
|
+
} else {
|
|
77
|
+
this.isIndeterminate = false
|
|
78
|
+
}
|
|
65
79
|
}
|
|
66
|
-
})
|
|
80
|
+
});
|
|
67
81
|
},
|
|
68
82
|
deep: true
|
|
69
83
|
}
|
|
70
84
|
},
|
|
71
85
|
created() {
|
|
72
|
-
console.log('draglist', this.vmodel.dragList);
|
|
73
86
|
this.$nextTick(function () {
|
|
74
87
|
if (typeof this.vmodel === 'undefined') {
|
|
75
88
|
this.model = this.loaderObj.DragSort(this.source);
|
|
@@ -77,30 +90,55 @@ export default {
|
|
|
77
90
|
else {
|
|
78
91
|
this.model = this.vmodel;
|
|
79
92
|
this.testList = this.vmodel.dragList;
|
|
80
|
-
console.log('this.testList', this.testList);
|
|
93
|
+
// console.log('this.testList', this.testList);
|
|
81
94
|
}
|
|
82
95
|
});
|
|
83
96
|
|
|
84
|
-
this.testList.forEach(item => {
|
|
85
|
-
|
|
86
|
-
|
|
97
|
+
this.testList.forEach(item => {
|
|
98
|
+
// 处理后端传过来的数据,如果没有可以判断是否勾选复选框的字段,则需给数据作处理,加上一个isChecked字段,判断复选框勾选
|
|
99
|
+
this.$set(item, "checked", false); // 添加判断的字段
|
|
100
|
+
});
|
|
101
|
+
},
|
|
102
|
+
mounted() {
|
|
103
|
+
this.$nextTick(() => {
|
|
104
|
+
this.sjcount();
|
|
105
|
+
});
|
|
87
106
|
},
|
|
107
|
+
|
|
88
108
|
methods: {
|
|
109
|
+
sjcount() {
|
|
110
|
+
this.$nextTick(() => {
|
|
111
|
+
// const height = window.innerHeight;
|
|
112
|
+
let screenHeight = document.body.clientHeight;
|
|
113
|
+
let dragHeaderHeight = this.$refs.dragHeader.offsetHeight;
|
|
114
|
+
let dragMainHeight = this.$refs.dragMain.style.height;
|
|
115
|
+
dragMainHeight =
|
|
116
|
+
screenHeight - dragHeaderHeight - 26 - 8 - 44 - 40;
|
|
117
|
+
this.mainHeight = dragMainHeight + "px";
|
|
118
|
+
let num = this.testList.length
|
|
119
|
+
let dragItemAll = 44.68 * num;
|
|
120
|
+
if (dragMainHeight > dragItemAll) {
|
|
121
|
+
this.mainHeight = dragItemAll + "px";
|
|
122
|
+
this.$refs.dragMain.style.overflowY = 'hidden'
|
|
123
|
+
} else {
|
|
124
|
+
this.mainHeight = dragMainHeight + "px";
|
|
125
|
+
this.$refs.dragMain.style.overflowY = 'overlay'
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
|
|
89
131
|
// 更新位置
|
|
90
132
|
handleListChange(event) {
|
|
91
133
|
console.log(event);
|
|
92
134
|
this.testList = event;
|
|
93
135
|
|
|
94
136
|
this.testList.forEach((item, i) => {
|
|
95
|
-
this.model.dragList.splice(i, 1, item)
|
|
96
|
-
})
|
|
97
|
-
|
|
98
|
-
console.log('handleListChange-testList', this.testList);
|
|
99
|
-
console.log('this.model.code1', this.model.code1);
|
|
137
|
+
this.model.dragList.splice(i, 1, item);
|
|
138
|
+
});
|
|
100
139
|
},
|
|
101
140
|
//move回调方法
|
|
102
|
-
onMove(e, originalEvent) {
|
|
103
|
-
},
|
|
141
|
+
onMove(e, originalEvent) { },
|
|
104
142
|
//开始拖拽事件
|
|
105
143
|
onStart() {
|
|
106
144
|
this.drag = true;
|
|
@@ -108,27 +146,25 @@ export default {
|
|
|
108
146
|
//拖拽结束事件
|
|
109
147
|
onEnd() {
|
|
110
148
|
this.drag = false;
|
|
111
|
-
// this.handleListChange()
|
|
112
149
|
},
|
|
113
|
-
handleAllChecked(v) {
|
|
150
|
+
handleAllChecked(v) {
|
|
151
|
+
// 实现全选,反选(点击会传递true或者false过来)
|
|
114
152
|
this.testList.map(item => {
|
|
115
153
|
if (!item.locked) {
|
|
116
|
-
item.checked = v
|
|
154
|
+
item.checked = v;
|
|
117
155
|
} else {
|
|
118
|
-
return false
|
|
156
|
+
return false;
|
|
119
157
|
}
|
|
120
|
-
})
|
|
121
|
-
this.vmodel.draglist = this.testList
|
|
122
|
-
console.log('this.vmodel.draglist', this.vmodel.dragList);
|
|
158
|
+
});
|
|
159
|
+
this.vmodel.draglist = this.testList;
|
|
123
160
|
},
|
|
124
|
-
handleChecked(item, e) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
this.vmodel.draglist = this.testList
|
|
128
|
-
console.log('this.vmodel.draglist', this.vmodel.dragList);
|
|
161
|
+
handleChecked(item, e) {
|
|
162
|
+
// 单个选中
|
|
163
|
+
item.checked = e;
|
|
164
|
+
this.vmodel.draglist = this.testList;
|
|
129
165
|
}
|
|
130
166
|
}
|
|
131
|
-
}
|
|
167
|
+
};
|
|
132
168
|
</script>
|
|
133
169
|
<style scoped>
|
|
134
170
|
/*定义要拖拽元素的样式*/
|
|
@@ -155,6 +191,7 @@ export default {
|
|
|
155
191
|
flex: 1;
|
|
156
192
|
border-radius: 5px;
|
|
157
193
|
float: left;
|
|
194
|
+
margin-top: -5px;
|
|
158
195
|
}
|
|
159
196
|
|
|
160
197
|
.dragCol+.dragCol {
|
|
@@ -172,7 +209,7 @@ export default {
|
|
|
172
209
|
}
|
|
173
210
|
|
|
174
211
|
.dragItem:hover {
|
|
175
|
-
background-color: #
|
|
212
|
+
background-color: #f5f7fa;
|
|
176
213
|
cursor: move;
|
|
177
214
|
}
|
|
178
215
|
|
|
@@ -180,7 +217,7 @@ export default {
|
|
|
180
217
|
border-top: none;
|
|
181
218
|
}
|
|
182
219
|
|
|
183
|
-
#
|
|
220
|
+
#dragAll {
|
|
184
221
|
color: #909399;
|
|
185
222
|
font-weight: 700;
|
|
186
223
|
}
|
|
@@ -188,10 +225,17 @@ export default {
|
|
|
188
225
|
.svgIcon {
|
|
189
226
|
width: 16px;
|
|
190
227
|
text-align: center;
|
|
191
|
-
cursor: pointer
|
|
228
|
+
cursor: pointer;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.dragHeader {}
|
|
232
|
+
|
|
233
|
+
.dragMain {
|
|
234
|
+
overflow-y: overlay;
|
|
235
|
+
overflow-x: hidden;
|
|
192
236
|
}
|
|
193
237
|
|
|
194
238
|
/* .checkbox-common>>>span.el-checkbox__label {
|
|
195
239
|
padding-left: 30px;
|
|
196
240
|
} */
|
|
197
|
-
</style>
|
|
241
|
+
</style>
|
|
@@ -68,7 +68,8 @@
|
|
|
68
68
|
<component v-for="(btn, index) in model.links" :key="index" :is="btn.is" :vmodel="btn" @click="clickHandler" v-if="btn.show"></component>
|
|
69
69
|
</el-col>
|
|
70
70
|
</el-row>
|
|
71
|
-
<el-row v-if="model.buttons.findIndex((v)=>{return v.show}) > -1"
|
|
71
|
+
<el-row v-if="model.buttons.findIndex((v)=>{return v.show}) > -1" :class="isScroll?'ccai button-absolute':'button-initial'"
|
|
72
|
+
:style="{'max-width':pageWidth?(pageWidth-20)+'px':'100%'}">
|
|
72
73
|
<el-col :span="24" style="text-align:center">
|
|
73
74
|
<component v-for="(btn, index) in model.buttons" :key="index" :is="btn.is" :vmodel="btn" @click="clickHandler" v-if="btn.show"></component>
|
|
74
75
|
</el-col>
|
|
@@ -102,8 +103,8 @@
|
|
|
102
103
|
}
|
|
103
104
|
},
|
|
104
105
|
data() {
|
|
105
|
-
var self = this;
|
|
106
106
|
return {
|
|
107
|
+
isScroll: false,
|
|
107
108
|
loading: true,
|
|
108
109
|
activeName: '-1',
|
|
109
110
|
collapse: [],//分组数组
|
|
@@ -115,6 +116,12 @@
|
|
|
115
116
|
mounted() {
|
|
116
117
|
this.init();
|
|
117
118
|
},
|
|
119
|
+
updated(){
|
|
120
|
+
if(this.$el.parentElement.scrollHeight>this.$el.parentElement.clientHeight
|
|
121
|
+
&& !this.model.isHorizontalLayout){
|
|
122
|
+
this.isScroll=true;
|
|
123
|
+
}
|
|
124
|
+
},
|
|
118
125
|
methods: {
|
|
119
126
|
init() {
|
|
120
127
|
var self = this;
|
|
@@ -587,6 +594,7 @@
|
|
|
587
594
|
var rtnBool = true;
|
|
588
595
|
var jump = false;
|
|
589
596
|
var i=0;
|
|
597
|
+
debugger
|
|
590
598
|
self.$refs.Fields.forEach((f) => {
|
|
591
599
|
if (f.model && typeof f.validExcute !== 'undefined') {
|
|
592
600
|
if (!f.validExcute()) {
|
|
@@ -700,4 +708,18 @@
|
|
|
700
708
|
.el-collapse-saveLine .ct-collapse-item-title:last-child .el-collapse-item__wrap{
|
|
701
709
|
border-bottom:none;
|
|
702
710
|
}
|
|
711
|
+
.button-initial{
|
|
712
|
+
margin-top: 8px;
|
|
713
|
+
}
|
|
714
|
+
.button-absolute{
|
|
715
|
+
z-index: 100;
|
|
716
|
+
bottom: 6px;
|
|
717
|
+
position: absolute;
|
|
718
|
+
line-height: 34px;
|
|
719
|
+
background-color: #fff;
|
|
720
|
+
width: 100%;
|
|
721
|
+
margin: auto;
|
|
722
|
+
box-shadow: 0 2px 20px 0 rgb(0 0 0 / 10%);
|
|
723
|
+
margin-left: -20px;
|
|
724
|
+
}
|
|
703
725
|
</style>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<!--数据列-->
|
|
17
17
|
<el-table-column v-for="(v,i) in model.rows[0].field" :key="i" :prop="v.id" :label="v.label" v-if="v.show !== false">
|
|
18
18
|
<template slot="header" slot-scope="scope">
|
|
19
|
-
<div
|
|
19
|
+
<div :class="[{'ct-table-required':v.required&&model.rows[0].edit&& model.rows[0].delete&&!model.tableDisabled},getHeadClass(v)]">
|
|
20
20
|
{{v.label}}
|
|
21
21
|
</div>
|
|
22
22
|
</template>
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
</span>
|
|
33
33
|
<!--可点击的列-->
|
|
34
34
|
<span v-else-if="v.router" :class="'cell'" style="display: flex;">
|
|
35
|
-
<
|
|
36
|
-
|
|
35
|
+
<span>{{scope.row.isSet}}</span>
|
|
36
|
+
<ct-tablecurrency :router="v.router" :colValue="scope.row[v.id].code1" :rowData="scope.row" @click="rolRouterClickHandler">
|
|
37
37
|
</ct-tablecurrency>
|
|
38
38
|
</span>
|
|
39
39
|
<ct-span v-else :vmodel="scope.row[v.id]" :rowNum="scope.row.$sourceIndex" ref="FieldsLabel"></ct-span>
|
|
@@ -191,7 +191,8 @@
|
|
|
191
191
|
app.model.currentRow.isNew = false;
|
|
192
192
|
app.model.currentRow.index = index;
|
|
193
193
|
app.model.currentRow.isSet = true;
|
|
194
|
-
row.isSet = true;
|
|
194
|
+
row.isSet = true;
|
|
195
|
+
app.itemKey = Math.random();
|
|
195
196
|
}
|
|
196
197
|
},
|
|
197
198
|
//删除
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
{{validMessage}}
|
|
13
13
|
</span>
|
|
14
14
|
</transition>
|
|
15
|
-
<ct-quick-input v-if="model.paramName && !model.lock" :pn="model.paramName" :action="api" @input="
|
|
15
|
+
<ct-quick-input v-if="model.paramName && !model.lock" :pn="model.paramName" :action="api" @input="quickSelect"></ct-quick-input>
|
|
16
16
|
</div>
|
|
17
17
|
</template>
|
|
18
18
|
<script>
|
|
@@ -35,8 +35,14 @@
|
|
|
35
35
|
else {
|
|
36
36
|
this.model = this.vmodel;
|
|
37
37
|
}
|
|
38
|
+
},
|
|
39
|
+
methods: {
|
|
40
|
+
quickSelect(value,label) {
|
|
41
|
+
this.model.value=this.model.value+label;
|
|
42
|
+
},
|
|
38
43
|
}
|
|
39
|
-
}
|
|
44
|
+
}
|
|
45
|
+
</script>
|
|
40
46
|
<style>
|
|
41
47
|
.noresize {
|
|
42
48
|
resize: none;
|
|
@@ -799,8 +799,7 @@ export default {
|
|
|
799
799
|
action = action || field.action;
|
|
800
800
|
var clickAcion = function() {
|
|
801
801
|
//若不是客户端方法,则直接访问接口
|
|
802
|
-
if (!field.isClientFuntion) {
|
|
803
|
-
// 外部框架tab页打开
|
|
802
|
+
if (!field.isClientFuntion) {// 外部框架tab页打开
|
|
804
803
|
if (field.isFormPageInTab) {
|
|
805
804
|
submitData = field.getActionPara(submitData).para;
|
|
806
805
|
if (field.pageStyle) {
|
|
@@ -816,29 +815,24 @@ export default {
|
|
|
816
815
|
field.dialogWidth
|
|
817
816
|
);
|
|
818
817
|
}
|
|
819
|
-
else if (field.isSearchPageInTab) {
|
|
820
|
-
// 外部框架tab页打开
|
|
818
|
+
else if (field.isSearchPageInTab) {// 外部框架tab页打开
|
|
821
819
|
submitData = field.getActionPara(submitData).para;
|
|
822
820
|
self.$common
|
|
823
821
|
.getDataDrivenOpts()
|
|
824
822
|
.handler.openTabSearch(field, submitData);
|
|
825
823
|
}
|
|
826
|
-
else if (field.isBrowserNewTab) {
|
|
827
|
-
// 浏览器打开
|
|
824
|
+
else if (field.isBrowserNewTab) {// 浏览器打开
|
|
828
825
|
submitData = field.getActionPara(submitData).para;
|
|
829
826
|
let query = self.$common.objectToQueryStr(submitData);
|
|
830
827
|
window.open(action + query, "_blank");
|
|
831
828
|
}
|
|
832
|
-
else if (field.isOpenUrlInBrowse) {
|
|
833
|
-
// 浏览器打开
|
|
829
|
+
else if (field.isOpenUrlInBrowse) {// 浏览器打开
|
|
834
830
|
window.open(submitData[field.submitFormField], "_blank");
|
|
835
831
|
}
|
|
836
|
-
else if (field.isSeeVoice) {
|
|
837
|
-
//看视频
|
|
832
|
+
else if (field.isSeeVoice) {//看视频
|
|
838
833
|
self.$common.browseVideo(field, submitData);
|
|
839
834
|
}
|
|
840
|
-
else if (field.isBrowseAttachment) {
|
|
841
|
-
//浏览附件
|
|
835
|
+
else if (field.isBrowseAttachment) {//浏览附件
|
|
842
836
|
var MediaAlbum = [
|
|
843
837
|
{ albumName: self.model.title || "媒体", medias: [] }
|
|
844
838
|
];
|
|
@@ -920,10 +914,7 @@ export default {
|
|
|
920
914
|
},
|
|
921
915
|
on: {
|
|
922
916
|
submit(ev) {
|
|
923
|
-
if (
|
|
924
|
-
!field.flagFreshCurrentRow &&
|
|
925
|
-
!field.flagAddRowAfterAction
|
|
926
|
-
) {
|
|
917
|
+
if ( !field.flagFreshCurrentRow && !field.flagAddRowAfterAction) {
|
|
927
918
|
self.model.doAction(ev);
|
|
928
919
|
}
|
|
929
920
|
self.$forceUpdate();
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
</el-input>
|
|
22
22
|
|
|
23
23
|
<span v-if="model.sufLabel" class="spanMessage ct-flex-div-span">{{model.sufLabel}}</span>
|
|
24
|
-
<ctQuickInputSos v-if="!model.lock && model.paramName" class="ct-flex-div-span" :pn="model.paramName" :action="api" @click="quickSelect"></ctQuickInputSos>
|
|
24
|
+
<ctQuickInputSos v-if="!model.lock && model.paramName" class="ct-flex-div-span" :pn="model.paramName" :action="api" :flagNew="true" @click="quickSelect"></ctQuickInputSos>
|
|
25
25
|
</div>
|
|
26
26
|
<transition name="el-fade-in" class="ct-flex-div-span">
|
|
27
27
|
<span v-show="!valid" class="errorMessage ">
|
|
@@ -75,7 +75,8 @@
|
|
|
75
75
|
isShowClear() {
|
|
76
76
|
if (this.model.value !== '' && this.model.clearable) {
|
|
77
77
|
this.$set(this, 'showClear', true);
|
|
78
|
-
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
79
80
|
this.$set(this, 'showClear', false);
|
|
80
81
|
}
|
|
81
82
|
},
|
|
@@ -84,13 +85,19 @@
|
|
|
84
85
|
this.$emit('click');
|
|
85
86
|
}
|
|
86
87
|
else if(this.model.routerKeyForEnterKey){
|
|
87
|
-
if(this.model.value.trim()!=''){
|
|
88
|
+
if(this.model.value && this.model.value.trim()!=''){
|
|
88
89
|
this.$emit('enter');
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
92
|
},
|
|
92
|
-
quickSelect(
|
|
93
|
-
this.model.
|
|
93
|
+
quickSelect(value,label) {
|
|
94
|
+
if(this.model.type===3){
|
|
95
|
+
this.model.value=this.model.value+label;
|
|
96
|
+
this.validExcute();
|
|
97
|
+
}
|
|
98
|
+
else{
|
|
99
|
+
this.model.value=label;
|
|
100
|
+
}
|
|
94
101
|
this.search();
|
|
95
102
|
},
|
|
96
103
|
},
|