eoss-mobiles 0.2.11 → 0.2.13

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 (69) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/lib/action-sheet.js +2 -2
  3. package/lib/button-group.js +2 -2
  4. package/lib/button.js +2 -2
  5. package/lib/calendar.js +2 -2
  6. package/lib/cascader.js +2 -2
  7. package/lib/cell.js +2 -2
  8. package/lib/checkbox.js +112 -112
  9. package/lib/circle.js +2 -2
  10. package/lib/count-down.js +2 -2
  11. package/lib/date.js +38 -4
  12. package/lib/empty.js +2 -2
  13. package/lib/eoss-mobile.common.js +291 -105
  14. package/lib/esign.js +2 -2
  15. package/lib/field.js +2 -2
  16. package/lib/flow.js +133 -159
  17. package/lib/form.js +5 -5
  18. package/lib/grid-item.js +2 -2
  19. package/lib/grid.js +2 -2
  20. package/lib/image-preview.js +2 -2
  21. package/lib/image.js +2 -2
  22. package/lib/index.js +1 -1
  23. package/lib/list.js +2 -2
  24. package/lib/loading.js +2 -2
  25. package/lib/nav-bar.js +2 -2
  26. package/lib/notice-bar.js +273 -0
  27. package/lib/pagination.js +2 -2
  28. package/lib/picker.js +111 -111
  29. package/lib/popover.js +2 -2
  30. package/lib/popup.js +2 -2
  31. package/lib/pull-refresh.js +2 -2
  32. package/lib/radio.js +111 -111
  33. package/lib/rate.js +2 -2
  34. package/lib/search.js +2 -2
  35. package/lib/selector.js +112 -112
  36. package/lib/skeleton.js +2 -2
  37. package/lib/stepper.js +2 -2
  38. package/lib/swipe.js +2 -2
  39. package/lib/switch.js +2 -2
  40. package/lib/tab.js +2 -2
  41. package/lib/table-column.js +687 -147
  42. package/lib/table.js +114 -115
  43. package/lib/tabs.js +2 -2
  44. package/lib/tag.js +2 -2
  45. package/lib/theme-chalk/flow.css +1 -1
  46. package/lib/theme-chalk/fonts/iconfont.scss +7 -3
  47. package/lib/theme-chalk/index.css +1 -1
  48. package/lib/theme-chalk/notice-bar.css +0 -0
  49. package/lib/theme-chalk/selector.css +1 -1
  50. package/lib/uploader.js +2 -2
  51. package/package.json +1 -1
  52. package/packages/date/src/main.vue +14 -0
  53. package/packages/flow/src/components/Handle.vue +3 -3
  54. package/packages/flow/src/components/Opinion.vue +3 -3
  55. package/packages/form/src/main.vue +1 -1
  56. package/packages/notice-bar/index.js +5 -0
  57. package/packages/notice-bar/src/main.vue +15 -0
  58. package/packages/table/src/main.vue +0 -1
  59. package/packages/table-column/src/main.vue +272 -199
  60. package/packages/theme-chalk/lib/flow.css +1 -1
  61. package/packages/theme-chalk/lib/fonts/iconfont.scss +7 -3
  62. package/packages/theme-chalk/lib/index.css +1 -1
  63. package/packages/theme-chalk/lib/notice-bar.css +0 -0
  64. package/packages/theme-chalk/lib/selector.css +1 -1
  65. package/packages/theme-chalk/src/flow.scss +9 -1
  66. package/packages/theme-chalk/src/fonts/iconfont.scss +7 -3
  67. package/packages/theme-chalk/src/index.scss +1 -0
  68. package/packages/theme-chalk/src/notice-bar.scss +0 -0
  69. package/src/index.js +7 -4
@@ -43,114 +43,60 @@
43
43
  <template v-else>{{ format(scope.row, item) }}</template>
44
44
  </template>
45
45
  <template v-else>
46
- <section v-if="item.type === 'slot'">
47
- <slot :name="item.prop"></slot>
48
- </section>
49
- <em-picker
50
- v-if="item.type === 'select'"
51
- v-bind="exclAttribute({ data: item, attrs: 'width' })"
52
- :sysAppCode="
53
- item.sysAppCode && scope.$index == 0 ? item.sysAppCode : ''
54
- "
55
- :url="item.url && scope.$index == 0 ? item.url : ''"
56
- @tableColumns="getTableColumns($event, item.field || item.prop)"
57
- v-model="scope.row[item.field]"
58
- isTable
59
- hideLabel
60
- :ajax="false"
61
- :columns="
62
- item.optionData
63
- ? scope.row[item.optionData]
64
- : newOptionData[item.field || item.prop]
65
- "
66
- @confirm="
67
- value => {
68
- handleChange({
69
- name: item.field || item.prop,
70
- value: value,
71
- data: scope.row
72
- });
73
- }
74
- "
75
- />
76
- <template
77
- v-else-if="
78
- item.type === 'text' ||
79
- item.type === 'textarea' ||
80
- item.type == 'number' ||
81
- item.type == 'digit'
82
- "
83
- >
84
- <template v-if="item.lazy">
85
- <input
86
- v-if="item.type === 'text'"
87
- ref="emInput"
88
- class="el-input__inner"
89
- :label="item.title"
90
- v-bind="exclAttribute({ data: item, attrs: 'width' })"
91
- v-model.lazy="scope.row[item.field]"
92
- @blur="
93
- event => {
94
- handleBlur({ item: item, event: event, data: scope.row });
95
- }
96
- "
97
- @focus="
98
- event => {
99
- handleFocus({
100
- item: item,
101
- event: event,
102
- data: scope.row
103
- });
104
- }
105
- "
106
- @change="
107
- value => {
108
- handleChange({
109
- name: item.field || item.prop,
110
- value: value,
111
- data: scope.row
112
- });
113
- }
114
- "
115
- />
116
- <textarea
117
- v-else
118
- class="el-textarea__inner"
119
- v-bind="exclAttribute({ data: item, attrs: 'width' })"
120
- v-model.lazy="scope.row[item.field]"
121
- @blur="
122
- event => {
123
- handleBlur({ item: item, event: event, data: scope.row });
124
- }
125
- "
126
- @focus="
127
- event => {
128
- handleFocus({
129
- item: item,
130
- event: event,
131
- data: scope.row
132
- });
133
- }
134
- "
135
- @change="
136
- value => {
137
- handleChange({
138
- name: item.field || item.prop,
139
- value: value,
140
- data: scope.row
141
- });
142
- }
143
- "
144
- ></textarea>
145
- </template>
146
- <em-input
147
- v-else
46
+ <section v-if="item.type === 'slot'">
47
+ <slot :name="item.prop"></slot>
48
+ </section>
49
+ <em-picker
50
+ v-if="item.type === 'select'"
51
+ valueKey="cciValue"
52
+ labelKey="shortName"
53
+ v-bind="
54
+ exclAttribute({ data: item, attrs: ['width', 'sysAppCode'] })
55
+ "
56
+ :sysAppCode="
57
+ item.sysAppCode &&
58
+ scope.$index == 0 &&
59
+ !optionList[item.name || item.field || item.prop]
60
+ ? item.sysAppCode
61
+ : ''
62
+ "
63
+ :url="item.url && scope.$index == 0 ? item.url : ''"
64
+ @tableColumns="getTableColumns($event, item.field || item.prop)"
65
+ v-model="scope.row[item.name || item.field || item.prop]"
66
+ isTable
67
+ hideLabel
68
+ :ajax="false"
69
+ :columns="
70
+ optionList[item.name || item.field || item.prop]
71
+ ? optionList[item.name || item.field || item.prop]
72
+ : newOptionData[item.name || item.field || item.prop]
73
+ "
74
+ @confirm="
75
+ value => {
76
+ handleChange({
77
+ name: item.field || item.prop,
78
+ value: value,
79
+ data: scope.row
80
+ });
81
+ }
82
+ "
83
+ />
84
+ <template
85
+ v-else-if="
86
+ item.type === 'text' ||
87
+ item.type === 'textarea' ||
88
+ item.type == 'number' ||
89
+ item.type == 'digit'
90
+ "
91
+ >
92
+ <template v-if="item.lazy">
93
+ <input
94
+ v-if="item.type === 'text'"
148
95
  ref="emInput"
149
- class="em-table-input"
150
- v-bind="exclAttribute({ data: item, attrs: 'width' })"
151
- v-model="scope.row[item.field]"
96
+ class="el-input__inner"
152
97
  :label="item.title"
153
- hideLabel
98
+ v-bind="exclAttribute({ data: item, attrs: 'width' })"
99
+ v-model.lazy="scope.row[item.field]"
154
100
  @blur="
155
101
  event => {
156
102
  handleBlur({ item: item, event: event, data: scope.row });
@@ -158,7 +104,40 @@
158
104
  "
159
105
  @focus="
160
106
  event => {
161
- handleFocus({ item: item, event: event, data: scope.row });
107
+ handleFocus({
108
+ item: item,
109
+ event: event,
110
+ data: scope.row
111
+ });
112
+ }
113
+ "
114
+ @change="
115
+ value => {
116
+ handleChange({
117
+ name: item.field || item.prop,
118
+ value: value,
119
+ data: scope.row
120
+ });
121
+ }
122
+ "
123
+ />
124
+ <textarea
125
+ v-else
126
+ class="el-textarea__inner"
127
+ v-bind="exclAttribute({ data: item, attrs: 'width' })"
128
+ v-model.lazy="scope.row[item.field]"
129
+ @blur="
130
+ event => {
131
+ handleBlur({ item: item, event: event, data: scope.row });
132
+ }
133
+ "
134
+ @focus="
135
+ event => {
136
+ handleFocus({
137
+ item: item,
138
+ event: event,
139
+ data: scope.row
140
+ });
162
141
  }
163
142
  "
164
143
  @change="
@@ -170,76 +149,26 @@
170
149
  });
171
150
  }
172
151
  "
173
- ></em-input>
152
+ ></textarea>
174
153
  </template>
175
- <em-date
176
- v-else-if="
177
- item.date ||
178
- item.type == 'date' ||
179
- item.type == 'year' ||
180
- item.type == 'year-month' ||
181
- item.type == 'month-day' ||
182
- item.type == 'time' ||
183
- item.type == 'datetimeSecond' ||
184
- item.type == 'datetime' ||
185
- item.type == 'datehour'
186
- "
154
+ <em-input
155
+ v-else
156
+ ref="emInput"
157
+ class="em-table-input"
187
158
  v-bind="exclAttribute({ data: item, attrs: 'width' })"
188
159
  v-model="scope.row[item.field]"
160
+ :label="item.title"
189
161
  hideLabel
190
- :joinStr="item.joinStr || '-'"
191
- @confirm="
192
- value => {
193
- handleChange({
194
- name: item.field || item.prop,
195
- value: value,
196
- data: scope.row
197
- });
198
- }
199
- "
200
- />
201
- <em-radio-group
202
- v-else-if="item.type === 'radio'"
203
- v-bind="exclAttribute({ data: item, attrs: 'width' })"
204
- v-model="scope.row[item.field]"
205
- :data="newOptionData[item.field || item.prop]"
206
- isTable
207
- :ajax="false"
208
- @tableColumns="getTableColumns($event, item.field || item.prop)"
209
- @change="
210
- value => {
211
- handleChange({
212
- name: item.field || item.prop,
213
- value: value,
214
- data: scope.row,
215
- type: item.type
216
- });
162
+ @blur="
163
+ event => {
164
+ handleBlur({ item: item, event: event, data: scope.row });
217
165
  }
218
166
  "
219
- />
220
- <em-checkbox-group
221
- v-else-if="item.type === 'checkbox'"
222
- v-bind="exclAttribute({ data: item, attrs: 'width' })"
223
- v-model="scope.row[item.field]"
224
- :data="newOptionData[item.field || item.prop]"
225
- :ajax="false"
226
- isTable
227
- @tableColumns="getTableColumns($event, item.field || item.prop)"
228
- @change="
229
- value => {
230
- handleChange({
231
- name: item.field || item.prop,
232
- value: value,
233
- data: scope.row,
234
- type: item.type
235
- });
167
+ @focus="
168
+ event => {
169
+ handleFocus({ item: item, event: event, data: scope.row });
236
170
  }
237
171
  "
238
- />
239
- <em-switch
240
- v-else-if="item.type === 'switch'"
241
- v-bind="exclAttribute({ data: item, attrs: 'width' })"
242
- v-model="scope.row[item.field]"
243
172
  @change="
244
173
  value => {
245
174
  handleChange({
@@ -249,24 +178,103 @@
249
178
  });
250
179
  }
251
180
  "
252
- />
253
- <em-selector
254
- v-else-if="item.type == 'selector'"
255
- v-bind="exclAttribute({ data: item, attrs: 'width' })"
256
- v-model="scope.row[item.field]"
257
- :label="item.title"
258
- hide-label
259
- @change="
260
- value => {
261
- handleChange({
262
- name: item.field || item.prop,
263
- value: value.list,
264
- data: scope.row
265
- });
266
- }
267
- "
268
- />
269
- <!-- <el-form-item
181
+ ></em-input>
182
+ </template>
183
+ <em-date
184
+ v-else-if="
185
+ item.date ||
186
+ item.type == 'date' ||
187
+ item.type == 'year' ||
188
+ item.type == 'year-month' ||
189
+ item.type == 'month-day' ||
190
+ item.type == 'time' ||
191
+ item.type == 'datetimeSecond' ||
192
+ item.type == 'datetime' ||
193
+ item.type == 'datehour'
194
+ "
195
+ v-bind="exclAttribute({ data: item, attrs: 'width' })"
196
+ v-model="scope.row[item.field]"
197
+ hideLabel
198
+ :joinStr="item.joinStr || '-'"
199
+ @confirm="
200
+ value => {
201
+ handleChange({
202
+ name: item.field || item.prop,
203
+ value: value,
204
+ data: scope.row
205
+ });
206
+ }
207
+ "
208
+ />
209
+ <em-radio-group
210
+ 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)"
217
+ @change="
218
+ value => {
219
+ handleChange({
220
+ name: item.field || item.prop,
221
+ value: value,
222
+ data: scope.row,
223
+ type: item.type
224
+ });
225
+ }
226
+ "
227
+ />
228
+ <em-checkbox-group
229
+ v-else-if="item.type === 'checkbox'"
230
+ 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)"
236
+ @change="
237
+ value => {
238
+ handleChange({
239
+ name: item.field || item.prop,
240
+ value: value,
241
+ data: scope.row,
242
+ type: item.type
243
+ });
244
+ }
245
+ "
246
+ />
247
+ <em-switch
248
+ v-else-if="item.type === 'switch'"
249
+ v-bind="exclAttribute({ data: item, attrs: 'width' })"
250
+ v-model="scope.row[item.field]"
251
+ @change="
252
+ value => {
253
+ handleChange({
254
+ name: item.field || item.prop,
255
+ value: value,
256
+ data: scope.row
257
+ });
258
+ }
259
+ "
260
+ />
261
+ <em-selector
262
+ v-else-if="item.type == 'selector'"
263
+ v-bind="exclAttribute({ data: item, attrs: 'width' })"
264
+ v-model="scope.row[item.field]"
265
+ :label="item.title"
266
+ hide-label
267
+ @change="
268
+ value => {
269
+ handleChange({
270
+ name: item.field || item.prop,
271
+ value: value.list,
272
+ data: scope.row
273
+ });
274
+ }
275
+ "
276
+ />
277
+ <!-- <el-form-item
270
278
  :name="name"
271
279
  :prop="item.field"
272
280
  :rules="item.rules"
@@ -576,11 +584,15 @@
576
584
  >
577
585
  <!-- {{ item.render(scope.row) }} -->
578
586
  </expand-dom>
579
- <template v-else>{{
580
- item.formatDate
581
- ? formatDate(scope.row[item.field || item.prop], item.formatDate)
582
- : getValue(scope.row)
583
- }}</template>
587
+ <template v-else
588
+ ><div
589
+ v-html="
590
+ item.formatDate
591
+ ? formatDate(scope.row[item.field || item.prop], item.formatDate)
592
+ : getValue(scope.row)
593
+ "
594
+ ></div
595
+ ></template>
584
596
  </template>
585
597
  </el-table-column>
586
598
  </template>
@@ -588,7 +600,9 @@
588
600
  <script>
589
601
  import { TableColumn } from 'element-ui';
590
602
  import util from 'eoss-mobile/src/utils/util';
603
+ import { findSysCode } from '../../../src/config/api';
591
604
  import tableMixin from './mixins/table';
605
+ import request from '../../../src/utils/http.js';
592
606
  export default {
593
607
  name: 'EmTableColumn',
594
608
  components: { TableColumn },
@@ -616,10 +630,22 @@ export default {
616
630
  },
617
631
  data() {
618
632
  return {
619
- show: true
633
+ show: true,
634
+ isSelect: false,
635
+ selectStr: '',
636
+ optionList: {}
620
637
  };
621
638
  },
622
-
639
+ mounted() {
640
+ const { field, prop, name, labelKey, valueKey, sysAppCode } = this.item;
641
+ this.selectStr.indexOf(sysAppCode) != -1 && (this.isSelect = false);
642
+ if (sysAppCode && !this.isSelect) {
643
+ this.optionList[name || field || prop] = [];
644
+ this.getSelectValue(this.item);
645
+ this.selectStr += sysAppCode;
646
+ this.isSelect = true;
647
+ }
648
+ },
623
649
  computed: {
624
650
  newOptionData(field) {
625
651
  let data = JSON.parse(JSON.stringify(this.optionData));
@@ -629,9 +655,26 @@ export default {
629
655
  }
630
656
  },
631
657
  methods: {
632
- handleFailed(val){
633
- console.log(this.$refs.emInput,'Failed')
634
- console.log(this.$refs,'Failed')
658
+ getSelectValue(item) {
659
+ let params = {
660
+ url: item.url || findSysCode,
661
+ type: item.method || 'get',
662
+ params: {
663
+ ccCode: item.sysAppCode,
664
+ pageIndex: 1,
665
+ ...item.param
666
+ }
667
+ };
668
+ request(params).then(res => {
669
+ const { data, status } = res;
670
+ if (status === 'success') {
671
+ this.optionList[item.name || item.field || item.prop] = data;
672
+ this.show = false;
673
+ setTimeout(() => {
674
+ this.show = true;
675
+ }, 0);
676
+ }
677
+ });
635
678
  },
636
679
  getValue(row) {
637
680
  let str;
@@ -661,6 +704,36 @@ export default {
661
704
  str = val[0][labelKey || 'name'];
662
705
  }
663
706
  }
707
+ } else if (type === 'select') {
708
+ const {
709
+ name,
710
+ labelKey,
711
+ field,
712
+ prop,
713
+ valueKey,
714
+ optionData
715
+ } = this.item;
716
+ if (this.optionList[name || field || prop]) {
717
+ let value = this.optionList[name || field || prop].filter(
718
+ x => x[valueKey || 'cciValue'] === row[name || field || prop]
719
+ );
720
+ if (value.length > 0) {
721
+ str = value[0][labelKey || 'shortName'];
722
+ } else {
723
+ str = '-';
724
+ }
725
+ } else if (optionData) {
726
+ let value = optionData.filter(
727
+ x => x[valueKey || 'cciValue'] === row[name || field || prop]
728
+ );
729
+ if (value.length > 0) {
730
+ str = value[0][labelKey || 'shortName'];
731
+ } else {
732
+ str = '-';
733
+ }
734
+ } else {
735
+ str = row[name || field || prop];
736
+ }
664
737
  } else if (typeof row[field || prop] == 'string') {
665
738
  str = row[field || prop];
666
739
  } else if (type == 'number') {
@@ -672,8 +745,8 @@ export default {
672
745
  ) {
673
746
  str = '';
674
747
  } else {
675
- str = row[field || prop];
676
- // str = row[field || prop] ? '是' : '否';
748
+ // str = row[field || prop];
749
+ str = row[field || prop] ? '是' : '否';
677
750
  }
678
751
  }
679
752
  return str;