centaline-data-driven 1.1.20 → 1.1.25

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.
Files changed (100) hide show
  1. package/.vs/Centaline.Front_End.DataDriven/DesignTimeBuild/.dtbcache +0 -0
  2. package/.vs/Centaline.Front_End.DataDriven/v16/Server/sqlite3/db.lock +0 -0
  3. package/.vs/Centaline.Front_End.DataDriven/v16/Server/sqlite3/storage.ide +0 -0
  4. package/README.md +7 -7
  5. package/build/centaline/centaline.path.js +2 -0
  6. package/build/centaline/webpack.centaline.conf.js +5 -3
  7. package/build/utils.js +2 -1
  8. package/build/webpack.dev.conf.js +1 -1
  9. package/config/dev.env.js +6 -3
  10. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.dgspec.json +9 -11
  11. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.g.props +3 -7
  12. package/obj/project.assets.json +9 -16
  13. package/package.json +7 -5
  14. package/src/Detail.vue +28 -0
  15. package/src/Form.vue +3 -2
  16. package/src/SearchList.vue +5 -3
  17. package/src/SearchTree.vue +55 -0
  18. package/src/assets/Mvr.png +0 -0
  19. package/src/assets/VR.png +0 -0
  20. package/src/assets/collection.png +0 -0
  21. package/src/assets/dian.png +0 -0
  22. package/src/assets/ewm.png +0 -0
  23. package/src/assets/image.png +0 -0
  24. package/src/assets/location.png +0 -0
  25. package/src/assets/max-fold.png +0 -0
  26. package/src/assets/max-open.png +0 -0
  27. package/src/assets/mero.png +0 -0
  28. package/src/assets/node-collapse.png +0 -0
  29. package/src/assets/node-expand.png +0 -0
  30. package/src/assets/video.png +0 -0
  31. package/src/assets//350/256/241/347/256/227/345/231/250.png +0 -0
  32. package/src/centaline/api/index.js +15 -5
  33. package/src/centaline/comfirm/src/comfirm.vue +2 -2
  34. package/src/centaline/css/common.css +34 -33
  35. package/src/centaline/css/max.css +145 -0
  36. package/src/centaline/dialogList/src/dialog.vue +2 -2
  37. package/src/centaline/dialogList/src/dialogNew.vue +16 -16
  38. package/src/centaline/dynamicBtn/src/dynamicBtn.vue +50 -19
  39. package/src/centaline/dynamicCheckbox/src/dynamicCheckbox.vue +1 -1
  40. package/src/centaline/dynamicDetail/index.js +11 -0
  41. package/src/centaline/dynamicDetail/src/dynamicDetail.vue +39 -0
  42. package/src/centaline/dynamicDetail/src/dynamicPropertyDetailOFI.vue +1283 -0
  43. package/src/centaline/dynamicDetail/src/dynamicPropertyDetailRET.vue +29 -0
  44. package/src/centaline/dynamicForm/src/dynamicForm.vue +25 -9
  45. package/src/centaline/dynamicForm/src/dynamicFormList.vue +2 -2
  46. package/src/centaline/dynamicForm/src/dynamicFormListTable.vue +39 -18
  47. package/src/centaline/dynamicHyperLink/index.js +1 -1
  48. package/src/centaline/dynamicInputNumber/src/dynamicInputNumber.vue +4 -0
  49. package/src/centaline/dynamicPlaceHolder/index.js +1 -1
  50. package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchList.vue +1 -1
  51. package/src/centaline/dynamicPopupSearchList/src/dynamicPopupSearchListTable.vue +6 -6
  52. package/src/centaline/dynamicSearchList/src/dynamicSearchList.vue +41 -20
  53. package/src/centaline/dynamicSearchList/src/dynamicSearchScreen.vue +14 -5
  54. package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +59 -33
  55. package/src/centaline/dynamicSearchList/src/dynamicTableStatistics.vue +41 -0
  56. package/src/centaline/dynamicSearchList/src/dynamicTableToolbar.vue +7 -4
  57. package/src/centaline/dynamicT/src/dynamicT.vue +18 -23
  58. package/src/centaline/dynamicTimeSelect/src/dynamicTimeSelect.vue +37 -3
  59. package/src/centaline/dynamicTree/index.js +11 -0
  60. package/src/centaline/dynamicTree/src/dynamicSearchTree.vue +66 -0
  61. package/src/centaline/dynamicTree/src/dynamicTree.vue +213 -0
  62. package/src/centaline/dynamicTree/src/dynamicTreeList.vue +65 -0
  63. package/src/centaline/imgPreview/index.js +6 -6
  64. package/src/centaline/imgPreview/src/imgPreview.vue +3 -3
  65. package/src/centaline/index.js +14 -14
  66. package/src/centaline/loader/index.js +1 -2
  67. package/src/centaline/loader/src/ctl/Base.js +31 -2
  68. package/src/centaline/loader/src/ctl/Button.js +21 -4
  69. package/src/centaline/loader/src/ctl/ComboBoxWithTextBox.js +6 -14
  70. package/src/centaline/loader/src/ctl/D.js +2 -2
  71. package/src/centaline/loader/src/ctl/Dtd.js +18 -18
  72. package/src/centaline/loader/src/ctl/DtdOld.js +8 -8
  73. package/src/centaline/loader/src/ctl/File.js +1 -1
  74. package/src/centaline/loader/src/ctl/Form.js +51 -14
  75. package/src/centaline/loader/src/ctl/FormList.js +7 -0
  76. package/src/centaline/loader/src/ctl/HyperLink.js +1 -1
  77. package/src/centaline/loader/src/ctl/Mo.js +1 -9
  78. package/src/centaline/loader/src/ctl/PlaceHolder.js +2 -2
  79. package/src/centaline/loader/src/ctl/Router.js +58 -1
  80. package/src/centaline/loader/src/ctl/SearchScreen.js +37 -7
  81. package/src/centaline/loader/src/ctl/SearchTable.js +25 -10
  82. package/src/centaline/loader/src/ctl/So.js +1 -9
  83. package/src/centaline/loader/src/ctl/Sos.js +2 -11
  84. package/src/centaline/loader/src/ctl/Tags.js +1 -9
  85. package/src/centaline/loader/src/ctl/TimeSelect.js +34 -7
  86. package/src/centaline/loader/src/ctl/Tree.js +154 -0
  87. package/src/centaline/loader/src/ctl/lib/Enum.js +21 -3
  88. package/src/centaline/loader/src/ctl/lib/LibFunction.js +8 -0
  89. package/src/centaline/loader/src/ctl.js +5 -1
  90. package/src/centaline/mixins/dynamicElement.js +34 -34
  91. package/src/centaline/progress/src/progress.vue +37 -37
  92. package/src/centaline/templateControls/src/dynamicTableCurrency.vue +14 -9
  93. package/src/centaline/templates/src/ContractSearch.js +4 -4
  94. package/src/main.js +3 -3
  95. package/src/router/index.js +11 -0
  96. package/wwwroot/static/centaline/centaline-data-driven.js +1 -7
  97. package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
  98. package/.vs/Centaline.Front_End.DataDriven/DesignTimeBuild/.dtbcache.v2 +0 -0
  99. package/.vs/Centaline.Front_End.DataDriven/config/applicationhost.config +0 -1015
  100. package/obj/Debug/netcoreapp2.1/.NETCoreApp,Version=v2.1.AssemblyAttributes.cs +0 -4
@@ -1,11 +1,12 @@
1
1
  <template>
2
2
  <div style="width:100%;" class="ct-searchtable" ref="searchTable">
3
+ <ct-tableStatistics ref="listHeader" class="ct-search-table-list-header" :tip="model.listHeader" v-if="!isLoading && searchDataStatisticsApi"></ct-tableStatistics>
3
4
  <ct-tabletoolbar ref="toolbar" v-if="!isLoading" :buttons="model.buttons"
4
5
  @click="toolbarClickHandler($event)"
5
6
  @importComplete="importComplete"
7
+ :optionApi="model.optionApi"
6
8
  :searchModel="model.searchModel"></ct-tabletoolbar>
7
9
  <ct-tabletip ref="listHeader" class="ct-search-table-list-header" :tip="model.listHeader" v-if="!isLoading"></ct-tabletip>
8
-
9
10
  <div v-loading="tableLoading" v-if="!isLoading" :style="{'height':'0px','top':model.tableHeight*0.55+'px'}">
10
11
  </div>
11
12
  <div v-loading="operationLoading">
@@ -16,13 +17,13 @@
16
17
  @keydown.up="rowKeyDownHandle($event,0)" @keydown.down="rowKeyDownHandle($event,1)"
17
18
  tabindex="-1">
18
19
  <div class="ct-table-content">
19
- <table border="0" cellpadding="0" cellspacing="0"
20
+ <table border="0" cellpadding="0" cellspacing="0"
20
21
  :class="['ct-table',model.attrs.size?'ct-table-'+model.attrs.size:'']">
21
22
  <!--表头-->
22
23
  <thead ref="tableHead">
23
24
  <tr class="ct-tr" ref="headTr" v-for="(columns,columnsIndex) in model.columnsArr">
24
25
  <th v-if="model.isMulti && columnsIndex === 0" ref="headLeftThs" class="ct-td left-fixation-th checkbox-td">
25
- <input type="checkbox" @click="selectAll($event)" v-model="model.selectAll" />
26
+ <input type="checkbox" @click="selectAll($event)" v-model="model.selectAll" class="checkbox-td-1" />
26
27
  </th>
27
28
  <th :ref="column.fixed?(column.fixed==='left'?'headLeftThs':'headRightThs'):'headThs'" v-for="(column,colIndex) in columns"
28
29
  v-if="column.show" class="ct-td ct-searchtable-th"
@@ -34,8 +35,7 @@
34
35
  column.fixed === 'left'?'left-fixation-th':null,
35
36
  column.fixed === 'right'?'right-fixation-th':null,
36
37
  typeof column.fixed === 'undefined'?'right-no-fixation-th':null]"
37
- @mousemove="thMouseMoveHandle($event)" @mousedown="thMouseDownHandle($event,colIndex)"
38
- align="center"
38
+ @mousemove="thMouseMoveHandle($event)" @mousedown="thMouseDownHandle($event,colIndex)"
39
39
  v-bind="column.attrs">
40
40
 
41
41
  <span>{{column.name}}</span>
@@ -54,14 +54,13 @@
54
54
  <tbody>
55
55
  <!--这一行仅用于设置未加载数据时的列宽-->
56
56
  <!--<tr v-if="model.listData.length === 0" class="ct-tr" style="visibility: hidden;">
57
- <td v-if="model.isMulti">
58
- </td>
59
- <td v-for="(column,colIndex) in model.dataFieldcolumns" class="ct-td" v-if="column.show">
60
- <div :style="{'width': column.width + 'px'}">
61
- </div>
62
- </td>
63
- </tr>-->
64
-
57
+ <td v-if="model.isMulti">
58
+ </td>
59
+ <td v-for="(column,colIndex) in model.dataFieldcolumns" class="ct-td" v-if="column.show">
60
+ <div :style="{'width': column.width + 'px'}">
61
+ </div>
62
+ </td>
63
+ </tr>-->
65
64
  <!--可视区域的行数据-->
66
65
  <tr v-for="(row,rowindex) in model.listData"
67
66
  v-if="pageRowMin <= rowindex && rowindex <= pageRowMax"
@@ -69,7 +68,7 @@
69
68
  class="ct-tr"
70
69
  :style="row.$style">
71
70
  <td v-if="model.isMulti" class="ct-td tdFiexd left-fixation checkbox-td" align="center">
72
- <input v-if="!model.rightMulti || row[model.rightMulti] == 1" type="checkbox" v-model="row.$select" @change="selectOne($event)" />
71
+ <input v-if="!model.rightMulti || row[model.rightMulti] == 1" type="checkbox" v-model="row.$select" @change="selectOne($event)" class="checkbox-td-1" />
73
72
  </td>
74
73
  <td :ref="column.fixed?(column.fixed==='left'?'headLeftTds':'headRightTds'):null"
75
74
  v-for="(column,colIndex) in model.dataFieldcolumns"
@@ -90,7 +89,7 @@
90
89
  </div>
91
90
 
92
91
  <!--可点击的列-->
93
- <ct-tablecurrency v-else-if="column.router" :class="column.autoRowHeight ? 'lineFeedCell':'cell'" :router="column.router" :colValue="row[column.id]" :rowData="row"
92
+ <ct-tablecurrency v-else-if="column.router" :align="column.attrs.align" :class="column.autoRowHeight ? 'lineFeedCell':'cell'" :router="column.router" :colValue="row[column.id]" :rowData="row"
94
93
  @click="rolRouterClickHandler">
95
94
  </ct-tablecurrency>
96
95
 
@@ -108,6 +107,8 @@
108
107
  </td>
109
108
  </tr>
110
109
 
110
+
111
+
111
112
  <!--适配滚动条-->
112
113
  <tr v-else v-bind:style="{ height: row.$heigth + 'px' }"></tr>
113
114
  </tbody>
@@ -124,17 +125,20 @@
124
125
  <script>
125
126
  import dynamicElement from '../../mixins/dynamicElement';
126
127
  import dynamicTableTip from './dynamicTableTip.vue';
127
- import dynamicTableToolbar from './dynamicTableToolbar.vue'
128
+ import dynamicTableToolbar from './dynamicTableToolbar.vue';
129
+ import dynamicTableStatistics from './dynamicTableStatistics.vue';
128
130
  export default {
129
131
  name: 'ct-searchtable',
130
132
  mixins: [dynamicElement],
131
133
  components: {
132
134
  'ct-tabletip': dynamicTableTip,
133
- 'ct-tabletoolbar': dynamicTableToolbar
135
+ 'ct-tabletoolbar': dynamicTableToolbar,
136
+ 'ct-tableStatistics': dynamicTableStatistics
134
137
  },
135
138
  props: {
136
139
  vmodel: Object,
137
- api: String
140
+ api: String,
141
+ searchDataStatisticsApi: String
138
142
  },
139
143
  computed: {
140
144
  },
@@ -165,6 +169,7 @@
165
169
  },
166
170
  activated() {
167
171
  this.$nextTick(() => {
172
+ this.calculatingRowHeight();
168
173
  this.setTableHeight();
169
174
  })
170
175
  },
@@ -191,9 +196,14 @@
191
196
  self.$forceUpdate();
192
197
 
193
198
  self.$emit('loaded');
199
+ self.$emit('showTitle');
194
200
  if (this.tempSearchModel !== null) {
195
201
  self.model.searchModel = this.tempSearchModel;
196
202
  }
203
+ //自动查询 调用合并列
204
+ if (self.model.rowMergedColumns.length > 0 && self.model.listData.length > 0) {
205
+ self.model.setRow(self.model.listData);
206
+ }
197
207
  self.tableComplate = true;
198
208
  this.setTableHeight();
199
209
  this.$nextTick(() => {
@@ -312,8 +322,8 @@
312
322
  self.tableLoading = false;
313
323
  self.rowColorChange();
314
324
  self.resetScroll();
315
- self.getScrollAttr();
316
325
  self.calculatingRowHeight();
326
+ self.getScrollAttr();
317
327
  }
318
328
  self.setfixedSize();
319
329
  });
@@ -398,6 +408,9 @@
398
408
  },
399
409
  getScrollAttr(e) {
400
410
  if (typeof this.$refs.tableParent !== 'undefined' && typeof this.$refs.headThs !== 'undefined') {
411
+
412
+ this.calculatingRowHeight();
413
+
401
414
  var scrollTop = this.$refs.tableParent.scrollTop;
402
415
  var scrollLeft = this.$refs.tableParent.scrollLeft;
403
416
  var scrollRight = this.$refs.tableParent.scrollWidth - scrollLeft - this.$refs.tableParent.clientWidth;
@@ -426,7 +439,6 @@
426
439
  setTrLazyLoading() {
427
440
  this.pageRowMax = this.firstRow + this.displayRowNumber;
428
441
  this.pageRowMin = this.firstRow - this.displayRowNumber;
429
-
430
442
  if (this.pageRowMin > 0 && this.model.listData[this.pageRowMin].$rowspan === 0) {
431
443
  for (let i = this.pageRowMin; i >= 0; i--) {
432
444
  if (this.model.listData[i].$rowspan > 0) {
@@ -469,8 +481,8 @@
469
481
  var h4 = this.$refs.footer.$el.offsetHeight | 0;
470
482
  var h5 = this.$refs.listHeader.$el.offsetHeight | 0;
471
483
  var h6 = this.$refs.listFooter.$el.offsetHeight | 0;
472
- let tableHeight = h1 - h2 - h3 - h4 - h5 - h6 - 10;
473
-
484
+ let tableHeight = h1 - h2 - h3 - h4 - h5 - h6 - 30;
485
+
474
486
  this.model.tableHeight = tableHeight < 50 ? 350 : tableHeight;
475
487
  this.$nextTick(() => {
476
488
  self.getScrollAttr();
@@ -629,12 +641,16 @@
629
641
  routerClickHandler(field, submitData, action) {
630
642
  let self = this;
631
643
  action = action || field.action;
632
-
644
+
633
645
  var clickAcion = function () {
634
646
  //若不是客户端方法,则直接访问接口
635
647
  if (!field.isClientFuntion) {
636
648
  if (field.isFormPageInTab || field.isSearchPageInTab) {// 外部框架tab页打开
637
649
  submitData = field.getActionPara(submitData).para;
650
+ if(field.pageStyle)
651
+ {
652
+ submitData.pageStyle=field.pageStyle;
653
+ }
638
654
  self.$common.getDataDrivenOpts().handler.openTab(action, submitData, field.pageTitle, self.model);
639
655
  }
640
656
  else if (field.isBrowserNewTab) {// 浏览器打开
@@ -775,12 +791,19 @@
775
791
  calculatingRowHeight() {
776
792
  let self = this;
777
793
  let count = 0;
778
-
779
- self.model.listData.forEach((v, i) => {
780
- if (typeof v.$heigth === "undefined" && self.$refs["rows." + i] && self.$refs["rows." + i].length > 0) {
781
- self.$set(v, "$heigth", self.$refs["rows." + i][0].clientHeight);
782
- }
783
- });
794
+
795
+ //查询出所有没有设置$heigth的数据并重新设置$heigth
796
+ let notHeigthData= self.model.listData.filter(item=>{
797
+ return item.$heigth=== undefined || item.$heigth<=0
798
+ })
799
+ if(notHeigthData&&notHeigthData.length>0)
800
+ {
801
+ notHeigthData.forEach((v, i) => {
802
+ if (self.$refs["rows." + i] && self.$refs["rows." + i].length > 0) {
803
+ self.$set(v, "$heigth", self.$refs["rows." + i][0].clientHeight);
804
+ }
805
+ });
806
+ }
784
807
 
785
808
  //for (let i = 0; i < self.model.listData.length; i++) {
786
809
  // if (self.$refs[]) {
@@ -855,9 +878,9 @@
855
878
  .ct-searchtable .ct-tr > .ct-td {
856
879
  /*border: 1px solid #e7e8eb;*/
857
880
  border-bottom: 1px solid #e7e8eb;
858
- /*border-right: 1px solid #e7e8eb;*/
859
- border-left: 1px solid #e7e8eb;
860
- padding: 2px 10px;
881
+ /*border-right: 1px solid #e7e8eb;
882
+ border-left: 1px solid #e7e8eb;*/
883
+ padding: 2px 20px;
861
884
  cursor: default;
862
885
  background-color: #ffffff;
863
886
  }
@@ -1018,7 +1041,7 @@
1018
1041
  }
1019
1042
 
1020
1043
  .ct-table .ct-searchtable-th {
1021
- text-align: center
1044
+ /*text-align: center*/
1022
1045
  }
1023
1046
 
1024
1047
  .ct-table .checkbox-td {
@@ -1026,4 +1049,7 @@
1026
1049
  width: 20px;
1027
1050
  left: 0px;
1028
1051
  }
1052
+ .ct-table .checkbox-td .checkbox-td-1{
1053
+ vertical-align: inherit;
1054
+ }
1029
1055
  </style>
@@ -0,0 +1,41 @@
1
+ <template>
2
+ <div class="ct-table-Statistics">
3
+ <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
4
+ <el-tab-pane v-for="(item, index) in editableTabs" :key="item.name" :label="item.title" :name="item.name" lazy>
5
+ </el-tab-pane>
6
+ </el-tabs>
7
+ </div>
8
+ </template>
9
+ <script>
10
+ export default {
11
+ name: 'ct-tableStatistics',
12
+ props: {
13
+ tip: String,
14
+ size: String
15
+ },
16
+ data() {
17
+ return {
18
+ activeName: '1',
19
+ editableTabs: [
20
+ { name: '1', title: '用户管理' },
21
+ { name: '2', title: '配置管理' },
22
+ { name: '3', title: '角色管理' },
23
+ { name: '4', title: '定时任务补偿' },
24
+ { name: '5', title: '定时任务补偿2' },
25
+ { name: '6', title: '定时任务补偿3' },
26
+ { name: '7', title: '定时任务补偿4' },
27
+ { name: '8', title: '定时任务补偿5' },
28
+ { name: '9', title: '定时任务补偿6' },
29
+ { name: '10', title: '定时任务补偿7' }
30
+ ],
31
+ }
32
+ },
33
+ methods: {
34
+ handleClick(tab, event) {
35
+ console.log(tab, event);
36
+ }
37
+ }
38
+ }
39
+ </script>
40
+ <style>
41
+ </style>
@@ -1,11 +1,12 @@
1
1
  <template>
2
2
  <div class="ct-tableToolbar" style="width:100%;" v-if="buttons && buttons.length > 0">
3
3
  <ul>
4
- <li v-for="btn in buttons" class="ct-ToolbarButton">
4
+ <li v-for="btn in buttons" class="ct-ToolbarButton max-ToolbarButton">
5
5
  <component :is="btn.is" :vmodel="btn"
6
6
  @click="clickHandler(btn,$event)"
7
7
  @importComplete="importComplete"
8
8
  v-if="btn.show"
9
+ :optionApi="optionApi"
9
10
  :fileData="getFileData(btn)"></component>
10
11
  </li>
11
12
  </ul>
@@ -16,7 +17,8 @@
16
17
  name: 'ctTableToolbar',
17
18
  props: {
18
19
  buttons: Array,
19
- searchModel: Object
20
+ searchModel: Object,
21
+ optionApi:String
20
22
  },
21
23
  data() {
22
24
  return {};
@@ -42,8 +44,9 @@
42
44
  width:100%;
43
45
  position:relative;
44
46
  float:left;
45
- padding:10px;
46
- background-color:#fafafa;
47
+ padding:0 15px 10px 15px;
48
+ background-color:#fff;
49
+ border-radius: 6px;
47
50
  }
48
51
  .ct-tableToolbar ul {
49
52
  list-style: none; /* 去掉ul前面的符号 */
@@ -1,21 +1,20 @@
1
1
  <template>
2
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
- @mouseover="mouseOverHandle" @mouseout="mouseOutHandle"
5
- >
6
- <div v-if="model.showLabel && model.label" class="el-input-group__prepend field-label-div" :class="[model.labelClass]">
3
+ <div v-if="model !== null" class="ct-text ct-flex-div max-flex-div" :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'',model.attrs.size?'ct-font-size-'+model.attrs.size:'']"
4
+ @mouseover="mouseOverHandle" @mouseout="mouseOutHandle">
5
+ <div v-if="model.showLabel && model.label" class="el-input-group__prepend field-label-div max-input-group" :class="[model.labelClass]">
7
6
  <span>{{model.label}}</span>
8
7
  </div>
9
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)"
10
- class="ct-flex-div-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'']" :disabled="model.lock" :rows="model.rows"
9
+ class="ct-flex-div-input max-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'']" :disabled="model.lock" :rows="model.rows"
11
10
  :readonly="model.readonly" :show-password="model.isPassword" autocomplete="on" :maxlength="model.max" :show-word-limit="model.showWordLimit">
12
11
  <span slot="suffix" v-if="model.unitName" class="ct-unitname">{{model.unitName}}</span>
13
-
14
- <span slot="suffix" class="el-input__suffix el-input--mini" v-if="showClear" :class="model.unitName?'ct-right-10':'ct-right-0'">
15
- <span class="el-input__suffix-inner ct-close">
16
- <i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
17
- </span>
18
- </span>
12
+
13
+ <span slot="suffix" class="el-input__suffix el-input--mini" v-if="showClear" :class="model.unitName?'ct-right-10':'ct-right-0'">
14
+ <span class="el-input__suffix-inner ct-close">
15
+ <i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
16
+ </span>
17
+ </span>
19
18
  </el-input>
20
19
 
21
20
  <span v-if="model.sufLabel" class="spanMessage ct-flex-div-span">{{model.sufLabel}}</span>
@@ -38,7 +37,7 @@
38
37
  },
39
38
  data() {
40
39
  return {
41
- showClear:false,
40
+ showClear: false,
42
41
  }
43
42
  },
44
43
  created() {
@@ -49,10 +48,8 @@
49
48
  this.model = this.vmodel;
50
49
  }
51
50
  },
52
- methods:{
53
-
51
+ methods: {
54
52
  mouseOverHandle: function () {
55
-
56
53
  if (this.model.value !== '' && this.model.clearable) {
57
54
  this.$set(this, 'showClear', true);
58
55
  }
@@ -60,21 +57,19 @@
60
57
  mouseOutHandle: function () {
61
58
  this.$set(this, 'showClear', false);
62
59
  },
63
- clearClickHandle: function (event) {
60
+ clearClickHandle: function (event) {
64
61
  this.model.value = '';
65
62
  this.isShowClear();
66
63
  event.stopPropagation();
67
64
  },
68
- isShowClear()
69
- {
70
- if (this.model.value !== '' && this.model.clearable) {
65
+ isShowClear() {
66
+ if (this.model.value !== '' && this.model.clearable) {
71
67
  this.$set(this, 'showClear', true);
72
- }else
73
- {
74
- this.$set(this, 'showClear', false);
68
+ } else {
69
+ this.$set(this, 'showClear', false);
75
70
  }
76
71
  },
77
72
  },
78
- }</script>
73
+ }</script>
79
74
  <style>
80
75
  </style>
@@ -5,13 +5,44 @@
5
5
  <div v-if="model.showLabel && model.label" class="el-input-group__prepend">
6
6
  {{model.label}}
7
7
  </div>
8
- <div class="ct-datepicker" style="width:100%" v-if="model !== null" :class="[model.showLabel?'showLabel':'']">
8
+ <div class="ct-datepicker" style="width:100%" v-if="model !== null&&model.valueFormat=='HH:mm'" :class="[model.showLabel?'showLabel':'']">
9
+ <el-time-select class="ct-date-picker-editor" v-model="model.value"
10
+ v-bind="model.attrs"
11
+ @change="changeModel($event)"
12
+ @clear="changeModel($event)"
13
+ :placeholder="model.placeholder"
14
+ :disabled="model.lock"
15
+ :picker-options="{
16
+ start: model.min,
17
+ step: model.step,
18
+ end: model.max
19
+ }">
20
+ </el-time-select>
21
+ <span v-if="model.isRange" class="ct-date-picker-span">-</span>
22
+ <el-time-select v-if="model.isRange" class="ct-date-picker-editor" v-model="model.value1"
23
+ v-bind="model.attrs"
24
+ @change="changeModel($event)"
25
+ @clear="changeModel($event)"
26
+ :placeholder="model.placeholder1"
27
+ :disabled="model.lock"
28
+ :picker-options="{
29
+ start: model.min,
30
+ step: model.step,
31
+ end: model.max,
32
+ minTime: model.value
33
+ }">
34
+ </el-time-select>
35
+ </div>
36
+ <div class="ct-datepicker" style="width:100%" v-else-if="model !== null" :class="[model.showLabel?'showLabel':'']">
9
37
  <el-time-picker class="ct-date-picker-editor" v-model="model.value"
10
38
  v-bind="model.attrs"
11
39
  @change="changeModel($event)"
12
40
  @clear="changeModel($event)"
13
41
  :placeholder="model.placeholder"
14
- :disabled="model.lock">
42
+ :disabled="model.lock"
43
+ :picker-options="{
44
+ selectableRange:model.min + '-' + model.max
45
+ }">
15
46
  </el-time-picker>
16
47
  <span v-if="model.isRange" class="ct-date-picker-span">-</span>
17
48
  <el-time-picker v-if="model.isRange" class="ct-date-picker-editor" v-model="model.value1"
@@ -19,7 +50,10 @@
19
50
  @change="changeModel($event)"
20
51
  @clear="changeModel($event)"
21
52
  :placeholder="model.placeholder1"
22
- :disabled="model.lock">
53
+ :disabled="model.lock"
54
+ :picker-options="{
55
+ selectableRange:model.min + '-' + model.max
56
+ }">
23
57
  </el-time-picker>
24
58
  </div>
25
59
  </div>
@@ -0,0 +1,11 @@
1
+ import dynamicTree from './src/dynamicTreeList'
2
+
3
+ dynamicTree.install = function (Vue) {
4
+ Vue.component(dynamicTree.name, dynamicTree);
5
+ }
6
+
7
+ if (typeof window !== 'undefined' && window.Vue) {
8
+ window.Vue.use(dynamicTree);
9
+ }
10
+
11
+ export default dynamicTree;
@@ -0,0 +1,66 @@
1
+ <template>
2
+ <div>
3
+ <ct-searchtreescreen ref="treescreen" :api="searchConditionApi" :screenPara="screenPara" @search="search"></ct-searchtreescreen>
4
+ <ct-tree ref="tree" :api="searchDataApi" @loaded="loaded"></ct-tree>
5
+ </div>
6
+ </template>
7
+
8
+ <script>
9
+ import dynamicElement from '../../mixins/dynamicElement'
10
+ import dynamicTreeScreen from '../../dynamicSearchList/src/dynamicSearchScreen.vue';
11
+ import dynamicTree from './dynamicTree.vue';
12
+ export default {
13
+ name: 'ct-searchtree',
14
+ mixins: [dynamicElement],
15
+ components: {
16
+ 'ct-tree': dynamicTree,
17
+ 'ct-searchtreescreen': dynamicTreeScreen
18
+ },
19
+ props: {
20
+ vmodel: Object,
21
+ searchConditionApi: String,
22
+ searchDataApi: String,
23
+ flagsearch: Boolean,
24
+ screenPara: {
25
+ type: Object,
26
+ default: () => { }
27
+ }
28
+ },
29
+ data() {
30
+ return {
31
+
32
+ };
33
+ },
34
+ methods: {
35
+ search() {
36
+ this.$refs.tree.search(this.$refs.treescreen.model);
37
+ },
38
+ loaded(data) {
39
+ try {
40
+ this.$emit('loaded', data);
41
+ } catch (e) {
42
+ }
43
+ },
44
+ },
45
+ mounted() {
46
+ if (this.flagsearch) {
47
+ this.$watch('$refs.treescreen.model.searchData', function (newVal, oldVal) {
48
+ // 做点什么
49
+ if (oldVal != undefined) {
50
+ this.search();
51
+ }
52
+ }, {
53
+ deep: true,
54
+ });
55
+ }
56
+ },
57
+ watch: {
58
+ //filterText(val) {
59
+ // this.$refs.trees.filter(val);
60
+ //}
61
+ },
62
+ created() {
63
+ this.model = this.vmodel;
64
+ }
65
+ }
66
+ </script>