eoss-ui 0.8.42 → 0.8.43

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 (81) hide show
  1. package/lib/eoss-ui.common.js +163 -149
  2. package/lib/flow.js +132 -130
  3. package/lib/index.js +1 -1
  4. package/lib/main.js +5 -5
  5. package/lib/upload.js +18 -6
  6. package/package.json +2 -2
  7. package/packages/button-group/src/main.vue +346 -346
  8. package/packages/calogin/src/main.vue +412 -412
  9. package/packages/clients/src/main.vue +151 -151
  10. package/packages/flow/src/component/CustomPreset.vue +326 -326
  11. package/packages/flow/src/component/FileList.vue +97 -97
  12. package/packages/flow/src/component/SendMsg.vue +242 -242
  13. package/packages/flow/src/component/SortFlow.vue +110 -110
  14. package/packages/flow/src/form.vue +123 -123
  15. package/packages/flow/src/freeStartFlow.vue +2902 -2902
  16. package/packages/flow/src/main.vue +1 -0
  17. package/packages/flow/src/processForm.vue +2032 -2032
  18. package/packages/flow/src/processReject.vue +323 -323
  19. package/packages/flow/src/table.vue +58 -58
  20. package/packages/form/src/table.vue +1512 -1512
  21. package/packages/icon/src/main.vue +104 -104
  22. package/packages/login/src/resetPassword.vue +557 -557
  23. package/packages/main/src/public/online.vue +89 -89
  24. package/packages/main/src/public/search.vue +464 -464
  25. package/packages/main/src/public/settings.vue +273 -273
  26. package/packages/main/src/simplicity/apps.vue +388 -388
  27. package/packages/main/src/simplicity/avatar.vue +82 -82
  28. package/packages/main/src/simplicity/handler.vue +158 -158
  29. package/packages/main/src/simplicity/menu-list.vue +135 -135
  30. package/packages/main/src/simplicity/message.vue +293 -293
  31. package/packages/main/src/simplicity/notice.vue +222 -222
  32. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  33. package/packages/main/src/simplicity/user.vue +259 -259
  34. package/packages/main/src/simplicityTop/apps.vue +388 -388
  35. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  36. package/packages/main/src/simplicityTop/handler.vue +215 -215
  37. package/packages/main/src/simplicityTop/lists.vue +84 -84
  38. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  39. package/packages/main/src/simplicityTop/message.vue +293 -293
  40. package/packages/main/src/simplicityTop/notice.vue +222 -222
  41. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  42. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  43. package/packages/main/src/simplicityTop/user.vue +259 -259
  44. package/packages/nav/src/main.vue +351 -351
  45. package/packages/selector-panel/src/selection.vue +174 -174
  46. package/packages/switch/src/main.vue +170 -170
  47. package/packages/theme-chalk/src/data-table.scss +297 -297
  48. package/packages/theme-chalk/src/handler.scss +148 -148
  49. package/packages/theme-chalk/src/icon.scss +3452 -3452
  50. package/packages/theme-chalk/src/login.scss +1006 -1006
  51. package/packages/theme-chalk/src/main.scss +664 -664
  52. package/packages/theme-chalk/src/menu.scss +224 -224
  53. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  54. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  55. package/packages/theme-chalk/src/upload.scss +172 -172
  56. package/packages/tips/src/main.vue +141 -141
  57. package/packages/upload/src/main.vue +13 -1
  58. package/packages/wujie/src/main.vue +146 -146
  59. package/src/index.js +166 -166
  60. package/src/utils/rules.js +18 -18
  61. package/packages/.DS_Store +0 -0
  62. package/packages/calogin/.DS_Store +0 -0
  63. package/packages/date-picker/.DS_Store +0 -0
  64. package/packages/date-picker/src/.DS_Store +0 -0
  65. package/packages/dialog/.DS_Store +0 -0
  66. package/packages/flow/.DS_Store +0 -0
  67. package/packages/flow/src/.DS_Store +0 -0
  68. package/packages/flow-list/.DS_Store +0 -0
  69. package/packages/form/.DS_Store +0 -0
  70. package/packages/icon/.DS_Store +0 -0
  71. package/packages/login/.DS_Store +0 -0
  72. package/packages/main/.DS_Store +0 -0
  73. package/packages/main/src/.DS_Store +0 -0
  74. package/packages/menu/.DS_Store +0 -0
  75. package/packages/select/.DS_Store +0 -0
  76. package/packages/selector/.DS_Store +0 -0
  77. package/packages/selector-panel/.DS_Store +0 -0
  78. package/packages/theme-chalk/src/.DS_Store +0 -0
  79. package/packages/upload/.DS_Store +0 -0
  80. package/src/.DS_Store +0 -0
  81. package/src/utils/.DS_Store +0 -0
@@ -1,346 +1,346 @@
1
- <template>
2
- <el-button-group class="es-button-group">
3
- <template v-if="length > 1">
4
- <template v-for="(item, index) in showBtns">
5
- <template v-if="item && !item.hide">
6
- <es-upload
7
- v-if="item.upload || (item.code && item.ownId)"
8
- :key="index"
9
- v-bind="{
10
- ...exclAttribute({
11
- data: item,
12
- attrs: ['events']
13
- }),
14
- ...parseProps(),
15
- method: 'post',
16
- btnSize: size,
17
- showFileList: false,
18
- selectType: mode == 'plus' ? 'text' : item.type
19
- }"
20
- v-on="item.events"
21
- ></es-upload>
22
- <el-tooltip
23
- :key="index"
24
- v-else-if="item.showTooltip"
25
- :effect="item.effect ? item.effect : 'dark'"
26
- :content="item.tips"
27
- :placement="item.placement ? item.placement : 'top'"
28
- >
29
- <es-button
30
- :stop="stop"
31
- :data="data"
32
- :outside="outside"
33
- v-bind="
34
- exclAttribute({
35
- data: item,
36
- attrs: ['events']
37
- })
38
- "
39
- :size="size"
40
- :type="mode == 'plus' ? 'text' : item.type"
41
- v-on="item.events"
42
- @click="handleClick({ ...data, handle: item })"
43
- >
44
- {{
45
- item.template
46
- ? item.template({ ...data, config: item })
47
- : item.text
48
- }}
49
- </es-button>
50
- </el-tooltip>
51
- <es-button
52
- v-else
53
- :stop="stop"
54
- :data="data"
55
- :outside="outside"
56
- v-bind="
57
- exclAttribute({
58
- data: item,
59
- attrs: ['events']
60
- })
61
- "
62
- :key="index"
63
- :size="size"
64
- :type="mode == 'plus' ? 'text' : item.type"
65
- v-on="item.events"
66
- @click="handleClick({ ...data, handle: item })"
67
- >
68
- {{
69
- item.template
70
- ? item.template({ ...data, config: item })
71
- : item.text
72
- }}
73
- </es-button>
74
- </template>
75
- </template>
76
- </template>
77
- <el-dropdown
78
- v-if="other.length > 0"
79
- ref="dropdown"
80
- @command="handleCommand"
81
- @visible-change="handleChange"
82
- :trigger="trigger"
83
- >
84
- <el-button :size="size" :type="mode == 'plus' ? 'text' : ''">
85
- <el-badge v-bind="badges">
86
- <template v-if="mode == 'plus'">更多</template>
87
- <template v-else-if="moreText">
88
- {{ moreText }}
89
- <i
90
- :class="{
91
- 'el-icon-arrow-down': !show,
92
- 'el-icon-arrow-up': show
93
- }"
94
- ></i>
95
- </template>
96
- <i v-else class="es-icon-more"></i>
97
- </el-badge>
98
- </el-button>
99
- <el-dropdown-menu slot="dropdown">
100
- <el-dropdown-item
101
- v-for="(item, index) in other"
102
- :key="index"
103
- :command="item"
104
- :class="{ 'es-dropdown-padding': item.upload || item.selector }"
105
- v-show="!item.hide"
106
- >
107
- <es-upload
108
- v-if="item.upload || (item.code && item.ownId)"
109
- class="es-dropdown-upload"
110
- v-bind="{
111
- ...exclAttribute({
112
- data: item,
113
- attrs: ['events']
114
- }),
115
- ...parseProps(),
116
- method: 'post',
117
- showFileList: false,
118
- selectType: 'text'
119
- }"
120
- v-on="item.events"
121
- ></es-upload>
122
- <es-selector
123
- v-else-if="item.selector"
124
- class="es-dropdown-selector"
125
- v-bind="{
126
- reset: true,
127
- ...exclAttribute({
128
- data: item,
129
- attrs: ['events', 'type', 'value']
130
- }),
131
- businessData: data
132
- }"
133
- v-on="item.events"
134
- :button="{ size: 'medium', type: 'text' }"
135
- >
136
- <i :class="item.icon" v-if="item.icon"></i
137
- >{{
138
- item.template
139
- ? item.template({ ...data, config: item })
140
- : item.text
141
- }}
142
- </es-selector>
143
- <el-tooltip
144
- :key="index"
145
- v-else-if="item.showTooltip"
146
- :effect="item.effect ? item.effect : 'dark'"
147
- :content="item.tips"
148
- :placement="item.placement ? item.placement : 'top'"
149
- >
150
- <span type="text">
151
- {{
152
- item.template
153
- ? item.template({ ...data, config: item })
154
- : item.text
155
- }}
156
- </span></el-tooltip
157
- >
158
- <template v-else>
159
- <i :class="item.icon" v-if="item.icon"></i
160
- >{{
161
- item.template
162
- ? item.template({ ...data, config: item })
163
- : item.text
164
- }}
165
- </template>
166
- <el-badge
167
- v-if="item.badge"
168
- v-bind="
169
- typeof item.badge === 'number'
170
- ? { value: item.badge }
171
- : item.badge
172
- "
173
- ></el-badge>
174
- </el-dropdown-item>
175
- </el-dropdown-menu>
176
- </el-dropdown>
177
- </el-button-group>
178
- </template>
179
- <script>
180
- import util from 'eoss-ui/src/utils/util';
181
- export default {
182
- name: 'EsButtonGroup',
183
- provide() {
184
- return {
185
- btnGroup: this
186
- };
187
- },
188
- props: {
189
- mode: String,
190
- value: String,
191
- data: Object,
192
- contents: { type: Array, default: [] },
193
- length: {
194
- type: Number,
195
- default: 3
196
- },
197
- rules: Function,
198
- stop: Boolean,
199
- trigger: {
200
- type: String,
201
- default: 'hover'
202
- },
203
- useCaseCodeKey: String,
204
- moreText: String,
205
- size: {
206
- type: String,
207
- default: 'mini'
208
- },
209
- placement: {
210
- type: String,
211
- default: 'bottom'
212
- },
213
- parseData: Function,
214
- badge: Object,
215
- sort: Boolean,
216
- outside: {
217
- type: Boolean,
218
- default: true
219
- }
220
- },
221
- computed: {
222
- btns() {
223
- return this.getBtns();
224
- },
225
- showBtns() {
226
- return this.btns.length > this.length
227
- ? this.btns.slice(0, this.length - 1)
228
- : this.btns;
229
- },
230
- other() {
231
- let btns =
232
- this.length > 0 && (this.btns.length > this.length || this.length == 1)
233
- ? this.btns.slice(this.length - 1, this.btns.length)
234
- : [];
235
- return btns;
236
- },
237
- badges() {
238
- if (
239
- this.other.length &&
240
- this.other.filter((item) => {
241
- return item.badge;
242
- }).length
243
- ) {
244
- return this.badge ? { isDot: true, ...this.badge } : { isDot: true };
245
- }
246
- return this.badge
247
- ? { isDot: true, hidden: true, ...this.badge }
248
- : { isDot: true, hidden: true };
249
- }
250
- },
251
- watch: {},
252
- data() {
253
- return {
254
- show: false
255
- };
256
- },
257
- mounted() {
258
- this.resetWidth();
259
- },
260
- methods: {
261
- exclAttribute({ data, attrs }) {
262
- return util.exclAttribute({ data, attrs });
263
- },
264
- getBtns() {
265
- let useCaseCodes = util.getStorage('useCaseCodes');
266
- let keyword =
267
- this.data && this.useCaseCodeKey
268
- ? this.data.row[this.useCaseCodeKey]
269
- : null;
270
- let arry = this.contents.filter((item) => {
271
- if (Object.prototype.hasOwnProperty.call(item, 'rules')) {
272
- if (useCaseCodes && (item.useCaseCode || keyword)) {
273
- return (
274
- item.rules(this.data.row) &&
275
- useCaseCodes.indexOf(item.useCaseCode || keyword) > -1
276
- );
277
- }
278
- return item.rules(this.data.row);
279
- }
280
- if (this.rules !== undefined) {
281
- if (useCaseCodes && (item.useCaseCode || keyword)) {
282
- return (
283
- this.rules(this.data.row) &&
284
- useCaseCodes.indexOf(item.useCaseCode || keyword) > -1
285
- );
286
- }
287
- return this.rules(this.data.row);
288
- }
289
- if (useCaseCodes && (item.useCaseCode || keyword)) {
290
- return useCaseCodes.indexOf(item.useCaseCode || keyword) > -1;
291
- }
292
- return item.hide !== true;
293
- });
294
- let newBtns = arry.map((item) => {
295
- let badge, tips;
296
- if (item.badge && typeof item.badge === 'function') {
297
- badge = item.badge(this.data.row);
298
- }
299
- if (item.tips && typeof item.tips === 'function') {
300
- item.tips = item.tips(this.data.row);
301
- }
302
- return badge ? { ...item, badge: badge } : { ...item };
303
- });
304
- if (this.sort) {
305
- newBtns = newBtns.sort((a, b) => {
306
- return (b.badge ? 1 : 0) - (a.badge ? 1 : 0);
307
- });
308
- }
309
- return newBtns;
310
- },
311
- handleChange(res) {
312
- this.show = res;
313
- },
314
- handleClick(obj) {
315
- this.$emit('handleClick', obj);
316
- this.$emit('handle-click', obj);
317
- },
318
- handleCommand(res) {
319
- if (res.upload || res.selector) {
320
- this.$refs.dropdown.hide();
321
- return false;
322
- }
323
- this.$emit('handleClick', { ...this.data, handle: res });
324
- this.$emit('handle-click', { ...this.data, handle: res });
325
- },
326
- resetWidth() {
327
- this.$nextTick(() => {
328
- let childNodes = this.$el.childNodes;
329
- let width = parseInt(this.value, 10);
330
- let w = 0;
331
- for (let i = 0; i < childNodes.length; i++) {
332
- let item = childNodes[i];
333
- w += item.clientWidth ? item.clientWidth : 0;
334
- }
335
- w += 20 + childNodes.length + 10;
336
- if (w > width) {
337
- this.$emit('input', w + 'px');
338
- }
339
- });
340
- },
341
- parseProps() {
342
- return this.parseData && this.data ? this.parseData(this.data) : {};
343
- }
344
- }
345
- };
346
- </script>
1
+ <template>
2
+ <el-button-group class="es-button-group">
3
+ <template v-if="length > 1">
4
+ <template v-for="(item, index) in showBtns">
5
+ <template v-if="item && !item.hide">
6
+ <es-upload
7
+ v-if="item.upload || (item.code && item.ownId)"
8
+ :key="index"
9
+ v-bind="{
10
+ ...exclAttribute({
11
+ data: item,
12
+ attrs: ['events']
13
+ }),
14
+ ...parseProps(),
15
+ method: 'post',
16
+ btnSize: size,
17
+ showFileList: false,
18
+ selectType: mode == 'plus' ? 'text' : item.type
19
+ }"
20
+ v-on="item.events"
21
+ ></es-upload>
22
+ <el-tooltip
23
+ :key="index"
24
+ v-else-if="item.showTooltip"
25
+ :effect="item.effect ? item.effect : 'dark'"
26
+ :content="item.tips"
27
+ :placement="item.placement ? item.placement : 'top'"
28
+ >
29
+ <es-button
30
+ :stop="stop"
31
+ :data="data"
32
+ :outside="outside"
33
+ v-bind="
34
+ exclAttribute({
35
+ data: item,
36
+ attrs: ['events']
37
+ })
38
+ "
39
+ :size="size"
40
+ :type="mode == 'plus' ? 'text' : item.type"
41
+ v-on="item.events"
42
+ @click="handleClick({ ...data, handle: item })"
43
+ >
44
+ {{
45
+ item.template
46
+ ? item.template({ ...data, config: item })
47
+ : item.text
48
+ }}
49
+ </es-button>
50
+ </el-tooltip>
51
+ <es-button
52
+ v-else
53
+ :stop="stop"
54
+ :data="data"
55
+ :outside="outside"
56
+ v-bind="
57
+ exclAttribute({
58
+ data: item,
59
+ attrs: ['events']
60
+ })
61
+ "
62
+ :key="index"
63
+ :size="size"
64
+ :type="mode == 'plus' ? 'text' : item.type"
65
+ v-on="item.events"
66
+ @click="handleClick({ ...data, handle: item })"
67
+ >
68
+ {{
69
+ item.template
70
+ ? item.template({ ...data, config: item })
71
+ : item.text
72
+ }}
73
+ </es-button>
74
+ </template>
75
+ </template>
76
+ </template>
77
+ <el-dropdown
78
+ v-if="other.length > 0"
79
+ ref="dropdown"
80
+ @command="handleCommand"
81
+ @visible-change="handleChange"
82
+ :trigger="trigger"
83
+ >
84
+ <el-button :size="size" :type="mode == 'plus' ? 'text' : ''">
85
+ <el-badge v-bind="badges">
86
+ <template v-if="mode == 'plus'">更多</template>
87
+ <template v-else-if="moreText">
88
+ {{ moreText }}
89
+ <i
90
+ :class="{
91
+ 'el-icon-arrow-down': !show,
92
+ 'el-icon-arrow-up': show
93
+ }"
94
+ ></i>
95
+ </template>
96
+ <i v-else class="es-icon-more"></i>
97
+ </el-badge>
98
+ </el-button>
99
+ <el-dropdown-menu slot="dropdown">
100
+ <el-dropdown-item
101
+ v-for="(item, index) in other"
102
+ :key="index"
103
+ :command="item"
104
+ :class="{ 'es-dropdown-padding': item.upload || item.selector }"
105
+ v-show="!item.hide"
106
+ >
107
+ <es-upload
108
+ v-if="item.upload || (item.code && item.ownId)"
109
+ class="es-dropdown-upload"
110
+ v-bind="{
111
+ ...exclAttribute({
112
+ data: item,
113
+ attrs: ['events']
114
+ }),
115
+ ...parseProps(),
116
+ method: 'post',
117
+ showFileList: false,
118
+ selectType: 'text'
119
+ }"
120
+ v-on="item.events"
121
+ ></es-upload>
122
+ <es-selector
123
+ v-else-if="item.selector"
124
+ class="es-dropdown-selector"
125
+ v-bind="{
126
+ reset: true,
127
+ ...exclAttribute({
128
+ data: item,
129
+ attrs: ['events', 'type', 'value']
130
+ }),
131
+ businessData: data
132
+ }"
133
+ v-on="item.events"
134
+ :button="{ size: 'medium', type: 'text' }"
135
+ >
136
+ <i :class="item.icon" v-if="item.icon"></i
137
+ >{{
138
+ item.template
139
+ ? item.template({ ...data, config: item })
140
+ : item.text
141
+ }}
142
+ </es-selector>
143
+ <el-tooltip
144
+ :key="index"
145
+ v-else-if="item.showTooltip"
146
+ :effect="item.effect ? item.effect : 'dark'"
147
+ :content="item.tips"
148
+ :placement="item.placement ? item.placement : 'top'"
149
+ >
150
+ <span type="text">
151
+ {{
152
+ item.template
153
+ ? item.template({ ...data, config: item })
154
+ : item.text
155
+ }}
156
+ </span></el-tooltip
157
+ >
158
+ <template v-else>
159
+ <i :class="item.icon" v-if="item.icon"></i
160
+ >{{
161
+ item.template
162
+ ? item.template({ ...data, config: item })
163
+ : item.text
164
+ }}
165
+ </template>
166
+ <el-badge
167
+ v-if="item.badge"
168
+ v-bind="
169
+ typeof item.badge === 'number'
170
+ ? { value: item.badge }
171
+ : item.badge
172
+ "
173
+ ></el-badge>
174
+ </el-dropdown-item>
175
+ </el-dropdown-menu>
176
+ </el-dropdown>
177
+ </el-button-group>
178
+ </template>
179
+ <script>
180
+ import util from 'eoss-ui/src/utils/util';
181
+ export default {
182
+ name: 'EsButtonGroup',
183
+ provide() {
184
+ return {
185
+ btnGroup: this
186
+ };
187
+ },
188
+ props: {
189
+ mode: String,
190
+ value: String,
191
+ data: Object,
192
+ contents: { type: Array, default: [] },
193
+ length: {
194
+ type: Number,
195
+ default: 3
196
+ },
197
+ rules: Function,
198
+ stop: Boolean,
199
+ trigger: {
200
+ type: String,
201
+ default: 'hover'
202
+ },
203
+ useCaseCodeKey: String,
204
+ moreText: String,
205
+ size: {
206
+ type: String,
207
+ default: 'mini'
208
+ },
209
+ placement: {
210
+ type: String,
211
+ default: 'bottom'
212
+ },
213
+ parseData: Function,
214
+ badge: Object,
215
+ sort: Boolean,
216
+ outside: {
217
+ type: Boolean,
218
+ default: true
219
+ }
220
+ },
221
+ computed: {
222
+ btns() {
223
+ return this.getBtns();
224
+ },
225
+ showBtns() {
226
+ return this.btns.length > this.length
227
+ ? this.btns.slice(0, this.length - 1)
228
+ : this.btns;
229
+ },
230
+ other() {
231
+ let btns =
232
+ this.length > 0 && (this.btns.length > this.length || this.length == 1)
233
+ ? this.btns.slice(this.length - 1, this.btns.length)
234
+ : [];
235
+ return btns;
236
+ },
237
+ badges() {
238
+ if (
239
+ this.other.length &&
240
+ this.other.filter((item) => {
241
+ return item.badge;
242
+ }).length
243
+ ) {
244
+ return this.badge ? { isDot: true, ...this.badge } : { isDot: true };
245
+ }
246
+ return this.badge
247
+ ? { isDot: true, hidden: true, ...this.badge }
248
+ : { isDot: true, hidden: true };
249
+ }
250
+ },
251
+ watch: {},
252
+ data() {
253
+ return {
254
+ show: false
255
+ };
256
+ },
257
+ mounted() {
258
+ this.resetWidth();
259
+ },
260
+ methods: {
261
+ exclAttribute({ data, attrs }) {
262
+ return util.exclAttribute({ data, attrs });
263
+ },
264
+ getBtns() {
265
+ let useCaseCodes = util.getStorage('useCaseCodes');
266
+ let keyword =
267
+ this.data && this.useCaseCodeKey
268
+ ? this.data.row[this.useCaseCodeKey]
269
+ : null;
270
+ let arry = this.contents.filter((item) => {
271
+ if (Object.prototype.hasOwnProperty.call(item, 'rules')) {
272
+ if (useCaseCodes && (item.useCaseCode || keyword)) {
273
+ return (
274
+ item.rules(this.data.row) &&
275
+ useCaseCodes.indexOf(item.useCaseCode || keyword) > -1
276
+ );
277
+ }
278
+ return item.rules(this.data.row);
279
+ }
280
+ if (this.rules !== undefined) {
281
+ if (useCaseCodes && (item.useCaseCode || keyword)) {
282
+ return (
283
+ this.rules(this.data.row) &&
284
+ useCaseCodes.indexOf(item.useCaseCode || keyword) > -1
285
+ );
286
+ }
287
+ return this.rules(this.data.row);
288
+ }
289
+ if (useCaseCodes && (item.useCaseCode || keyword)) {
290
+ return useCaseCodes.indexOf(item.useCaseCode || keyword) > -1;
291
+ }
292
+ return item.hide !== true;
293
+ });
294
+ let newBtns = arry.map((item) => {
295
+ let badge, tips;
296
+ if (item.badge && typeof item.badge === 'function') {
297
+ badge = item.badge(this.data.row);
298
+ }
299
+ if (item.tips && typeof item.tips === 'function') {
300
+ item.tips = item.tips(this.data.row);
301
+ }
302
+ return badge ? { ...item, badge: badge } : { ...item };
303
+ });
304
+ if (this.sort) {
305
+ newBtns = newBtns.sort((a, b) => {
306
+ return (b.badge ? 1 : 0) - (a.badge ? 1 : 0);
307
+ });
308
+ }
309
+ return newBtns;
310
+ },
311
+ handleChange(res) {
312
+ this.show = res;
313
+ },
314
+ handleClick(obj) {
315
+ this.$emit('handleClick', obj);
316
+ this.$emit('handle-click', obj);
317
+ },
318
+ handleCommand(res) {
319
+ if (res.upload || res.selector) {
320
+ this.$refs.dropdown.hide();
321
+ return false;
322
+ }
323
+ this.$emit('handleClick', { ...this.data, handle: res });
324
+ this.$emit('handle-click', { ...this.data, handle: res });
325
+ },
326
+ resetWidth() {
327
+ this.$nextTick(() => {
328
+ let childNodes = this.$el.childNodes;
329
+ let width = parseInt(this.value, 10);
330
+ let w = 0;
331
+ for (let i = 0; i < childNodes.length; i++) {
332
+ let item = childNodes[i];
333
+ w += item.clientWidth ? item.clientWidth : 0;
334
+ }
335
+ w += 20 + childNodes.length + 10;
336
+ if (w > width) {
337
+ this.$emit('input', w + 'px');
338
+ }
339
+ });
340
+ },
341
+ parseProps() {
342
+ return this.parseData && this.data ? this.parseData(this.data) : {};
343
+ }
344
+ }
345
+ };
346
+ </script>