eoss-ui 0.6.67 → 0.6.68

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 +663 -254
  2. package/lib/eoss-ui.common.js +1317 -902
  3. package/lib/flow-list.js +158 -175
  4. package/lib/flow.js +280 -280
  5. package/lib/index.js +1 -1
  6. package/lib/login.js +58 -35
  7. package/lib/main.js +132 -132
  8. package/lib/qr-code.js +13 -13
  9. package/lib/theme-chalk/index.css +1 -1
  10. package/lib/theme-chalk/login.css +1 -1
  11. package/package.json +160 -160
  12. package/packages/.DS_Store +0 -0
  13. package/packages/autocomplete/.DS_Store +0 -0
  14. package/packages/button/index.js +5 -5
  15. package/packages/button/src/main.vue +418 -418
  16. package/packages/button-group/index.js +5 -5
  17. package/packages/button-group/src/main.vue +298 -298
  18. package/packages/calendar/index.js +5 -5
  19. package/packages/calogin/.DS_Store +0 -0
  20. package/packages/calogin/index.js +5 -5
  21. package/packages/calogin/src/main.vue +368 -131
  22. package/packages/calogin/src/plugin.js +915 -748
  23. package/packages/card/index.js +5 -5
  24. package/packages/card/src/main.vue +156 -156
  25. package/packages/cascader/index.js +5 -5
  26. package/packages/cascader/src/main.vue +168 -168
  27. package/packages/checkbox-group/index.js +5 -5
  28. package/packages/checkbox-group/src/main.vue +333 -333
  29. package/packages/clients/index.js +5 -5
  30. package/packages/clients/src/main.vue +151 -151
  31. package/packages/data-table/index.js +5 -5
  32. package/packages/data-table/src/children.vue +39 -39
  33. package/packages/data-table/src/column.vue +989 -989
  34. package/packages/data-table/src/main.vue +1822 -1822
  35. package/packages/data-table/src/sizer.vue +195 -195
  36. package/packages/data-table-form/index.js +5 -5
  37. package/packages/data-table-form/src/checkbox.vue +101 -101
  38. package/packages/data-table-form/src/colgroup.vue +17 -17
  39. package/packages/data-table-form/src/main.vue +181 -181
  40. package/packages/data-table-form/src/radio.vue +65 -65
  41. package/packages/data-table-form/src/table.vue +233 -233
  42. package/packages/data-table-form/src/tbody.vue +336 -336
  43. package/packages/data-table-form/src/thead.vue +68 -68
  44. package/packages/date-picker/.DS_Store +0 -0
  45. package/packages/date-picker/index.js +5 -5
  46. package/packages/date-picker/src/.DS_Store +0 -0
  47. package/packages/date-picker/src/main.vue +236 -236
  48. package/packages/dialog/index.js +5 -5
  49. package/packages/enable-drag/index.js +5 -5
  50. package/packages/enterprise/index.js +5 -5
  51. package/packages/enterprise/src/main.vue +66 -66
  52. package/packages/error-page/index.js +5 -5
  53. package/packages/error-page/src/main.vue +44 -44
  54. package/packages/flow/.DS_Store +0 -0
  55. package/packages/flow/index.js +5 -5
  56. package/packages/flow/src/component/Circulate.vue +351 -351
  57. package/packages/flow/src/component/CommonOpinions.vue +346 -346
  58. package/packages/flow/src/component/CustomPreset.vue +322 -322
  59. package/packages/flow/src/component/FileList.vue +99 -99
  60. package/packages/flow/src/component/Preset.vue +255 -255
  61. package/packages/flow/src/component/SendMsg.vue +241 -241
  62. package/packages/flow/src/component/TimeLimit.vue +190 -190
  63. package/packages/flow/src/component/taskUnionExamine.vue +619 -619
  64. package/packages/flow/src/form.vue +121 -121
  65. package/packages/flow/src/freeStartFlow.vue +2843 -2843
  66. package/packages/flow/src/main.vue +3367 -3367
  67. package/packages/flow/src/processForm.vue +1091 -1091
  68. package/packages/flow/src/processReject.vue +294 -294
  69. package/packages/flow/src/reset.vue +905 -905
  70. package/packages/flow/src/startTaskRead.vue +659 -659
  71. package/packages/flow/src/supervise.vue +149 -149
  72. package/packages/flow/src/table.vue +58 -58
  73. package/packages/flow-group/index.js +5 -5
  74. package/packages/flow-group/src/main.vue +688 -688
  75. package/packages/flow-list/.DS_Store +0 -0
  76. package/packages/flow-list/index.js +5 -5
  77. package/packages/flow-list/src/main.vue +1738 -1757
  78. package/packages/form/index.js +5 -5
  79. package/packages/form/src/main.vue +3581 -3581
  80. package/packages/form/src/table.vue +1426 -1426
  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 +2009 -1988
  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 +462 -462
  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 +83 -83
  113. package/packages/main/src/simplicity/handler.vue +259 -259
  114. package/packages/main/src/simplicity/index.vue +2089 -2089
  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 +257 -257
  122. package/packages/main/src/simplicity/userinfo.vue +312 -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/index.js +5 -5
  149. package/packages/selector/src/main.vue +687 -687
  150. package/packages/selector-panel/index.js +5 -5
  151. package/packages/selector-panel/src/main.vue +1027 -1027
  152. package/packages/selector-panel/src/selection.vue +177 -177
  153. package/packages/selector-panel/src/tree.vue +129 -129
  154. package/packages/sizer/index.js +5 -5
  155. package/packages/sizer/src/main.vue +254 -254
  156. package/packages/steps/index.js +5 -5
  157. package/packages/steps/src/main.vue +181 -181
  158. package/packages/switch/index.js +5 -5
  159. package/packages/switch/src/main.vue +154 -154
  160. package/packages/table-form/index.js +5 -5
  161. package/packages/tabs/index.js +5 -5
  162. package/packages/tabs/src/main.vue +788 -788
  163. package/packages/tabs-panel/index.js +5 -5
  164. package/packages/tabs-panel/src/main.vue +29 -29
  165. package/packages/theme-chalk/lib/index.css +1 -1
  166. package/packages/theme-chalk/lib/login.css +1 -1
  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 +343 -343
  185. package/packages/theme-chalk/src/form.scss +496 -496
  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 +1792 -1792
  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 +981 -981
  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 +168 -168
  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 +1347 -1347
  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 +291 -291
  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>