eoss-ui 0.8.41 → 0.8.42

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 (80) hide show
  1. package/lib/eoss-ui.common.js +191 -159
  2. package/lib/flow.js +128 -128
  3. package/lib/index.js +1 -1
  4. package/lib/main.js +5 -5
  5. package/lib/selector.js +52 -20
  6. package/package.json +1 -1
  7. package/packages/.DS_Store +0 -0
  8. package/packages/button-group/src/main.vue +346 -346
  9. package/packages/calogin/.DS_Store +0 -0
  10. package/packages/calogin/src/main.vue +412 -412
  11. package/packages/clients/src/main.vue +151 -151
  12. package/packages/date-picker/.DS_Store +0 -0
  13. package/packages/date-picker/src/.DS_Store +0 -0
  14. package/packages/dialog/.DS_Store +0 -0
  15. package/packages/flow/.DS_Store +0 -0
  16. package/packages/flow/src/.DS_Store +0 -0
  17. package/packages/flow/src/component/CustomPreset.vue +326 -326
  18. package/packages/flow/src/component/FileList.vue +97 -97
  19. package/packages/flow/src/component/SendMsg.vue +242 -242
  20. package/packages/flow/src/component/SortFlow.vue +110 -110
  21. package/packages/flow/src/form.vue +123 -123
  22. package/packages/flow/src/freeStartFlow.vue +2902 -2902
  23. package/packages/flow/src/processForm.vue +2032 -2032
  24. package/packages/flow/src/processReject.vue +323 -323
  25. package/packages/flow/src/table.vue +58 -58
  26. package/packages/flow-list/.DS_Store +0 -0
  27. package/packages/form/.DS_Store +0 -0
  28. package/packages/form/src/table.vue +1512 -1512
  29. package/packages/icon/.DS_Store +0 -0
  30. package/packages/icon/src/main.vue +104 -104
  31. package/packages/login/.DS_Store +0 -0
  32. package/packages/login/src/resetPassword.vue +557 -557
  33. package/packages/main/.DS_Store +0 -0
  34. package/packages/main/src/.DS_Store +0 -0
  35. package/packages/main/src/public/online.vue +89 -89
  36. package/packages/main/src/public/search.vue +464 -464
  37. package/packages/main/src/public/settings.vue +273 -273
  38. package/packages/main/src/simplicity/apps.vue +388 -388
  39. package/packages/main/src/simplicity/avatar.vue +82 -82
  40. package/packages/main/src/simplicity/handler.vue +158 -158
  41. package/packages/main/src/simplicity/menu-list.vue +135 -135
  42. package/packages/main/src/simplicity/message.vue +293 -293
  43. package/packages/main/src/simplicity/notice.vue +222 -222
  44. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  45. package/packages/main/src/simplicity/user.vue +259 -259
  46. package/packages/main/src/simplicityTop/apps.vue +388 -388
  47. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  48. package/packages/main/src/simplicityTop/handler.vue +215 -215
  49. package/packages/main/src/simplicityTop/lists.vue +84 -84
  50. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  51. package/packages/main/src/simplicityTop/message.vue +293 -293
  52. package/packages/main/src/simplicityTop/notice.vue +222 -222
  53. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  54. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  55. package/packages/main/src/simplicityTop/user.vue +259 -259
  56. package/packages/menu/.DS_Store +0 -0
  57. package/packages/nav/src/main.vue +351 -351
  58. package/packages/select/.DS_Store +0 -0
  59. package/packages/selector/.DS_Store +0 -0
  60. package/packages/selector/src/main.vue +36 -17
  61. package/packages/selector-panel/.DS_Store +0 -0
  62. package/packages/selector-panel/src/selection.vue +174 -174
  63. package/packages/switch/src/main.vue +170 -170
  64. package/packages/theme-chalk/src/.DS_Store +0 -0
  65. package/packages/theme-chalk/src/data-table.scss +297 -297
  66. package/packages/theme-chalk/src/handler.scss +148 -148
  67. package/packages/theme-chalk/src/icon.scss +3452 -3452
  68. package/packages/theme-chalk/src/login.scss +1006 -1006
  69. package/packages/theme-chalk/src/main.scss +664 -664
  70. package/packages/theme-chalk/src/menu.scss +224 -224
  71. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  72. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  73. package/packages/theme-chalk/src/upload.scss +172 -172
  74. package/packages/tips/src/main.vue +141 -141
  75. package/packages/upload/.DS_Store +0 -0
  76. package/packages/wujie/src/main.vue +146 -146
  77. package/src/.DS_Store +0 -0
  78. package/src/index.js +166 -166
  79. package/src/utils/.DS_Store +0 -0
  80. package/src/utils/rules.js +18 -18
@@ -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>