centaline-data-driven 1.2.27 → 1.2.30

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.
@@ -0,0 +1,312 @@
1
+ <template>
2
+ <div class="field-top">
3
+ <div style="width:100%;display:flex">
4
+ <div style="flex:1;" class="ct-so" :class="[(focus || showDrop)?'isfocus':'',model.attrs.size?'ct-so-'+model.attrs.size:''
5
+ ]" @mouseover="mouseOverHandle" @mouseout="mouseOutHandle">
6
+ <div :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'']">
7
+ <div v-if="model.showLabel && model.label" class="el-input-group__prepend" :class="[model.labelClass]">
8
+ {{model.label}}
9
+ </div>
10
+ <div class="ct-sostt">
11
+ <div :class="[model.w1=='0'?'ct-input-editor':'ct-input-editorw']" :style="{'width':(model.w1!='0'?model.w1+'px':'auto')}">
12
+ <el-popover ref="pop" placement="bottom-start" v-model="showDrop" :class="[model.showLabel?'showLabel':'']" :trigger="(!model.paramName || model.lock)? 'manual' : 'click'">
13
+ <div>
14
+ <div>
15
+ <el-input ref="searchInput" :size="model.attrs.size" suffix-icon="el-icon-search" v-model="searchText" @input="searchInputHandle"></el-input>
16
+ </div>
17
+ <ctSelectOptionVertical :model="model" @click="selectOption($event)"></ctSelectOptionVertical>
18
+ </div>
19
+ <input slot="reference" v-bind="model.attrs" readonly="readonly" v-model="model.text" :placeholder="soPlaceholder"
20
+ ref="ct-input" :style="{height:inputHeight + 'px','line-height':inputLineHeight + 'px'}"
21
+ @focus="focusHandle" @blur="blurHandle" @click="clickHandle" @input="inputHandler($event)" @change="changeHandler($event)"
22
+ :disabled="model.lock" :class="model.lock ? 'ct-is-disabled' : 'ct-input_inner'" />
23
+ </el-popover>
24
+ <span v-if="!model.lock" class="el-input__suffix" @click="clickHandle" :class="[model.attrs.size?'el-input--'+model.attrs.size:'']">
25
+ <span v-if="showClear === false" class="el-input__suffix-inner">
26
+ <i class="el-select__caret el-input__icon el-icon-arrow-up" :class="{'is-reverse':showDrop}"></i>
27
+ </span>
28
+ <span v-if="showClear === true" class="el-input__suffix-inner ct-close">
29
+ <i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
30
+ </span>
31
+ </span>
32
+ </div>
33
+ <div class="ml10" :class="[model.w2=='0'?'ct-input-editor':'ct-input-editorw']" :style="{'width':(model.w2!='0'?model.w2+'px':'auto')}">
34
+ <el-input :title="model.lock?model.value1:''" :type="model.inputType" v-model="model.value1" v-bind="model.attrs" @input="inputHandler($event);isShowClear()" @change="changeHandler($event)"
35
+ class="ct-flex-div-input max-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'']" :disabled="model.lock" :rows="model.rows"
36
+ :readonly="model.readonly" :show-password="model.isPassword" autocomplete="on" :maxlength="model.max" :show-word-limit="model.showWordLimit"
37
+ @keyup.enter.native="search()">
38
+ </el-input>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </div>
43
+
44
+ <span v-if="model.sufLabel" class="spanMessage ct-flex-div-span">{{model.sufLabel}}</span>
45
+ <transition name="el-fade-in">
46
+ <span v-show="!valid" class="errorMessage">
47
+ {{validMessage}}
48
+ </span>
49
+ </transition>
50
+ <div v-if="!model.lock && model.popupSearchListType === 1">
51
+ <el-button v-if="!model.moreActionBtnName" size="mini" class="h26" type="primary" icon="el-icon-search" @click="popupSearchListHandle"></el-button>
52
+ <el-button v-else size="mini" type="primary" class="h26" @click="popupSearchListHandle">{{model.moreActionBtnName}}</el-button>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </template>
57
+
58
+ <script>
59
+ import dynamicElement from '../../mixins/dynamicElement'
60
+ import selectOption from '../../selectOption/src/selectOption'
61
+ import ctSelectOptionVertical from '../../selectOption/src/selectOptionVertical'
62
+ export default {
63
+ name: 'ct-sosTt',
64
+ mixins: [dynamicElement],
65
+ components: {
66
+ 'ctSelectOption': selectOption,
67
+ 'ctSelectOptionVertical': ctSelectOptionVertical
68
+ },
69
+ props: {
70
+ api: String,
71
+ vmodel: Object,
72
+ popShow: {
73
+ type: Boolean,
74
+ default: true
75
+ }
76
+ },
77
+ data() {
78
+ return {
79
+ focus: false,
80
+ showDrop: false,
81
+ inputHeight: 26,
82
+ showClear: false,
83
+ searchText: ""
84
+ }
85
+ },
86
+ created() {
87
+ if (typeof this.vmodel === 'undefined') {
88
+ this.model = this.loaderObj.SosTt(this.source);
89
+ }
90
+ else {
91
+ this.model = this.vmodel;
92
+ }
93
+ this.$watch('model.value', (n, o) => {
94
+ if (typeof this.model.child !== 'undefined') {
95
+ this.model.child.value = this.model.child.defaultValue || '';
96
+ this.model.child.text = this.model.child.defaultText || '';
97
+ }
98
+ });
99
+ this.inputHeight = this.inputLineHeight;
100
+ },
101
+ computed: {
102
+ soPlaceholder: {
103
+ get: function () {
104
+ if (this.model.value !== '') {
105
+ return '';
106
+ }
107
+ else {
108
+ return this.model.attrs.placeholder;
109
+ }
110
+ },
111
+ set: function (v) {
112
+
113
+ }
114
+ },
115
+ inputLineHeight: {
116
+ get: function () {
117
+ switch (this.model.attrs.size) {
118
+ case 'mini':
119
+ return 26;
120
+ case 'small':
121
+ return 32;
122
+ case 'medium':
123
+ return 36;
124
+ default:
125
+ return 40;
126
+ }
127
+ }
128
+ },
129
+ optionColSpan: function () {
130
+ return parseInt(24 / this.model.optionColCount);
131
+ },
132
+ optionRowCount: function () {
133
+ return parseInt(this.model.options.length % this.model.optionColCount > 0 ? (this.model.options.length / this.model.optionColCount) + 1 : this.model.options.length / this.model.optionColCount);
134
+ }
135
+ },
136
+ mounted() {
137
+ var self = this;
138
+ this.$nextTick(function () {
139
+ var dropdown = self.$refs["pop"];
140
+ self.$watch('model.options', function (newVal, oldVal) {
141
+ self.$nextTick(() => {
142
+ if (typeof dropdown.popperJS !== 'undefined' && dropdown.popperJS) {
143
+ dropdown.popperJS.destroy();
144
+ dropdown.popperJS = null;
145
+ dropdown.updatePopper();
146
+ }
147
+ self.$refs["searchInput"].$el.querySelector("input").focus();
148
+ });
149
+ }, { deep: true, immediate: true });
150
+ });
151
+ },
152
+ methods: {
153
+ getOptions: function () {
154
+ var self = this;
155
+ this.model.getOptions(this.api, self.searchText);
156
+ },
157
+ soChange: function () {
158
+ var self = this;
159
+ if (typeof this.model.child !== 'undefined') {
160
+ this.model.child.value = this.model.child.defaultValue || '';
161
+ this.model.child.text = this.model.child.defaultText || '';
162
+ }
163
+ var currentOption = this.model.options.find((value) => {
164
+ return self.model.value === value[self.model.optionAttrs.value];
165
+ });
166
+ if (currentOption) {
167
+ this.model.text =currentOption[self.model.optionAttrs.label];
168
+ }
169
+ else {
170
+ this.model.text = '';
171
+ }
172
+ this.inputHandler(self.model.value);
173
+ this.changeHandler(self.model.value);
174
+ if(this.model.autoSearch) this.$emit('click');
175
+ },
176
+ focusHandle: function () {
177
+ this.$set(this, 'focus', true);
178
+ },
179
+ blurHandle: function () {
180
+ this.$set(this, 'focus', false);
181
+ },
182
+ clickHandle: function () {
183
+ if (this.model.lock) {
184
+ return false;
185
+ }
186
+ if (this.model.paramName) {
187
+ this.$set(this, 'showDrop', !this.showDrop);
188
+ if (this.showDrop) {
189
+ this.getOptions();
190
+ }
191
+ this.focusHandle();
192
+ }
193
+ else if (this.model.popupSearchListType === 1) {
194
+ this.popupSearchListHandle();
195
+ }
196
+ else if ((this.model.popupSearchListType === 0)) {
197
+ this.$message.warning("请配置参数paramName1");
198
+ }
199
+ },
200
+ popupSearchListHandle: function () {
201
+ var self = this;
202
+
203
+ self.$emit('popupSearchList', true, self.model, self.model.moreActionRouter, (option) => {
204
+ if (option) {
205
+ self.model.value = option[self.model.optionAttrs.value];
206
+ self.model.text = option[self.model.optionAttrs.label];
207
+ self.model.options.push(option);
208
+
209
+ self.soChange();
210
+ }
211
+ });
212
+ },
213
+ getOptionText: function (value) {
214
+ var self = this;
215
+ var option = this.model.options.find((v) => { return v[self.model.optionAttrs.value] === value });
216
+ if (option) {
217
+ return option[self.model.optionAttrs.label];
218
+ } else {
219
+ return value;
220
+ }
221
+ },
222
+ getOptionSelect(value) {
223
+ if (this.model.value === value) {
224
+ return "danger";
225
+ }
226
+ else {
227
+ return "success";
228
+ }
229
+ },
230
+ selectOption(value) {
231
+ if (this.model.value === value) {
232
+ this.$set(this, 'showDrop', false);
233
+ return;
234
+ }
235
+ else {
236
+ this.model.value = value;
237
+ }
238
+ this.soChange();
239
+ this.$set(this, 'showDrop', false);
240
+ },
241
+ mouseOverHandle: function () {
242
+ if (this.model.value !== '' && this.model.clearable) {
243
+ this.$set(this, 'showClear', true);
244
+ }
245
+ },
246
+ mouseOutHandle: function () {
247
+ this.$set(this, 'showClear', false);
248
+ },
249
+ //不能共用的数据校验
250
+ selfValidExcute: function (eventName) {
251
+ if (this.model.required && this.model.value1 == "") {
252
+ this.validMessage = "必填";
253
+ this.valid = false;
254
+ return false;
255
+ }
256
+ return true;
257
+ },
258
+ clearClickHandle: function (event) {
259
+ this.model.value = '';
260
+ this.soChange();
261
+ event.stopPropagation();
262
+ },
263
+ isShowClear() {
264
+ if (this.model.value1 !== '' && this.model.clearable) {
265
+ this.$set(this, 'showClear', true);
266
+ } else {
267
+ this.$set(this, 'showClear', false);
268
+ }
269
+ },
270
+ searchInputHandle: function () {
271
+ var currentSeatch = this.searchText;
272
+ this.searchTickControl(currentSeatch);
273
+ },
274
+ searchTickControl: function (search) {
275
+ var self = this;
276
+ setTimeout(function () {
277
+ if (search === self.searchText) {
278
+ self.getOptions(self.searchText);
279
+ }
280
+ }, self.model.searchTick);
281
+ }
282
+ }
283
+ }
284
+ </script>
285
+ <style>
286
+ .h26{
287
+ height: 26px;
288
+ }
289
+ .ct-so .ct-sostt {
290
+ width: 100%;
291
+ display: flex;
292
+ flex-wrap: wrap;
293
+ }
294
+
295
+ .ct-so .ct-sostt .ct-input-editor {
296
+ flex: 1 0 0;
297
+ position: relative;
298
+ }
299
+ .ct-so .ct-sostt .ct-input-editorw {
300
+ position: relative;
301
+ display:inline-block;
302
+ }
303
+
304
+ .ct-so .ct-sostt .ml10 {
305
+ margin-left:10px;
306
+ }
307
+ .ct-sostt .showLabel input {
308
+ border-top-left-radius: 4px !important;
309
+ border-bottom-left-radius: 4px !important;
310
+ text-align: left !important;
311
+ }
312
+ </style>
@@ -15,13 +15,23 @@ const ContactList = function (source,para ,callBack) {
15
15
  _columns: [],
16
16
  _columnsArr: [],
17
17
  _dataFieldcolumns: [],
18
+ _listData: [],
18
19
  _scripts: null,
19
20
  isMergeTitle: false,//是否合并标题
20
21
  selectIndex: 0,
21
22
  formData: formData,
23
+ rowHiddenKey:'contactID',
24
+ rowHiddenColumns:['contactNameDesc','propertyIdentityTypeID'],
25
+ columnShow:'contactNoTypeDesc',
22
26
  attrs: {
23
27
  size: 'mini'
24
28
  },
29
+ get primaryKey() {
30
+ return common.initialsToUpperCase(source.content.primaryFieldName);
31
+ },
32
+ get primaryFieldMappingDBName() {
33
+ return source.content.primaryFieldMappingDBName;
34
+ },
25
35
  get buttons() {
26
36
  if (rtn._buttons !== null) {
27
37
  return rtn._buttons;
@@ -73,14 +83,24 @@ const ContactList = function (source,para ,callBack) {
73
83
  }
74
84
  },
75
85
  get listData() {
76
- if (!data.content.rows) {
77
- data.content.rows = [];
86
+ if (rtn._listData.length<=0) {
87
+ if(data.content.rows && data.content.rows.length>0){
88
+ data.content.rows.forEach((v,i) => {
89
+ rtn._listData.push(v);
90
+ if(v.descNewRow){
91
+ var newRow = {};
92
+ newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
93
+ newRow.descNewRow = v.descNewRow;
94
+ newRow.colspan = rtn.dataFieldcolumns.length-rtn.rowMergedColumns.length;
95
+ newRow.columnShow=rtn.columnShow;
96
+ newRow.flagRow=true;
97
+ rtn._listData.push(newRow);
98
+ }
99
+ });
100
+ }
78
101
  }
79
- return data.content.rows;
102
+ return rtn._listData;
80
103
  },
81
- set listData(v) {
82
- data.content.rows = v;
83
- },
84
104
  get columns() {
85
105
  var self = this;
86
106
  if (self._columns.length > 0) {
@@ -264,14 +284,87 @@ const ContactList = function (source,para ,callBack) {
264
284
  }
265
285
  },
266
286
  get rowMergedColumns() {
267
- return source.content.rowMergedColumns || [];
287
+ return source.rowMergedColumns || [];
288
+ },
289
+ get apiRouter() {
290
+ return source.apiRouter;
291
+ },
292
+ getCurrentRowApiData(rtnData,router) {
293
+ var self = this;
294
+ var searchFields = self.apiRouter.getSearchPara();
295
+ var searchValue1=router.flagAddRowAfterAction? rtnData.content: rtn.listData[rtn.selectIndex][self.primaryKey];
296
+ if (self.primaryKey) {
297
+ searchFields.fields.push({
298
+ fieldName1: self.primaryFieldMappingDBName ? self.primaryFieldMappingDBName : self.primaryKey,
299
+ groupName: self.primaryKey,
300
+ operation: Enum.SearchOperation.等于,
301
+ searchDataType: Enum.SearchDataType.Text,
302
+ searchValue1: searchValue1,
303
+ });
304
+ }
305
+ Vue.prototype.$api.postHandler(common.globalUri(), {
306
+ action: rtn.apiRouter.action,
307
+ para: {
308
+ searchFields: searchFields,
309
+ pageAttribute: { pageIndex: 1 },
310
+ flagSearch: true
311
+ }
312
+ })
313
+ .then(function (response) {
314
+ if (response.rtnCode === Enum.ReturnCode.Successful) {
315
+ if (response.content.rows.length > 0) {
316
+ if(router.flagAddRowAfterAction){
317
+ response.content.rows.forEach((v) => {
318
+ if(v.descNewRow){
319
+ var newRow = {};
320
+ newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
321
+ newRow.descNewRow = v.descNewRow;
322
+ newRow.colspan = rtn.dataFieldcolumns.length-rtn.rowMergedColumns.length;
323
+ newRow.columnShow=rtn.columnShow;
324
+ newRow.flagRow=true;
325
+ rtn._listData.unshift(newRow);
326
+ }
327
+ rtn._listData.unshift(v);
328
+ });
329
+ rtn.setHiddenRow();
330
+ }
331
+ else{
332
+ let updateData=[];
333
+ response.content.rows.forEach((v) => {
334
+ updateData.push(v);
335
+ if(v.descNewRow){
336
+ var newRow = {};
337
+ newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
338
+ newRow.descNewRow = v.descNewRow;
339
+ newRow.colspan = rtn.dataFieldcolumns.length-rtn.rowMergedColumns.length;
340
+ newRow.columnShow=rtn.columnShow;
341
+ newRow.flagRow=true;
342
+ updateData.push(newRow);
343
+ }
344
+ });
345
+ let strat=0;
346
+ let count=0;
347
+ rtn._listData.forEach((v,i) => {
348
+ if(v[rtn.rowHiddenKey]===searchValue1){
349
+ if(strat===0)strat=i;
350
+ count=count+1;
351
+ }
352
+ });
353
+ rtn._listData.splice(strat, count,updateData);
354
+ rtn.setHiddenRow();
355
+ }
356
+ }
357
+ }
358
+ })
359
+ .catch((error) => {
360
+ });
268
361
  },
269
362
  doAction(response,field) {
270
363
  if (response.responseData) {
271
364
  response = response.responseData;
272
365
  }
273
366
  if(field.flagFreshCurrentRow || field.flagAddRowAfterAction){
274
-
367
+ rtn.getCurrentRowApiData(response,field);
275
368
  }
276
369
  else{
277
370
  switch (response.notification) {
@@ -280,41 +373,60 @@ const ContactList = function (source,para ,callBack) {
280
373
  var deleteRow = response.content.split(',');
281
374
  if (deleteRow) {
282
375
  deleteRow.forEach((r) => {
283
- const dataIndex = rtn.listData.indexOf(rtn.dataDictionary[r])
284
- if (dataIndex !== -1) {
285
- rtn.listData.splice(dataIndex, 1);
286
- delete rtn.dataDictionary[r];
287
- }
376
+ let strat=0;
377
+ let count=0;
378
+ rtn._listData.forEach((v,i) => {
379
+ if(v[rtn.rowHiddenKey]===r){
380
+ if(strat===0)strat=i;
381
+ count=count+1;
382
+ }
383
+ });
384
+ rtn._listData.splice(strat, count);
288
385
  });
289
386
  }
290
387
  break;
291
388
  case Enum.ActionType.New://新增
292
389
  case Enum.ActionType.CloseTabThenNew://新增
293
- rtn.setStyleRow(response.content);
294
- response.content.forEach((nr) => {
295
- rtn.listData.unshift(nr);
390
+ response.content.forEach((v) => {
391
+ if(v.descNewRow){
392
+ var newRow = {};
393
+ newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
394
+ newRow.descNewRow = v.descNewRow;
395
+ newRow.colspan = rtn.dataFieldcolumns.length-rtn.rowMergedColumns.length;
396
+ newRow.columnShow=rtn.columnShow;
397
+ newRow.flagRow=true;
398
+ rtn._listData.unshift(newRow);
399
+ }
400
+ rtn._listData.unshift(v);
296
401
  });
297
- rtn.dataDictionary = response.content;
298
- rtn.$vue.calculatingRowHeight()
402
+ rtn.setHiddenRow();
299
403
  break;
300
404
  case Enum.ActionType.Update://修改
301
405
  case Enum.ActionType.CloseTabThenUpdate://修改
302
- response.content.forEach((row) => {
303
- for (var vkey in row) {
304
- rtn.dataDictionary[row[rtn.primaryKey]][vkey] = row[vkey];
406
+ var searchValue1=rtn.listData[rtn.selectIndex][self.primaryKey];
407
+ let updateData=[];
408
+ response.content.forEach((v) => {
409
+ updateData.push(v);
410
+ if(v.descNewRow){
411
+ var newRow = {};
412
+ newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
413
+ newRow.descNewRow = v.descNewRow;
414
+ newRow.colspan = rtn.dataFieldcolumns.length-rtn.rowMergedColumns.length;
415
+ newRow.columnShow=rtn.columnShow;
416
+ newRow.flagRow=true;
417
+ updateData.push(newRow);
305
418
  }
306
419
  });
307
- break;
308
- case Enum.ActionType.Export://导出
309
- var fileName = response.content.fieldName1;
310
- var fileContent = window.atob(response.content.code1);
311
- common.saveFile(fileName, fileContent);
312
- break;
313
- case Enum.ActionType.Refersh://刷新
314
- rtn.$vue.getPage(1);
315
- break;
316
- case Enum.ActionType.RefreshParent://刷新父页面
317
- rtn.$vue.$emit('refreshParent');
420
+ let strat=0;
421
+ let count=0;
422
+ rtn._listData.forEach((v,i) => {
423
+ if(v[rtn.rowHiddenKey]===searchValue1){
424
+ if(strat===0)strat=i;
425
+ count=count+1;
426
+ }
427
+ });
428
+ rtn._listData.splice(strat, count,updateData);
429
+ rtn.setHiddenRow();
318
430
  break;
319
431
  default:
320
432
  break;
@@ -352,6 +464,39 @@ const ContactList = function (source,para ,callBack) {
352
464
  }
353
465
  return c;
354
466
  },
467
+ setHiddenRow() {
468
+ if (rtn.rowHiddenColumns.length===0) {
469
+ return;
470
+ }
471
+ let lastKey='';
472
+ let count=1;
473
+ let firstIndex=0;
474
+ for (let i = 0; i < rtn.listData.length; i++) {
475
+ rtn.listData[i].$rowspan=0;
476
+ if(lastKey){
477
+ if(rtn.listData[i][rtn.rowHiddenKey]){
478
+ if(rtn.listData[i][rtn.rowHiddenKey]===lastKey){
479
+ rtn.listData[i].rowHiddenColumns=rtn.rowHiddenColumns;
480
+ count++;
481
+ if(i===rtn.listData.length-1){
482
+ rtn.listData[firstIndex].$rowspan=count;
483
+ }
484
+ }
485
+ else{
486
+ rtn.listData[firstIndex].$rowspan=count;
487
+ lastKey=rtn.listData[i][rtn.rowHiddenKey];
488
+ count=1;
489
+ firstIndex=i;
490
+ }
491
+ }
492
+ }
493
+ else{
494
+ lastKey=rtn.listData[i][rtn.rowHiddenKey];
495
+ count=1;
496
+ firstIndex=i;
497
+ }
498
+ }
499
+ },
355
500
  };
356
501
  return rtn;
357
502
  }
@@ -213,6 +213,7 @@ const Router = function (source) {
213
213
  getActionPara(data) {
214
214
  let params = {};
215
215
  if (rtn.isSubmit) {
216
+ data = Object.assign(data, rtn.queryPara);
216
217
  params = {
217
218
  action: rtn.action,
218
219
  para: {
@@ -246,6 +247,35 @@ const Router = function (source) {
246
247
  callback({ rtnCode: Enum.ReturnCode.Successful });
247
248
  }
248
249
  },
250
+ getSearchPara() {
251
+ let params = { fields: [] };
252
+ if (source.queryString) {
253
+ var arr = source.queryString.split("&");
254
+ for (var i = 0; i < arr.length; i++) {
255
+ var res = arr[i].split("=");
256
+ params.fields.push({
257
+ fieldName1: res[0],
258
+ groupName: res[0],
259
+ operation: Enum.SearchOperation.等于,
260
+ searchDataType: Enum.SearchDataType.Text,
261
+ searchValue1: res[1],
262
+ });
263
+ }
264
+ }
265
+ return params;
266
+ },
267
+ doSearch(data, callback) {
268
+ if (rtn.action) {
269
+ Vue.prototype.$api.postHandler(common.globalUri(), data).then((response) => {
270
+ callback(response);
271
+ }).catch((ex) => {
272
+ callback(ex);//里面需要有data.rtnCode === 200的处理
273
+ });
274
+ }
275
+ else {
276
+ callback({ rtnCode: Enum.ReturnCode.Successful });
277
+ }
278
+ },
249
279
  selectOptionCode:'',
250
280
  _elementOptions: [],
251
281
  get elementOptions() {