centaline-data-driven 1.3.24 → 1.3.27

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.24",
3
+ "version": "1.3.27",
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,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 {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,75 +1,79 @@
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
77
  this.$nextTick(function () {
74
78
  if (typeof this.vmodel === 'undefined') {
75
79
  this.model = this.loaderObj.DragSort(this.source);
@@ -77,30 +81,54 @@ export default {
77
81
  else {
78
82
  this.model = this.vmodel;
79
83
  this.testList = this.vmodel.dragList;
80
- console.log('this.testList', this.testList);
84
+ // console.log('this.testList', this.testList);
81
85
  }
82
86
  });
83
87
 
84
- this.testList.forEach(item => { // 处理后端传过来的数据,如果没有可以判断是否勾选复选框的字段,则需给数据作处理,加上一个isChecked字段,判断复选框勾选
85
- this.$set(item, 'checked', false) // 添加判断的字段
86
- })
88
+ this.testList.forEach(item => {
89
+ // 处理后端传过来的数据,如果没有可以判断是否勾选复选框的字段,则需给数据作处理,加上一个isChecked字段,判断复选框勾选
90
+ this.$set(item, "checked", false); // 添加判断的字段
91
+ });
92
+ },
93
+ mounted() {
94
+ this.$nextTick(() => {
95
+ this.sjcount();
96
+ });
87
97
  },
98
+
88
99
  methods: {
100
+ sjcount() {
101
+ this.$nextTick(() => {
102
+ // const height = window.innerHeight;
103
+ let screenHeight = document.body.clientHeight;
104
+ let dragHeaderHeight = this.$refs.dragHeader.offsetHeight;
105
+ let dragMainHeight = this.$refs.dragMain.style.height;
106
+ let num = this.testList.length
107
+ let dragItemAll = 44.68 * num;
108
+ dragMainHeight =
109
+ screenHeight - dragHeaderHeight - 26 - 8 - 44 - 40;
110
+ if (dragMainHeight > dragItemAll) {
111
+ this.mainHeight = dragItemAll + "px";
112
+ this.$refs.dragMain.style.overflowY = 'hidden'
113
+ } else {
114
+ this.mainHeight = dragMainHeight + "px";
115
+ this.$refs.dragMain.style.overflowY = 'scroll'
116
+ }
117
+
118
+ });
119
+ },
120
+
89
121
  // 更新位置
90
122
  handleListChange(event) {
91
123
  console.log(event);
92
124
  this.testList = event;
93
125
 
94
126
  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);
127
+ this.model.dragList.splice(i, 1, item);
128
+ });
100
129
  },
101
130
  //move回调方法
102
- onMove(e, originalEvent) {
103
- },
131
+ onMove(e, originalEvent) { },
104
132
  //开始拖拽事件
105
133
  onStart() {
106
134
  this.drag = true;
@@ -108,27 +136,25 @@ export default {
108
136
  //拖拽结束事件
109
137
  onEnd() {
110
138
  this.drag = false;
111
- // this.handleListChange()
112
139
  },
113
- handleAllChecked(v) { // 实现全选,反选(点击会传递true或者false过来)
140
+ handleAllChecked(v) {
141
+ // 实现全选,反选(点击会传递true或者false过来)
114
142
  this.testList.map(item => {
115
143
  if (!item.locked) {
116
- item.checked = v
144
+ item.checked = v;
117
145
  } else {
118
- return false
146
+ return false;
119
147
  }
120
- })
121
- this.vmodel.draglist = this.testList
122
- console.log('this.vmodel.draglist', this.vmodel.dragList);
148
+ });
149
+ this.vmodel.draglist = this.testList;
123
150
  },
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);
151
+ handleChecked(item, e) {
152
+ // 单个选中
153
+ item.checked = e;
154
+ this.vmodel.draglist = this.testList;
129
155
  }
130
156
  }
131
- }
157
+ };
132
158
  </script>
133
159
  <style scoped>
134
160
  /*定义要拖拽元素的样式*/
@@ -155,6 +181,7 @@ export default {
155
181
  flex: 1;
156
182
  border-radius: 5px;
157
183
  float: left;
184
+ margin-top: -5px;
158
185
  }
159
186
 
160
187
  .dragCol+.dragCol {
@@ -172,7 +199,7 @@ export default {
172
199
  }
173
200
 
174
201
  .dragItem:hover {
175
- background-color: #F5F7FA;
202
+ background-color: #f5f7fa;
176
203
  cursor: move;
177
204
  }
178
205
 
@@ -180,7 +207,7 @@ export default {
180
207
  border-top: none;
181
208
  }
182
209
 
183
- #all {
210
+ #dragAll {
184
211
  color: #909399;
185
212
  font-weight: 700;
186
213
  }
@@ -188,10 +215,17 @@ export default {
188
215
  .svgIcon {
189
216
  width: 16px;
190
217
  text-align: center;
191
- cursor: pointer
218
+ cursor: pointer;
219
+ }
220
+
221
+ .dragHeader {}
222
+
223
+ .dragMain {
224
+ overflow-y: scroll;
225
+ overflow-x: hidden;
192
226
  }
193
227
 
194
228
  /* .checkbox-common>>>span.el-checkbox__label {
195
229
  padding-left: 30px;
196
230
  } */
197
- </style>
231
+ </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
  },
@@ -166,7 +166,9 @@ const Base = function (source) {
166
166
  return bind;
167
167
  },
168
168
  reset() {
169
- if(this.type!==Enum.ControlType.Hidden){
169
+ if(this.type!==Enum.ControlType.Hidden
170
+ && this.type!==Enum.ControlType.Label
171
+ && this.type!==Enum.ControlType.MultiLineLabel){
170
172
  this.value = this.defaultValue;
171
173
  }
172
174
  },
@@ -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
  }
@@ -4,7 +4,7 @@ const Enum = {
4
4
  //组件类型
5
5
  ControlType: {
6
6
  /// <summary>
7
- /// 文本标签
7
+ /// 单行文本标签
8
8
  /// </summary>
9
9
  Label: 1,
10
10
 
@@ -24,7 +24,7 @@ const Enum = {
24
24
  NumericTextBox: 4,
25
25
 
26
26
  /// <summary>
27
- ///
27
+ /// 文本框+高级搜索
28
28
  /// </summary>
29
29
  TextBoxWithButton: 5,
30
30
 
@@ -38,7 +38,6 @@ const Enum = {
38
38
  /// </summary>
39
39
  EmailText: 7,
40
40
 
41
-
42
41
  /// <summary>
43
42
  /// 下拉框
44
43
  /// </summary>
@@ -144,7 +143,6 @@ const Enum = {
144
143
  /// </summary>
145
144
  MultiSelectNoSearch: 28,
146
145
 
147
-
148
146
  /// <summary>
149
147
  /// 分组间的分隔线
150
148
  /// </summary>
@@ -209,32 +207,44 @@ const Enum = {
209
207
  /// 敏感数据小眼睛控件
210
208
  /// </summary>
211
209
  SensitiveEye: 41,
210
+
212
211
  /// <summary>
213
212
  /// 复选
214
213
  /// </summary>
215
214
  CheckBox: 43,
215
+
216
216
  /*带标签的超链接列表*/
217
217
  HyperlinkListWithLabel: 44,
218
+
218
219
  /// <summary>
219
220
  /// 图片选择
220
221
  /// </summary>
221
222
  PhotoSelect: 45,
223
+
222
224
  /// <summary>
223
225
  /// 年份-月份控件
224
226
  /// </summary>
225
227
  DateYearMonth: 46,
228
+
226
229
  /// <summary>
227
230
  /// 重复控件
228
231
  /// </summary>
229
232
  Repeat: 47,
233
+
230
234
  /// <summary>
231
235
  /// 复合控件
232
236
  /// </summary>
233
237
  Compound: 48,
238
+
234
239
  /// <summary>
235
240
  /// 表单
236
241
  /// </summary>
237
242
  From: 49,
243
+ /// <summary>
244
+ /// 列表的的自定义列
245
+ /// </summary>
246
+ CustomizeColumns: 50,
247
+
238
248
  },
239
249
 
240
250
  //返回状态码
@@ -390,10 +400,16 @@ const Enum = {
390
400
  /// 在浏览器中打开一个 relationField 执行的URL
391
401
  /// </summary>
392
402
  OpenUrlInBrowse: 22,
403
+
393
404
  /// <summary>
394
405
  /// 浏览附件
395
406
  /// </summary>
396
- BrowseAttachment: 23
407
+ BrowseAttachment: 23,
408
+
409
+ /// <summary>
410
+ /// 更新表格的列
411
+ /// </summary>
412
+ UpdateColumns: 24,
397
413
  },
398
414
 
399
415
  /// <summary>