eoss-ui 0.6.99 → 0.7.10

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 (243) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +769 -757
  3. package/lib/flow-list.js +81 -81
  4. package/lib/flow.js +304 -292
  5. package/lib/index.js +1 -1
  6. package/lib/main.js +132 -132
  7. package/lib/qr-code.js +13 -13
  8. package/package.json +160 -160
  9. package/packages/button/index.js +5 -5
  10. package/packages/button/src/main.vue +418 -418
  11. package/packages/button-group/index.js +5 -5
  12. package/packages/button-group/src/main.vue +298 -298
  13. package/packages/calendar/index.js +5 -5
  14. package/packages/calogin/index.js +5 -5
  15. package/packages/calogin/src/main.vue +412 -412
  16. package/packages/calogin/src/plugin.js +915 -915
  17. package/packages/card/index.js +5 -5
  18. package/packages/card/src/main.vue +156 -156
  19. package/packages/cascader/index.js +5 -5
  20. package/packages/cascader/src/main.vue +168 -168
  21. package/packages/checkbox-group/index.js +5 -5
  22. package/packages/checkbox-group/src/main.vue +333 -333
  23. package/packages/clients/index.js +5 -5
  24. package/packages/clients/src/main.vue +151 -151
  25. package/packages/data-table/index.js +5 -5
  26. package/packages/data-table/src/children.vue +39 -39
  27. package/packages/data-table/src/column.vue +988 -988
  28. package/packages/data-table/src/main.vue +1831 -1831
  29. package/packages/data-table/src/sizer.vue +195 -195
  30. package/packages/data-table-form/index.js +5 -5
  31. package/packages/data-table-form/src/checkbox.vue +101 -101
  32. package/packages/data-table-form/src/colgroup.vue +17 -17
  33. package/packages/data-table-form/src/main.vue +181 -181
  34. package/packages/data-table-form/src/radio.vue +65 -65
  35. package/packages/data-table-form/src/table.vue +233 -233
  36. package/packages/data-table-form/src/tbody.vue +336 -336
  37. package/packages/data-table-form/src/thead.vue +68 -68
  38. package/packages/date-picker/index.js +5 -5
  39. package/packages/date-picker/src/main.vue +236 -236
  40. package/packages/dialog/index.js +5 -5
  41. package/packages/enable-drag/index.js +5 -5
  42. package/packages/enterprise/index.js +5 -5
  43. package/packages/enterprise/src/main.vue +66 -66
  44. package/packages/error-page/index.js +5 -5
  45. package/packages/error-page/src/main.vue +44 -44
  46. package/packages/flow/index.js +5 -5
  47. package/packages/flow/src/component/Circulate.vue +405 -403
  48. package/packages/flow/src/component/CommonOpinions.vue +364 -364
  49. package/packages/flow/src/component/CustomPreset.vue +322 -322
  50. package/packages/flow/src/component/FileList.vue +99 -99
  51. package/packages/flow/src/component/Preset.vue +255 -255
  52. package/packages/flow/src/component/SendMsg.vue +242 -242
  53. package/packages/flow/src/component/TimeLimit.vue +190 -190
  54. package/packages/flow/src/component/taskUnionExamine.vue +641 -641
  55. package/packages/flow/src/form.vue +121 -121
  56. package/packages/flow/src/freeStartFlow.vue +2844 -2844
  57. package/packages/flow/src/main.vue +3742 -3726
  58. package/packages/flow/src/processForm.vue +1287 -1287
  59. package/packages/flow/src/processReject.vue +308 -308
  60. package/packages/flow/src/reset.vue +941 -941
  61. package/packages/flow/src/startTaskRead.vue +690 -690
  62. package/packages/flow/src/supervise.vue +159 -159
  63. package/packages/flow/src/table.vue +58 -58
  64. package/packages/flow-group/index.js +5 -5
  65. package/packages/flow-group/src/main.vue +692 -692
  66. package/packages/flow-list/index.js +5 -5
  67. package/packages/flow-list/src/main.vue +1770 -1770
  68. package/packages/form/index.js +5 -5
  69. package/packages/form/src/main.vue +3846 -3846
  70. package/packages/form/src/table.vue +1508 -1508
  71. package/packages/handle-user/index.js +5 -5
  72. package/packages/handle-user/src/main.vue +137 -137
  73. package/packages/handler/index.js +5 -5
  74. package/packages/handler/src/main.vue +493 -493
  75. package/packages/icon/index.js +5 -5
  76. package/packages/icon/src/main.vue +101 -101
  77. package/packages/icons/index.js +5 -5
  78. package/packages/icons/src/main.vue +81 -81
  79. package/packages/input/index.js +5 -5
  80. package/packages/input/src/main.vue +356 -356
  81. package/packages/input-number/index.js +5 -5
  82. package/packages/input-number/src/main.vue +106 -106
  83. package/packages/label/index.js +5 -5
  84. package/packages/label/src/main.vue +457 -457
  85. package/packages/layout/index.js +5 -5
  86. package/packages/layout/src/item.vue +152 -152
  87. package/packages/layout/src/main.vue +31 -31
  88. package/packages/login/index.js +5 -5
  89. package/packages/login/src/main.vue +1993 -1993
  90. package/packages/login/src/resetPassword.vue +562 -562
  91. package/packages/main/index.js +5 -5
  92. package/packages/main/src/default/message.vue +249 -249
  93. package/packages/main/src/default/notice.vue +157 -157
  94. package/packages/main/src/default/userinfo.vue +502 -502
  95. package/packages/main/src/public/online.vue +89 -89
  96. package/packages/main/src/public/search.vue +464 -464
  97. package/packages/main/src/public/settings.vue +221 -221
  98. package/packages/main/src/simplicity/apps.vue +388 -388
  99. package/packages/main/src/simplicity/avatar.vue +82 -82
  100. package/packages/main/src/simplicity/handler.vue +259 -259
  101. package/packages/main/src/simplicity/index.vue +2125 -2125
  102. package/packages/main/src/simplicity/lists.vue +84 -84
  103. package/packages/main/src/simplicity/menu-list.vue +135 -135
  104. package/packages/main/src/simplicity/message.vue +259 -259
  105. package/packages/main/src/simplicity/notice.vue +190 -190
  106. package/packages/main/src/simplicity/router-page.vue +45 -45
  107. package/packages/main/src/simplicity/sub-menu.vue +264 -264
  108. package/packages/main/src/simplicity/user.vue +259 -259
  109. package/packages/main/src/simplicity/userinfo.vue +397 -397
  110. package/packages/menu/index.js +5 -5
  111. package/packages/menu/src/main.vue +584 -584
  112. package/packages/nav/index.js +5 -5
  113. package/packages/nav/src/main.vue +351 -351
  114. package/packages/notify/index.js +5 -5
  115. package/packages/notify/src/main.vue +538 -538
  116. package/packages/page/index.js +5 -5
  117. package/packages/page/src/main.vue +167 -167
  118. package/packages/pagination/index.js +5 -5
  119. package/packages/pagination/src/main.vue +96 -96
  120. package/packages/player/index.js +5 -5
  121. package/packages/player/src/main.vue +194 -194
  122. package/packages/qr-code/index.js +5 -5
  123. package/packages/qr-code/src/main.vue +170 -170
  124. package/packages/radio-group/index.js +6 -6
  125. package/packages/radio-group/src/main.vue +319 -319
  126. package/packages/retrial-auth/index.js +5 -5
  127. package/packages/retrial-auth/src/main.vue +280 -280
  128. package/packages/select/index.js +5 -5
  129. package/packages/select/src/main.vue +781 -781
  130. package/packages/select-ganged/index.js +5 -5
  131. package/packages/select-ganged/src/main.vue +724 -724
  132. package/packages/selector/index.js +5 -5
  133. package/packages/selector/src/main.vue +761 -761
  134. package/packages/selector-panel/index.js +5 -5
  135. package/packages/selector-panel/src/main.vue +1027 -1027
  136. package/packages/selector-panel/src/selection.vue +170 -170
  137. package/packages/selector-panel/src/tree.vue +129 -129
  138. package/packages/sizer/index.js +5 -5
  139. package/packages/sizer/src/main.vue +254 -254
  140. package/packages/steps/index.js +5 -5
  141. package/packages/steps/src/main.vue +181 -181
  142. package/packages/switch/index.js +5 -5
  143. package/packages/switch/src/main.vue +154 -154
  144. package/packages/table-form/index.js +5 -5
  145. package/packages/tabs/index.js +5 -5
  146. package/packages/tabs/src/main.vue +788 -788
  147. package/packages/tabs-panel/index.js +5 -5
  148. package/packages/tabs-panel/src/main.vue +29 -29
  149. package/packages/theme-chalk/src/base.scss +261 -261
  150. package/packages/theme-chalk/src/button-group.scss +176 -176
  151. package/packages/theme-chalk/src/button.scss +24 -24
  152. package/packages/theme-chalk/src/calendar.scss +113 -113
  153. package/packages/theme-chalk/src/card.scss +99 -99
  154. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  155. package/packages/theme-chalk/src/clients.scss +87 -87
  156. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  157. package/packages/theme-chalk/src/data-table.scss +293 -293
  158. package/packages/theme-chalk/src/date-picker.scss +7 -7
  159. package/packages/theme-chalk/src/dialog.scss +77 -77
  160. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  161. package/packages/theme-chalk/src/enterprise.scss +5 -5
  162. package/packages/theme-chalk/src/error-page.scss +18 -18
  163. package/packages/theme-chalk/src/flow-group.scss +110 -110
  164. package/packages/theme-chalk/src/flow-list.scss +39 -39
  165. package/packages/theme-chalk/src/flow.scss +348 -348
  166. package/packages/theme-chalk/src/form.scss +499 -499
  167. package/packages/theme-chalk/src/handle-user.scss +40 -40
  168. package/packages/theme-chalk/src/handler.scss +143 -143
  169. package/packages/theme-chalk/src/icon.scss +1817 -1817
  170. package/packages/theme-chalk/src/icons.scss +99 -99
  171. package/packages/theme-chalk/src/input.scss +9 -9
  172. package/packages/theme-chalk/src/label.scss +24 -24
  173. package/packages/theme-chalk/src/layout.scss +46 -46
  174. package/packages/theme-chalk/src/login.scss +984 -984
  175. package/packages/theme-chalk/src/main.scss +663 -663
  176. package/packages/theme-chalk/src/menu.scss +222 -222
  177. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  178. package/packages/theme-chalk/src/nav.scss +111 -111
  179. package/packages/theme-chalk/src/page.scss +3 -3
  180. package/packages/theme-chalk/src/pagination.scss +29 -29
  181. package/packages/theme-chalk/src/player.scss +9 -9
  182. package/packages/theme-chalk/src/qr-code.scss +17 -17
  183. package/packages/theme-chalk/src/radio-group.scss +9 -9
  184. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  185. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  186. package/packages/theme-chalk/src/select.scss +8 -8
  187. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  188. package/packages/theme-chalk/src/selector.scss +92 -92
  189. package/packages/theme-chalk/src/simplicity.scss +1361 -1361
  190. package/packages/theme-chalk/src/sizer.scss +36 -36
  191. package/packages/theme-chalk/src/steps.scss +88 -88
  192. package/packages/theme-chalk/src/switch.scss +3 -3
  193. package/packages/theme-chalk/src/table-form.scss +1 -1
  194. package/packages/theme-chalk/src/tabs.scss +87 -87
  195. package/packages/theme-chalk/src/tips.scss +7 -7
  196. package/packages/theme-chalk/src/toolbar.scss +179 -179
  197. package/packages/theme-chalk/src/tree-group.scss +72 -72
  198. package/packages/theme-chalk/src/tree.scss +165 -165
  199. package/packages/theme-chalk/src/upload.scss +172 -172
  200. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  201. package/packages/tips/index.js +5 -5
  202. package/packages/tips/src/main.vue +141 -141
  203. package/packages/toolbar/index.js +5 -5
  204. package/packages/toolbar/src/main.vue +430 -430
  205. package/packages/tree/index.js +5 -5
  206. package/packages/tree-group/index.js +5 -5
  207. package/packages/upload/index.js +5 -5
  208. package/packages/upload/src/main.vue +1343 -1343
  209. package/packages/upload/src/picture.js +15 -15
  210. package/packages/wujie/index.js +5 -5
  211. package/packages/wujie/src/main.vue +145 -145
  212. package/packages/wxlogin/index.js +5 -5
  213. package/packages/wxlogin/src/main.vue +128 -128
  214. package/src/config/api.js +308 -308
  215. package/src/config/image.js +2 -2
  216. package/src/index.js +163 -163
  217. package/src/utils/bus.js +3 -3
  218. package/src/utils/date-util.js +312 -312
  219. package/src/utils/http.js +50 -50
  220. package/src/utils/rules.js +18 -18
  221. package/src/utils/store.js +21 -21
  222. package/src/utils/webSocket.js +107 -107
  223. package/packages/.DS_Store +0 -0
  224. package/packages/autocomplete/.DS_Store +0 -0
  225. package/packages/calogin/.DS_Store +0 -0
  226. package/packages/date-picker/.DS_Store +0 -0
  227. package/packages/date-picker/src/.DS_Store +0 -0
  228. package/packages/flow/.DS_Store +0 -0
  229. package/packages/flow/src/.DS_Store +0 -0
  230. package/packages/flow-list/.DS_Store +0 -0
  231. package/packages/form/.DS_Store +0 -0
  232. package/packages/login/.DS_Store +0 -0
  233. package/packages/main/.DS_Store +0 -0
  234. package/packages/main/src/.DS_Store +0 -0
  235. package/packages/menu/.DS_Store +0 -0
  236. package/packages/scrollbar/.DS_Store +0 -0
  237. package/packages/select/.DS_Store +0 -0
  238. package/packages/selector/.DS_Store +0 -0
  239. package/packages/selector-panel/.DS_Store +0 -0
  240. package/packages/theme-chalk/src/.DS_Store +0 -0
  241. package/packages/upload/.DS_Store +0 -0
  242. package/src/.DS_Store +0 -0
  243. package/src/utils/.DS_Store +0 -0
@@ -1,5 +1,5 @@
1
- import EsButtonGroup from './src/main';
2
-
3
- EsButtonGroup.install = Vue => Vue.component(EsButtonGroup.name, EsButtonGroup);
4
-
5
- export default EsButtonGroup;
1
+ import EsButtonGroup from './src/main';
2
+
3
+ EsButtonGroup.install = Vue => Vue.component(EsButtonGroup.name, EsButtonGroup);
4
+
5
+ export default EsButtonGroup;
@@ -1,298 +1,298 @@
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
- v-bind="{
9
- ...exclAttribute({
10
- data: item,
11
- attrs: ['events']
12
- }),
13
- ...parseProps(),
14
- method: 'post',
15
- btnSize: size,
16
- showFileList: false,
17
- selectType: mode == 'plus' ? 'text' : item.type
18
- }"
19
- v-on="item.events"
20
- ></es-upload>
21
- <es-button
22
- v-else
23
- :stop="stop"
24
- :data="data"
25
- :outside="outside"
26
- v-bind="
27
- exclAttribute({
28
- data: item,
29
- attrs: ['events']
30
- })
31
- "
32
- :key="index"
33
- :size="size"
34
- :type="mode == 'plus' ? 'text' : item.type"
35
- v-on="item.events"
36
- @click="handleClick({ ...data, handle: item })"
37
- >
38
- {{
39
- item.template
40
- ? item.template({ ...data, config: item })
41
- : item.text
42
- }}
43
- </es-button>
44
- </template>
45
- </template>
46
- </template>
47
- <el-dropdown
48
- v-if="other.length > 0"
49
- ref="dropdown"
50
- @command="handleCommand"
51
- @visible-change="handleChange"
52
- :trigger="trigger"
53
- >
54
- <el-button :size="size" :type="mode == 'plus' ? 'text' : ''">
55
- <el-badge v-bind="badges">
56
- <template v-if="mode == 'plus'">更多</template>
57
- <template v-else-if="moreText">
58
- {{ moreText }}
59
- <i
60
- :class="{
61
- 'el-icon-arrow-down': !show,
62
- 'el-icon-arrow-up': show
63
- }"
64
- ></i>
65
- </template>
66
- <i v-else class="es-icon-omit"></i>
67
- </el-badge>
68
- </el-button>
69
- <el-dropdown-menu slot="dropdown">
70
- <el-dropdown-item
71
- v-for="(item, index) in other"
72
- :key="index"
73
- :command="item"
74
- :class="{ 'es-dropdown-padding': item.upload || item.selector }"
75
- v-show="!item.hide"
76
- >
77
- <es-upload
78
- v-if="item.upload || (item.code && item.ownId)"
79
- class="es-dropdown-upload"
80
- v-bind="{
81
- ...exclAttribute({
82
- data: item,
83
- attrs: ['events']
84
- }),
85
- ...parseProps(),
86
- method: 'post',
87
- showFileList: false,
88
- selectType: 'text'
89
- }"
90
- v-on="item.events"
91
- ></es-upload>
92
- <es-selector
93
- v-else-if="item.selector"
94
- class="es-dropdown-selector"
95
- v-bind="{
96
- reset: true,
97
- ...exclAttribute({
98
- data: item,
99
- attrs: ['events', 'type', 'value']
100
- }),
101
- businessData: data
102
- }"
103
- v-on="item.events"
104
- :button="{ size: 'medium', type: 'text' }"
105
- >
106
- <i :class="item.icon" v-if="item.icon"></i
107
- >{{
108
- item.template
109
- ? item.template({ ...data, config: item })
110
- : item.text
111
- }}
112
- </es-selector>
113
- <template v-else>
114
- <i :class="item.icon" v-if="item.icon"></i
115
- >{{
116
- item.template
117
- ? item.template({ ...data, config: item })
118
- : item.text
119
- }}
120
- </template>
121
- <el-badge
122
- v-if="item.badge"
123
- v-bind="
124
- typeof item.badge === 'number'
125
- ? { value: item.badge }
126
- : item.badge
127
- "
128
- ></el-badge>
129
- </el-dropdown-item>
130
- </el-dropdown-menu>
131
- </el-dropdown>
132
- </el-button-group>
133
- </template>
134
- <script>
135
- import util from 'eoss-ui/src/utils/util';
136
- export default {
137
- name: 'EsButtonGroup',
138
- provide() {
139
- return {
140
- btnGroup: this
141
- };
142
- },
143
- props: {
144
- mode: String,
145
- value: String,
146
- data: Object,
147
- contents: { type: Array, default: [] },
148
- length: {
149
- type: Number,
150
- default: 3
151
- },
152
- rules: Function,
153
- stop: Boolean,
154
- trigger: {
155
- type: String,
156
- default: 'hover'
157
- },
158
- useCaseCodeKey: String,
159
- moreText: String,
160
- size: {
161
- type: String,
162
- default: 'mini'
163
- },
164
- placement: {
165
- type: String,
166
- default: 'bottom'
167
- },
168
- parseData: Function,
169
- badge: Object,
170
- sort: Boolean,
171
- outside: {
172
- type: Boolean,
173
- default: true
174
- }
175
- },
176
- computed: {
177
- btns() {
178
- return this.getBtns();
179
- },
180
- showBtns() {
181
- return this.btns.length > this.length
182
- ? this.btns.slice(0, this.length - 1)
183
- : this.btns;
184
- },
185
- other() {
186
- let btns =
187
- this.length > 0 && (this.btns.length > this.length || this.length == 1)
188
- ? this.btns.slice(this.length - 1, this.btns.length)
189
- : [];
190
- return btns;
191
- },
192
- badges() {
193
- if (
194
- this.other.length &&
195
- this.other.filter((item) => {
196
- return item.badge;
197
- }).length
198
- ) {
199
- return this.badge ? { isDot: true, ...this.badge } : { isDot: true };
200
- }
201
- return this.badge
202
- ? { isDot: true, hidden: true, ...this.badge }
203
- : { isDot: true, hidden: true };
204
- }
205
- },
206
- watch: {},
207
- data() {
208
- return {
209
- show: false
210
- };
211
- },
212
- mounted() {
213
- this.resetWidth();
214
- },
215
- methods: {
216
- exclAttribute({ data, attrs }) {
217
- return util.exclAttribute({ data, attrs });
218
- },
219
- getBtns() {
220
- let useCaseCodes = util.getStorage('useCaseCodes');
221
- let keyword =
222
- this.data && this.useCaseCodeKey
223
- ? this.data.row[this.useCaseCodeKey]
224
- : null;
225
- let arry = this.contents.filter((item) => {
226
- if (Object.prototype.hasOwnProperty.call(item, 'rules')) {
227
- if (useCaseCodes && (item.useCaseCode || keyword)) {
228
- return (
229
- item.rules(this.data.row) &&
230
- useCaseCodes.indexOf(item.useCaseCode || keyword) > -1
231
- );
232
- }
233
- return item.rules(this.data.row);
234
- }
235
- if (this.rules !== undefined) {
236
- if (useCaseCodes && (item.useCaseCode || keyword)) {
237
- return (
238
- this.rules(this.data.row) &&
239
- useCaseCodes.indexOf(item.useCaseCode || keyword) > -1
240
- );
241
- }
242
- return this.rules(this.data.row);
243
- }
244
- if (useCaseCodes && (item.useCaseCode || keyword)) {
245
- return useCaseCodes.indexOf(item.useCaseCode || keyword) > -1;
246
- }
247
- return item.hide !== true;
248
- });
249
- let newBtns = arry.map((item) => {
250
- let badge;
251
- if (item.badge && typeof item.badge === 'function') {
252
- badge = item.badge(this.data.row);
253
- }
254
- return badge ? { ...item, badge: badge } : { ...item };
255
- });
256
- if (this.sort) {
257
- newBtns = newBtns.sort((a, b) => {
258
- return (b.badge ? 1 : 0) - (a.badge ? 1 : 0);
259
- });
260
- }
261
- return newBtns;
262
- },
263
- handleChange(res) {
264
- this.show = res;
265
- },
266
- handleClick(obj) {
267
- this.$emit('handleClick', obj);
268
- this.$emit('handle-click', obj);
269
- },
270
- handleCommand(res) {
271
- if (res.upload || res.selector) {
272
- this.$refs.dropdown.hide();
273
- return false;
274
- }
275
- this.$emit('handleClick', { ...this.data, handle: res });
276
- this.$emit('handle-click', { ...this.data, handle: res });
277
- },
278
- resetWidth() {
279
- this.$nextTick(() => {
280
- let childNodes = this.$el.childNodes;
281
- let width = parseInt(this.value, 10);
282
- let w = 0;
283
- for (let i = 0; i < childNodes.length; i++) {
284
- let item = childNodes[i];
285
- w += item.clientWidth ? item.clientWidth : 0;
286
- }
287
- w += 20 + childNodes.length + 10;
288
- if (w > width) {
289
- this.$emit('input', w + 'px');
290
- }
291
- });
292
- },
293
- parseProps() {
294
- return this.parseData && this.data ? this.parseData(this.data) : {};
295
- }
296
- }
297
- };
298
- </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
+ v-bind="{
9
+ ...exclAttribute({
10
+ data: item,
11
+ attrs: ['events']
12
+ }),
13
+ ...parseProps(),
14
+ method: 'post',
15
+ btnSize: size,
16
+ showFileList: false,
17
+ selectType: mode == 'plus' ? 'text' : item.type
18
+ }"
19
+ v-on="item.events"
20
+ ></es-upload>
21
+ <es-button
22
+ v-else
23
+ :stop="stop"
24
+ :data="data"
25
+ :outside="outside"
26
+ v-bind="
27
+ exclAttribute({
28
+ data: item,
29
+ attrs: ['events']
30
+ })
31
+ "
32
+ :key="index"
33
+ :size="size"
34
+ :type="mode == 'plus' ? 'text' : item.type"
35
+ v-on="item.events"
36
+ @click="handleClick({ ...data, handle: item })"
37
+ >
38
+ {{
39
+ item.template
40
+ ? item.template({ ...data, config: item })
41
+ : item.text
42
+ }}
43
+ </es-button>
44
+ </template>
45
+ </template>
46
+ </template>
47
+ <el-dropdown
48
+ v-if="other.length > 0"
49
+ ref="dropdown"
50
+ @command="handleCommand"
51
+ @visible-change="handleChange"
52
+ :trigger="trigger"
53
+ >
54
+ <el-button :size="size" :type="mode == 'plus' ? 'text' : ''">
55
+ <el-badge v-bind="badges">
56
+ <template v-if="mode == 'plus'">更多</template>
57
+ <template v-else-if="moreText">
58
+ {{ moreText }}
59
+ <i
60
+ :class="{
61
+ 'el-icon-arrow-down': !show,
62
+ 'el-icon-arrow-up': show
63
+ }"
64
+ ></i>
65
+ </template>
66
+ <i v-else class="es-icon-omit"></i>
67
+ </el-badge>
68
+ </el-button>
69
+ <el-dropdown-menu slot="dropdown">
70
+ <el-dropdown-item
71
+ v-for="(item, index) in other"
72
+ :key="index"
73
+ :command="item"
74
+ :class="{ 'es-dropdown-padding': item.upload || item.selector }"
75
+ v-show="!item.hide"
76
+ >
77
+ <es-upload
78
+ v-if="item.upload || (item.code && item.ownId)"
79
+ class="es-dropdown-upload"
80
+ v-bind="{
81
+ ...exclAttribute({
82
+ data: item,
83
+ attrs: ['events']
84
+ }),
85
+ ...parseProps(),
86
+ method: 'post',
87
+ showFileList: false,
88
+ selectType: 'text'
89
+ }"
90
+ v-on="item.events"
91
+ ></es-upload>
92
+ <es-selector
93
+ v-else-if="item.selector"
94
+ class="es-dropdown-selector"
95
+ v-bind="{
96
+ reset: true,
97
+ ...exclAttribute({
98
+ data: item,
99
+ attrs: ['events', 'type', 'value']
100
+ }),
101
+ businessData: data
102
+ }"
103
+ v-on="item.events"
104
+ :button="{ size: 'medium', type: 'text' }"
105
+ >
106
+ <i :class="item.icon" v-if="item.icon"></i
107
+ >{{
108
+ item.template
109
+ ? item.template({ ...data, config: item })
110
+ : item.text
111
+ }}
112
+ </es-selector>
113
+ <template v-else>
114
+ <i :class="item.icon" v-if="item.icon"></i
115
+ >{{
116
+ item.template
117
+ ? item.template({ ...data, config: item })
118
+ : item.text
119
+ }}
120
+ </template>
121
+ <el-badge
122
+ v-if="item.badge"
123
+ v-bind="
124
+ typeof item.badge === 'number'
125
+ ? { value: item.badge }
126
+ : item.badge
127
+ "
128
+ ></el-badge>
129
+ </el-dropdown-item>
130
+ </el-dropdown-menu>
131
+ </el-dropdown>
132
+ </el-button-group>
133
+ </template>
134
+ <script>
135
+ import util from 'eoss-ui/src/utils/util';
136
+ export default {
137
+ name: 'EsButtonGroup',
138
+ provide() {
139
+ return {
140
+ btnGroup: this
141
+ };
142
+ },
143
+ props: {
144
+ mode: String,
145
+ value: String,
146
+ data: Object,
147
+ contents: { type: Array, default: [] },
148
+ length: {
149
+ type: Number,
150
+ default: 3
151
+ },
152
+ rules: Function,
153
+ stop: Boolean,
154
+ trigger: {
155
+ type: String,
156
+ default: 'hover'
157
+ },
158
+ useCaseCodeKey: String,
159
+ moreText: String,
160
+ size: {
161
+ type: String,
162
+ default: 'mini'
163
+ },
164
+ placement: {
165
+ type: String,
166
+ default: 'bottom'
167
+ },
168
+ parseData: Function,
169
+ badge: Object,
170
+ sort: Boolean,
171
+ outside: {
172
+ type: Boolean,
173
+ default: true
174
+ }
175
+ },
176
+ computed: {
177
+ btns() {
178
+ return this.getBtns();
179
+ },
180
+ showBtns() {
181
+ return this.btns.length > this.length
182
+ ? this.btns.slice(0, this.length - 1)
183
+ : this.btns;
184
+ },
185
+ other() {
186
+ let btns =
187
+ this.length > 0 && (this.btns.length > this.length || this.length == 1)
188
+ ? this.btns.slice(this.length - 1, this.btns.length)
189
+ : [];
190
+ return btns;
191
+ },
192
+ badges() {
193
+ if (
194
+ this.other.length &&
195
+ this.other.filter((item) => {
196
+ return item.badge;
197
+ }).length
198
+ ) {
199
+ return this.badge ? { isDot: true, ...this.badge } : { isDot: true };
200
+ }
201
+ return this.badge
202
+ ? { isDot: true, hidden: true, ...this.badge }
203
+ : { isDot: true, hidden: true };
204
+ }
205
+ },
206
+ watch: {},
207
+ data() {
208
+ return {
209
+ show: false
210
+ };
211
+ },
212
+ mounted() {
213
+ this.resetWidth();
214
+ },
215
+ methods: {
216
+ exclAttribute({ data, attrs }) {
217
+ return util.exclAttribute({ data, attrs });
218
+ },
219
+ getBtns() {
220
+ let useCaseCodes = util.getStorage('useCaseCodes');
221
+ let keyword =
222
+ this.data && this.useCaseCodeKey
223
+ ? this.data.row[this.useCaseCodeKey]
224
+ : null;
225
+ let arry = this.contents.filter((item) => {
226
+ if (Object.prototype.hasOwnProperty.call(item, 'rules')) {
227
+ if (useCaseCodes && (item.useCaseCode || keyword)) {
228
+ return (
229
+ item.rules(this.data.row) &&
230
+ useCaseCodes.indexOf(item.useCaseCode || keyword) > -1
231
+ );
232
+ }
233
+ return item.rules(this.data.row);
234
+ }
235
+ if (this.rules !== undefined) {
236
+ if (useCaseCodes && (item.useCaseCode || keyword)) {
237
+ return (
238
+ this.rules(this.data.row) &&
239
+ useCaseCodes.indexOf(item.useCaseCode || keyword) > -1
240
+ );
241
+ }
242
+ return this.rules(this.data.row);
243
+ }
244
+ if (useCaseCodes && (item.useCaseCode || keyword)) {
245
+ return useCaseCodes.indexOf(item.useCaseCode || keyword) > -1;
246
+ }
247
+ return item.hide !== true;
248
+ });
249
+ let newBtns = arry.map((item) => {
250
+ let badge;
251
+ if (item.badge && typeof item.badge === 'function') {
252
+ badge = item.badge(this.data.row);
253
+ }
254
+ return badge ? { ...item, badge: badge } : { ...item };
255
+ });
256
+ if (this.sort) {
257
+ newBtns = newBtns.sort((a, b) => {
258
+ return (b.badge ? 1 : 0) - (a.badge ? 1 : 0);
259
+ });
260
+ }
261
+ return newBtns;
262
+ },
263
+ handleChange(res) {
264
+ this.show = res;
265
+ },
266
+ handleClick(obj) {
267
+ this.$emit('handleClick', obj);
268
+ this.$emit('handle-click', obj);
269
+ },
270
+ handleCommand(res) {
271
+ if (res.upload || res.selector) {
272
+ this.$refs.dropdown.hide();
273
+ return false;
274
+ }
275
+ this.$emit('handleClick', { ...this.data, handle: res });
276
+ this.$emit('handle-click', { ...this.data, handle: res });
277
+ },
278
+ resetWidth() {
279
+ this.$nextTick(() => {
280
+ let childNodes = this.$el.childNodes;
281
+ let width = parseInt(this.value, 10);
282
+ let w = 0;
283
+ for (let i = 0; i < childNodes.length; i++) {
284
+ let item = childNodes[i];
285
+ w += item.clientWidth ? item.clientWidth : 0;
286
+ }
287
+ w += 20 + childNodes.length + 10;
288
+ if (w > width) {
289
+ this.$emit('input', w + 'px');
290
+ }
291
+ });
292
+ },
293
+ parseProps() {
294
+ return this.parseData && this.data ? this.parseData(this.data) : {};
295
+ }
296
+ }
297
+ };
298
+ </script>
@@ -1,5 +1,5 @@
1
- import EsCalendar from './src/main';
2
-
3
- EsCalendar.install = Vue => Vue.component(EsCalendar.name, EsCalendar);
4
-
5
- export default EsCalendar;
1
+ import EsCalendar from './src/main';
2
+
3
+ EsCalendar.install = Vue => Vue.component(EsCalendar.name, EsCalendar);
4
+
5
+ export default EsCalendar;
@@ -1,5 +1,5 @@
1
- import EsCalogin from './src/main';
2
-
3
- EsCalogin.install = Vue => Vue.component(EsCalogin.name, EsCalogin);
4
-
5
- export default EsCalogin;
1
+ import EsCalogin from './src/main';
2
+
3
+ EsCalogin.install = Vue => Vue.component(EsCalogin.name, EsCalogin);
4
+
5
+ export default EsCalogin;