eoss-ui 0.8.26 → 0.8.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.
Files changed (181) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +796 -796
  3. package/lib/flow.js +256 -256
  4. package/lib/index.js +1 -1
  5. package/lib/main.js +293 -293
  6. package/lib/qr-code.js +13 -13
  7. package/package.json +162 -162
  8. package/packages/button/index.js +5 -5
  9. package/packages/button/src/main.vue +418 -418
  10. package/packages/button-group/index.js +5 -5
  11. package/packages/calendar/index.js +5 -5
  12. package/packages/calogin/index.js +5 -5
  13. package/packages/calogin/src/plugin.js +915 -915
  14. package/packages/card/index.js +5 -5
  15. package/packages/card/src/main.vue +156 -156
  16. package/packages/cascader/index.js +5 -5
  17. package/packages/cascader/src/main.vue +168 -168
  18. package/packages/checkbox-group/index.js +5 -5
  19. package/packages/checkbox-group/src/main.vue +333 -333
  20. package/packages/clients/index.js +5 -5
  21. package/packages/data-table/index.js +5 -5
  22. package/packages/data-table/src/children.vue +46 -46
  23. package/packages/data-table/src/main.vue +1876 -1876
  24. package/packages/data-table/src/sizer.vue +195 -195
  25. package/packages/data-table-form/index.js +5 -5
  26. package/packages/data-table-form/src/checkbox.vue +101 -101
  27. package/packages/data-table-form/src/colgroup.vue +17 -17
  28. package/packages/data-table-form/src/main.vue +181 -181
  29. package/packages/data-table-form/src/radio.vue +65 -65
  30. package/packages/data-table-form/src/table.vue +233 -233
  31. package/packages/data-table-form/src/tbody.vue +336 -336
  32. package/packages/data-table-form/src/thead.vue +68 -68
  33. package/packages/date-picker/index.js +5 -5
  34. package/packages/date-picker/src/main.vue +236 -236
  35. package/packages/dialog/index.js +5 -5
  36. package/packages/enable-drag/index.js +5 -5
  37. package/packages/enterprise/index.js +5 -5
  38. package/packages/enterprise/src/main.vue +66 -66
  39. package/packages/error-page/index.js +5 -5
  40. package/packages/error-page/src/main.vue +44 -44
  41. package/packages/flow/index.js +5 -5
  42. package/packages/flow/src/component/Circulate.vue +420 -420
  43. package/packages/flow/src/component/CustomPreset.vue +324 -324
  44. package/packages/flow/src/component/FreeCirculation.vue +245 -245
  45. package/packages/flow/src/component/Preset.vue +257 -257
  46. package/packages/flow/src/component/TimeLimit.vue +190 -190
  47. package/packages/flow/src/component/taskUnionExamine.vue +763 -763
  48. package/packages/flow/src/freeStartFlow.vue +2898 -2898
  49. package/packages/flow/src/main.vue +4248 -4248
  50. package/packages/flow/src/processForm.vue +1806 -1806
  51. package/packages/flow/src/processReject.vue +311 -311
  52. package/packages/flow/src/reset.vue +952 -952
  53. package/packages/flow/src/startTaskRead.vue +698 -698
  54. package/packages/flow/src/supervise.vue +162 -162
  55. package/packages/flow-group/index.js +5 -5
  56. package/packages/flow-group/src/main.vue +750 -750
  57. package/packages/flow-list/index.js +5 -5
  58. package/packages/form/index.js +5 -5
  59. package/packages/form/src/form-tab-item-render.vue +145 -145
  60. package/packages/handle-user/index.js +5 -5
  61. package/packages/handle-user/src/main.vue +137 -137
  62. package/packages/handler/index.js +5 -5
  63. package/packages/handler/src/main.vue +499 -499
  64. package/packages/icon/index.js +5 -5
  65. package/packages/icons/index.js +5 -5
  66. package/packages/icons/src/main.vue +81 -81
  67. package/packages/input/index.js +5 -5
  68. package/packages/input/src/main.vue +356 -356
  69. package/packages/input-number/index.js +5 -5
  70. package/packages/input-number/src/main.vue +106 -106
  71. package/packages/label/index.js +5 -5
  72. package/packages/label/src/main.vue +457 -457
  73. package/packages/layout/index.js +5 -5
  74. package/packages/layout/src/item.vue +152 -152
  75. package/packages/layout/src/main.vue +31 -31
  76. package/packages/login/index.js +5 -5
  77. package/packages/login/src/main.vue +2088 -2088
  78. package/packages/main/index.js +5 -5
  79. package/packages/main/src/default/message.vue +249 -249
  80. package/packages/main/src/default/notice.vue +157 -157
  81. package/packages/main/src/default/userinfo.vue +513 -513
  82. package/packages/main/src/simplicity/index.vue +2403 -2403
  83. package/packages/main/src/simplicity/lists.vue +84 -84
  84. package/packages/main/src/simplicity/router-page.vue +45 -45
  85. package/packages/main/src/simplicity/userinfo.vue +408 -408
  86. package/packages/main/src/simplicityTop/index.vue +2688 -2688
  87. package/packages/main/src/simplicityTop/userinfo.vue +408 -408
  88. package/packages/menu/index.js +5 -5
  89. package/packages/menu/src/main.vue +597 -597
  90. package/packages/nav/index.js +5 -5
  91. package/packages/notify/index.js +5 -5
  92. package/packages/notify/src/main.vue +538 -538
  93. package/packages/page/index.js +5 -5
  94. package/packages/page/src/main.vue +167 -167
  95. package/packages/pagination/index.js +5 -5
  96. package/packages/pagination/src/main.vue +96 -96
  97. package/packages/player/index.js +5 -5
  98. package/packages/player/src/main.vue +194 -194
  99. package/packages/qr-code/index.js +5 -5
  100. package/packages/qr-code/src/main.vue +170 -170
  101. package/packages/radio-group/index.js +6 -6
  102. package/packages/radio-group/src/main.vue +319 -319
  103. package/packages/retrial-auth/index.js +5 -5
  104. package/packages/retrial-auth/src/main.vue +299 -299
  105. package/packages/select/index.js +5 -5
  106. package/packages/select-ganged/index.js +5 -5
  107. package/packages/select-ganged/src/main.vue +724 -724
  108. package/packages/selector/index.js +5 -5
  109. package/packages/selector-panel/index.js +5 -5
  110. package/packages/selector-panel/src/tree.vue +129 -129
  111. package/packages/sizer/index.js +5 -5
  112. package/packages/sizer/src/main.vue +257 -257
  113. package/packages/steps/index.js +5 -5
  114. package/packages/steps/src/main.vue +181 -181
  115. package/packages/switch/index.js +5 -5
  116. package/packages/table-form/index.js +5 -5
  117. package/packages/tabs/index.js +5 -5
  118. package/packages/tabs/src/main.vue +788 -788
  119. package/packages/tabs-panel/index.js +5 -5
  120. package/packages/tabs-panel/src/main.vue +29 -29
  121. package/packages/theme-chalk/src/base.scss +261 -261
  122. package/packages/theme-chalk/src/button-group.scss +176 -176
  123. package/packages/theme-chalk/src/button.scss +24 -24
  124. package/packages/theme-chalk/src/calendar.scss +113 -113
  125. package/packages/theme-chalk/src/card.scss +99 -99
  126. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  127. package/packages/theme-chalk/src/clients.scss +87 -87
  128. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  129. package/packages/theme-chalk/src/date-picker.scss +7 -7
  130. package/packages/theme-chalk/src/dialog.scss +77 -77
  131. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  132. package/packages/theme-chalk/src/enterprise.scss +5 -5
  133. package/packages/theme-chalk/src/error-page.scss +18 -18
  134. package/packages/theme-chalk/src/flow-group.scss +110 -110
  135. package/packages/theme-chalk/src/flow.scss +376 -376
  136. package/packages/theme-chalk/src/handle-user.scss +40 -40
  137. package/packages/theme-chalk/src/icons.scss +99 -99
  138. package/packages/theme-chalk/src/input.scss +9 -9
  139. package/packages/theme-chalk/src/label.scss +24 -24
  140. package/packages/theme-chalk/src/layout.scss +46 -46
  141. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  142. package/packages/theme-chalk/src/nav.scss +111 -111
  143. package/packages/theme-chalk/src/page.scss +3 -3
  144. package/packages/theme-chalk/src/pagination.scss +29 -29
  145. package/packages/theme-chalk/src/player.scss +9 -9
  146. package/packages/theme-chalk/src/qr-code.scss +17 -17
  147. package/packages/theme-chalk/src/radio-group.scss +9 -9
  148. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  149. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  150. package/packages/theme-chalk/src/select.scss +8 -8
  151. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  152. package/packages/theme-chalk/src/sizer.scss +36 -36
  153. package/packages/theme-chalk/src/steps.scss +88 -88
  154. package/packages/theme-chalk/src/switch.scss +3 -3
  155. package/packages/theme-chalk/src/table-form.scss +1 -1
  156. package/packages/theme-chalk/src/tabs.scss +87 -87
  157. package/packages/theme-chalk/src/tips.scss +7 -7
  158. package/packages/theme-chalk/src/toolbar.scss +179 -179
  159. package/packages/theme-chalk/src/tree-group.scss +72 -72
  160. package/packages/theme-chalk/src/tree.scss +167 -167
  161. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  162. package/packages/tips/index.js +5 -5
  163. package/packages/toolbar/index.js +5 -5
  164. package/packages/toolbar/src/main.vue +430 -430
  165. package/packages/tree/index.js +5 -5
  166. package/packages/tree-group/index.js +5 -5
  167. package/packages/upload/index.js +5 -5
  168. package/packages/upload/src/main.vue +1813 -1813
  169. package/packages/upload/src/picture.js +15 -15
  170. package/packages/wujie/index.js +5 -5
  171. package/packages/wxlogin/index.js +5 -5
  172. package/packages/wxlogin/src/main.vue +128 -128
  173. package/src/config/api.js +356 -356
  174. package/src/config/image.js +2 -2
  175. package/src/index.js +1 -1
  176. package/src/utils/bus.js +3 -3
  177. package/src/utils/date-util.js +312 -312
  178. package/src/utils/http.js +50 -50
  179. package/src/utils/store.js +21 -21
  180. package/src/utils/webSocket.js +107 -107
  181. package/packages/form/src/1.json +0 -17
@@ -1,336 +1,336 @@
1
- <template>
2
- <tbody class="es-data-form-body">
3
- <tr v-for="(items, indexs) in data" :key="indexs">
4
- <td class="numbers" v-if="numbers">{{ indexs + 1 }}</td>
5
- <td v-for="(item, index) in cols" :align="item.align">
6
- <template
7
- v-if="
8
- readonly ||
9
- items.canEdit === false ||
10
- (items.cantEditKey &&
11
- items.cantEditKey.indexOf(item.field || item.prop) > -1)
12
- "
13
- >
14
- <expand-dom
15
- v-if="item.render"
16
- :key="index"
17
- :item="item"
18
- :row="items"
19
- :render="item.render"
20
- ></expand-dom>
21
- <div
22
- class="cell"
23
- :class="{ 'is-textarea': item.type === 'textarea' }"
24
- :key="index"
25
- v-else
26
- >
27
- {{ getLabels(items, item) }}
28
- </div>
29
- </template>
30
- <template v-else>
31
- <eo-radio
32
- v-if="item.type === 'radio'"
33
- v-bind="item"
34
- v-model="items[item.field || item.prop]"
35
- :index="indexs"
36
- :options="options[item.field || item.prop]"
37
- ></eo-radio>
38
- <eo-checkbox
39
- v-if="item.type === 'checkbox'"
40
- v-bind="item"
41
- v-model="items[item.field || item.prop]"
42
- :index="indexs"
43
- :options="options[item.field || item.prop]"
44
- ></eo-checkbox>
45
- <textarea
46
- v-else-if="item.type === 'textarea'"
47
- class="el-textarea__inner"
48
- v-model.lazy="items[item.field]"
49
- @blur="
50
- (event) => {
51
- handleBlur({ item: item, event: event, data: items });
52
- }
53
- "
54
- @focus="
55
- (event) => {
56
- handleFocus({
57
- item: item,
58
- event: event,
59
- data: items
60
- });
61
- }
62
- "
63
- @change="
64
- (value) => {
65
- handleChange({
66
- name: item.field || item.prop,
67
- value: value,
68
- data: items
69
- });
70
- }
71
- "
72
- ></textarea>
73
- <div v-else class="es-input-box">
74
- <div
75
- v-if="item.type === 'select' || item.type === 'selector'"
76
- class="el-input__inner es-select"
77
- :class="{
78
- 'es-select-multiple':
79
- item.type === 'select'
80
- ? item.multiple
81
- : item.multiple !== false
82
- }"
83
- @click="
84
- (event) => {
85
- handeClick({ item: item, event: event, data: items });
86
- }
87
- "
88
- >
89
- <template
90
- v-if="
91
- item.type === 'select'
92
- ? item.multiple
93
- : item.multiple !== false
94
- "
95
- >
96
- <template v-if="item.collapseTags">
97
- <span class="el-tag el-tag--info el-tag--small el-tag--light">
98
- <span class="el-select__tags-text">{{
99
- showLabel(getLabels(items, item, true)[0], item.labelKey)
100
- }}</span>
101
- <i
102
- class="el-tag__close el-icon-close"
103
- @click.stop="
104
- handleDelete(
105
- items,
106
- item,
107
- 0,
108
- getLabels(items, item, true)[0]
109
- )
110
- "
111
- ></i
112
- ></span>
113
- <span
114
- class="el-tag el-tag--info el-tag--small el-tag--light"
115
- v-if="getLabels(items, item, true).length > 1"
116
- >
117
- <span class="el-select__tags-text"
118
- >+ {{ getLabels(items, item, true).length - 1 }}</span
119
- ></span
120
- >
121
- </template>
122
- <template v-else>
123
- <span
124
- class="el-tag el-tag--info el-tag--small el-tag--light"
125
- v-for="(ele, x) in getLabels(items, item, true)"
126
- :key="x"
127
- >
128
- <span class="el-select__tags-text">{{
129
- showLabel(ele, item.labelKey)
130
- }}</span>
131
- <i
132
- class="el-tag__close el-icon-close"
133
- @click.stop="handleDelete(items, item, x, ele)"
134
- ></i>
135
- </span>
136
- </template>
137
- </template>
138
- <template v-else>
139
- {{ getLabels(items, item) }}
140
- </template>
141
- </div>
142
- <input
143
- v-else
144
- class="el-input__inner"
145
- :readonly="item.type && item.type !== 'text'"
146
- v-model.lazy="items[item.field]"
147
- @click="
148
- (event) => {
149
- handeClick({ item: item, event: event, data: items });
150
- }
151
- "
152
- @blur="
153
- (event) => {
154
- handleBlur({ item: item, event: event, data: items });
155
- }
156
- "
157
- @focus="
158
- (event) => {
159
- handleFocus({
160
- item: item,
161
- event: event,
162
- data: items
163
- });
164
- }
165
- "
166
- @change="
167
- (value) => {
168
- handleChange({
169
- name: item.field || item.prop,
170
- value: value,
171
- data: items
172
- });
173
- }
174
- "
175
- />
176
- </div>
177
- </template>
178
- </td>
179
- </tr>
180
- </tbody>
181
- </template>
182
- <script>
183
- // import rules from 'eoss-ui/src/utils/rules.js';
184
- import util from 'eoss-ui/src/utils/util';
185
- import eoRadio from './radio.vue';
186
- import eoCheckbox from './checkbox.vue';
187
- export default {
188
- name: 'EoTbody',
189
- inject: ['eoTable'],
190
- components: {
191
- [eoRadio.name]: eoRadio,
192
- [eoCheckbox.name]: eoCheckbox,
193
- expandDom: {
194
- functional: true,
195
- props: {
196
- item: Object,
197
- row: Object,
198
- render: [Function, String]
199
- },
200
- render: (h, ctx) => {
201
- if (typeof ctx.props.render == 'string') {
202
- try {
203
- return util.toFunction(ctx.props.render)(h, params);
204
- } catch (error) {
205
- throw error;
206
- }
207
- }
208
- return ctx.props.render(h, ctx.props.item, ctx.props.row);
209
- }
210
- }
211
- },
212
- props: {
213
- numbers: Boolean,
214
- readonly: Boolean,
215
- cols: Array,
216
- data: Array,
217
- options: Object
218
- },
219
- methods: {
220
- handleBlur(data) {
221
- this.$emit('formBlur', data);
222
- this.$emit('form-blur', data);
223
- },
224
- handleFocus(data) {
225
- this.$emit('formFocus', data);
226
- this.$emit('form-focus', data);
227
- },
228
- handleChange(data) {
229
- this.$emit('formChange', data);
230
- this.$emit('form-change', data);
231
- },
232
- handeClick(res) {
233
- let { item, data, event } = res;
234
- let style = event.target.getBoundingClientRect();
235
- this.eoTable.setStyle(style, data, item.field || item.prop);
236
- let type =
237
- item.type == 'date' ||
238
- item.type == 'year' ||
239
- item.type == 'month' ||
240
- item.type == 'date' ||
241
- item.type == 'dates' ||
242
- item.type == 'week' ||
243
- item.type == 'datetime' ||
244
- item.type == 'datetimerange' ||
245
- item.type == 'daterange' ||
246
- item.type == 'monthrange' ||
247
- item.type == 'quarter' ||
248
- item.type == 'halfyear'
249
- ? 'date'
250
- : item.type;
251
- this.eoTable.changeData(type, data[item.field || item.prop]);
252
- },
253
- getLabels(data, col, multiple) {
254
- let value = data[col.field || col.prop];
255
- if (col.label === false) {
256
- return Array.isArray(value) ? value.join(',') : value;
257
- }
258
- let option = this.options[col.field || col.prop];
259
- if (util.isObject(value)) {
260
- if (multiple) {
261
- return [value];
262
- }
263
- return (
264
- value[col.labelKey] ||
265
- value['name'] ||
266
- value['label'] ||
267
- value['showname']
268
- );
269
- } else if (Array.isArray(value)) {
270
- let label = value.map((item) => {
271
- if (util.isObject(item)) {
272
- if (multiple) {
273
- return item;
274
- }
275
- return (
276
- item[col.labelKey] || item.name || item.label || item.showname
277
- );
278
- } else {
279
- if (option) {
280
- let str = this.getLabel(item, option, col, multiple);
281
- if (str) {
282
- return str;
283
- }
284
- } else {
285
- return item;
286
- }
287
- }
288
- });
289
- return multiple ? label : label.join(',');
290
- } else {
291
- if (option) {
292
- return this.getLabel(value, option, col, multiple);
293
- } else {
294
- if (multiple) {
295
- return [value];
296
- }
297
- return value;
298
- }
299
- }
300
- },
301
- getLabel(value, option, col, multiple) {
302
- for (let i = 0; i < option.length; i++) {
303
- let item = option[i];
304
- if (value == item) {
305
- return value;
306
- }
307
- if (value == item[col.valueKey] || value == item.value) {
308
- if (multiple) {
309
- return item;
310
- }
311
- return item[col.labelKey] || item.name || item.label || item.showname;
312
- }
313
- }
314
- return value;
315
- },
316
- showLabel(res, labelKey) {
317
- return typeof res === 'string'
318
- ? res
319
- : res[labelKey] || res.name || res.label || res.showname;
320
- },
321
- handleDelete(data, col, index, res) {
322
- let value = data[col.field];
323
- value = value.filter((item) => {
324
- let target = util.isObject(item)
325
- ? item[col.labelKey] || item.name || item.label || item.showname
326
- : item;
327
- let val = util.isObject(res)
328
- ? res[col.labelKey] || res.name || res.label || res.showname
329
- : res;
330
- return target != val;
331
- });
332
- data[col.field] = value;
333
- }
334
- }
335
- };
336
- </script>
1
+ <template>
2
+ <tbody class="es-data-form-body">
3
+ <tr v-for="(items, indexs) in data" :key="indexs">
4
+ <td class="numbers" v-if="numbers">{{ indexs + 1 }}</td>
5
+ <td v-for="(item, index) in cols" :align="item.align">
6
+ <template
7
+ v-if="
8
+ readonly ||
9
+ items.canEdit === false ||
10
+ (items.cantEditKey &&
11
+ items.cantEditKey.indexOf(item.field || item.prop) > -1)
12
+ "
13
+ >
14
+ <expand-dom
15
+ v-if="item.render"
16
+ :key="index"
17
+ :item="item"
18
+ :row="items"
19
+ :render="item.render"
20
+ ></expand-dom>
21
+ <div
22
+ class="cell"
23
+ :class="{ 'is-textarea': item.type === 'textarea' }"
24
+ :key="index"
25
+ v-else
26
+ >
27
+ {{ getLabels(items, item) }}
28
+ </div>
29
+ </template>
30
+ <template v-else>
31
+ <eo-radio
32
+ v-if="item.type === 'radio'"
33
+ v-bind="item"
34
+ v-model="items[item.field || item.prop]"
35
+ :index="indexs"
36
+ :options="options[item.field || item.prop]"
37
+ ></eo-radio>
38
+ <eo-checkbox
39
+ v-if="item.type === 'checkbox'"
40
+ v-bind="item"
41
+ v-model="items[item.field || item.prop]"
42
+ :index="indexs"
43
+ :options="options[item.field || item.prop]"
44
+ ></eo-checkbox>
45
+ <textarea
46
+ v-else-if="item.type === 'textarea'"
47
+ class="el-textarea__inner"
48
+ v-model.lazy="items[item.field]"
49
+ @blur="
50
+ (event) => {
51
+ handleBlur({ item: item, event: event, data: items });
52
+ }
53
+ "
54
+ @focus="
55
+ (event) => {
56
+ handleFocus({
57
+ item: item,
58
+ event: event,
59
+ data: items
60
+ });
61
+ }
62
+ "
63
+ @change="
64
+ (value) => {
65
+ handleChange({
66
+ name: item.field || item.prop,
67
+ value: value,
68
+ data: items
69
+ });
70
+ }
71
+ "
72
+ ></textarea>
73
+ <div v-else class="es-input-box">
74
+ <div
75
+ v-if="item.type === 'select' || item.type === 'selector'"
76
+ class="el-input__inner es-select"
77
+ :class="{
78
+ 'es-select-multiple':
79
+ item.type === 'select'
80
+ ? item.multiple
81
+ : item.multiple !== false
82
+ }"
83
+ @click="
84
+ (event) => {
85
+ handeClick({ item: item, event: event, data: items });
86
+ }
87
+ "
88
+ >
89
+ <template
90
+ v-if="
91
+ item.type === 'select'
92
+ ? item.multiple
93
+ : item.multiple !== false
94
+ "
95
+ >
96
+ <template v-if="item.collapseTags">
97
+ <span class="el-tag el-tag--info el-tag--small el-tag--light">
98
+ <span class="el-select__tags-text">{{
99
+ showLabel(getLabels(items, item, true)[0], item.labelKey)
100
+ }}</span>
101
+ <i
102
+ class="el-tag__close el-icon-close"
103
+ @click.stop="
104
+ handleDelete(
105
+ items,
106
+ item,
107
+ 0,
108
+ getLabels(items, item, true)[0]
109
+ )
110
+ "
111
+ ></i
112
+ ></span>
113
+ <span
114
+ class="el-tag el-tag--info el-tag--small el-tag--light"
115
+ v-if="getLabels(items, item, true).length > 1"
116
+ >
117
+ <span class="el-select__tags-text"
118
+ >+ {{ getLabels(items, item, true).length - 1 }}</span
119
+ ></span
120
+ >
121
+ </template>
122
+ <template v-else>
123
+ <span
124
+ class="el-tag el-tag--info el-tag--small el-tag--light"
125
+ v-for="(ele, x) in getLabels(items, item, true)"
126
+ :key="x"
127
+ >
128
+ <span class="el-select__tags-text">{{
129
+ showLabel(ele, item.labelKey)
130
+ }}</span>
131
+ <i
132
+ class="el-tag__close el-icon-close"
133
+ @click.stop="handleDelete(items, item, x, ele)"
134
+ ></i>
135
+ </span>
136
+ </template>
137
+ </template>
138
+ <template v-else>
139
+ {{ getLabels(items, item) }}
140
+ </template>
141
+ </div>
142
+ <input
143
+ v-else
144
+ class="el-input__inner"
145
+ :readonly="item.type && item.type !== 'text'"
146
+ v-model.lazy="items[item.field]"
147
+ @click="
148
+ (event) => {
149
+ handeClick({ item: item, event: event, data: items });
150
+ }
151
+ "
152
+ @blur="
153
+ (event) => {
154
+ handleBlur({ item: item, event: event, data: items });
155
+ }
156
+ "
157
+ @focus="
158
+ (event) => {
159
+ handleFocus({
160
+ item: item,
161
+ event: event,
162
+ data: items
163
+ });
164
+ }
165
+ "
166
+ @change="
167
+ (value) => {
168
+ handleChange({
169
+ name: item.field || item.prop,
170
+ value: value,
171
+ data: items
172
+ });
173
+ }
174
+ "
175
+ />
176
+ </div>
177
+ </template>
178
+ </td>
179
+ </tr>
180
+ </tbody>
181
+ </template>
182
+ <script>
183
+ // import rules from 'eoss-ui/src/utils/rules.js';
184
+ import util from 'eoss-ui/src/utils/util';
185
+ import eoRadio from './radio.vue';
186
+ import eoCheckbox from './checkbox.vue';
187
+ export default {
188
+ name: 'EoTbody',
189
+ inject: ['eoTable'],
190
+ components: {
191
+ [eoRadio.name]: eoRadio,
192
+ [eoCheckbox.name]: eoCheckbox,
193
+ expandDom: {
194
+ functional: true,
195
+ props: {
196
+ item: Object,
197
+ row: Object,
198
+ render: [Function, String]
199
+ },
200
+ render: (h, ctx) => {
201
+ if (typeof ctx.props.render == 'string') {
202
+ try {
203
+ return util.toFunction(ctx.props.render)(h, params);
204
+ } catch (error) {
205
+ throw error;
206
+ }
207
+ }
208
+ return ctx.props.render(h, ctx.props.item, ctx.props.row);
209
+ }
210
+ }
211
+ },
212
+ props: {
213
+ numbers: Boolean,
214
+ readonly: Boolean,
215
+ cols: Array,
216
+ data: Array,
217
+ options: Object
218
+ },
219
+ methods: {
220
+ handleBlur(data) {
221
+ this.$emit('formBlur', data);
222
+ this.$emit('form-blur', data);
223
+ },
224
+ handleFocus(data) {
225
+ this.$emit('formFocus', data);
226
+ this.$emit('form-focus', data);
227
+ },
228
+ handleChange(data) {
229
+ this.$emit('formChange', data);
230
+ this.$emit('form-change', data);
231
+ },
232
+ handeClick(res) {
233
+ let { item, data, event } = res;
234
+ let style = event.target.getBoundingClientRect();
235
+ this.eoTable.setStyle(style, data, item.field || item.prop);
236
+ let type =
237
+ item.type == 'date' ||
238
+ item.type == 'year' ||
239
+ item.type == 'month' ||
240
+ item.type == 'date' ||
241
+ item.type == 'dates' ||
242
+ item.type == 'week' ||
243
+ item.type == 'datetime' ||
244
+ item.type == 'datetimerange' ||
245
+ item.type == 'daterange' ||
246
+ item.type == 'monthrange' ||
247
+ item.type == 'quarter' ||
248
+ item.type == 'halfyear'
249
+ ? 'date'
250
+ : item.type;
251
+ this.eoTable.changeData(type, data[item.field || item.prop]);
252
+ },
253
+ getLabels(data, col, multiple) {
254
+ let value = data[col.field || col.prop];
255
+ if (col.label === false) {
256
+ return Array.isArray(value) ? value.join(',') : value;
257
+ }
258
+ let option = this.options[col.field || col.prop];
259
+ if (util.isObject(value)) {
260
+ if (multiple) {
261
+ return [value];
262
+ }
263
+ return (
264
+ value[col.labelKey] ||
265
+ value['name'] ||
266
+ value['label'] ||
267
+ value['showname']
268
+ );
269
+ } else if (Array.isArray(value)) {
270
+ let label = value.map((item) => {
271
+ if (util.isObject(item)) {
272
+ if (multiple) {
273
+ return item;
274
+ }
275
+ return (
276
+ item[col.labelKey] || item.name || item.label || item.showname
277
+ );
278
+ } else {
279
+ if (option) {
280
+ let str = this.getLabel(item, option, col, multiple);
281
+ if (str) {
282
+ return str;
283
+ }
284
+ } else {
285
+ return item;
286
+ }
287
+ }
288
+ });
289
+ return multiple ? label : label.join(',');
290
+ } else {
291
+ if (option) {
292
+ return this.getLabel(value, option, col, multiple);
293
+ } else {
294
+ if (multiple) {
295
+ return [value];
296
+ }
297
+ return value;
298
+ }
299
+ }
300
+ },
301
+ getLabel(value, option, col, multiple) {
302
+ for (let i = 0; i < option.length; i++) {
303
+ let item = option[i];
304
+ if (value == item) {
305
+ return value;
306
+ }
307
+ if (value == item[col.valueKey] || value == item.value) {
308
+ if (multiple) {
309
+ return item;
310
+ }
311
+ return item[col.labelKey] || item.name || item.label || item.showname;
312
+ }
313
+ }
314
+ return value;
315
+ },
316
+ showLabel(res, labelKey) {
317
+ return typeof res === 'string'
318
+ ? res
319
+ : res[labelKey] || res.name || res.label || res.showname;
320
+ },
321
+ handleDelete(data, col, index, res) {
322
+ let value = data[col.field];
323
+ value = value.filter((item) => {
324
+ let target = util.isObject(item)
325
+ ? item[col.labelKey] || item.name || item.label || item.showname
326
+ : item;
327
+ let val = util.isObject(res)
328
+ ? res[col.labelKey] || res.name || res.label || res.showname
329
+ : res;
330
+ return target != val;
331
+ });
332
+ data[col.field] = value;
333
+ }
334
+ }
335
+ };
336
+ </script>