eoss-ui 0.8.42 → 0.8.44

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