centaline-data-driven 1.3.25 → 1.3.26

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven",
3
- "version": "1.3.25",
3
+ "version": "1.3.26",
4
4
  "description": "ccai",
5
5
  "author": "hjc <3226136347@qq.com>",
6
6
  "private": false,
package/src/Form.vue CHANGED
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div id="app-form" class="data-driven" style="width:100%;height:100%;overflow:auto">
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
5
  <ct-form :api="'/salemanage/adjust/point/readDetail'" :apiParam="apiParam"></ct-form>
@@ -18,6 +18,8 @@ adjustID:"220704140952A0156309F316436CAEBA",actionType:3
18
18
  }
19
19
  }
20
20
  },
21
+ activated(){
22
+ },
21
23
  methods: {
22
24
  test111(val) {
23
25
  alert(JSON.stringify(val));
@@ -8,13 +8,16 @@
8
8
  :searchCategoryApi="'/ProfileWorklistList/getLayoutOfSearchCategory'"
9
9
  :searchDataApi="'/ProfileWorklistList/getListOfSearchModel'" :apiParam="para"></ct-searchlist> -->
10
10
 
11
- <!-- <ct-searchlist :searchConditionApi="'/PropertyDutyList/getLayoutOfSearch'" :searchDataApi="'/PropertyDutyList/getListOfSearchModel'"></ct-searchlist> -->
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,18 @@
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
+ font-size: 16px;
273
+ }
274
+ /* .dragItem .el-checkbox__input.is-checked .el-checkbox__inner,
275
+ .dragItem .el-checkbox__input.is-indeterminate .el-checkbox__inner {
276
+ background-color: #409EFF !important;
277
+ border-color: #409EFF !important;
278
+ } */
279
+
@@ -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 {var ph=0;
172
+ else {
173
+ var ph=0;
172
174
  if(item.attrs.height){
173
175
  ph=parseInt(item.attrs.height.replace('px',''));
174
176
  }
@@ -1,106 +1,130 @@
1
1
  <template>
2
2
  <!--使用draggable组件-->
3
- <div class="dragCol">
4
- <div class="dragItem">
5
- <el-checkbox id="all" v-model="checkAll" @change="handleAllChecked" class="checkbox-common">{{ controlLabel
3
+ <div class="dragCol" ref="dragCol">
4
+ <div class="dragItem dragHeader" ref="dragHeader">
5
+ <el-checkbox id="dragAll" v-model="checkAll" @change="handleAllChecked" class="checkbox-common">{{
6
+ this.vmodel.label
6
7
  }}
7
8
  </el-checkbox>
8
9
  <span class="svgIcon">
9
10
  <!-- <svg-icon icon-class="sort" style="cursor: pointer"></svg-icon> -->
10
11
  </span>
11
12
  </div>
12
- <draggable v-model="testList" :options="{ group: { name: 'itxst', pull: 'clone' }, sort: true }" animation="300"
13
- :move="onMove" dragClass="dragClass" ghostClass="ghostClass" chosenClass="chosenClass"
14
- @input="handleListChange($event)">
15
- <transition-group>
16
- <div class="dragItem canDragon" v-for="(item, index) in testList" :key="index">
17
- <el-checkbox v-model="item.checked" :disabled="item.locked" name="checkItem"
18
- @change="handleChecked(item, $event)" class="checkbox-common"> {{ item.displayName
19
- }}</el-checkbox>
20
- <span class="svgIcon">
21
- <img :src="iconSort" alt="" width="100%" />
22
- </span>
23
- </div>
24
- </transition-group>
25
- </draggable>
13
+ <!-- <div class="dragMain" style="height:dragMainHeight;"> -->
14
+ <div class="dragMain" ref="dragMain" :style="{ height: mainHeight }">
15
+ <draggable v-model="testList" :options="{ group: { name: 'itxst', pull: 'clone' }, sort: true }"
16
+ animation="300" :move="onMove" dragClass="dragClass" ghostClass="ghostClass" chosenClass="chosenClass"
17
+ @input="handleListChange($event)">
18
+ <transition-group>
19
+ <div class="dragItem canDragon" v-for="(item, index) in testList" :key="index" ref="dragItem">
20
+ <el-checkbox v-model="item.checked" :disabled="item.locked" name="checkItem"
21
+ @change="handleChecked(item, $event)" class="checkbox-common"> {{ item.displayName
22
+ }}</el-checkbox>
23
+ <span class="svgIcon">
24
+ <img :src="iconSort" alt="" width="100%" />
25
+ </span>
26
+ </div>
27
+ </transition-group>
28
+ </draggable>
29
+ </div>
26
30
  </div>
27
31
  </template>
28
32
 
29
33
  <script>
30
34
  //导入draggable组件
31
- import draggable from 'vuedraggable'
35
+ import draggable from "vuedraggable";
32
36
 
33
37
  export default {
34
38
  //注册draggable组件
35
- name: 'ct-dragSort',
39
+ name: "ct-dragSort",
36
40
  components: {
37
- draggable,
41
+ draggable
38
42
  },
39
43
  props: {
40
44
  vmodel: Object,
41
- api: String,
45
+ api: String
42
46
  },
43
47
  data() {
44
48
  return {
45
49
  iconSort: require("../../../assets/sort.png"),
46
50
  drag: false,
47
51
  checkAll: true,
48
- controlLabel: '列名',
49
52
  //定义要被拖拽对象的数组
50
53
  testList: [],
54
+ mainHeight: 500
51
55
  };
52
56
  },
53
57
  watch: {
54
- testList: { // 监听事件,监听复选框是否全部选中,全部选中则全选的复选框勾选上
58
+ testList: {
59
+ // 监听事件,监听复选框是否全部选中,全部选中则全选的复选框勾选上
55
60
  handler(val) {
56
- var i = 0
61
+ var i = 0;
57
62
  this.testList.forEach(item => {
58
63
  if (item.checked === true) {
59
- i++
64
+ i++;
60
65
  }
61
66
  if (i === this.testList.length) {
62
- this.checkAll = true
67
+ this.checkAll = true;
63
68
  } else {
64
- this.checkAll = false
69
+ this.checkAll = false;
65
70
  }
66
- })
71
+ });
67
72
  },
68
73
  deep: true
69
74
  }
70
75
  },
71
76
  created() {
72
- console.log('draglist', this.vmodel.dragList);
73
- this.$nextTick(function () {
74
- if (typeof this.vmodel === 'undefined') {
75
- this.model = this.loaderObj.DragSort(this.source);
76
- }
77
- else {
78
- this.model = this.vmodel;
79
- this.testList = this.vmodel.dragList;
80
- console.log('this.testList', this.testList);
81
- }
82
- });
77
+ if (typeof this.vmodel === "undefined") {
78
+ this.model = this.loaderObj.DragSort(this.source);
79
+ } else {
80
+ this.model = this.vmodel;
81
+ this.testList = this.vmodel.dragList;
82
+ }
83
83
 
84
- this.testList.forEach(item => { // 处理后端传过来的数据,如果没有可以判断是否勾选复选框的字段,则需给数据作处理,加上一个isChecked字段,判断复选框勾选
85
- this.$set(item, 'checked', false) // 添加判断的字段
86
- })
84
+ this.testList.forEach(item => {
85
+ // 处理后端传过来的数据,如果没有可以判断是否勾选复选框的字段,则需给数据作处理,加上一个isChecked字段,判断复选框勾选
86
+ this.$set(item, "checked", false); // 添加判断的字段
87
+ });
87
88
  },
89
+ mounted() {
90
+ this.$nextTick(() => {
91
+ this.sjcount();
92
+ });
93
+ },
94
+
88
95
  methods: {
96
+ sjcount() {
97
+ this.$nextTick(() => {
98
+ // const height = window.innerHeight;
99
+ let screenHeight = document.body.clientHeight;
100
+ let dragHeaderHeight = this.$refs.dragHeader.offsetHeight;
101
+ let dragMainHeight = this.$refs.dragMain.style.height;
102
+ let num = this.testList.length
103
+ let dragItemAll = 44.68 * num;
104
+ dragMainHeight =
105
+ screenHeight - dragHeaderHeight - 26 - 8 - 44 - 40;
106
+ if (dragMainHeight > dragItemAll) {
107
+ this.mainHeight = dragItemAll + "px";
108
+ this.$refs.dragMain.style.overflowY = 'hidden'
109
+ } else {
110
+ this.mainHeight = dragMainHeight + "px";
111
+ this.$refs.dragMain.style.overflowY = 'scroll'
112
+ }
113
+
114
+ });
115
+ },
116
+
89
117
  // 更新位置
90
118
  handleListChange(event) {
91
119
  console.log(event);
92
120
  this.testList = event;
93
121
 
94
122
  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);
123
+ this.model.dragList.splice(i, 1, item);
124
+ });
100
125
  },
101
126
  //move回调方法
102
- onMove(e, originalEvent) {
103
- },
127
+ onMove(e, originalEvent) { },
104
128
  //开始拖拽事件
105
129
  onStart() {
106
130
  this.drag = true;
@@ -108,27 +132,25 @@ export default {
108
132
  //拖拽结束事件
109
133
  onEnd() {
110
134
  this.drag = false;
111
- // this.handleListChange()
112
135
  },
113
- handleAllChecked(v) { // 实现全选,反选(点击会传递true或者false过来)
136
+ handleAllChecked(v) {
137
+ // 实现全选,反选(点击会传递true或者false过来)
114
138
  this.testList.map(item => {
115
139
  if (!item.locked) {
116
- item.checked = v
140
+ item.checked = v;
117
141
  } else {
118
- return false
142
+ return false;
119
143
  }
120
- })
121
- this.vmodel.draglist = this.testList
122
- console.log('this.vmodel.draglist', this.vmodel.dragList);
144
+ });
145
+ this.vmodel.draglist = this.testList;
123
146
  },
124
- handleChecked(item, e) { // 单个选中
125
- item.checked = e
126
- console.log('this.testList', this.testList);
127
- this.vmodel.draglist = this.testList
128
- console.log('this.vmodel.draglist', this.vmodel.dragList);
147
+ handleChecked(item, e) {
148
+ // 单个选中
149
+ item.checked = e;
150
+ this.vmodel.draglist = this.testList;
129
151
  }
130
152
  }
131
- }
153
+ };
132
154
  </script>
133
155
  <style scoped>
134
156
  /*定义要拖拽元素的样式*/
@@ -155,6 +177,7 @@ export default {
155
177
  flex: 1;
156
178
  border-radius: 5px;
157
179
  float: left;
180
+ margin-top: -5px;
158
181
  }
159
182
 
160
183
  .dragCol+.dragCol {
@@ -172,7 +195,7 @@ export default {
172
195
  }
173
196
 
174
197
  .dragItem:hover {
175
- background-color: #F5F7FA;
198
+ background-color: #f5f7fa;
176
199
  cursor: move;
177
200
  }
178
201
 
@@ -180,7 +203,7 @@ export default {
180
203
  border-top: none;
181
204
  }
182
205
 
183
- #all {
206
+ #dragAll {
184
207
  color: #909399;
185
208
  font-weight: 700;
186
209
  }
@@ -188,10 +211,17 @@ export default {
188
211
  .svgIcon {
189
212
  width: 16px;
190
213
  text-align: center;
191
- cursor: pointer
214
+ cursor: pointer;
215
+ }
216
+
217
+ .dragHeader {}
218
+
219
+ .dragMain {
220
+ overflow-y: scroll;
221
+ overflow-x: hidden;
192
222
  }
193
223
 
194
224
  /* .checkbox-common>>>span.el-checkbox__label {
195
225
  padding-left: 30px;
196
226
  } */
197
- </style>
227
+ </style>
@@ -68,7 +68,7 @@
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" style="margin-top: 8px;">
71
+ <el-row v-if="model.buttons.findIndex((v)=>{return v.show}) > -1" :class="isScroll?'button-absolute':'button-initial'">
72
72
  <el-col :span="24" style="text-align:center">
73
73
  <component v-for="(btn, index) in model.buttons" :key="index" :is="btn.is" :vmodel="btn" @click="clickHandler" v-if="btn.show"></component>
74
74
  </el-col>
@@ -102,8 +102,8 @@
102
102
  }
103
103
  },
104
104
  data() {
105
- var self = this;
106
105
  return {
106
+ isScroll: false,
107
107
  loading: true,
108
108
  activeName: '-1',
109
109
  collapse: [],//分组数组
@@ -115,6 +115,11 @@
115
115
  mounted() {
116
116
  this.init();
117
117
  },
118
+ updated(){
119
+ if(this.$el.parentElement.scrollHeight>this.$el.parentElement.clientHeight){
120
+ this.isScroll=true;
121
+ }
122
+ },
118
123
  methods: {
119
124
  init() {
120
125
  var self = this;
@@ -700,4 +705,19 @@
700
705
  .el-collapse-saveLine .ct-collapse-item-title:last-child .el-collapse-item__wrap{
701
706
  border-bottom:none;
702
707
  }
708
+ .button-initial{
709
+ margin-top: 8px;
710
+ }
711
+ .button-absolute{
712
+ z-index: 100;
713
+ bottom: 6px;
714
+ position: absolute;
715
+ line-height: 34px;
716
+ background-color: #fff;
717
+ width: 100%;
718
+ margin: auto;
719
+ max-width: 800px;
720
+ box-shadow: 0 2px 20px 0 rgb(0 0 0 / 10%);
721
+ margin-left: -20px;
722
+ }
703
723
  </style>
@@ -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="model.value=$event"></ct-quick-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
- }</script>
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
- } else {
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(v) {
93
- this.model.value=v;
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
  },
@@ -14,11 +14,10 @@ const QuickInput = function (source, moreActionRouter) {
14
14
  return source.name1;
15
15
  },
16
16
  set text(v) {
17
- if(source.displayName1)
18
- {
17
+ if(source.displayName1){
19
18
  source.displayName1 = v;
20
- }else
21
- {
19
+ }
20
+ else{
22
21
  source.name1 = v;
23
22
  }
24
23
  },
@@ -347,6 +347,9 @@ const Router = function (source) {
347
347
  get buttonHeight() {
348
348
  return source.buttonHeight || 24;
349
349
  },
350
+ get align() {
351
+ return source.align;
352
+ },
350
353
  };
351
354
  return rtn;
352
355
  }
@@ -400,10 +400,16 @@ const Enum = {
400
400
  /// 在浏览器中打开一个 relationField 执行的URL
401
401
  /// </summary>
402
402
  OpenUrlInBrowse: 22,
403
+
403
404
  /// <summary>
404
405
  /// 浏览附件
405
406
  /// </summary>
406
- BrowseAttachment: 23
407
+ BrowseAttachment: 23,
408
+
409
+ /// <summary>
410
+ /// 更新表格的列
411
+ /// </summary>
412
+ UpdateColumns: 24,
407
413
  },
408
414
 
409
415
  /// <summary>
@@ -118,7 +118,6 @@ const LibFunction = {
118
118
  // item.is = 'ct-iti';
119
119
  // break;
120
120
  case Enum.ControlType.NumericRange://数字区间
121
-
122
121
  item = Iti(field);
123
122
  item.is = 'ct-iti';
124
123
  break;