eoss-ui 0.8.14 → 0.8.16

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 (235) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +966 -966
  3. package/lib/flow-list.js +96 -96
  4. package/lib/flow.js +329 -329
  5. package/lib/index.js +1 -1
  6. package/lib/main.js +288 -288
  7. package/lib/menu.js +1 -1
  8. package/lib/qr-code.js +13 -13
  9. package/package.json +1 -1
  10. package/packages/button/index.js +5 -5
  11. package/packages/button/src/main.vue +418 -418
  12. package/packages/button-group/index.js +5 -5
  13. package/packages/button-group/src/main.vue +346 -346
  14. package/packages/calendar/index.js +5 -5
  15. package/packages/calogin/index.js +5 -5
  16. package/packages/calogin/src/main.vue +412 -412
  17. package/packages/calogin/src/plugin.js +915 -915
  18. package/packages/card/index.js +5 -5
  19. package/packages/card/src/main.vue +156 -156
  20. package/packages/cascader/index.js +5 -5
  21. package/packages/cascader/src/main.vue +168 -168
  22. package/packages/checkbox-group/index.js +5 -5
  23. package/packages/checkbox-group/src/main.vue +333 -333
  24. package/packages/clients/index.js +5 -5
  25. package/packages/clients/src/main.vue +151 -151
  26. package/packages/data-table/index.js +5 -5
  27. package/packages/data-table/src/children.vue +46 -46
  28. package/packages/data-table/src/main.vue +1876 -1876
  29. package/packages/data-table/src/sizer.vue +195 -195
  30. package/packages/data-table-form/index.js +5 -5
  31. package/packages/data-table-form/src/checkbox.vue +101 -101
  32. package/packages/data-table-form/src/colgroup.vue +17 -17
  33. package/packages/data-table-form/src/main.vue +181 -181
  34. package/packages/data-table-form/src/radio.vue +65 -65
  35. package/packages/data-table-form/src/table.vue +233 -233
  36. package/packages/data-table-form/src/tbody.vue +336 -336
  37. package/packages/data-table-form/src/thead.vue +68 -68
  38. package/packages/date-picker/index.js +5 -5
  39. package/packages/date-picker/src/main.vue +236 -236
  40. package/packages/dialog/index.js +5 -5
  41. package/packages/enable-drag/index.js +5 -5
  42. package/packages/enterprise/index.js +5 -5
  43. package/packages/enterprise/src/main.vue +66 -66
  44. package/packages/error-page/index.js +5 -5
  45. package/packages/error-page/src/main.vue +44 -44
  46. package/packages/flow/index.js +5 -5
  47. package/packages/flow/src/component/Circulate.vue +420 -420
  48. package/packages/flow/src/component/CommonOpinions.vue +376 -376
  49. package/packages/flow/src/component/CustomPreset.vue +324 -324
  50. package/packages/flow/src/component/FileList.vue +97 -97
  51. package/packages/flow/src/component/FreeCirculation.vue +245 -245
  52. package/packages/flow/src/component/Preset.vue +257 -257
  53. package/packages/flow/src/component/SendMsg.vue +242 -242
  54. package/packages/flow/src/component/SortFlow.vue +110 -110
  55. package/packages/flow/src/component/TimeLimit.vue +190 -190
  56. package/packages/flow/src/component/taskUnionExamine.vue +763 -763
  57. package/packages/flow/src/form.vue +123 -123
  58. package/packages/flow/src/freeStartFlow.vue +2898 -2898
  59. package/packages/flow/src/main.vue +4224 -4224
  60. package/packages/flow/src/processForm.vue +1717 -1717
  61. package/packages/flow/src/processReject.vue +311 -311
  62. package/packages/flow/src/reset.vue +952 -952
  63. package/packages/flow/src/startTaskRead.vue +698 -698
  64. package/packages/flow/src/supervise.vue +162 -162
  65. package/packages/flow/src/table.vue +58 -58
  66. package/packages/flow-group/index.js +5 -5
  67. package/packages/flow-group/src/main.vue +750 -750
  68. package/packages/flow-list/index.js +5 -5
  69. package/packages/flow-list/src/main.vue +2337 -2337
  70. package/packages/form/index.js +5 -5
  71. package/packages/form/src/table.vue +1512 -1512
  72. package/packages/handle-user/index.js +5 -5
  73. package/packages/handle-user/src/main.vue +137 -137
  74. package/packages/handler/index.js +5 -5
  75. package/packages/handler/src/main.vue +499 -499
  76. package/packages/icon/index.js +5 -5
  77. package/packages/icon/src/main.vue +104 -104
  78. package/packages/icons/index.js +5 -5
  79. package/packages/icons/src/main.vue +81 -81
  80. package/packages/input/index.js +5 -5
  81. package/packages/input/src/main.vue +356 -356
  82. package/packages/input-number/index.js +5 -5
  83. package/packages/input-number/src/main.vue +106 -106
  84. package/packages/label/index.js +5 -5
  85. package/packages/label/src/main.vue +457 -457
  86. package/packages/layout/index.js +5 -5
  87. package/packages/layout/src/item.vue +152 -152
  88. package/packages/layout/src/main.vue +31 -31
  89. package/packages/login/index.js +5 -5
  90. package/packages/login/src/main.vue +2088 -2088
  91. package/packages/login/src/resetPassword.vue +557 -557
  92. package/packages/main/index.js +5 -5
  93. package/packages/main/src/default/message.vue +249 -249
  94. package/packages/main/src/default/notice.vue +157 -157
  95. package/packages/main/src/default/userinfo.vue +513 -513
  96. package/packages/main/src/public/online.vue +89 -89
  97. package/packages/main/src/public/search.vue +464 -464
  98. package/packages/main/src/public/settings.vue +273 -273
  99. package/packages/main/src/simplicity/apps.vue +388 -388
  100. package/packages/main/src/simplicity/avatar.vue +82 -82
  101. package/packages/main/src/simplicity/handler.vue +158 -158
  102. package/packages/main/src/simplicity/index.vue +2335 -2335
  103. package/packages/main/src/simplicity/lists.vue +84 -84
  104. package/packages/main/src/simplicity/menu-list.vue +135 -135
  105. package/packages/main/src/simplicity/message.vue +293 -293
  106. package/packages/main/src/simplicity/notice.vue +222 -222
  107. package/packages/main/src/simplicity/router-page.vue +45 -45
  108. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  109. package/packages/main/src/simplicity/user.vue +259 -259
  110. package/packages/main/src/simplicity/userinfo.vue +408 -408
  111. package/packages/main/src/simplicityTop/apps.vue +388 -388
  112. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  113. package/packages/main/src/simplicityTop/handler.vue +215 -215
  114. package/packages/main/src/simplicityTop/index.vue +2626 -2626
  115. package/packages/main/src/simplicityTop/lists.vue +84 -84
  116. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  117. package/packages/main/src/simplicityTop/message.vue +293 -293
  118. package/packages/main/src/simplicityTop/notice.vue +222 -222
  119. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  120. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  121. package/packages/main/src/simplicityTop/user.vue +259 -259
  122. package/packages/main/src/simplicityTop/userinfo.vue +408 -408
  123. package/packages/menu/index.js +5 -5
  124. package/packages/menu/src/main.vue +597 -595
  125. package/packages/nav/index.js +5 -5
  126. package/packages/nav/src/main.vue +351 -351
  127. package/packages/notify/index.js +5 -5
  128. package/packages/notify/src/main.vue +538 -538
  129. package/packages/page/index.js +5 -5
  130. package/packages/page/src/main.vue +167 -167
  131. package/packages/pagination/index.js +5 -5
  132. package/packages/pagination/src/main.vue +96 -96
  133. package/packages/player/index.js +5 -5
  134. package/packages/player/src/main.vue +194 -194
  135. package/packages/qr-code/index.js +5 -5
  136. package/packages/qr-code/src/main.vue +170 -170
  137. package/packages/radio-group/index.js +6 -6
  138. package/packages/radio-group/src/main.vue +319 -319
  139. package/packages/retrial-auth/index.js +5 -5
  140. package/packages/retrial-auth/src/main.vue +299 -299
  141. package/packages/select/index.js +5 -5
  142. package/packages/select-ganged/index.js +5 -5
  143. package/packages/select-ganged/src/main.vue +724 -724
  144. package/packages/selector/index.js +5 -5
  145. package/packages/selector/src/main.vue +761 -761
  146. package/packages/selector-panel/index.js +5 -5
  147. package/packages/selector-panel/src/main.vue +1036 -1036
  148. package/packages/selector-panel/src/selection.vue +174 -174
  149. package/packages/selector-panel/src/tree.vue +129 -129
  150. package/packages/sizer/index.js +5 -5
  151. package/packages/sizer/src/main.vue +254 -254
  152. package/packages/steps/index.js +5 -5
  153. package/packages/steps/src/main.vue +181 -181
  154. package/packages/switch/index.js +5 -5
  155. package/packages/switch/src/main.vue +170 -170
  156. package/packages/table-form/index.js +5 -5
  157. package/packages/tabs/index.js +5 -5
  158. package/packages/tabs/src/main.vue +788 -788
  159. package/packages/tabs-panel/index.js +5 -5
  160. package/packages/tabs-panel/src/main.vue +29 -29
  161. package/packages/theme-chalk/src/base.scss +261 -261
  162. package/packages/theme-chalk/src/button-group.scss +176 -176
  163. package/packages/theme-chalk/src/button.scss +24 -24
  164. package/packages/theme-chalk/src/calendar.scss +113 -113
  165. package/packages/theme-chalk/src/card.scss +99 -99
  166. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  167. package/packages/theme-chalk/src/clients.scss +87 -87
  168. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  169. package/packages/theme-chalk/src/data-table.scss +297 -297
  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 +55 -55
  177. package/packages/theme-chalk/src/flow.scss +376 -376
  178. package/packages/theme-chalk/src/form.scss +501 -501
  179. package/packages/theme-chalk/src/handle-user.scss +40 -40
  180. package/packages/theme-chalk/src/handler.scss +148 -148
  181. package/packages/theme-chalk/src/icon.scss +3452 -3452
  182. package/packages/theme-chalk/src/icons.scss +99 -99
  183. package/packages/theme-chalk/src/input.scss +9 -9
  184. package/packages/theme-chalk/src/label.scss +24 -24
  185. package/packages/theme-chalk/src/layout.scss +46 -46
  186. package/packages/theme-chalk/src/login.scss +1006 -1006
  187. package/packages/theme-chalk/src/main.scss +664 -664
  188. package/packages/theme-chalk/src/menu.scss +224 -224
  189. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  190. package/packages/theme-chalk/src/nav.scss +111 -111
  191. package/packages/theme-chalk/src/page.scss +3 -3
  192. package/packages/theme-chalk/src/pagination.scss +29 -29
  193. package/packages/theme-chalk/src/player.scss +9 -9
  194. package/packages/theme-chalk/src/qr-code.scss +17 -17
  195. package/packages/theme-chalk/src/radio-group.scss +9 -9
  196. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  197. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  198. package/packages/theme-chalk/src/select.scss +8 -8
  199. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  200. package/packages/theme-chalk/src/selector.scss +114 -114
  201. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  202. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  203. package/packages/theme-chalk/src/sizer.scss +36 -36
  204. package/packages/theme-chalk/src/steps.scss +88 -88
  205. package/packages/theme-chalk/src/switch.scss +3 -3
  206. package/packages/theme-chalk/src/table-form.scss +1 -1
  207. package/packages/theme-chalk/src/tabs.scss +87 -87
  208. package/packages/theme-chalk/src/tips.scss +7 -7
  209. package/packages/theme-chalk/src/toolbar.scss +179 -179
  210. package/packages/theme-chalk/src/tree-group.scss +72 -72
  211. package/packages/theme-chalk/src/tree.scss +165 -165
  212. package/packages/theme-chalk/src/upload.scss +172 -172
  213. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  214. package/packages/tips/index.js +5 -5
  215. package/packages/tips/src/main.vue +141 -141
  216. package/packages/toolbar/index.js +5 -5
  217. package/packages/toolbar/src/main.vue +430 -430
  218. package/packages/tree/index.js +5 -5
  219. package/packages/tree-group/index.js +5 -5
  220. package/packages/upload/index.js +5 -5
  221. package/packages/upload/src/main.vue +1344 -1344
  222. package/packages/upload/src/picture.js +15 -15
  223. package/packages/wujie/index.js +5 -5
  224. package/packages/wujie/src/main.vue +146 -146
  225. package/packages/wxlogin/index.js +5 -5
  226. package/packages/wxlogin/src/main.vue +128 -128
  227. package/src/config/api.js +348 -348
  228. package/src/config/image.js +2 -2
  229. package/src/index.js +163 -163
  230. package/src/utils/bus.js +3 -3
  231. package/src/utils/date-util.js +312 -312
  232. package/src/utils/http.js +50 -50
  233. package/src/utils/rules.js +18 -18
  234. package/src/utils/store.js +21 -21
  235. package/src/utils/webSocket.js +107 -107
@@ -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>