eoss-ui 0.7.17 → 0.7.19

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 (257) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +1029 -938
  3. package/lib/flow-list.js +81 -81
  4. package/lib/flow.js +391 -331
  5. package/lib/handler.js +58 -50
  6. package/lib/icon.js +7 -4
  7. package/lib/index.js +1 -1
  8. package/lib/main.js +216 -198
  9. package/lib/qr-code.js +13 -13
  10. package/lib/switch.js +9 -7
  11. package/lib/theme-chalk/handler.css +1 -1
  12. package/lib/theme-chalk/index.css +1 -1
  13. package/lib/theme-chalk/main.css +1 -1
  14. package/lib/theme-chalk/simplicity.css +1 -1
  15. package/package.json +160 -160
  16. package/packages/button/index.js +5 -5
  17. package/packages/button/src/main.vue +418 -418
  18. package/packages/button-group/index.js +5 -5
  19. package/packages/button-group/src/main.vue +298 -298
  20. package/packages/calendar/index.js +5 -5
  21. package/packages/calogin/index.js +5 -5
  22. package/packages/calogin/src/main.vue +412 -412
  23. package/packages/calogin/src/plugin.js +915 -915
  24. package/packages/card/index.js +5 -5
  25. package/packages/card/src/main.vue +156 -156
  26. package/packages/cascader/index.js +5 -5
  27. package/packages/cascader/src/main.vue +168 -168
  28. package/packages/checkbox-group/index.js +5 -5
  29. package/packages/checkbox-group/src/main.vue +333 -333
  30. package/packages/clients/index.js +5 -5
  31. package/packages/clients/src/main.vue +151 -151
  32. package/packages/data-table/index.js +5 -5
  33. package/packages/data-table/src/children.vue +39 -39
  34. package/packages/data-table/src/column.vue +988 -988
  35. package/packages/data-table/src/main.vue +1831 -1831
  36. package/packages/data-table/src/sizer.vue +195 -195
  37. package/packages/data-table-form/index.js +5 -5
  38. package/packages/data-table-form/src/checkbox.vue +101 -101
  39. package/packages/data-table-form/src/colgroup.vue +17 -17
  40. package/packages/data-table-form/src/main.vue +181 -181
  41. package/packages/data-table-form/src/radio.vue +65 -65
  42. package/packages/data-table-form/src/table.vue +233 -233
  43. package/packages/data-table-form/src/tbody.vue +336 -336
  44. package/packages/data-table-form/src/thead.vue +68 -68
  45. package/packages/date-picker/index.js +5 -5
  46. package/packages/date-picker/src/main.vue +236 -236
  47. package/packages/dialog/index.js +5 -5
  48. package/packages/enable-drag/index.js +5 -5
  49. package/packages/enterprise/index.js +5 -5
  50. package/packages/enterprise/src/main.vue +66 -66
  51. package/packages/error-page/index.js +5 -5
  52. package/packages/error-page/src/main.vue +44 -44
  53. package/packages/flow/index.js +5 -5
  54. package/packages/flow/src/component/Circulate.vue +413 -410
  55. package/packages/flow/src/component/CommonOpinions.vue +373 -372
  56. package/packages/flow/src/component/CustomPreset.vue +322 -322
  57. package/packages/flow/src/component/FileList.vue +97 -97
  58. package/packages/flow/src/component/FreeCirculation.vue +240 -235
  59. package/packages/flow/src/component/Preset.vue +255 -255
  60. package/packages/flow/src/component/SendMsg.vue +242 -242
  61. package/packages/flow/src/component/TimeLimit.vue +190 -190
  62. package/packages/flow/src/component/taskUnionExamine.vue +649 -643
  63. package/packages/flow/src/form.vue +121 -121
  64. package/packages/flow/src/freeStartFlow.vue +2847 -2845
  65. package/packages/flow/src/main.vue +3802 -3783
  66. package/packages/flow/src/processForm.vue +1287 -1287
  67. package/packages/flow/src/processReject.vue +308 -308
  68. package/packages/flow/src/reset.vue +941 -941
  69. package/packages/flow/src/startTaskRead.vue +691 -691
  70. package/packages/flow/src/supervise.vue +159 -159
  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 +696 -696
  74. package/packages/flow-list/index.js +5 -5
  75. package/packages/flow-list/src/main.vue +1770 -1770
  76. package/packages/form/index.js +5 -5
  77. package/packages/form/src/main.vue +3901 -3901
  78. package/packages/form/src/table.vue +1512 -1512
  79. package/packages/handle-user/index.js +5 -5
  80. package/packages/handle-user/src/main.vue +137 -137
  81. package/packages/handler/index.js +5 -5
  82. package/packages/handler/src/main.vue +497 -493
  83. package/packages/icon/index.js +5 -5
  84. package/packages/icon/src/main.vue +104 -101
  85. package/packages/icons/index.js +5 -5
  86. package/packages/icons/src/main.vue +81 -81
  87. package/packages/input/index.js +5 -5
  88. package/packages/input/src/main.vue +356 -356
  89. package/packages/input-number/index.js +5 -5
  90. package/packages/input-number/src/main.vue +106 -106
  91. package/packages/label/index.js +5 -5
  92. package/packages/label/src/main.vue +457 -457
  93. package/packages/layout/index.js +5 -5
  94. package/packages/layout/src/item.vue +152 -152
  95. package/packages/layout/src/main.vue +31 -31
  96. package/packages/login/index.js +5 -5
  97. package/packages/login/src/main.vue +1993 -1993
  98. package/packages/login/src/resetPassword.vue +557 -557
  99. package/packages/main/index.js +5 -5
  100. package/packages/main/src/default/index.vue +2 -6
  101. package/packages/main/src/default/message.vue +249 -249
  102. package/packages/main/src/default/notice.vue +157 -157
  103. package/packages/main/src/default/userinfo.vue +502 -502
  104. package/packages/main/src/main.vue +2 -1
  105. package/packages/main/src/public/online.vue +89 -89
  106. package/packages/main/src/public/search.vue +464 -464
  107. package/packages/main/src/public/settings.vue +221 -221
  108. package/packages/main/src/simplicity/apps.vue +388 -388
  109. package/packages/main/src/simplicity/avatar.vue +82 -82
  110. package/packages/main/src/simplicity/handler.vue +263 -259
  111. package/packages/main/src/simplicity/index.vue +2125 -2125
  112. package/packages/main/src/simplicity/lists.vue +84 -84
  113. package/packages/main/src/simplicity/menu-list.vue +135 -135
  114. package/packages/main/src/simplicity/message.vue +259 -259
  115. package/packages/main/src/simplicity/notice.vue +190 -190
  116. package/packages/main/src/simplicity/router-page.vue +45 -45
  117. package/packages/main/src/simplicity/sub-menu.vue +264 -264
  118. package/packages/main/src/simplicity/user.vue +259 -259
  119. package/packages/main/src/simplicity/userinfo.vue +398 -398
  120. package/packages/menu/index.js +5 -5
  121. package/packages/menu/src/main.vue +584 -584
  122. package/packages/nav/index.js +5 -5
  123. package/packages/nav/src/main.vue +351 -351
  124. package/packages/notify/index.js +5 -5
  125. package/packages/notify/src/main.vue +538 -538
  126. package/packages/page/index.js +5 -5
  127. package/packages/page/src/main.vue +167 -167
  128. package/packages/pagination/index.js +5 -5
  129. package/packages/pagination/src/main.vue +96 -96
  130. package/packages/player/index.js +5 -5
  131. package/packages/player/src/main.vue +194 -194
  132. package/packages/qr-code/index.js +5 -5
  133. package/packages/qr-code/src/main.vue +170 -170
  134. package/packages/radio-group/index.js +6 -6
  135. package/packages/radio-group/src/main.vue +319 -319
  136. package/packages/retrial-auth/index.js +5 -5
  137. package/packages/retrial-auth/src/main.vue +280 -280
  138. package/packages/select/index.js +5 -5
  139. package/packages/select/src/main.vue +782 -782
  140. package/packages/select-ganged/index.js +5 -5
  141. package/packages/select-ganged/src/main.vue +724 -724
  142. package/packages/selector/index.js +5 -5
  143. package/packages/selector/src/main.vue +761 -761
  144. package/packages/selector-panel/index.js +5 -5
  145. package/packages/selector-panel/src/main.vue +1027 -1027
  146. package/packages/selector-panel/src/selection.vue +170 -170
  147. package/packages/selector-panel/src/tree.vue +129 -129
  148. package/packages/sizer/index.js +5 -5
  149. package/packages/sizer/src/main.vue +254 -254
  150. package/packages/steps/index.js +5 -5
  151. package/packages/steps/src/main.vue +181 -181
  152. package/packages/switch/index.js +5 -5
  153. package/packages/switch/src/main.vue +170 -154
  154. package/packages/table-form/index.js +5 -5
  155. package/packages/tabs/index.js +5 -5
  156. package/packages/tabs/src/main.vue +788 -788
  157. package/packages/tabs-panel/index.js +5 -5
  158. package/packages/tabs-panel/src/main.vue +29 -29
  159. package/packages/theme-chalk/lib/handler.css +1 -1
  160. package/packages/theme-chalk/lib/index.css +1 -1
  161. package/packages/theme-chalk/lib/main.css +1 -1
  162. package/packages/theme-chalk/lib/simplicity.css +1 -1
  163. package/packages/theme-chalk/src/base.scss +261 -261
  164. package/packages/theme-chalk/src/button-group.scss +176 -176
  165. package/packages/theme-chalk/src/button.scss +24 -24
  166. package/packages/theme-chalk/src/calendar.scss +113 -113
  167. package/packages/theme-chalk/src/card.scss +99 -99
  168. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  169. package/packages/theme-chalk/src/clients.scss +87 -87
  170. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  171. package/packages/theme-chalk/src/data-table.scss +293 -293
  172. package/packages/theme-chalk/src/date-picker.scss +7 -7
  173. package/packages/theme-chalk/src/dialog.scss +77 -77
  174. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  175. package/packages/theme-chalk/src/enterprise.scss +5 -5
  176. package/packages/theme-chalk/src/error-page.scss +18 -18
  177. package/packages/theme-chalk/src/flow-group.scss +110 -110
  178. package/packages/theme-chalk/src/flow-list.scss +39 -39
  179. package/packages/theme-chalk/src/flow.scss +348 -348
  180. package/packages/theme-chalk/src/form.scss +501 -501
  181. package/packages/theme-chalk/src/handle-user.scss +40 -40
  182. package/packages/theme-chalk/src/handler.scss +148 -143
  183. package/packages/theme-chalk/src/icon.scss +1817 -1817
  184. package/packages/theme-chalk/src/icons.scss +99 -99
  185. package/packages/theme-chalk/src/input.scss +9 -9
  186. package/packages/theme-chalk/src/label.scss +24 -24
  187. package/packages/theme-chalk/src/layout.scss +46 -46
  188. package/packages/theme-chalk/src/login.scss +984 -984
  189. package/packages/theme-chalk/src/main.scss +663 -663
  190. package/packages/theme-chalk/src/menu.scss +222 -222
  191. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  192. package/packages/theme-chalk/src/nav.scss +111 -111
  193. package/packages/theme-chalk/src/page.scss +3 -3
  194. package/packages/theme-chalk/src/pagination.scss +29 -29
  195. package/packages/theme-chalk/src/player.scss +9 -9
  196. package/packages/theme-chalk/src/qr-code.scss +17 -17
  197. package/packages/theme-chalk/src/radio-group.scss +9 -9
  198. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  199. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  200. package/packages/theme-chalk/src/select.scss +8 -8
  201. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  202. package/packages/theme-chalk/src/selector.scss +92 -92
  203. package/packages/theme-chalk/src/simplicity.scss +1366 -1361
  204. package/packages/theme-chalk/src/sizer.scss +36 -36
  205. package/packages/theme-chalk/src/steps.scss +88 -88
  206. package/packages/theme-chalk/src/switch.scss +3 -3
  207. package/packages/theme-chalk/src/table-form.scss +1 -1
  208. package/packages/theme-chalk/src/tabs.scss +87 -87
  209. package/packages/theme-chalk/src/tips.scss +7 -7
  210. package/packages/theme-chalk/src/toolbar.scss +179 -179
  211. package/packages/theme-chalk/src/tree-group.scss +72 -72
  212. package/packages/theme-chalk/src/tree.scss +165 -165
  213. package/packages/theme-chalk/src/upload.scss +172 -172
  214. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  215. package/packages/tips/index.js +5 -5
  216. package/packages/tips/src/main.vue +141 -141
  217. package/packages/toolbar/index.js +5 -5
  218. package/packages/toolbar/src/main.vue +430 -430
  219. package/packages/tree/index.js +5 -5
  220. package/packages/tree-group/index.js +5 -5
  221. package/packages/upload/index.js +5 -5
  222. package/packages/upload/src/main.vue +1343 -1343
  223. package/packages/upload/src/picture.js +15 -15
  224. package/packages/wujie/index.js +5 -5
  225. package/packages/wujie/src/main.vue +145 -145
  226. package/packages/wxlogin/index.js +5 -5
  227. package/packages/wxlogin/src/main.vue +128 -128
  228. package/src/config/api.js +315 -315
  229. package/src/config/image.js +2 -2
  230. package/src/index.js +163 -163
  231. package/src/utils/bus.js +3 -3
  232. package/src/utils/date-util.js +312 -312
  233. package/src/utils/http.js +50 -50
  234. package/src/utils/rules.js +18 -18
  235. package/src/utils/store.js +21 -21
  236. package/src/utils/webSocket.js +107 -107
  237. package/packages/.DS_Store +0 -0
  238. package/packages/autocomplete/.DS_Store +0 -0
  239. package/packages/calogin/.DS_Store +0 -0
  240. package/packages/date-picker/.DS_Store +0 -0
  241. package/packages/date-picker/src/.DS_Store +0 -0
  242. package/packages/flow/.DS_Store +0 -0
  243. package/packages/flow/src/.DS_Store +0 -0
  244. package/packages/flow-list/.DS_Store +0 -0
  245. package/packages/form/.DS_Store +0 -0
  246. package/packages/login/.DS_Store +0 -0
  247. package/packages/main/.DS_Store +0 -0
  248. package/packages/main/src/.DS_Store +0 -0
  249. package/packages/menu/.DS_Store +0 -0
  250. package/packages/scrollbar/.DS_Store +0 -0
  251. package/packages/select/.DS_Store +0 -0
  252. package/packages/selector/.DS_Store +0 -0
  253. package/packages/selector-panel/.DS_Store +0 -0
  254. package/packages/theme-chalk/src/.DS_Store +0 -0
  255. package/packages/upload/.DS_Store +0 -0
  256. package/src/.DS_Store +0 -0
  257. package/src/utils/.DS_Store +0 -0
@@ -1,430 +1,430 @@
1
- <script>
2
- export default {
3
- name: 'EsToolbar',
4
- inheritAttrs: false,
5
- inject: {
6
- table: {
7
- default: ''
8
- }
9
- },
10
- props: {
11
- searchValue: {
12
- type: Object,
13
- default: () => {
14
- return {};
15
- }
16
- },
17
- advanceValue: {
18
- type: Object,
19
- default: () => {
20
- return {};
21
- }
22
- },
23
- contents: {
24
- type: Array,
25
- default: []
26
- },
27
- active: String,
28
- fixed: {
29
- type: Boolean,
30
- default: false
31
- },
32
- close: Boolean,
33
- callBack: {
34
- type: Function,
35
- default: () => {}
36
- },
37
- showFormBtn: {
38
- type: Boolean,
39
- default: true
40
- },
41
- small: {
42
- type: Boolean,
43
- default: true
44
- },
45
- showLabel: {
46
- type: Boolean,
47
- default: false
48
- },
49
- labelWidth: {
50
- type: String,
51
- default: 'auto'
52
- }
53
- },
54
- watch: {
55
- searchValue: {
56
- deep: true,
57
- handler(val) {
58
- this.searchData = JSON.parse(JSON.stringify(val));
59
- }
60
- },
61
- advanceValue: {
62
- deep: true,
63
- handler(val) {
64
- this.advancedData = JSON.parse(JSON.stringify(val));
65
- }
66
- }
67
- },
68
- data() {
69
- return {
70
- show: false,
71
- searchData: JSON.parse(JSON.stringify(this.searchValue)),
72
- advancedData: JSON.parse(JSON.stringify(this.advanceValue))
73
- };
74
- },
75
- created() {
76
- //this.traversal();
77
- },
78
- mounted() {
79
- this.$nextTick(() => {
80
- this.callBack();
81
- });
82
- },
83
- methods: {
84
- handleClick(res) {
85
- if (!this.table && res.event && typeof res.event === 'function') {
86
- res.event(res);
87
- } else {
88
- this.$emit('click', { handle: res });
89
- }
90
- },
91
- hanleSearch(data, multi) {
92
- let other = {};
93
- if (multi) {
94
- for (let i in multi) {
95
- other[i] = data[multi[i]];
96
- }
97
- }
98
- this.$emit('search', { ...data, ...other });
99
- },
100
- handleChange(key, value, data, item) {
101
- let obj = {};
102
- obj[key] = value;
103
- if (item.changeSearch) {
104
- this.$emit('search', obj);
105
- }
106
- this.$emit('change', key, value, data);
107
- },
108
- hanleSubmit(data) {
109
- if (this.close) {
110
- this.show = false;
111
- }
112
- this.$emit('submit', { data: data });
113
- },
114
- handleSelect(res, num) {
115
- this.$emit('tabs', { item: res, index: num });
116
- },
117
- hanleReset() {
118
- this.reset();
119
- this.$emit('reset', this.searchData);
120
- },
121
- reset() {
122
- this.$refs.filter && this.$refs.filter.resetFields();
123
- this.searchData = JSON.parse(JSON.stringify(this.searchValue));
124
- this.advancedData = JSON.parse(JSON.stringify(this.advanceValue));
125
- },
126
- hanleCancel() {
127
- this.show = false;
128
- this.advancedData = JSON.parse(JSON.stringify(this.advanceValue));
129
- this.$emit('cancel', this.advancedData);
130
- }
131
- },
132
- render(h) {
133
- let text = [];
134
- let buttons = [];
135
- let search = [];
136
- let info = [];
137
- let filter = [];
138
-
139
- this.contents.forEach((items) => {
140
- let {
141
- config,
142
- type,
143
- reset,
144
- multiCondition,
145
- contents,
146
- group,
147
- events,
148
- ...other
149
- } = items;
150
- if (type === 'text') {
151
- text = [
152
- h(
153
- 'div',
154
- { class: 'es-toolbar-text' },
155
- Array.isArray(contents)
156
- ? contents.map((item) => {
157
- return h('span', { class: 'es-text' }, [
158
- h('span', { class: 'es-info-label' }, [`${item.label}:`]),
159
- h('span', { class: 'es-info-value' }, [item.value])
160
- ]);
161
- })
162
- : contents
163
- )
164
- ];
165
- }
166
- if (
167
- type === 'button' ||
168
- type === 'button-group' ||
169
- type === 'buttonGroup'
170
- ) {
171
- if (type === 'button-group' || type === 'buttonGroup' || group) {
172
- buttons = [
173
- h('es-button-group', {
174
- class: 'es-toolbar-button-group',
175
- props: {
176
- moreText: '更多',
177
- size: 'medium',
178
- ...other,
179
- contents: contents
180
- },
181
- on: {
182
- handleClick: (res) => {
183
- this.handleClick(res.handle);
184
- }
185
- }
186
- })
187
- ];
188
- } else {
189
- contents.forEach((item) => {
190
- if (!item.hide && (item.upload || (item.code && item.ownId))) {
191
- buttons.push(
192
- h('es-upload', {
193
- class: 'el-button',
194
- attrs: {
195
- ...item,
196
- method: 'post',
197
- btnSize: 'medium',
198
- showFileList: false,
199
- selectType: item.type ? item.type : ''
200
- }
201
- })
202
- );
203
- } else {
204
- buttons.push(
205
- h(
206
- 'es-button',
207
- {
208
- attrs: {
209
- ...item,
210
- size: 'medium'
211
- },
212
- on: {
213
- click: () => {
214
- this.handleClick(item);
215
- }
216
- }
217
- },
218
- item.text
219
- )
220
- );
221
- }
222
- });
223
- }
224
- }
225
- if (type === 'tabs') {
226
- buttons = buttons.concat([
227
- h(
228
- 'el-menu',
229
- {
230
- props: {
231
- defaultActive: this.active
232
- ? this.active
233
- : contents[0].name
234
- ? contents[0].name
235
- : '0',
236
- mode: 'horizontal'
237
- },
238
- on: {
239
- select: (res) => {
240
- this.handleSelect(contents[parseInt(res, 10)], res);
241
- }
242
- }
243
- },
244
- contents.map((item, index) => {
245
- return h(
246
- 'el-menu-item',
247
- {
248
- props: {
249
- index: item.name ? item.name : String(index)
250
- }
251
- },
252
- item.label || item.text
253
- );
254
- })
255
- )
256
- ]);
257
- }
258
- if (type === 'search') {
259
- for (let i = 0; i < contents.length; i++) {
260
- if (contents[i].type == 'selector') {
261
- contents[i].inputHeight = 32;
262
- break;
263
- }
264
- }
265
- let itemClass = {
266
- radio: 'es-toolbar-item-radio',
267
- checkbox: 'es-toolbar-item-checkbox',
268
- switch: 'es-toolbar-item-switch'
269
- };
270
- search = [
271
- h('es-form', {
272
- class: [
273
- 'es-form-search',
274
- this.small ? 'es-form-search-small' : '',
275
- this.showLabel ? 'es-form-search-nobtn' : ''
276
- ],
277
- props: {
278
- size: 'medium',
279
- showLabel: this.showLabel,
280
- labelWidth: this.labelWidth,
281
- closeDialog: false,
282
- model: this.searchData,
283
- contents: contents,
284
- itemClass: itemClass,
285
- inline: true,
286
- search: true,
287
- isReset: reset,
288
- showButton: this.showFormBtn,
289
- ...other,
290
- ...(config || {})
291
- },
292
- on: {
293
- submit: (data) => {
294
- this.hanleSearch(data, multiCondition);
295
- },
296
- reset: this.hanleReset,
297
- change: this.handleChange
298
- }
299
- })
300
- ];
301
- }
302
- if (type === 'info') {
303
- info.push(
304
- h(
305
- 'div',
306
- { class: 'es-toolbar-info' },
307
- contents.map((item) => {
308
- return h('span', { class: 'es-info' }, [
309
- h('span', { class: 'es-info-label' }, [`${item.label}:`]),
310
- h('span', { class: 'es-info-value' }, [item.value])
311
- ]);
312
- })
313
- )
314
- );
315
- }
316
- if (type === 'filter') {
317
- info.push(
318
- h(
319
- 'el-button',
320
- {
321
- class: 'es-advanced-btn',
322
- props: {
323
- type: 'primary',
324
- size: 'medium'
325
- },
326
- on: {
327
- click: () => {
328
- this.show = !this.show;
329
- }
330
- }
331
- },
332
- [
333
- '高级搜索',
334
- h('i', {
335
- class: {
336
- 'el-icon-arrow-down': !this.show,
337
- 'el-icon-arrow-up': this.show,
338
- 'es-advanced-icon': 1
339
- }
340
- })
341
- ]
342
- )
343
- );
344
- filter = h(
345
- 'transition',
346
- {
347
- props: {
348
- name: 'el-zoom-in-top'
349
- }
350
- },
351
- [
352
- h(
353
- 'div',
354
- {
355
- class: {
356
- 'es-absolute': !this.fixed,
357
- 'es-advanced-filter': 1
358
- },
359
- directives: [
360
- {
361
- name: 'show',
362
- value: this.show
363
- }
364
- ]
365
- },
366
- [
367
- this.show
368
- ? h(
369
- 'es-form',
370
- {
371
- class: 'es-form-advanced-filter',
372
- ref: 'filter',
373
- props: {
374
- ...other,
375
- ...(config || {}),
376
- size: 'medium',
377
- closeDialog: false,
378
- model: this.advancedData,
379
- contents: contents
380
- },
381
- on: events
382
- ? events
383
- : {
384
- submit: this.hanleSubmit,
385
- reset: this.hanleCancel
386
- }
387
- },
388
- []
389
- )
390
- : ''
391
- ]
392
- )
393
- ]
394
- );
395
- }
396
- });
397
- let box = [
398
- h(
399
- 'div',
400
- {
401
- class: 'es-button-content'
402
- },
403
- buttons
404
- )
405
- ];
406
- let dom;
407
- if (text.length) {
408
- dom = text.concat(box, search, info);
409
- } else {
410
- dom = box.concat(search, info);
411
- }
412
- return h(
413
- 'div',
414
- {
415
- class: 'es-toolbar'
416
- },
417
- [
418
- h(
419
- 'div',
420
- {
421
- class: 'es-toolbar-content'
422
- },
423
- dom
424
- ),
425
- filter
426
- ]
427
- );
428
- }
429
- };
430
- </script>
1
+ <script>
2
+ export default {
3
+ name: 'EsToolbar',
4
+ inheritAttrs: false,
5
+ inject: {
6
+ table: {
7
+ default: ''
8
+ }
9
+ },
10
+ props: {
11
+ searchValue: {
12
+ type: Object,
13
+ default: () => {
14
+ return {};
15
+ }
16
+ },
17
+ advanceValue: {
18
+ type: Object,
19
+ default: () => {
20
+ return {};
21
+ }
22
+ },
23
+ contents: {
24
+ type: Array,
25
+ default: []
26
+ },
27
+ active: String,
28
+ fixed: {
29
+ type: Boolean,
30
+ default: false
31
+ },
32
+ close: Boolean,
33
+ callBack: {
34
+ type: Function,
35
+ default: () => {}
36
+ },
37
+ showFormBtn: {
38
+ type: Boolean,
39
+ default: true
40
+ },
41
+ small: {
42
+ type: Boolean,
43
+ default: true
44
+ },
45
+ showLabel: {
46
+ type: Boolean,
47
+ default: false
48
+ },
49
+ labelWidth: {
50
+ type: String,
51
+ default: 'auto'
52
+ }
53
+ },
54
+ watch: {
55
+ searchValue: {
56
+ deep: true,
57
+ handler(val) {
58
+ this.searchData = JSON.parse(JSON.stringify(val));
59
+ }
60
+ },
61
+ advanceValue: {
62
+ deep: true,
63
+ handler(val) {
64
+ this.advancedData = JSON.parse(JSON.stringify(val));
65
+ }
66
+ }
67
+ },
68
+ data() {
69
+ return {
70
+ show: false,
71
+ searchData: JSON.parse(JSON.stringify(this.searchValue)),
72
+ advancedData: JSON.parse(JSON.stringify(this.advanceValue))
73
+ };
74
+ },
75
+ created() {
76
+ //this.traversal();
77
+ },
78
+ mounted() {
79
+ this.$nextTick(() => {
80
+ this.callBack();
81
+ });
82
+ },
83
+ methods: {
84
+ handleClick(res) {
85
+ if (!this.table && res.event && typeof res.event === 'function') {
86
+ res.event(res);
87
+ } else {
88
+ this.$emit('click', { handle: res });
89
+ }
90
+ },
91
+ hanleSearch(data, multi) {
92
+ let other = {};
93
+ if (multi) {
94
+ for (let i in multi) {
95
+ other[i] = data[multi[i]];
96
+ }
97
+ }
98
+ this.$emit('search', { ...data, ...other });
99
+ },
100
+ handleChange(key, value, data, item) {
101
+ let obj = {};
102
+ obj[key] = value;
103
+ if (item.changeSearch) {
104
+ this.$emit('search', obj);
105
+ }
106
+ this.$emit('change', key, value, data);
107
+ },
108
+ hanleSubmit(data) {
109
+ if (this.close) {
110
+ this.show = false;
111
+ }
112
+ this.$emit('submit', { data: data });
113
+ },
114
+ handleSelect(res, num) {
115
+ this.$emit('tabs', { item: res, index: num });
116
+ },
117
+ hanleReset() {
118
+ this.reset();
119
+ this.$emit('reset', this.searchData);
120
+ },
121
+ reset() {
122
+ this.$refs.filter && this.$refs.filter.resetFields();
123
+ this.searchData = JSON.parse(JSON.stringify(this.searchValue));
124
+ this.advancedData = JSON.parse(JSON.stringify(this.advanceValue));
125
+ },
126
+ hanleCancel() {
127
+ this.show = false;
128
+ this.advancedData = JSON.parse(JSON.stringify(this.advanceValue));
129
+ this.$emit('cancel', this.advancedData);
130
+ }
131
+ },
132
+ render(h) {
133
+ let text = [];
134
+ let buttons = [];
135
+ let search = [];
136
+ let info = [];
137
+ let filter = [];
138
+
139
+ this.contents.forEach((items) => {
140
+ let {
141
+ config,
142
+ type,
143
+ reset,
144
+ multiCondition,
145
+ contents,
146
+ group,
147
+ events,
148
+ ...other
149
+ } = items;
150
+ if (type === 'text') {
151
+ text = [
152
+ h(
153
+ 'div',
154
+ { class: 'es-toolbar-text' },
155
+ Array.isArray(contents)
156
+ ? contents.map((item) => {
157
+ return h('span', { class: 'es-text' }, [
158
+ h('span', { class: 'es-info-label' }, [`${item.label}:`]),
159
+ h('span', { class: 'es-info-value' }, [item.value])
160
+ ]);
161
+ })
162
+ : contents
163
+ )
164
+ ];
165
+ }
166
+ if (
167
+ type === 'button' ||
168
+ type === 'button-group' ||
169
+ type === 'buttonGroup'
170
+ ) {
171
+ if (type === 'button-group' || type === 'buttonGroup' || group) {
172
+ buttons = [
173
+ h('es-button-group', {
174
+ class: 'es-toolbar-button-group',
175
+ props: {
176
+ moreText: '更多',
177
+ size: 'medium',
178
+ ...other,
179
+ contents: contents
180
+ },
181
+ on: {
182
+ handleClick: (res) => {
183
+ this.handleClick(res.handle);
184
+ }
185
+ }
186
+ })
187
+ ];
188
+ } else {
189
+ contents.forEach((item) => {
190
+ if (!item.hide && (item.upload || (item.code && item.ownId))) {
191
+ buttons.push(
192
+ h('es-upload', {
193
+ class: 'el-button',
194
+ attrs: {
195
+ ...item,
196
+ method: 'post',
197
+ btnSize: 'medium',
198
+ showFileList: false,
199
+ selectType: item.type ? item.type : ''
200
+ }
201
+ })
202
+ );
203
+ } else {
204
+ buttons.push(
205
+ h(
206
+ 'es-button',
207
+ {
208
+ attrs: {
209
+ ...item,
210
+ size: 'medium'
211
+ },
212
+ on: {
213
+ click: () => {
214
+ this.handleClick(item);
215
+ }
216
+ }
217
+ },
218
+ item.text
219
+ )
220
+ );
221
+ }
222
+ });
223
+ }
224
+ }
225
+ if (type === 'tabs') {
226
+ buttons = buttons.concat([
227
+ h(
228
+ 'el-menu',
229
+ {
230
+ props: {
231
+ defaultActive: this.active
232
+ ? this.active
233
+ : contents[0].name
234
+ ? contents[0].name
235
+ : '0',
236
+ mode: 'horizontal'
237
+ },
238
+ on: {
239
+ select: (res) => {
240
+ this.handleSelect(contents[parseInt(res, 10)], res);
241
+ }
242
+ }
243
+ },
244
+ contents.map((item, index) => {
245
+ return h(
246
+ 'el-menu-item',
247
+ {
248
+ props: {
249
+ index: item.name ? item.name : String(index)
250
+ }
251
+ },
252
+ item.label || item.text
253
+ );
254
+ })
255
+ )
256
+ ]);
257
+ }
258
+ if (type === 'search') {
259
+ for (let i = 0; i < contents.length; i++) {
260
+ if (contents[i].type == 'selector') {
261
+ contents[i].inputHeight = 32;
262
+ break;
263
+ }
264
+ }
265
+ let itemClass = {
266
+ radio: 'es-toolbar-item-radio',
267
+ checkbox: 'es-toolbar-item-checkbox',
268
+ switch: 'es-toolbar-item-switch'
269
+ };
270
+ search = [
271
+ h('es-form', {
272
+ class: [
273
+ 'es-form-search',
274
+ this.small ? 'es-form-search-small' : '',
275
+ this.showLabel ? 'es-form-search-nobtn' : ''
276
+ ],
277
+ props: {
278
+ size: 'medium',
279
+ showLabel: this.showLabel,
280
+ labelWidth: this.labelWidth,
281
+ closeDialog: false,
282
+ model: this.searchData,
283
+ contents: contents,
284
+ itemClass: itemClass,
285
+ inline: true,
286
+ search: true,
287
+ isReset: reset,
288
+ showButton: this.showFormBtn,
289
+ ...other,
290
+ ...(config || {})
291
+ },
292
+ on: {
293
+ submit: (data) => {
294
+ this.hanleSearch(data, multiCondition);
295
+ },
296
+ reset: this.hanleReset,
297
+ change: this.handleChange
298
+ }
299
+ })
300
+ ];
301
+ }
302
+ if (type === 'info') {
303
+ info.push(
304
+ h(
305
+ 'div',
306
+ { class: 'es-toolbar-info' },
307
+ contents.map((item) => {
308
+ return h('span', { class: 'es-info' }, [
309
+ h('span', { class: 'es-info-label' }, [`${item.label}:`]),
310
+ h('span', { class: 'es-info-value' }, [item.value])
311
+ ]);
312
+ })
313
+ )
314
+ );
315
+ }
316
+ if (type === 'filter') {
317
+ info.push(
318
+ h(
319
+ 'el-button',
320
+ {
321
+ class: 'es-advanced-btn',
322
+ props: {
323
+ type: 'primary',
324
+ size: 'medium'
325
+ },
326
+ on: {
327
+ click: () => {
328
+ this.show = !this.show;
329
+ }
330
+ }
331
+ },
332
+ [
333
+ '高级搜索',
334
+ h('i', {
335
+ class: {
336
+ 'el-icon-arrow-down': !this.show,
337
+ 'el-icon-arrow-up': this.show,
338
+ 'es-advanced-icon': 1
339
+ }
340
+ })
341
+ ]
342
+ )
343
+ );
344
+ filter = h(
345
+ 'transition',
346
+ {
347
+ props: {
348
+ name: 'el-zoom-in-top'
349
+ }
350
+ },
351
+ [
352
+ h(
353
+ 'div',
354
+ {
355
+ class: {
356
+ 'es-absolute': !this.fixed,
357
+ 'es-advanced-filter': 1
358
+ },
359
+ directives: [
360
+ {
361
+ name: 'show',
362
+ value: this.show
363
+ }
364
+ ]
365
+ },
366
+ [
367
+ this.show
368
+ ? h(
369
+ 'es-form',
370
+ {
371
+ class: 'es-form-advanced-filter',
372
+ ref: 'filter',
373
+ props: {
374
+ ...other,
375
+ ...(config || {}),
376
+ size: 'medium',
377
+ closeDialog: false,
378
+ model: this.advancedData,
379
+ contents: contents
380
+ },
381
+ on: events
382
+ ? events
383
+ : {
384
+ submit: this.hanleSubmit,
385
+ reset: this.hanleCancel
386
+ }
387
+ },
388
+ []
389
+ )
390
+ : ''
391
+ ]
392
+ )
393
+ ]
394
+ );
395
+ }
396
+ });
397
+ let box = [
398
+ h(
399
+ 'div',
400
+ {
401
+ class: 'es-button-content'
402
+ },
403
+ buttons
404
+ )
405
+ ];
406
+ let dom;
407
+ if (text.length) {
408
+ dom = text.concat(box, search, info);
409
+ } else {
410
+ dom = box.concat(search, info);
411
+ }
412
+ return h(
413
+ 'div',
414
+ {
415
+ class: 'es-toolbar'
416
+ },
417
+ [
418
+ h(
419
+ 'div',
420
+ {
421
+ class: 'es-toolbar-content'
422
+ },
423
+ dom
424
+ ),
425
+ filter
426
+ ]
427
+ );
428
+ }
429
+ };
430
+ </script>