eoss-mobiles 0.2.18 → 0.2.20

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.
@@ -16,7 +16,8 @@
16
16
  v-on="$listeners"
17
17
  :disabled="item.disabled"
18
18
  :name="item[valueKey]"
19
- >{{ item[labelKey] }}
19
+ >
20
+ <span v-html="item[labelKey]"></span>
20
21
  <slot
21
22
  slot="icon"
22
23
  :checked="newValue.indexOf(item[valueKey]) != -1"
@@ -91,7 +92,12 @@ export default {
91
92
  type: Boolean,
92
93
  default: false
93
94
  },
94
- baseUrl: String
95
+ baseUrl: String,
96
+ allowHtml: {
97
+ type: Boolean,
98
+ default: false
99
+ },
100
+
95
101
  },
96
102
  computed: {
97
103
  newValue: {
@@ -107,6 +113,11 @@ export default {
107
113
  watch: {
108
114
  data: {
109
115
  handler(val) {
116
+ val.map(item => {
117
+ item[this.labelKey] = this.allowHtml
118
+ ? item[this.labelKey]
119
+ : item[this.labelKey].replace(/<[^>]+>/g, '');
120
+ });
110
121
  this.newData = val;
111
122
  },
112
123
  deep: true,
@@ -128,7 +139,9 @@ export default {
128
139
  getSysCode() {
129
140
  const { url, method, sysAppCode, param } = this;
130
141
  let params = {
131
- url: this.baseUrl ? this.baseUrl + (url || findSysCode) : url || findSysCode,
142
+ url: this.baseUrl
143
+ ? this.baseUrl + (url || findSysCode)
144
+ : url || findSysCode,
132
145
  type: method,
133
146
  params: {
134
147
  ccCode: sysAppCode,
@@ -137,15 +150,18 @@ export default {
137
150
  };
138
151
  request(params)
139
152
  .then(res => {
140
- const { status, data, message } = res;
141
- if (status == 'success') {
142
- data.map(item => {
143
- item.name = item.shortName;
144
- item.value = item.cciValue;
153
+ const { status, data, message, rCode, results } = res;
154
+ if (status == 'success' || rCode === 0 || status === true) {
155
+ [...(data || results)].map(item => {
156
+ item.name = this.allowHtml
157
+ ? item[sysAppCode ? 'shortName' : this.labelKey]
158
+ : item[sysAppCode ? 'shortName' : this.labelKey].replace(
159
+ /<[^>]+>/g,
160
+ ''
161
+ );
162
+ item.value = item[sysAppCode ? 'cciValue' : this.value];
145
163
  });
146
- this.newData = data;
147
- console.log(this.newData, 'this.newData');
148
- if (this.isTable) this.$emit('tableColumns', this.newData);
164
+ this.newData = data || results;
149
165
  } else {
150
166
  this.$toast(message);
151
167
  }
@@ -10,13 +10,15 @@
10
10
  :required="required"
11
11
  :label-width="labelWidth"
12
12
  :hideLabel="hideLabel"
13
- :placeholder="pickerValue
14
- ? pickerValue
15
- : disabled || readonly
16
- ? '暂无数据'
17
- : placeholder
18
- ? placeholder
19
- : `请选择${label}`"
13
+ :placeholder="
14
+ pickerValue
15
+ ? pickerValue
16
+ : disabled || readonly
17
+ ? '暂无数据'
18
+ : placeholder
19
+ ? placeholder
20
+ : `请选择${label}`
21
+ "
20
22
  @click="handlePicker"
21
23
  />
22
24
  <em-input
@@ -308,9 +310,9 @@ export default {
308
310
  },
309
311
  methods: {
310
312
  handleClick(val) {
311
- if(this.linkTag){
313
+ if (this.linkTag) {
312
314
  this.$emit('tagClick', val);
313
- }else{
315
+ } else {
314
316
  this.showPicker = true;
315
317
  }
316
318
  },
@@ -455,27 +457,30 @@ export default {
455
457
  this.newLoading = true;
456
458
  request(params)
457
459
  .then(res => {
458
- const { status, data, message } = res;
460
+ const { status, data, message, rCode, results } = res;
459
461
  this.listLoading = false;
460
- if (status == 'success') {
461
- let info = this.resultsName ? data[this.resultsName] : data;
462
+ if (status == 'success' || rCode === 0|| status === true) {
463
+ let info = this.resultsName
464
+ ? data
465
+ ? data[this.resultsName]
466
+ : results[this.resultsName]
467
+ : data
468
+ ? data
469
+ : results;
462
470
  info.map(x => {
463
471
  if (this.isCheck) {
464
472
  x.name =
465
- x[
466
- (this.labelKey != 'name' && this.labelKey) || 'shortName'
467
- ] &&
468
- x[
469
- (this.labelKey != 'name' && this.labelKey) || 'shortName'
470
- ].replace(/<[^>]+>/g, '');
473
+ x[sysAppCode ? 'shortName' : this.labelKey] &&
474
+ x[sysAppCode ? 'shortName' : this.labelKey].replace(
475
+ /<[^>]+>/g,
476
+ ''
477
+ );
471
478
  } else {
472
- x.name =
473
- x[(this.labelKey != 'name' && this.labelKey) || 'shortName'];
479
+ x.name = x[sysAppCode ? 'shortName' : this.labelKey];
474
480
  }
475
- x.value =
476
- x[(this.valueKey != 'value' && this.valueKey) || 'cciValue'];
481
+ x.value = x[sysAppCode ? 'cciValue' : this.valueKey];
477
482
  });
478
- if (data.totalCount) {
483
+ if (data && data.totalCount) {
479
484
  this.total = data.totalCount;
480
485
  if (data.totalCount === this.newColumns.length) {
481
486
  this.listFinished = true;
@@ -491,7 +496,6 @@ export default {
491
496
  this.listFinished = true;
492
497
  this.newColumns = info;
493
498
  }
494
- if (this.isTable) this.$emit('tableColumns', this.newColumns);
495
499
  if (this.beforResponse) {
496
500
  this.newColumns = this.beforResponse(this.newColumns);
497
501
  this.getValue();
@@ -13,7 +13,7 @@
13
13
  :disabled="item.disabled"
14
14
  :name="item[valueKey]"
15
15
  >
16
- {{ item[labelKey] }}
16
+ <span v-html="item[labelKey]"></span>
17
17
  <slot slot="icon" :checked="item[valueKey] == newRadio"></slot>
18
18
  </van-radio>
19
19
  </van-radio-group>
@@ -88,7 +88,11 @@ export default {
88
88
  type: Boolean,
89
89
  default: false
90
90
  },
91
- baseUrl: String
91
+ baseUrl: String,
92
+ allowHtml: {
93
+ type: Boolean,
94
+ default: false
95
+ }
92
96
  },
93
97
  computed: {
94
98
  newRadio: {
@@ -104,6 +108,11 @@ export default {
104
108
  watch: {
105
109
  data: {
106
110
  handler(val) {
111
+ val.map(item => {
112
+ item[this.labelKey] = this.allowHtml
113
+ ? item[this.labelKey]
114
+ : item[this.labelKey].replace(/<[^>]+>/g, '');
115
+ });
107
116
  this.newData = val;
108
117
  },
109
118
  deep: true,
@@ -139,14 +148,18 @@ export default {
139
148
  };
140
149
  request(params)
141
150
  .then(res => {
142
- const { status, data, message } = res;
143
- if (status == 'success') {
144
- data.map(item => {
145
- item.name = item.shortName;
146
- item.value = item.cciValue;
151
+ const { status, data, message, rCode, results } = res;
152
+ if (status == 'success' || rCode === 0 || status === true) {
153
+ [...(data || results)].map(item => {
154
+ item.name = this.allowHtml
155
+ ? item[sysAppCode ? 'shortName' : this.labelKey]
156
+ : item[sysAppCode ? 'shortName' : this.labelKey].replace(
157
+ /<[^>]+>/g,
158
+ ''
159
+ );
160
+ item.value = item[sysAppCode ? 'cciValue' : this.value];
147
161
  });
148
- this.newData = data;
149
- if (this.isTable) this.$emit('tableColumns', this.newData);
162
+ this.newData = data || results;
150
163
  } else {
151
164
  this.$toast(message);
152
165
  }
@@ -68,8 +68,8 @@
68
68
  <!-- r[labelKey].length > 6
69
69
  ? r[labelKey].slice(0, 6) + '...'
70
70
  : r[labelKey] -->
71
- <div class="name" v-if="r[labelKey]">
72
- {{ r[labelKey] }}
71
+ <div class="name" v-if="r[labelKey] || r['showname']">
72
+ {{ r[labelKey] || r['showname'] }}
73
73
  </div>
74
74
  <div class="delte" @click="delteList(i)">
75
75
  <img
@@ -48,10 +48,25 @@
48
48
  </section>
49
49
  <em-picker
50
50
  v-if="item.type === 'select'"
51
- valueKey="cciValue"
52
- labelKey="shortName"
51
+ :valueKey="
52
+ item.valueKey
53
+ ? item.valueKey
54
+ : !item.url && !item.sysAppCode
55
+ ? 'value'
56
+ : 'cciValue'
57
+ "
58
+ :labelKey="
59
+ item.labelKey
60
+ ? item.labelKey
61
+ : !item.url && !item.sysAppCode
62
+ ? 'name'
63
+ : 'shortName'
64
+ "
53
65
  v-bind="
54
- exclAttribute({ data: item, attrs: ['width', 'sysAppCode'] })
66
+ exclAttribute({
67
+ data: item,
68
+ attrs: ['width', 'sysAppCode', 'url']
69
+ })
55
70
  "
56
71
  :sysAppCode="
57
72
  item.sysAppCode &&
@@ -60,12 +75,15 @@
60
75
  ? item.sysAppCode
61
76
  : ''
62
77
  "
63
- :url="item.url && scope.$index == 0 ? item.url : ''"
64
- @tableColumns="getTableColumns($event, item.field || item.prop)"
78
+ :url="
79
+ item.url &&
80
+ scope.$index == 0 &&
81
+ !optionList[item.name || item.field || item.prop]
82
+ ? item.url
83
+ : ''
84
+ "
65
85
  v-model="scope.row[item.name || item.field || item.prop]"
66
- isTable
67
86
  hideLabel
68
- :ajax="false"
69
87
  :columns="
70
88
  optionList[item.name || item.field || item.prop]
71
89
  ? optionList[item.name || item.field || item.prop]
@@ -74,7 +92,7 @@
74
92
  @confirm="
75
93
  value => {
76
94
  handleChange({
77
- name: item.field || item.prop,
95
+ name: item.name || item.field || item.prop,
78
96
  value: value,
79
97
  data: scope.row
80
98
  });
@@ -96,7 +114,7 @@
96
114
  class="el-input__inner"
97
115
  :label="item.title"
98
116
  v-bind="exclAttribute({ data: item, attrs: 'width' })"
99
- v-model.lazy="scope.row[item.field]"
117
+ v-model.lazy="scope.row[item.name || item.field || item.prop]"
100
118
  @blur="
101
119
  event => {
102
120
  handleBlur({ item: item, event: event, data: scope.row });
@@ -114,7 +132,7 @@
114
132
  @change="
115
133
  value => {
116
134
  handleChange({
117
- name: item.field || item.prop,
135
+ name: item.name || item.field || item.prop,
118
136
  value: value,
119
137
  data: scope.row
120
138
  });
@@ -125,7 +143,7 @@
125
143
  v-else
126
144
  class="el-textarea__inner"
127
145
  v-bind="exclAttribute({ data: item, attrs: 'width' })"
128
- v-model.lazy="scope.row[item.field]"
146
+ v-model.lazy="scope.row[item.name || item.field || item.prop]"
129
147
  @blur="
130
148
  event => {
131
149
  handleBlur({ item: item, event: event, data: scope.row });
@@ -143,7 +161,7 @@
143
161
  @change="
144
162
  value => {
145
163
  handleChange({
146
- name: item.field || item.prop,
164
+ name: item.name || item.field || item.prop,
147
165
  value: value,
148
166
  data: scope.row
149
167
  });
@@ -156,7 +174,7 @@
156
174
  ref="emInput"
157
175
  class="em-table-input"
158
176
  v-bind="exclAttribute({ data: item, attrs: 'width' })"
159
- v-model="scope.row[item.field]"
177
+ v-model="scope.row[item.name || item.field || item.prop]"
160
178
  :label="item.title"
161
179
  hideLabel
162
180
  @blur="
@@ -172,7 +190,7 @@
172
190
  @change="
173
191
  value => {
174
192
  handleChange({
175
- name: item.field || item.prop,
193
+ name: item.name || item.field || item.prop,
176
194
  value: value,
177
195
  data: scope.row
178
196
  });
@@ -193,13 +211,13 @@
193
211
  item.type == 'datehour'
194
212
  "
195
213
  v-bind="exclAttribute({ data: item, attrs: 'width' })"
196
- v-model="scope.row[item.field]"
214
+ v-model="scope.row[item.name || item.field || item.prop]"
197
215
  hideLabel
198
216
  :joinStr="item.joinStr || '-'"
199
217
  @confirm="
200
218
  value => {
201
219
  handleChange({
202
- name: item.field || item.prop,
220
+ name: item.name || item.field || item.prop,
203
221
  value: value,
204
222
  data: scope.row
205
223
  });
@@ -208,16 +226,44 @@
208
226
  />
209
227
  <em-radio-group
210
228
  v-else-if="item.type === 'radio'"
211
- v-bind="exclAttribute({ data: item, attrs: 'width' })"
212
- v-model="scope.row[item.field]"
213
- :data="newOptionData[item.field || item.prop]"
214
- isTable
215
- :ajax="false"
216
- @tableColumns="getTableColumns($event, item.field || item.prop)"
229
+ v-bind="exclAttribute({ data: item, attrs: ['width'] })"
230
+ v-model="scope.row[item.name || item.field || item.prop]"
231
+ :data="
232
+ optionList[item.name || item.field || item.prop] ||
233
+ newOptionData[item.name || item.field || item.prop]
234
+ "
235
+ :valueKey="
236
+ item.valueKey
237
+ ? item.valueKey
238
+ : !item.url && !item.sysAppCode
239
+ ? 'value'
240
+ : 'cciValue'
241
+ "
242
+ :labelKey="
243
+ item.labelKey
244
+ ? item.labelKey
245
+ : !item.url && !item.sysAppCode
246
+ ? 'name'
247
+ : 'shortName'
248
+ "
249
+ :sysAppCode="
250
+ item.sysAppCode &&
251
+ scope.$index == 0 &&
252
+ !optionList[item.name || item.field || item.prop]
253
+ ? item.sysAppCode
254
+ : ''
255
+ "
256
+ :url="
257
+ item.url &&
258
+ scope.$index == 0 &&
259
+ !optionList[item.name || item.field || item.prop]
260
+ ? item.url
261
+ : ''
262
+ "
217
263
  @change="
218
264
  value => {
219
265
  handleChange({
220
- name: item.field || item.prop,
266
+ name: item.name || item.field || item.prop,
221
267
  value: value,
222
268
  data: scope.row,
223
269
  type: item.type
@@ -228,15 +274,43 @@
228
274
  <em-checkbox-group
229
275
  v-else-if="item.type === 'checkbox'"
230
276
  v-bind="exclAttribute({ data: item, attrs: 'width' })"
231
- v-model="scope.row[item.field]"
232
- :data="newOptionData[item.field || item.prop]"
233
- :ajax="false"
234
- isTable
235
- @tableColumns="getTableColumns($event, item.field || item.prop)"
277
+ v-model="scope.row[item.name || item.field || item.prop]"
278
+ :data="
279
+ optionList[item.name || item.field || item.prop] ||
280
+ newOptionData[item.name || item.field || item.prop]
281
+ "
282
+ :valueKey="
283
+ item.valueKey
284
+ ? item.valueKey
285
+ : !item.url && !item.sysAppCode
286
+ ? 'value'
287
+ : 'cciValue'
288
+ "
289
+ :labelKey="
290
+ item.labelKey
291
+ ? item.labelKey
292
+ : !item.url && !item.sysAppCode
293
+ ? 'name'
294
+ : 'shortName'
295
+ "
296
+ :sysAppCode="
297
+ item.sysAppCode &&
298
+ scope.$index == 0 &&
299
+ !optionList[item.name || item.field || item.prop]
300
+ ? item.sysAppCode
301
+ : ''
302
+ "
303
+ :url="
304
+ item.url &&
305
+ scope.$index == 0 &&
306
+ !optionList[item.name || item.field || item.prop]
307
+ ? item.url
308
+ : ''
309
+ "
236
310
  @change="
237
311
  value => {
238
312
  handleChange({
239
- name: item.field || item.prop,
313
+ name: item.name || item.field || item.prop,
240
314
  value: value,
241
315
  data: scope.row,
242
316
  type: item.type
@@ -247,11 +321,11 @@
247
321
  <em-switch
248
322
  v-else-if="item.type === 'switch'"
249
323
  v-bind="exclAttribute({ data: item, attrs: 'width' })"
250
- v-model="scope.row[item.field]"
324
+ v-model="scope.row[item.name || item.field || item.prop]"
251
325
  @change="
252
326
  value => {
253
327
  handleChange({
254
- name: item.field || item.prop,
328
+ name: item.name || item.field || item.prop,
255
329
  value: value,
256
330
  data: scope.row
257
331
  });
@@ -261,13 +335,13 @@
261
335
  <em-selector
262
336
  v-else-if="item.type == 'selector'"
263
337
  v-bind="exclAttribute({ data: item, attrs: 'width' })"
264
- v-model="scope.row[item.field]"
338
+ v-model="scope.row[item.name || item.field || item.prop]"
265
339
  :label="item.title"
266
340
  hide-label
267
341
  @change="
268
342
  value => {
269
343
  handleChange({
270
- name: item.field || item.prop,
344
+ name: item.name || item.field || item.prop,
271
345
  value: value.list,
272
346
  data: scope.row
273
347
  });
@@ -588,7 +662,10 @@
588
662
  ><div
589
663
  v-html="
590
664
  item.formatDate
591
- ? formatDate(scope.row[item.field || item.prop], item.formatDate)
665
+ ? formatDate(
666
+ scope.row[item.name || item.field || item.prop],
667
+ item.formatDate
668
+ )
592
669
  : getValue(scope.row)
593
670
  "
594
671
  ></div
@@ -637,9 +714,9 @@ export default {
637
714
  };
638
715
  },
639
716
  mounted() {
640
- const { field, prop, name, labelKey, valueKey, sysAppCode } = this.item;
717
+ const { field, prop, name, url, sysAppCode } = this.item;
641
718
  this.selectStr.indexOf(sysAppCode) != -1 && (this.isSelect = false);
642
- if (sysAppCode && !this.isSelect) {
719
+ if ((sysAppCode || url) && !this.isSelect) {
643
720
  this.optionList[name || field || prop] = [];
644
721
  this.getSelectValue(this.item);
645
722
  this.selectStr += sysAppCode;
@@ -657,7 +734,9 @@ export default {
657
734
  methods: {
658
735
  getSelectValue(item) {
659
736
  let params = {
660
- url: item.url || findSysCode,
737
+ url: item.baseUrl
738
+ ? item.baseUrl + (item.url || findSysCode)
739
+ : item.url || findSysCode,
661
740
  type: item.method || 'get',
662
741
  params: {
663
742
  ccCode: item.sysAppCode,
@@ -666,9 +745,17 @@ export default {
666
745
  }
667
746
  };
668
747
  request(params).then(res => {
669
- const { data, status } = res;
670
- if (status === 'success') {
671
- this.optionList[item.name || item.field || item.prop] = data;
748
+ const { data, status, results, rCode } = res;
749
+ if (status === 'success' || rCode === 0) {
750
+ this.optionList[
751
+ item.name || item.field || item.prop
752
+ ] = item.resultsName
753
+ ? data
754
+ ? data[item.resultsName]
755
+ : results[item.resultsName]
756
+ : data
757
+ ? data
758
+ : results;
672
759
  this.show = false;
673
760
  setTimeout(() => {
674
761
  this.show = true;
@@ -705,14 +792,7 @@ export default {
705
792
  }
706
793
  }
707
794
  } else if (type === 'select') {
708
- const {
709
- name,
710
- labelKey,
711
- field,
712
- prop,
713
- valueKey,
714
- optionData
715
- } = this.item;
795
+ const { name, labelKey, field, prop, valueKey, optionData } = this.item;
716
796
  if (this.optionList[name || field || prop]) {
717
797
  let value = this.optionList[name || field || prop].filter(
718
798
  x => x[valueKey || 'cciValue'] === row[name || field || prop]
package/src/index.js CHANGED
@@ -101,7 +101,7 @@ if (typeof window !== 'undefined' && window.Vue) {
101
101
  }
102
102
 
103
103
  export default {
104
- version: '0.2.18',
104
+ version: '0.2.20',
105
105
  install,
106
106
  Button,
107
107
  ButtonGroup,