eoss-ui 0.6.87 → 0.6.88

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 (244) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/data-table.js +13 -17
  3. package/lib/eoss-ui.common.js +793 -821
  4. package/lib/flow-list.js +81 -81
  5. package/lib/flow.js +280 -280
  6. package/lib/index.js +1 -1
  7. package/lib/main.js +172 -196
  8. package/lib/qr-code.js +13 -13
  9. package/package.json +160 -160
  10. package/packages/.DS_Store +0 -0
  11. package/packages/autocomplete/.DS_Store +0 -0
  12. package/packages/button/index.js +5 -5
  13. package/packages/button/src/main.vue +418 -418
  14. package/packages/button-group/index.js +5 -5
  15. package/packages/button-group/src/main.vue +298 -298
  16. package/packages/calendar/index.js +5 -5
  17. package/packages/calogin/.DS_Store +0 -0
  18. package/packages/calogin/index.js +5 -5
  19. package/packages/calogin/src/main.vue +412 -412
  20. package/packages/calogin/src/plugin.js +915 -915
  21. package/packages/card/index.js +5 -5
  22. package/packages/card/src/main.vue +156 -156
  23. package/packages/cascader/index.js +5 -5
  24. package/packages/cascader/src/main.vue +168 -168
  25. package/packages/checkbox-group/index.js +5 -5
  26. package/packages/checkbox-group/src/main.vue +333 -333
  27. package/packages/clients/index.js +5 -5
  28. package/packages/clients/src/main.vue +151 -151
  29. package/packages/data-table/index.js +5 -5
  30. package/packages/data-table/src/children.vue +39 -39
  31. package/packages/data-table/src/column.vue +990 -989
  32. package/packages/data-table/src/main.vue +1822 -1822
  33. package/packages/data-table/src/sizer.vue +195 -195
  34. package/packages/data-table-form/index.js +5 -5
  35. package/packages/data-table-form/src/checkbox.vue +101 -101
  36. package/packages/data-table-form/src/colgroup.vue +17 -17
  37. package/packages/data-table-form/src/main.vue +181 -181
  38. package/packages/data-table-form/src/radio.vue +65 -65
  39. package/packages/data-table-form/src/table.vue +233 -233
  40. package/packages/data-table-form/src/tbody.vue +336 -336
  41. package/packages/data-table-form/src/thead.vue +68 -68
  42. package/packages/date-picker/.DS_Store +0 -0
  43. package/packages/date-picker/index.js +5 -5
  44. package/packages/date-picker/src/.DS_Store +0 -0
  45. package/packages/date-picker/src/main.vue +236 -236
  46. package/packages/dialog/index.js +5 -5
  47. package/packages/enable-drag/index.js +5 -5
  48. package/packages/enterprise/index.js +5 -5
  49. package/packages/enterprise/src/main.vue +66 -66
  50. package/packages/error-page/index.js +5 -5
  51. package/packages/error-page/src/main.vue +44 -44
  52. package/packages/flow/.DS_Store +0 -0
  53. package/packages/flow/index.js +5 -5
  54. package/packages/flow/src/.DS_Store +0 -0
  55. package/packages/flow/src/component/Circulate.vue +400 -400
  56. package/packages/flow/src/component/CommonOpinions.vue +364 -364
  57. package/packages/flow/src/component/CustomPreset.vue +322 -322
  58. package/packages/flow/src/component/FileList.vue +99 -99
  59. package/packages/flow/src/component/Preset.vue +255 -255
  60. package/packages/flow/src/component/SendMsg.vue +241 -241
  61. package/packages/flow/src/component/TimeLimit.vue +190 -190
  62. package/packages/flow/src/component/taskUnionExamine.vue +640 -640
  63. package/packages/flow/src/form.vue +121 -121
  64. package/packages/flow/src/freeStartFlow.vue +2844 -2844
  65. package/packages/flow/src/main.vue +3657 -3657
  66. package/packages/flow/src/processForm.vue +1245 -1245
  67. package/packages/flow/src/processReject.vue +296 -296
  68. package/packages/flow/src/reset.vue +918 -918
  69. package/packages/flow/src/startTaskRead.vue +684 -684
  70. package/packages/flow/src/supervise.vue +152 -152
  71. package/packages/flow/src/table.vue +58 -58
  72. package/packages/flow-group/index.js +5 -5
  73. package/packages/flow-group/src/main.vue +692 -692
  74. package/packages/flow-list/.DS_Store +0 -0
  75. package/packages/flow-list/index.js +5 -5
  76. package/packages/flow-list/src/main.vue +1770 -1770
  77. package/packages/form/.DS_Store +0 -0
  78. package/packages/form/index.js +5 -5
  79. package/packages/form/src/main.vue +3814 -3814
  80. package/packages/form/src/table.vue +1508 -1508
  81. package/packages/handle-user/index.js +5 -5
  82. package/packages/handle-user/src/main.vue +138 -138
  83. package/packages/handler/index.js +5 -5
  84. package/packages/handler/src/main.vue +493 -493
  85. package/packages/icon/index.js +5 -5
  86. package/packages/icon/src/main.vue +101 -101
  87. package/packages/icons/index.js +5 -5
  88. package/packages/icons/src/main.vue +81 -81
  89. package/packages/input/index.js +5 -5
  90. package/packages/input/src/main.vue +356 -356
  91. package/packages/input-number/index.js +5 -5
  92. package/packages/input-number/src/main.vue +106 -106
  93. package/packages/label/index.js +5 -5
  94. package/packages/label/src/main.vue +457 -457
  95. package/packages/layout/index.js +5 -5
  96. package/packages/layout/src/item.vue +152 -152
  97. package/packages/layout/src/main.vue +31 -31
  98. package/packages/login/.DS_Store +0 -0
  99. package/packages/login/index.js +5 -5
  100. package/packages/login/src/main.vue +1998 -1998
  101. package/packages/login/src/resetPassword.vue +562 -562
  102. package/packages/main/.DS_Store +0 -0
  103. package/packages/main/index.js +5 -5
  104. package/packages/main/src/.DS_Store +0 -0
  105. package/packages/main/src/default/message.vue +249 -249
  106. package/packages/main/src/default/notice.vue +157 -157
  107. package/packages/main/src/default/userinfo.vue +503 -503
  108. package/packages/main/src/public/online.vue +89 -89
  109. package/packages/main/src/public/search.vue +458 -458
  110. package/packages/main/src/public/settings.vue +221 -221
  111. package/packages/main/src/simplicity/apps.vue +388 -388
  112. package/packages/main/src/simplicity/avatar.vue +82 -82
  113. package/packages/main/src/simplicity/handler.vue +259 -259
  114. package/packages/main/src/simplicity/index.vue +2102 -2102
  115. package/packages/main/src/simplicity/lists.vue +84 -84
  116. package/packages/main/src/simplicity/menu-list.vue +135 -135
  117. package/packages/main/src/simplicity/message.vue +259 -259
  118. package/packages/main/src/simplicity/notice.vue +190 -190
  119. package/packages/main/src/simplicity/router-page.vue +45 -45
  120. package/packages/main/src/simplicity/sub-menu.vue +264 -264
  121. package/packages/main/src/simplicity/user.vue +260 -260
  122. package/packages/main/src/simplicity/userinfo.vue +308 -312
  123. package/packages/menu/.DS_Store +0 -0
  124. package/packages/menu/index.js +5 -5
  125. package/packages/menu/src/main.vue +584 -584
  126. package/packages/nav/index.js +5 -5
  127. package/packages/nav/src/main.vue +351 -351
  128. package/packages/notify/index.js +5 -5
  129. package/packages/notify/src/main.vue +538 -538
  130. package/packages/page/index.js +5 -5
  131. package/packages/page/src/main.vue +167 -167
  132. package/packages/pagination/index.js +5 -5
  133. package/packages/pagination/src/main.vue +96 -96
  134. package/packages/player/index.js +5 -5
  135. package/packages/player/src/main.vue +194 -194
  136. package/packages/qr-code/index.js +5 -5
  137. package/packages/qr-code/src/main.vue +170 -170
  138. package/packages/radio-group/index.js +6 -6
  139. package/packages/radio-group/src/main.vue +319 -319
  140. package/packages/retrial-auth/index.js +5 -5
  141. package/packages/retrial-auth/src/main.vue +280 -280
  142. package/packages/scrollbar/.DS_Store +0 -0
  143. package/packages/select/.DS_Store +0 -0
  144. package/packages/select/index.js +5 -5
  145. package/packages/select/src/main.vue +778 -778
  146. package/packages/select-ganged/index.js +5 -5
  147. package/packages/select-ganged/src/main.vue +724 -724
  148. package/packages/selector/.DS_Store +0 -0
  149. package/packages/selector/index.js +5 -5
  150. package/packages/selector/src/main.vue +745 -745
  151. package/packages/selector-panel/.DS_Store +0 -0
  152. package/packages/selector-panel/index.js +5 -5
  153. package/packages/selector-panel/src/main.vue +1027 -1027
  154. package/packages/selector-panel/src/selection.vue +170 -170
  155. package/packages/selector-panel/src/tree.vue +129 -129
  156. package/packages/sizer/index.js +5 -5
  157. package/packages/sizer/src/main.vue +254 -254
  158. package/packages/steps/index.js +5 -5
  159. package/packages/steps/src/main.vue +181 -181
  160. package/packages/switch/index.js +5 -5
  161. package/packages/switch/src/main.vue +154 -154
  162. package/packages/table-form/index.js +5 -5
  163. package/packages/tabs/index.js +5 -5
  164. package/packages/tabs/src/main.vue +788 -788
  165. package/packages/tabs-panel/index.js +5 -5
  166. package/packages/tabs-panel/src/main.vue +29 -29
  167. package/packages/theme-chalk/src/.DS_Store +0 -0
  168. package/packages/theme-chalk/src/base.scss +261 -261
  169. package/packages/theme-chalk/src/button-group.scss +176 -176
  170. package/packages/theme-chalk/src/button.scss +24 -24
  171. package/packages/theme-chalk/src/calendar.scss +113 -113
  172. package/packages/theme-chalk/src/card.scss +99 -99
  173. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  174. package/packages/theme-chalk/src/clients.scss +87 -87
  175. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  176. package/packages/theme-chalk/src/data-table.scss +293 -293
  177. package/packages/theme-chalk/src/date-picker.scss +7 -7
  178. package/packages/theme-chalk/src/dialog.scss +77 -77
  179. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  180. package/packages/theme-chalk/src/enterprise.scss +5 -5
  181. package/packages/theme-chalk/src/error-page.scss +18 -18
  182. package/packages/theme-chalk/src/flow-group.scss +110 -110
  183. package/packages/theme-chalk/src/flow-list.scss +39 -39
  184. package/packages/theme-chalk/src/flow.scss +348 -348
  185. package/packages/theme-chalk/src/form.scss +499 -499
  186. package/packages/theme-chalk/src/handle-user.scss +40 -40
  187. package/packages/theme-chalk/src/handler.scss +143 -143
  188. package/packages/theme-chalk/src/icon.scss +1817 -1817
  189. package/packages/theme-chalk/src/icons.scss +99 -99
  190. package/packages/theme-chalk/src/input.scss +9 -9
  191. package/packages/theme-chalk/src/label.scss +24 -24
  192. package/packages/theme-chalk/src/layout.scss +46 -46
  193. package/packages/theme-chalk/src/login.scss +984 -984
  194. package/packages/theme-chalk/src/main.scss +663 -663
  195. package/packages/theme-chalk/src/menu.scss +222 -222
  196. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  197. package/packages/theme-chalk/src/nav.scss +111 -111
  198. package/packages/theme-chalk/src/page.scss +3 -3
  199. package/packages/theme-chalk/src/pagination.scss +29 -29
  200. package/packages/theme-chalk/src/player.scss +9 -9
  201. package/packages/theme-chalk/src/qr-code.scss +17 -17
  202. package/packages/theme-chalk/src/radio-group.scss +9 -9
  203. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  204. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  205. package/packages/theme-chalk/src/select.scss +8 -8
  206. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  207. package/packages/theme-chalk/src/selector.scss +91 -91
  208. package/packages/theme-chalk/src/simplicity.scss +1355 -1355
  209. package/packages/theme-chalk/src/sizer.scss +36 -36
  210. package/packages/theme-chalk/src/steps.scss +88 -88
  211. package/packages/theme-chalk/src/switch.scss +3 -3
  212. package/packages/theme-chalk/src/table-form.scss +1 -1
  213. package/packages/theme-chalk/src/tabs.scss +87 -87
  214. package/packages/theme-chalk/src/tips.scss +7 -7
  215. package/packages/theme-chalk/src/toolbar.scss +179 -179
  216. package/packages/theme-chalk/src/tree-group.scss +72 -72
  217. package/packages/theme-chalk/src/tree.scss +165 -165
  218. package/packages/theme-chalk/src/upload.scss +172 -172
  219. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  220. package/packages/tips/index.js +5 -5
  221. package/packages/tips/src/main.vue +141 -141
  222. package/packages/toolbar/index.js +5 -5
  223. package/packages/toolbar/src/main.vue +430 -430
  224. package/packages/tree/index.js +5 -5
  225. package/packages/tree-group/index.js +5 -5
  226. package/packages/upload/.DS_Store +0 -0
  227. package/packages/upload/index.js +5 -5
  228. package/packages/upload/src/main.vue +1348 -1348
  229. package/packages/upload/src/picture.js +15 -15
  230. package/packages/wujie/index.js +5 -5
  231. package/packages/wujie/src/main.vue +145 -145
  232. package/packages/wxlogin/index.js +5 -5
  233. package/packages/wxlogin/src/main.vue +128 -128
  234. package/src/.DS_Store +0 -0
  235. package/src/config/api.js +294 -294
  236. package/src/config/image.js +2 -2
  237. package/src/index.js +163 -163
  238. package/src/utils/.DS_Store +0 -0
  239. package/src/utils/bus.js +3 -3
  240. package/src/utils/date-util.js +312 -312
  241. package/src/utils/http.js +50 -50
  242. package/src/utils/rules.js +18 -18
  243. package/src/utils/store.js +21 -21
  244. package/src/utils/webSocket.js +107 -107
@@ -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 '';
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 '';
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>