centaline-data-driven 1.5.69 → 1.5.70
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/release-log.md +17 -0
- package/src/Form.vue +4 -2
- package/src/SearchList.vue +5 -1
- package/src/centaline/css/common.css +4 -0
- package/src/centaline/dynamicForm/src/dynamicForm.vue +0 -1
- package/src/centaline/dynamicInputNumber/src/dynamicInputNumber.vue +3 -3
- package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +46 -3
- package/src/centaline/dynamicT/src/dynamicT.vue +8 -6
- package/src/centaline/loader/src/ctl/Form.js +4 -0
- package/src/centaline/loader/src/ctl/Router.js +9 -0
- package/src/centaline/loader/src/ctl/SearchTable.js +2 -2
- package/src/main.js +2 -1
- package/wwwroot/static/centaline/centaline-data-driven.js +77 -28
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
package/package.json
CHANGED
package/release-log.md
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="'/EmployeeAttendanceBillApply/getLayoutOfNew'" :apiParam="apiParam" :topHeight="topHeight"></ct-form>
|
|
5
5
|
<ct-dialog-list></ct-dialog-list>
|
|
6
6
|
</div>
|
|
7
7
|
</template>
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
data() {
|
|
13
13
|
return {
|
|
14
14
|
apiParam:{
|
|
15
|
-
|
|
15
|
+
actionType
|
|
16
|
+
:
|
|
17
|
+
2
|
|
16
18
|
},
|
|
17
19
|
topHeight:10,
|
|
18
20
|
}
|
package/src/SearchList.vue
CHANGED
|
@@ -93,7 +93,11 @@
|
|
|
93
93
|
|
|
94
94
|
<!-- <ct-searchlist :appRootUrl="appRootUrl" :searchConditionApi="'/ReportMonthAttendanceList/getLayoutOfSearch'" :searchDataApi="'/ReportMonthAttendanceList/getListOfSearchModel'"></ct-searchlist> -->
|
|
95
95
|
|
|
96
|
-
<ct-searchlist :appRootUrl="appRootUrl" :searchConditionApi="'/PersonHolidayList/getLayoutOfSearch'" :searchDataApi="'/PersonHolidayList/getListOfSearchModel'"></ct-searchlist>
|
|
96
|
+
<!-- <ct-searchlist :appRootUrl="appRootUrl" :searchConditionApi="'/PersonHolidayList/getLayoutOfSearch'" :searchDataApi="'/PersonHolidayList/getListOfSearchModel'"></ct-searchlist> -->
|
|
97
|
+
|
|
98
|
+
<!-- <ct-searchlist :appRootUrl="appRootUrl" :searchConditionApi="'/EmployeeAttendanceBillList/getLayoutOfSearch'" :searchDataApi="'/EmployeeAttendanceBillList/getListOfSearchModel'"></ct-searchlist> -->
|
|
99
|
+
|
|
100
|
+
<ct-searchlist :appRootUrl="appRootUrl" :searchConditionApi="'/HolidayTypeList/getLayoutOfSearch'" :searchDataApi="'/HolidayTypeList/getListOfSearchModel'"></ct-searchlist>
|
|
97
101
|
|
|
98
102
|
|
|
99
103
|
<ct-dialog-list></ct-dialog-list>
|
|
@@ -90,7 +90,6 @@
|
|
|
90
90
|
import dynamicElement from '../../mixins/dynamicElement'
|
|
91
91
|
import dynamicFormListTalbe from './dynamicFormListTable'
|
|
92
92
|
import { setTimeout } from 'timers';
|
|
93
|
-
//import dynamicFormList from './dynamicFormList'
|
|
94
93
|
export default {
|
|
95
94
|
name: 'ct-form',
|
|
96
95
|
mixins: [dynamicElement],
|
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
<div v-if="model.showLabel && model.label" class="el-input-group__prepend field-label-div inputNumbe-line-feed" :class="[model.labelClass]">
|
|
8
8
|
{{model.label}}
|
|
9
9
|
</div>
|
|
10
|
+
<div v-if="model.preLabel">
|
|
11
|
+
<span v-html="model.preLabel"></span>
|
|
12
|
+
</div>
|
|
10
13
|
<div style="flex:1" v-bind="model.attrs" class="el-date-editor ct-input__inner">
|
|
11
14
|
<input style="text-align:left;width:100%" class="el-range-input" :placeholder="model.attrs.placeholder1"
|
|
12
15
|
v-model="model.value" @change="onChangeHandler($event)" @input="onInputHandler($event);isShowClear()"
|
|
13
16
|
@blur="onBlurHandler($event)"
|
|
14
17
|
:class="model.lock ? 'ct-is-disabled' : ''" :disabled="model.lock" />{{model.rowKey}}
|
|
15
|
-
<!--<span v-if="!model.lock" class="cover-list-item-span">
|
|
16
|
-
<i class="el-input__icon el-icon-circle-close" @click="clearClickHandle"></i>
|
|
17
|
-
</span>-->
|
|
18
18
|
<span class="el-input__suffix el-input--mini" v-if="showClear">
|
|
19
19
|
<span class="el-input__suffix-inner ct-close">
|
|
20
20
|
<i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div style="width: 100%" class="ct-searchtable" ref="searchTable"
|
|
3
|
-
:style="{ 'margin-top':
|
|
3
|
+
:style="{ 'margin-top': isMarginTop ? '0' : '10px', padding: isLayout ? '0' : '' }">
|
|
4
4
|
<ct-tableStats ref="tableStats" class="ct-search-table-list-header" v-if="!isLoading && model && searchStatsApi"
|
|
5
5
|
:api="searchStatsApi" @searchStats="searchStats" @setTableHeight="setTableHeight" :flagDisabled="disabledStats"
|
|
6
6
|
:searchModel="model.searchModel">
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
column.fixed === 'left' ? 'left-fixation' : null,
|
|
101
101
|
column.width === undefined ? 'ct-table-auto' : null,
|
|
102
102
|
column.fixed === 'right' ? 'right-fixation' : null,
|
|
103
|
-
]" v-bind="column.attrs">
|
|
103
|
+
]" v-bind="column.attrs" :style="getrowselectColor(rowindex === model.selectIndex)" >
|
|
104
104
|
<!--操作列-->
|
|
105
105
|
<div v-if="column.id === 'operation'" class="div_allinline" :class="column.autoRowHeight ? 'lineFeedCell' : 'cell'" style="float: left;">
|
|
106
106
|
<template v-for="(router, rowRouterIndex) in getRowRouterShow(row)" >
|
|
@@ -263,6 +263,7 @@ export default {
|
|
|
263
263
|
currentTh: null,
|
|
264
264
|
isLoading: true,
|
|
265
265
|
isLayout: false,
|
|
266
|
+
isMarginTop:false,
|
|
266
267
|
searchLoading: true,
|
|
267
268
|
tableLoading: false, //表格等待
|
|
268
269
|
operationLoading: false, //操作等待
|
|
@@ -299,6 +300,7 @@ export default {
|
|
|
299
300
|
theadTitleLeft:0,
|
|
300
301
|
theadTitleWidth:0,
|
|
301
302
|
updateTableColumnsKey:0,
|
|
303
|
+
backgroundColor: "#ecf5ff",
|
|
302
304
|
};
|
|
303
305
|
},
|
|
304
306
|
deactivated(){
|
|
@@ -310,6 +312,17 @@ export default {
|
|
|
310
312
|
});
|
|
311
313
|
},
|
|
312
314
|
methods: {
|
|
315
|
+
getrowselectColor(flagSelect){
|
|
316
|
+
if(flagSelect)
|
|
317
|
+
{
|
|
318
|
+
return {
|
|
319
|
+
backgroundColor: this.backgroundColor
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
else{
|
|
323
|
+
return {};
|
|
324
|
+
}
|
|
325
|
+
},
|
|
313
326
|
theadTitleHover(ev){
|
|
314
327
|
if ( !this.model.columnWidthSaveAction) {
|
|
315
328
|
return
|
|
@@ -365,6 +378,36 @@ export default {
|
|
|
365
378
|
});
|
|
366
379
|
if (self.model.cellLayout) {
|
|
367
380
|
self.isLayout = true;
|
|
381
|
+
}
|
|
382
|
+
if (this.model.selectedRowBackColor) {
|
|
383
|
+
self.backgroundColor=this.model.selectedRowBackColor ;
|
|
384
|
+
}
|
|
385
|
+
if (
|
|
386
|
+
(self.model.searchModel.screen &&
|
|
387
|
+
self.model.searchModel.screen.length > 0) ||
|
|
388
|
+
(self.model.searchModel.btnScreen &&
|
|
389
|
+
self.model.searchModel.btnScreen.length > 0)
|
|
390
|
+
) {
|
|
391
|
+
let showField = self.model.searchModel.screen.find((v) => {
|
|
392
|
+
return v.show !== false;
|
|
393
|
+
});
|
|
394
|
+
if (!showField) {
|
|
395
|
+
showField = self.model.searchModel.btnScreen.find((v) => {
|
|
396
|
+
return v.show !== false;
|
|
397
|
+
});
|
|
398
|
+
if (!showField) {
|
|
399
|
+
self.isMarginTop = true;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
} else if (self.model.shortcutForm) {
|
|
403
|
+
self.isMarginTop = false;
|
|
404
|
+
} else if (
|
|
405
|
+
self.model.searchModel.highScreen &&
|
|
406
|
+
self.model.searchModel.highScreen.length <= 0
|
|
407
|
+
) {
|
|
408
|
+
self.isMarginTop = true;
|
|
409
|
+
} else {
|
|
410
|
+
self.isMarginTop = false;
|
|
368
411
|
}
|
|
369
412
|
self.isLoading = false;
|
|
370
413
|
self.$forceUpdate();
|
|
@@ -2225,7 +2268,7 @@ export default {
|
|
|
2225
2268
|
}
|
|
2226
2269
|
|
|
2227
2270
|
.ct-table .ct-td.select {
|
|
2228
|
-
background-color:
|
|
2271
|
+
background-color: var(backgroundColor) !important;
|
|
2229
2272
|
}
|
|
2230
2273
|
.ct-table .ct-tr:hover .ct-td.select {
|
|
2231
2274
|
background-color: #ecf5ff !important;
|
|
@@ -7,7 +7,9 @@
|
|
|
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
|
+
<div v-if="model.preLabel">
|
|
11
|
+
<span v-html="model.preLabel"></span>
|
|
12
|
+
</div>
|
|
11
13
|
|
|
12
14
|
<el-popover v-if="model.autoFill && model.paramName" placement="bottom-start" v-model="showDrop" :trigger="'manual'" class="autoFill">
|
|
13
15
|
<div>
|
|
@@ -46,7 +48,7 @@
|
|
|
46
48
|
</span>
|
|
47
49
|
</span>
|
|
48
50
|
</el-input>
|
|
49
|
-
<span v-if="this.minText" class="textarea-tip"
|
|
51
|
+
<span v-if="model.inputType === 'textarea' && this.minText" class="textarea-tip" v-html="minText"></span>
|
|
50
52
|
<span v-if="model.showWordLimit" class="textarea-count">{{model.value.length}}/{{ model.max }}</span>
|
|
51
53
|
<span v-if="!model.forbiddenWords" class="textarea-icon"></span>
|
|
52
54
|
</div>
|
|
@@ -90,7 +92,7 @@
|
|
|
90
92
|
data() {
|
|
91
93
|
return {
|
|
92
94
|
showClear: false,
|
|
93
|
-
minText:'',
|
|
95
|
+
minText:' ',
|
|
94
96
|
minTextLeft:0,
|
|
95
97
|
forbiddenWordsValue:'',
|
|
96
98
|
forbiddenWordsWidth:0,
|
|
@@ -116,9 +118,9 @@
|
|
|
116
118
|
if(this.model.max && this.model.max>0 && this.model.min && this.model.min > 0){
|
|
117
119
|
this.minText='需要'+this.model.min+'-'+this.model.max+'个字';
|
|
118
120
|
}
|
|
119
|
-
else if(this.model.max && this.model.max>0){
|
|
120
|
-
|
|
121
|
-
}
|
|
121
|
+
// else if(this.model.max && this.model.max>0){
|
|
122
|
+
// this.minText='至多'+this.model.max+'个字';
|
|
123
|
+
// }
|
|
122
124
|
else if(this.model.min && this.model.min > 0){
|
|
123
125
|
this.minText='至少需要'+this.model.min+'个字';
|
|
124
126
|
}
|
|
@@ -513,6 +513,10 @@ const Form = function (source, callBack, apiParam, failCallBack, isFormList) {
|
|
|
513
513
|
}
|
|
514
514
|
);
|
|
515
515
|
},
|
|
516
|
+
execRouter(routerKey) {
|
|
517
|
+
let field={id:routerKey};
|
|
518
|
+
this.form.self.fieldClickHandler(field);
|
|
519
|
+
},
|
|
516
520
|
//消息提示 type主题:success/warning/info/error。 center是否居中true/flase。 duration 显示时间, 毫秒。设为 0 则不会自动关闭。
|
|
517
521
|
//showClose 是否显示关闭按钮。dangerouslyUseHtmlString 属性设置为 true ,message 就会被当做 HTML 片段处理。
|
|
518
522
|
message(message, type, center, duration, showClose, dangerouslyUseHTMLString) {
|
|
@@ -5,6 +5,12 @@ const Router = function (source) {
|
|
|
5
5
|
var rtn = {
|
|
6
6
|
disabled: source.selectedMode && source.selectedMode === Enum.ListSelectMode.Multiple ? true : false,
|
|
7
7
|
code1:'',
|
|
8
|
+
get source() {
|
|
9
|
+
return source;
|
|
10
|
+
},
|
|
11
|
+
set source(v) {
|
|
12
|
+
source = v;
|
|
13
|
+
},
|
|
8
14
|
get id() {
|
|
9
15
|
return source.key;
|
|
10
16
|
},
|
|
@@ -386,6 +392,9 @@ const Router = function (source) {
|
|
|
386
392
|
get locked() {
|
|
387
393
|
return source.locked;
|
|
388
394
|
},
|
|
395
|
+
set locked(v) {
|
|
396
|
+
source.locked = v;
|
|
397
|
+
},
|
|
389
398
|
get flagVerifyData() {
|
|
390
399
|
//提交表单时是否校验数据
|
|
391
400
|
if (source.flagVerifyData != undefined) {
|
|
@@ -553,7 +553,7 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
|
|
|
553
553
|
if (typeof response.page.flagMoreData !== 'undefined') {
|
|
554
554
|
self.flagMoreData = response.page.flagMoreData;
|
|
555
555
|
}
|
|
556
|
-
if (response.content.updateTableColumns) {
|
|
556
|
+
if (response.content.updateTableColumns&&response.page.pageIndex<=1) {
|
|
557
557
|
self.columns = response.content.columns;
|
|
558
558
|
if (self.template) {
|
|
559
559
|
var tempLoader = template.loader(self.template).default;
|
|
@@ -687,7 +687,7 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
|
|
|
687
687
|
if (typeof response.content.bottomText !== 'undefined') {
|
|
688
688
|
self.listFooter = response.content.bottomText;
|
|
689
689
|
}
|
|
690
|
-
if (response.content.updateTableColumns) {
|
|
690
|
+
if (response.content.updateTableColumns&&response.page.pageIndex<=1) {
|
|
691
691
|
self.columns = response.content.columns;
|
|
692
692
|
if (self.template) {
|
|
693
693
|
var tempLoader = template.loader(self.template).default;
|
package/src/main.js
CHANGED
|
@@ -15,6 +15,7 @@ Vue.use(ElementUI, { size: 'mini'});
|
|
|
15
15
|
Vue.config.productionTip = false;
|
|
16
16
|
Vue.use(centaline, {
|
|
17
17
|
baseUrl: "http://10.88.22.46:17070/max-uplink-api/",
|
|
18
|
+
baseUrl: "http://10.88.22.46:6060/onecard-api/",
|
|
18
19
|
// baseUrl: "http://10.88.22.13:17070/max-uplink-api/",
|
|
19
20
|
// baseUrl: "http://10.6.1.163:9000/max-uplink-api/v1/form/router",
|
|
20
21
|
// baseUrl: "http://10.25.10.67:9999/service-api/v1/form/router",
|
|
@@ -55,7 +56,7 @@ Vue.use(centaline, {
|
|
|
55
56
|
return {
|
|
56
57
|
oldToken: '11c12506-253c-4995-83fb-84cf51cb23a0',
|
|
57
58
|
token:'aplus eyJhbGciOiJIUzI1NiIsInppcCI6IkRFRiJ9.eNrEjjsOwjAQRO_iOiv5s1570zn-NBwiIuBIoUIkkUCIuxMEdPRMMRq95s1dzOsgWmHIccikIFr0gKQsMJYCURKxKdKYlHr-BH7UNz26yCFkByg7Aiw2A-tYwLDtEubgUibRiHo9i1aRRy-dtdSIab-8gdNKvcA618uu3v5x7rRMm3YkOZAfR6BtAWp_3LQHBNI8KHbkqlHi8QQAAP__.RrBgBqaFlp478oO3g5k_EEtjPt_o8qpJBkzgSP78Wa4',
|
|
58
|
-
authObject: '{token:"
|
|
59
|
+
authObject: '{token:"1080-1717711692902830080"}',
|
|
59
60
|
|
|
60
61
|
originalRequestURL: 'http://10.88.22.67:8080',
|
|
61
62
|
EstateInfo: '{"estateId":"201806071109550C867184E8BCA56EC3","estateName":"C%E5%BE%A1%E6%9E%97%E5%B1%B1%E6%99%AF%E6%A5%BC"}',
|