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