eoss-ui 0.7.72 → 0.7.73

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 (219) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +256 -255
  3. package/lib/flow.js +4 -3
  4. package/lib/index.js +1 -1
  5. package/lib/qr-code.js +13 -13
  6. package/lib/theme-chalk/index.css +1 -1
  7. package/lib/theme-chalk/login.css +1 -1
  8. package/package.json +1 -1
  9. package/packages/button/index.js +5 -5
  10. package/packages/button/src/main.vue +418 -418
  11. package/packages/button-group/index.js +5 -5
  12. package/packages/calendar/index.js +5 -5
  13. package/packages/calogin/index.js +5 -5
  14. package/packages/calogin/src/plugin.js +915 -915
  15. package/packages/card/index.js +5 -5
  16. package/packages/card/src/main.vue +156 -156
  17. package/packages/cascader/index.js +5 -5
  18. package/packages/cascader/src/main.vue +168 -168
  19. package/packages/checkbox-group/index.js +5 -5
  20. package/packages/checkbox-group/src/main.vue +333 -333
  21. package/packages/clients/index.js +5 -5
  22. package/packages/data-table/index.js +5 -5
  23. package/packages/data-table/src/children.vue +39 -39
  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/TimeLimit.vue +190 -190
  43. package/packages/flow/src/main.vue +3 -2
  44. package/packages/flow/src/table.vue +58 -58
  45. package/packages/flow-group/index.js +5 -5
  46. package/packages/flow-list/index.js +5 -5
  47. package/packages/form/index.js +5 -5
  48. package/packages/handle-user/index.js +5 -5
  49. package/packages/handler/index.js +5 -5
  50. package/packages/icon/index.js +5 -5
  51. package/packages/icons/index.js +5 -5
  52. package/packages/icons/src/main.vue +81 -81
  53. package/packages/input/index.js +5 -5
  54. package/packages/input/src/main.vue +356 -356
  55. package/packages/input-number/index.js +5 -5
  56. package/packages/input-number/src/main.vue +106 -106
  57. package/packages/label/index.js +5 -5
  58. package/packages/label/src/main.vue +457 -457
  59. package/packages/layout/index.js +5 -5
  60. package/packages/layout/src/item.vue +152 -152
  61. package/packages/layout/src/main.vue +31 -31
  62. package/packages/login/index.js +5 -5
  63. package/packages/main/index.js +5 -5
  64. package/packages/main/src/default/message.vue +249 -249
  65. package/packages/main/src/default/notice.vue +157 -157
  66. package/packages/main/src/simplicity/lists.vue +84 -84
  67. package/packages/main/src/simplicity/router-page.vue +45 -45
  68. package/packages/menu/index.js +5 -5
  69. package/packages/nav/index.js +5 -5
  70. package/packages/notify/index.js +5 -5
  71. package/packages/notify/src/main.vue +538 -538
  72. package/packages/page/index.js +5 -5
  73. package/packages/page/src/main.vue +167 -167
  74. package/packages/pagination/index.js +5 -5
  75. package/packages/pagination/src/main.vue +96 -96
  76. package/packages/player/index.js +5 -5
  77. package/packages/player/src/main.vue +194 -194
  78. package/packages/qr-code/index.js +5 -5
  79. package/packages/qr-code/src/main.vue +170 -170
  80. package/packages/radio-group/index.js +6 -6
  81. package/packages/radio-group/src/main.vue +319 -319
  82. package/packages/retrial-auth/index.js +5 -5
  83. package/packages/retrial-auth/src/main.vue +280 -280
  84. package/packages/select/index.js +5 -5
  85. package/packages/select-ganged/index.js +5 -5
  86. package/packages/select-ganged/src/main.vue +724 -724
  87. package/packages/selector/index.js +5 -5
  88. package/packages/selector-panel/index.js +5 -5
  89. package/packages/selector-panel/src/tree.vue +129 -129
  90. package/packages/sizer/index.js +5 -5
  91. package/packages/sizer/src/main.vue +254 -254
  92. package/packages/steps/index.js +5 -5
  93. package/packages/steps/src/main.vue +181 -181
  94. package/packages/switch/index.js +5 -5
  95. package/packages/table-form/index.js +5 -5
  96. package/packages/tabs/index.js +5 -5
  97. package/packages/tabs/src/main.vue +788 -788
  98. package/packages/tabs-panel/index.js +5 -5
  99. package/packages/tabs-panel/src/main.vue +29 -29
  100. package/packages/theme-chalk/lib/base.css +1 -0
  101. package/packages/theme-chalk/lib/button-group.css +1 -0
  102. package/packages/theme-chalk/lib/button.css +1 -0
  103. package/packages/theme-chalk/lib/calendar.css +1 -0
  104. package/packages/theme-chalk/lib/calogin.css +0 -0
  105. package/packages/theme-chalk/lib/card.css +1 -0
  106. package/packages/theme-chalk/lib/cascader.css +0 -0
  107. package/packages/theme-chalk/lib/checkbox-group.css +1 -0
  108. package/packages/theme-chalk/lib/clients.css +1 -0
  109. package/packages/theme-chalk/lib/data-table-form.css +1 -0
  110. package/packages/theme-chalk/lib/data-table.css +1 -0
  111. package/packages/theme-chalk/lib/date-picker.css +1 -0
  112. package/packages/theme-chalk/lib/dialog.css +1 -0
  113. package/packages/theme-chalk/lib/enable-drag.css +1 -0
  114. package/packages/theme-chalk/lib/enterprise.css +1 -0
  115. package/packages/theme-chalk/lib/error-page.css +1 -0
  116. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  117. package/packages/theme-chalk/lib/flow-group.css +1 -0
  118. package/packages/theme-chalk/lib/flow-list.css +1 -0
  119. package/packages/theme-chalk/lib/flow.css +1 -0
  120. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  121. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  122. package/packages/theme-chalk/lib/form.css +1 -0
  123. package/packages/theme-chalk/lib/handle-user.css +1 -0
  124. package/packages/theme-chalk/lib/handler.css +1 -0
  125. package/packages/theme-chalk/lib/icon.css +1 -0
  126. package/packages/theme-chalk/lib/icons.css +1 -0
  127. package/packages/theme-chalk/lib/index.css +1 -0
  128. package/packages/theme-chalk/lib/input-number.css +0 -0
  129. package/packages/theme-chalk/lib/input.css +1 -0
  130. package/packages/theme-chalk/lib/label.css +1 -0
  131. package/packages/theme-chalk/lib/layout.css +1 -0
  132. package/packages/theme-chalk/lib/login.css +1 -0
  133. package/packages/theme-chalk/lib/main.css +1 -0
  134. package/packages/theme-chalk/lib/menu.css +1 -0
  135. package/packages/theme-chalk/lib/nav.css +1 -0
  136. package/packages/theme-chalk/lib/notify.css +0 -0
  137. package/packages/theme-chalk/lib/page.css +1 -0
  138. package/packages/theme-chalk/lib/pagination.css +1 -0
  139. package/packages/theme-chalk/lib/player.css +1 -0
  140. package/packages/theme-chalk/lib/qr-code.css +1 -0
  141. package/packages/theme-chalk/lib/radio-group.css +1 -0
  142. package/packages/theme-chalk/lib/retrial-auth.css +1 -0
  143. package/packages/theme-chalk/lib/select-ganged.css +1 -0
  144. package/packages/theme-chalk/lib/select.css +1 -0
  145. package/packages/theme-chalk/lib/selector-panel.css +1 -0
  146. package/packages/theme-chalk/lib/selector.css +1 -0
  147. package/packages/theme-chalk/lib/simplicity-top.css +1 -0
  148. package/packages/theme-chalk/lib/simplicity.css +1 -0
  149. package/packages/theme-chalk/lib/sizer.css +1 -0
  150. package/packages/theme-chalk/lib/steps.css +1 -0
  151. package/packages/theme-chalk/lib/switch.css +1 -0
  152. package/packages/theme-chalk/lib/table-form.css +0 -0
  153. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  154. package/packages/theme-chalk/lib/tabs.css +1 -0
  155. package/packages/theme-chalk/lib/tips.css +1 -0
  156. package/packages/theme-chalk/lib/toolbar.css +1 -0
  157. package/packages/theme-chalk/lib/tree-group.css +1 -0
  158. package/packages/theme-chalk/lib/tree.css +1 -0
  159. package/packages/theme-chalk/lib/upload.css +1 -0
  160. package/packages/theme-chalk/lib/wujie.css +0 -0
  161. package/packages/theme-chalk/lib/wxlogin.css +1 -0
  162. package/packages/theme-chalk/src/base.scss +261 -261
  163. package/packages/theme-chalk/src/button-group.scss +176 -176
  164. package/packages/theme-chalk/src/button.scss +24 -24
  165. package/packages/theme-chalk/src/calendar.scss +113 -113
  166. package/packages/theme-chalk/src/card.scss +99 -99
  167. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  168. package/packages/theme-chalk/src/clients.scss +87 -87
  169. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  170. package/packages/theme-chalk/src/date-picker.scss +7 -7
  171. package/packages/theme-chalk/src/dialog.scss +77 -77
  172. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  173. package/packages/theme-chalk/src/enterprise.scss +5 -5
  174. package/packages/theme-chalk/src/error-page.scss +18 -18
  175. package/packages/theme-chalk/src/flow-group.scss +110 -110
  176. package/packages/theme-chalk/src/flow-list.scss +39 -39
  177. package/packages/theme-chalk/src/handle-user.scss +40 -40
  178. package/packages/theme-chalk/src/icons.scss +99 -99
  179. package/packages/theme-chalk/src/input.scss +9 -9
  180. package/packages/theme-chalk/src/label.scss +24 -24
  181. package/packages/theme-chalk/src/layout.scss +46 -46
  182. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  183. package/packages/theme-chalk/src/nav.scss +111 -111
  184. package/packages/theme-chalk/src/page.scss +3 -3
  185. package/packages/theme-chalk/src/pagination.scss +29 -29
  186. package/packages/theme-chalk/src/player.scss +9 -9
  187. package/packages/theme-chalk/src/qr-code.scss +17 -17
  188. package/packages/theme-chalk/src/radio-group.scss +9 -9
  189. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  190. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  191. package/packages/theme-chalk/src/select.scss +8 -8
  192. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  193. package/packages/theme-chalk/src/sizer.scss +36 -36
  194. package/packages/theme-chalk/src/steps.scss +88 -88
  195. package/packages/theme-chalk/src/switch.scss +3 -3
  196. package/packages/theme-chalk/src/table-form.scss +1 -1
  197. package/packages/theme-chalk/src/tabs.scss +87 -87
  198. package/packages/theme-chalk/src/tips.scss +7 -7
  199. package/packages/theme-chalk/src/toolbar.scss +179 -179
  200. package/packages/theme-chalk/src/tree-group.scss +72 -72
  201. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  202. package/packages/tips/index.js +5 -5
  203. package/packages/toolbar/index.js +5 -5
  204. package/packages/tree/index.js +5 -5
  205. package/packages/tree-group/index.js +5 -5
  206. package/packages/upload/index.js +5 -5
  207. package/packages/upload/src/picture.js +15 -15
  208. package/packages/wujie/index.js +5 -5
  209. package/packages/wujie/src/main.vue +145 -145
  210. package/packages/wxlogin/index.js +5 -5
  211. package/packages/wxlogin/src/main.vue +128 -128
  212. package/src/config/image.js +2 -2
  213. package/src/index.js +1 -1
  214. package/src/utils/bus.js +3 -3
  215. package/src/utils/date-util.js +312 -312
  216. package/src/utils/http.js +50 -50
  217. package/src/utils/store.js +21 -21
  218. package/src/utils/webSocket.js +107 -107
  219. package/packages/theme-chalk/gulpfile.js +0 -25
@@ -1,356 +1,356 @@
1
- <script>
2
- import { debounce } from 'throttle-debounce';
3
- import util from 'eoss-ui/src/utils/util';
4
- import rules from 'eoss-ui/src/utils/rules.js';
5
- export default {
6
- name: 'EsInput',
7
- componentName: 'EsInput',
8
- inheritAttrs: false,
9
- props: {
10
- value: [String, Number],
11
- rules: [Object, Array],
12
- method: {
13
- type: String,
14
- default: 'get'
15
- },
16
- data: {
17
- type: Array,
18
- default() {
19
- return [];
20
- }
21
- },
22
- label: [Object, String],
23
- url: {
24
- type: String,
25
- default: ''
26
- },
27
- param: {
28
- type: Object,
29
- default() {
30
- return {};
31
- }
32
- },
33
- fetchSuggestions: Function,
34
- focusShow: {
35
- type: Boolean,
36
- default: false
37
- },
38
- display: {
39
- type: Boolean,
40
- default: true
41
- },
42
- readonly: Boolean,
43
- plain: Boolean,
44
- text: [String, Number],
45
- scope: {},
46
- exclude: Boolean
47
- },
48
- watch: {
49
- data: {
50
- immediate: true,
51
- deep: true,
52
- handler(val) {
53
- this.results = val;
54
- }
55
- }
56
- },
57
- data() {
58
- return {
59
- results: []
60
- };
61
- },
62
- computed: {
63
- showLimit() {
64
- if (this.showWordLimit === false) {
65
- return false;
66
- }
67
- if (this.showWordLimit === true) {
68
- return true;
69
- }
70
- if (this.count) {
71
- return true;
72
- }
73
- return false;
74
- },
75
- maxInput() {
76
- if (typeof this.count === 'number') {
77
- return this.count;
78
- }
79
- return this.maxlength;
80
- },
81
- model: {
82
- get() {
83
- return this.value;
84
- },
85
- set(val) {
86
- return val;
87
- }
88
- },
89
- rule() {
90
- if (this.rules) {
91
- if (Array.isArray(this.rules)) {
92
- return this.rules.map((item) => {
93
- if (rules[item.type]) {
94
- return {
95
- pattern: rules[item.type]['pattern'],
96
- message: item.message
97
- ? item.message
98
- : rules[item.type]['message'],
99
- trigger: item.trigger
100
- ? item.trigger
101
- : this.fetchSuggestions || this.url || this.data.length > 0
102
- ? 'change'
103
- : 'blur'
104
- };
105
- }
106
- return item;
107
- });
108
- }
109
- if (rules[this.rules.type]) {
110
- return {
111
- pattern: rules[this.rules.type]['pattern'],
112
- message: this.rules.message
113
- ? this.rules.message
114
- : rules[this.rules.type]['message'],
115
- trigger: this.rules.trigger
116
- ? this.rules.trigger
117
- : this.fetchSuggestions || this.url || this.data.length > 0
118
- ? 'change'
119
- : 'blur'
120
- };
121
- }
122
- return this.rules;
123
- }
124
- return undefined;
125
- }
126
- },
127
- beforeCreate() {
128
- this.getData = debounce(500, (query, callback, isChange) => {
129
- this.getDatas(query, callback, isChange);
130
- });
131
- },
132
- created() {},
133
- mounted() {},
134
- methods: {
135
- getDatas(query, callback, isChange) {
136
- if (typeof this.url && this.results.length === 0) {
137
- util
138
- .ajax({
139
- method: this.method,
140
- url: this.url,
141
- data: this.param,
142
- params: this.param
143
- })
144
- .then((res) => {
145
- if (res.rCode === 0) {
146
- this.results = JSON.parse(JSON.stringify(res.results));
147
- let results = query
148
- ? this.results.filter(this.searchFilter(query))
149
- : this.results;
150
- callback(results);
151
- }
152
- })
153
- .catch((err) => {
154
- if (err.message && err.message !== 'canceled') {
155
- this.$message.error(err.message);
156
- }
157
- });
158
- } else {
159
- let results = query
160
- ? this.results.filter(this.searchFilter(query, isChange))
161
- : this.results;
162
- callback(results);
163
- }
164
- },
165
- searchFilter(query, isChange) {
166
- return (state) => {
167
- if (isChange) {
168
- return state.value.indexOf(query) > -1;
169
- } else {
170
- if (this.exclude) {
171
- return state.value !== query;
172
- } else {
173
- return state.value === query;
174
- }
175
- }
176
- };
177
- },
178
- renderd(doms, h, type) {
179
- if (typeof this.$attrs[type] === 'boolean') {
180
- if (this.$attrs.render) {
181
- if (typeof this.$attrs.render == 'string') {
182
- try {
183
- doms.push(
184
- h(
185
- 'template',
186
- { slot: type },
187
- util.toFunction(this.$attrs.render)(h, this)
188
- )
189
- );
190
- } catch (error) {
191
- throw error;
192
- }
193
- } else {
194
- doms.push(
195
- h('template', { slot: type }, this.$attrs.render(h, this))
196
- );
197
- }
198
- }
199
- } else if (typeof this.$attrs[type] === 'object') {
200
- doms.push(
201
- h(
202
- 'es-button',
203
- {
204
- slot: type,
205
- class: ['el-primeval', this.$attrs[type].class],
206
- props: {
207
- ...this.$attrs[type].props,
208
- size: this.$attrs[type].size
209
- ? this.$attrs[type].size
210
- : type === 'prefix' || type === 'suffix'
211
- ? 'small'
212
- : '',
213
- type: 'primary'
214
- },
215
- attrs: this.$attrs[type].attrs,
216
- domProps: this.$attrs[type].icon
217
- ? { innerHTML: this.$attrs[type].icon }
218
- : {},
219
- on: {
220
- click: () => {
221
- this.$attrs[type].click &&
222
- this.$attrs[type].click(this, this.model, this.scope);
223
- this.$attrs[type].event &&
224
- this.$attrs[type].event(this, this.model, this.scope);
225
- }
226
- }
227
- },
228
- [this.$attrs[type].text]
229
- )
230
- );
231
- } else {
232
- doms.push(h('template', { slot: type }, [this.$attrs[type]]));
233
- }
234
- }
235
- },
236
- render(h) {
237
- if (!this.hide) {
238
- let cls = [];
239
- let doms = [];
240
- if (this.readonly) {
241
- let content = this.model ? this.model : this.text;
242
- if (this.$attrs.disabled && this.$attrs.disabledTips) {
243
- content =
244
- typeof this.$attrs.disabledTips == 'string'
245
- ? this.$attrs.disabledTips
246
- : this.$attrs.placeholder;
247
- }
248
- if (
249
- this.$attrs.type === 'textarea' &&
250
- !this.$attrs.disabled &&
251
- !this.$attrs.disabledTips
252
- ) {
253
- if (this.model) {
254
- content = this.model.replace(RegExp('\\n', 'g'), '<br/>');
255
- content = content.replace(RegExp(' ', 'g'), '&nbsp;');
256
- }
257
- return h('div', {
258
- class: ['es-textarea__inner ', { 'es-plain': this.plain }],
259
- domProps: {
260
- innerHTML: content
261
- }
262
- });
263
- } else {
264
- return h(
265
- 'div',
266
- {
267
- class: [
268
- 'es-input__inner',
269
- {
270
- 'es-plain': this.plain,
271
- 'es-disabled-tips':
272
- this.$attrs.disabled && this.$attrs.disabledTips
273
- }
274
- ]
275
- },
276
- [content]
277
- );
278
- }
279
- }
280
- let { prefix, suffix, prepend, append, ...attrs } = this.$attrs;
281
- if (this.$slots.prefix) {
282
- doms.push(h('template', { slot: 'prefix' }, this.$slots.prefix));
283
- } else if (prefix) {
284
- this.renderd(doms, h, 'prefix');
285
- cls.push('es-input-button-prefix');
286
- }
287
- if (this.$slots.suffix) {
288
- doms.push(h('template', { slot: 'suffix' }, this.$slots.suffix));
289
- } else if (suffix) {
290
- this.renderd(doms, h, 'suffix');
291
- cls.push('es-input-button-suffix');
292
- }
293
- if (this.$slots.prepend) {
294
- doms.push(h('template', { slot: 'prepend' }, this.$slots.prepend));
295
- } else if (prepend) {
296
- this.renderd(doms, h, 'prepend');
297
- }
298
- if (this.$slots.append) {
299
- doms.push(h('template', { slot: 'append' }, this.$slots.append));
300
- } else if (append) {
301
- this.renderd(doms, h, 'append');
302
- }
303
- if (this.fetchSuggestions || this.url || this.data.length > 0) {
304
- return h(
305
- 'el-autocomplete',
306
- {
307
- show: this.display,
308
- props: {
309
- rules: this.rule
310
- },
311
- attrs: {
312
- ...attrs,
313
- fetchSuggestions: this.fetchSuggestions
314
- ? this.fetchSuggestions
315
- : this.getData,
316
- triggerOnFocus: this.focusShow,
317
- value: this.model
318
- },
319
- on: this.$listeners
320
- },
321
- doms
322
- );
323
- }
324
- return h(
325
- 'el-input',
326
- {
327
- class: cls,
328
- props: {
329
- label: this.label
330
- ? typeof this.label === 'string'
331
- ? this.label
332
- : this.label.text
333
- : '',
334
- rules: this.rule,
335
- value: this.model
336
- },
337
- domProps: {
338
- value: this.model
339
- },
340
- attrs: { ...attrs },
341
- on: { ...this.$listeners },
342
- directives: [
343
- {
344
- name: 'show',
345
- value: this.display
346
- }
347
- ]
348
- },
349
- doms
350
- );
351
- } else {
352
- return '';
353
- }
354
- }
355
- };
356
- </script>
1
+ <script>
2
+ import { debounce } from 'throttle-debounce';
3
+ import util from 'eoss-ui/src/utils/util';
4
+ import rules from 'eoss-ui/src/utils/rules.js';
5
+ export default {
6
+ name: 'EsInput',
7
+ componentName: 'EsInput',
8
+ inheritAttrs: false,
9
+ props: {
10
+ value: [String, Number],
11
+ rules: [Object, Array],
12
+ method: {
13
+ type: String,
14
+ default: 'get'
15
+ },
16
+ data: {
17
+ type: Array,
18
+ default() {
19
+ return [];
20
+ }
21
+ },
22
+ label: [Object, String],
23
+ url: {
24
+ type: String,
25
+ default: ''
26
+ },
27
+ param: {
28
+ type: Object,
29
+ default() {
30
+ return {};
31
+ }
32
+ },
33
+ fetchSuggestions: Function,
34
+ focusShow: {
35
+ type: Boolean,
36
+ default: false
37
+ },
38
+ display: {
39
+ type: Boolean,
40
+ default: true
41
+ },
42
+ readonly: Boolean,
43
+ plain: Boolean,
44
+ text: [String, Number],
45
+ scope: {},
46
+ exclude: Boolean
47
+ },
48
+ watch: {
49
+ data: {
50
+ immediate: true,
51
+ deep: true,
52
+ handler(val) {
53
+ this.results = val;
54
+ }
55
+ }
56
+ },
57
+ data() {
58
+ return {
59
+ results: []
60
+ };
61
+ },
62
+ computed: {
63
+ showLimit() {
64
+ if (this.showWordLimit === false) {
65
+ return false;
66
+ }
67
+ if (this.showWordLimit === true) {
68
+ return true;
69
+ }
70
+ if (this.count) {
71
+ return true;
72
+ }
73
+ return false;
74
+ },
75
+ maxInput() {
76
+ if (typeof this.count === 'number') {
77
+ return this.count;
78
+ }
79
+ return this.maxlength;
80
+ },
81
+ model: {
82
+ get() {
83
+ return this.value;
84
+ },
85
+ set(val) {
86
+ return val;
87
+ }
88
+ },
89
+ rule() {
90
+ if (this.rules) {
91
+ if (Array.isArray(this.rules)) {
92
+ return this.rules.map((item) => {
93
+ if (rules[item.type]) {
94
+ return {
95
+ pattern: rules[item.type]['pattern'],
96
+ message: item.message
97
+ ? item.message
98
+ : rules[item.type]['message'],
99
+ trigger: item.trigger
100
+ ? item.trigger
101
+ : this.fetchSuggestions || this.url || this.data.length > 0
102
+ ? 'change'
103
+ : 'blur'
104
+ };
105
+ }
106
+ return item;
107
+ });
108
+ }
109
+ if (rules[this.rules.type]) {
110
+ return {
111
+ pattern: rules[this.rules.type]['pattern'],
112
+ message: this.rules.message
113
+ ? this.rules.message
114
+ : rules[this.rules.type]['message'],
115
+ trigger: this.rules.trigger
116
+ ? this.rules.trigger
117
+ : this.fetchSuggestions || this.url || this.data.length > 0
118
+ ? 'change'
119
+ : 'blur'
120
+ };
121
+ }
122
+ return this.rules;
123
+ }
124
+ return undefined;
125
+ }
126
+ },
127
+ beforeCreate() {
128
+ this.getData = debounce(500, (query, callback, isChange) => {
129
+ this.getDatas(query, callback, isChange);
130
+ });
131
+ },
132
+ created() {},
133
+ mounted() {},
134
+ methods: {
135
+ getDatas(query, callback, isChange) {
136
+ if (typeof this.url && this.results.length === 0) {
137
+ util
138
+ .ajax({
139
+ method: this.method,
140
+ url: this.url,
141
+ data: this.param,
142
+ params: this.param
143
+ })
144
+ .then((res) => {
145
+ if (res.rCode === 0) {
146
+ this.results = JSON.parse(JSON.stringify(res.results));
147
+ let results = query
148
+ ? this.results.filter(this.searchFilter(query))
149
+ : this.results;
150
+ callback(results);
151
+ }
152
+ })
153
+ .catch((err) => {
154
+ if (err.message && err.message !== 'canceled') {
155
+ this.$message.error(err.message);
156
+ }
157
+ });
158
+ } else {
159
+ let results = query
160
+ ? this.results.filter(this.searchFilter(query, isChange))
161
+ : this.results;
162
+ callback(results);
163
+ }
164
+ },
165
+ searchFilter(query, isChange) {
166
+ return (state) => {
167
+ if (isChange) {
168
+ return state.value.indexOf(query) > -1;
169
+ } else {
170
+ if (this.exclude) {
171
+ return state.value !== query;
172
+ } else {
173
+ return state.value === query;
174
+ }
175
+ }
176
+ };
177
+ },
178
+ renderd(doms, h, type) {
179
+ if (typeof this.$attrs[type] === 'boolean') {
180
+ if (this.$attrs.render) {
181
+ if (typeof this.$attrs.render == 'string') {
182
+ try {
183
+ doms.push(
184
+ h(
185
+ 'template',
186
+ { slot: type },
187
+ util.toFunction(this.$attrs.render)(h, this)
188
+ )
189
+ );
190
+ } catch (error) {
191
+ throw error;
192
+ }
193
+ } else {
194
+ doms.push(
195
+ h('template', { slot: type }, this.$attrs.render(h, this))
196
+ );
197
+ }
198
+ }
199
+ } else if (typeof this.$attrs[type] === 'object') {
200
+ doms.push(
201
+ h(
202
+ 'es-button',
203
+ {
204
+ slot: type,
205
+ class: ['el-primeval', this.$attrs[type].class],
206
+ props: {
207
+ ...this.$attrs[type].props,
208
+ size: this.$attrs[type].size
209
+ ? this.$attrs[type].size
210
+ : type === 'prefix' || type === 'suffix'
211
+ ? 'small'
212
+ : '',
213
+ type: 'primary'
214
+ },
215
+ attrs: this.$attrs[type].attrs,
216
+ domProps: this.$attrs[type].icon
217
+ ? { innerHTML: this.$attrs[type].icon }
218
+ : {},
219
+ on: {
220
+ click: () => {
221
+ this.$attrs[type].click &&
222
+ this.$attrs[type].click(this, this.model, this.scope);
223
+ this.$attrs[type].event &&
224
+ this.$attrs[type].event(this, this.model, this.scope);
225
+ }
226
+ }
227
+ },
228
+ [this.$attrs[type].text]
229
+ )
230
+ );
231
+ } else {
232
+ doms.push(h('template', { slot: type }, [this.$attrs[type]]));
233
+ }
234
+ }
235
+ },
236
+ render(h) {
237
+ if (!this.hide) {
238
+ let cls = [];
239
+ let doms = [];
240
+ if (this.readonly) {
241
+ let content = this.model ? this.model : this.text;
242
+ if (this.$attrs.disabled && this.$attrs.disabledTips) {
243
+ content =
244
+ typeof this.$attrs.disabledTips == 'string'
245
+ ? this.$attrs.disabledTips
246
+ : this.$attrs.placeholder;
247
+ }
248
+ if (
249
+ this.$attrs.type === 'textarea' &&
250
+ !this.$attrs.disabled &&
251
+ !this.$attrs.disabledTips
252
+ ) {
253
+ if (this.model) {
254
+ content = this.model.replace(RegExp('\\n', 'g'), '<br/>');
255
+ content = content.replace(RegExp(' ', 'g'), '&nbsp;');
256
+ }
257
+ return h('div', {
258
+ class: ['es-textarea__inner ', { 'es-plain': this.plain }],
259
+ domProps: {
260
+ innerHTML: content
261
+ }
262
+ });
263
+ } else {
264
+ return h(
265
+ 'div',
266
+ {
267
+ class: [
268
+ 'es-input__inner',
269
+ {
270
+ 'es-plain': this.plain,
271
+ 'es-disabled-tips':
272
+ this.$attrs.disabled && this.$attrs.disabledTips
273
+ }
274
+ ]
275
+ },
276
+ [content]
277
+ );
278
+ }
279
+ }
280
+ let { prefix, suffix, prepend, append, ...attrs } = this.$attrs;
281
+ if (this.$slots.prefix) {
282
+ doms.push(h('template', { slot: 'prefix' }, this.$slots.prefix));
283
+ } else if (prefix) {
284
+ this.renderd(doms, h, 'prefix');
285
+ cls.push('es-input-button-prefix');
286
+ }
287
+ if (this.$slots.suffix) {
288
+ doms.push(h('template', { slot: 'suffix' }, this.$slots.suffix));
289
+ } else if (suffix) {
290
+ this.renderd(doms, h, 'suffix');
291
+ cls.push('es-input-button-suffix');
292
+ }
293
+ if (this.$slots.prepend) {
294
+ doms.push(h('template', { slot: 'prepend' }, this.$slots.prepend));
295
+ } else if (prepend) {
296
+ this.renderd(doms, h, 'prepend');
297
+ }
298
+ if (this.$slots.append) {
299
+ doms.push(h('template', { slot: 'append' }, this.$slots.append));
300
+ } else if (append) {
301
+ this.renderd(doms, h, 'append');
302
+ }
303
+ if (this.fetchSuggestions || this.url || this.data.length > 0) {
304
+ return h(
305
+ 'el-autocomplete',
306
+ {
307
+ show: this.display,
308
+ props: {
309
+ rules: this.rule
310
+ },
311
+ attrs: {
312
+ ...attrs,
313
+ fetchSuggestions: this.fetchSuggestions
314
+ ? this.fetchSuggestions
315
+ : this.getData,
316
+ triggerOnFocus: this.focusShow,
317
+ value: this.model
318
+ },
319
+ on: this.$listeners
320
+ },
321
+ doms
322
+ );
323
+ }
324
+ return h(
325
+ 'el-input',
326
+ {
327
+ class: cls,
328
+ props: {
329
+ label: this.label
330
+ ? typeof this.label === 'string'
331
+ ? this.label
332
+ : this.label.text
333
+ : '',
334
+ rules: this.rule,
335
+ value: this.model
336
+ },
337
+ domProps: {
338
+ value: this.model
339
+ },
340
+ attrs: { ...attrs },
341
+ on: { ...this.$listeners },
342
+ directives: [
343
+ {
344
+ name: 'show',
345
+ value: this.display
346
+ }
347
+ ]
348
+ },
349
+ doms
350
+ );
351
+ } else {
352
+ return '';
353
+ }
354
+ }
355
+ };
356
+ </script>