bri-components 1.5.21 → 1.6.0

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 (153) hide show
  1. package/README.md +83 -83
  2. package/lib/styles/bundle.css +12 -12
  3. package/lib/styles/font/fontello.svg +31 -31
  4. package/package.json +125 -125
  5. package/src/components/Error/Error403.vue +42 -42
  6. package/src/components/Error/Error404.vue +40 -40
  7. package/src/components/Error/Error500.vue +51 -51
  8. package/src/components/Error/error.less +162 -162
  9. package/src/components/Error/errorBack.vue +40 -40
  10. package/src/components/controls/DshControlInput.vue +195 -195
  11. package/src/components/controls/base/BriUpload/BriUpload.vue +434 -434
  12. package/src/components/controls/base/BriUpload/BriUploadImage.vue +377 -377
  13. package/src/components/controls/base/BriUpload/uploadList.vue +727 -727
  14. package/src/components/controls/base/BriUpload/uploadMixin.js +446 -446
  15. package/src/components/controls/base/DshCascader/DshCascader.vue +215 -215
  16. package/src/components/controls/base/DshCascader/components/cascaderModal.vue +366 -366
  17. package/src/components/controls/base/DshCascader/components/cascaderPicker.vue +416 -416
  18. package/src/components/controls/base/DshCascader/components/cascaderSimple.vue +141 -141
  19. package/src/components/controls/base/DshCascader/components/cascaderTree.vue +151 -151
  20. package/src/components/controls/base/DshCoordinates.vue +585 -577
  21. package/src/components/controls/base/DshDate/DshDate.vue +191 -191
  22. package/src/components/controls/base/DshDate/DshDaterange.vue +186 -186
  23. package/src/components/controls/base/DshDivider.vue +201 -201
  24. package/src/components/controls/base/DshEditor.vue +274 -274
  25. package/src/components/controls/base/DshInput/BriInputs.vue +166 -166
  26. package/src/components/controls/base/DshInput/DshInput.vue +260 -260
  27. package/src/components/controls/base/DshNumber/BriInputNumber/BriInputNumber.vue +435 -435
  28. package/src/components/controls/base/DshNumber/BriInputNumber/mixins/emitter.js +34 -34
  29. package/src/components/controls/base/DshNumber/BriInputNumber/mixins/form.js +14 -14
  30. package/src/components/controls/base/DshNumber/BriInputNumber/utils/assist.js +322 -322
  31. package/src/components/controls/base/DshNumber/DshNumber.vue +143 -143
  32. package/src/components/controls/base/DshNumber/DshNumberange.vue +109 -109
  33. package/src/components/controls/base/DshSelect/DshCheckbox.vue +168 -168
  34. package/src/components/controls/base/DshSelect/DshSelect.vue +180 -180
  35. package/src/components/controls/base/DshSelect/DshSelectAll.vue +269 -269
  36. package/src/components/controls/base/DshSwitch/DshSwitch.vue +115 -115
  37. package/src/components/controls/control.less +324 -324
  38. package/src/components/controls/controlMap.js +117 -117
  39. package/src/components/controls/extra/DshColor.vue +81 -81
  40. package/src/components/controls/extra/DshThemeColor.vue +100 -100
  41. package/src/components/controls/extra/DshThemeIcon.vue +122 -122
  42. package/src/components/controls/mixins/cascaderMixin.js +325 -325
  43. package/src/components/controls/mixins/cascaderPickerMixin.js +227 -227
  44. package/src/components/controls/mixins/cascaderTableMixin.js +130 -130
  45. package/src/components/controls/mixins/controlMixin.js +393 -393
  46. package/src/components/controls/mixins/dateMixin.js +149 -149
  47. package/src/components/controls/mixins/flatTableMixin.js +111 -111
  48. package/src/components/controls/mixins/numberMixin.js +112 -112
  49. package/src/components/controls/mixins/selectMixin.js +233 -233
  50. package/src/components/controls/mixins/switchMixin.js +87 -87
  51. package/src/components/controls/mixins/userAndDepartMixin.js +260 -260
  52. package/src/components/controls/senior/DshLabels.vue +333 -333
  53. package/src/components/controls/senior/DshPackage.vue +57 -57
  54. package/src/components/controls/senior/cascaderTable.vue +213 -213
  55. package/src/components/controls/senior/correlation.vue +135 -135
  56. package/src/components/controls/senior/flatTable.vue +138 -138
  57. package/src/components/controls/senior/selectDepartments.vue +399 -399
  58. package/src/components/controls/senior/selectUsers/departMenu.vue +293 -293
  59. package/src/components/controls/senior/selectUsers/selectUsers.vue +712 -712
  60. package/src/components/controls/special/DshBack.vue +42 -42
  61. package/src/components/controls/special/DshUndeveloped.vue +41 -41
  62. package/src/components/form/DshAdvSearch.vue +510 -510
  63. package/src/components/form/DshDefaultSearch.vue +260 -260
  64. package/src/components/form/DshForm.vue +494 -494
  65. package/src/components/form/searchMixin.js +376 -376
  66. package/src/components/list/BriCard.vue +95 -95
  67. package/src/components/list/BriTable.vue +205 -205
  68. package/src/components/list/BriTree.vue +529 -529
  69. package/src/components/list/BriTreeItem.vue +163 -163
  70. package/src/components/list/DshBox/DshBox.vue +219 -219
  71. package/src/components/list/DshBox/DshCard.vue +446 -446
  72. package/src/components/list/DshBox/DshCrossTable.vue +827 -827
  73. package/src/components/list/DshBox/DshList.vue +404 -404
  74. package/src/components/list/DshBox/DshPanel.vue +669 -669
  75. package/src/components/list/DshBox/DshSingleData.vue +119 -119
  76. package/src/components/list/DshBox/DshTable.vue +239 -239
  77. package/src/components/list/DshCascaderTable.vue +115 -115
  78. package/src/components/list/DshFlatTable.vue +337 -337
  79. package/src/components/list/DshPage.vue +194 -194
  80. package/src/components/list/DshTreeTable.vue +113 -113
  81. package/src/components/list/common/importModal.vue +243 -243
  82. package/src/components/list/common/quoteListModal.vue +206 -206
  83. package/src/components/list/mixins/DshCascaderTableMixin.js +278 -278
  84. package/src/components/list/mixins/DshFlatTableMixin.js +509 -509
  85. package/src/components/list/mixins/DshTreeTableMixin.js +286 -286
  86. package/src/components/list/mixins/tableBaseMixin.js +1653 -1653
  87. package/src/components/list/mixins/treeTableBaseMixin.js +145 -145
  88. package/src/components/other/BriAvatar.vue +166 -166
  89. package/src/components/other/BriCode.vue +125 -125
  90. package/src/components/other/BriCollapseTree.vue +207 -207
  91. package/src/components/other/BriGantt.vue +1087 -1087
  92. package/src/components/other/BriIframe.vue +116 -116
  93. package/src/components/other/BriLoading.vue +171 -171
  94. package/src/components/other/BriSvg.vue +27 -27
  95. package/src/components/other/DshColorPanel.vue +128 -128
  96. package/src/components/other/DshMenuNav.vue +188 -188
  97. package/src/components/small/BriButton.vue +71 -71
  98. package/src/components/small/BriDrawer.vue +169 -169
  99. package/src/components/small/BriTooltip.vue +87 -87
  100. package/src/components/small/DshBtnModal.vue +68 -68
  101. package/src/components/small/DshButtons.vue +324 -324
  102. package/src/components/small/DshDropdown.vue +225 -225
  103. package/src/components/small/DshIcons.vue +59 -59
  104. package/src/components/small/DshListRender.js +21 -21
  105. package/src/components/small/DshModal.vue +160 -160
  106. package/src/components/small/DshSteps.vue +141 -141
  107. package/src/components/small/DshTabs.vue +598 -598
  108. package/src/components/small/DshTabsSet.vue +309 -309
  109. package/src/components/small/DshTags.vue +251 -251
  110. package/src/components/small/DshTitle.vue +50 -50
  111. package/src/components/small/render.js +20 -20
  112. package/src/components/unit/DshFormUnit.vue +398 -398
  113. package/src/components/unit/DshListUnit.vue +115 -115
  114. package/src/components/unit/unitMixin.js +86 -86
  115. package/src/data/index.js +4 -4
  116. package/src/index.js +285 -285
  117. package/src/styles/bundle.css +12 -12
  118. package/src/styles/components/BriButton.less +307 -307
  119. package/src/styles/components/BriTable.less +344 -344
  120. package/src/styles/components/DshModal.less +257 -257
  121. package/src/styles/components/index.less +3 -3
  122. package/src/styles/global/animate.less +11 -11
  123. package/src/styles/global/base.less +45 -45
  124. package/src/styles/global/box.less +186 -186
  125. package/src/styles/global/control.less +122 -122
  126. package/src/styles/global/flex.less +282 -282
  127. package/src/styles/global/global.less +8 -8
  128. package/src/styles/global/text.less +59 -59
  129. package/src/styles/global/variables.less +85 -85
  130. package/src/styles/iconfont/iconfont.css +254 -254
  131. package/src/styles/iconfont/iconfont.json +422 -422
  132. package/src/styles/iconfont/iconfont.svg +137 -137
  133. package/src/styles/index.less +26 -26
  134. package/src/styles/reset-easytable.less +21 -21
  135. package/src/styles/reset-iview-controls.less +145 -145
  136. package/src/styles/reset-iview-other.less +49 -49
  137. package/src/styles/reset-iview-variables.less +43 -43
  138. package/src/styles/reset.less +45 -45
  139. package/src/utils/index.js +3 -5
  140. package/lib/0.bri-components.min.js +0 -1
  141. package/lib/1.bri-components.min.js +0 -1
  142. package/lib/10.bri-components.min.js +0 -1
  143. package/lib/11.bri-components.min.js +0 -1
  144. package/lib/2.bri-components.min.js +0 -1
  145. package/lib/3.bri-components.min.js +0 -1
  146. package/lib/4.bri-components.min.js +0 -1
  147. package/lib/5.bri-components.min.js +0 -1
  148. package/lib/6.bri-components.min.js +0 -1
  149. package/lib/7.bri-components.min.js +0 -1
  150. package/lib/8.bri-components.min.js +0 -1
  151. package/lib/9.bri-components.min.js +0 -1
  152. package/lib/bri-components.min.js +0 -18
  153. package/src/utils/table.js +0 -175
@@ -1,324 +1,324 @@
1
- <template>
2
- <div
3
- v-if="mode === 'default' ? list.length : true"
4
- class="DshButtons"
5
- >
6
- <div
7
- v-if="mode === 'between'"
8
- class="DshButtons-flex"
9
- >
10
- <!-- 左侧按钮 -->
11
- <div class="DshButtons-flex-left">
12
- <template v-for="(operationItem, index) in leftFlatList">
13
- <Poptip
14
- v-if="operationItem.tipContent"
15
- :key="(operationItem._key || operationItem.type) + 'poptip'"
16
- :class="[
17
- index ? 'dsh-margin-left8' : undefined
18
- ]"
19
- trigger="hover"
20
- :title="operationItem.tipTitle"
21
- :content="operationItem.tipContent"
22
- word-wrap
23
- :width="operationItem.tipWidth || 220"
24
- :transfer="true"
25
- >
26
- <bri-button
27
- :key="operationItem._key || operationItem.type"
28
- :style="operationItem.style"
29
- :class="[
30
- !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
31
- itemClass,
32
- ]"
33
- :propsObj="operationItem"
34
- @click="emit(operationItem)"
35
- >
36
- {{ operationItem.name }}
37
- </bri-button>
38
- </Poptip>
39
-
40
- <bri-button
41
- v-else
42
- :key="operationItem._key || operationItem.type"
43
- :style="operationItem.style"
44
- :class="[
45
- index ? 'dsh-margin-left8' : undefined,
46
- !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
47
- itemClass,
48
- ]"
49
- :propsObj="operationItem"
50
- @click="emit(operationItem)"
51
- >
52
- {{ operationItem.name }}
53
- </bri-button>
54
- </template>
55
-
56
- <!-- 更多的 下拉按钮-->
57
- <dsh-dropdown
58
- v-if="leftMoreList.length"
59
- class="DshButtons-dropdown"
60
- :list="leftMoreList"
61
- :trigger="'hover'"
62
- @click="emit($event)"
63
- >
64
- <slot name="more">
65
- <bri-button
66
- class="DshButtons-dropdown-more"
67
- :propsObj="moreBtnOperationObj"
68
- >
69
- <span class="DshButtons-dropdown-more-name">
70
- {{ moreBtnOperationObj.name }}
71
- </span>
72
- </bri-button>
73
- </slot>
74
- </dsh-dropdown>
75
- </div>
76
-
77
- <!-- 右侧按钮 -->
78
- <div class="DshButtons-flex-right">
79
- <slot></slot>
80
-
81
- <template v-for="(operationItem, index) in rightList">
82
- <Poptip
83
- v-if="operationItem.tipContent"
84
- :key="(operationItem._key || operationItem.type) + 'poptip'"
85
- :class="[
86
- index ? 'dsh-margin-left8' : undefined
87
- ]"
88
- trigger="hover"
89
- :title="operationItem.tipTitle"
90
- :content="operationItem.tipContent"
91
- word-wrap
92
- :width="operationItem.tipWidth || 220"
93
- :transfer="true"
94
- >
95
- <bri-button
96
- :key="operationItem._key || operationItem.type"
97
- :style="operationItem.style"
98
- :class="[
99
- !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
100
- itemClass,
101
- ]"
102
- :propsObj="operationItem"
103
- @click="emit(operationItem)"
104
- >
105
- {{ operationItem.name }}
106
- </bri-button>
107
- </Poptip>
108
-
109
- <bri-button
110
- v-else
111
- :key="operationItem._key || operationItem.type"
112
- :style="operationItem.style"
113
- :class="[
114
- index ? 'dsh-margin-left8' : undefined,
115
- !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
116
- itemClass,
117
- ]"
118
- :propsObj="operationItem"
119
- @click="emit(operationItem)"
120
- >
121
- {{ operationItem.name }}
122
- </bri-button>
123
- </template>
124
- </div>
125
- </div>
126
-
127
- <template v-else>
128
- <template v-for="(operationItem, index) in flatList">
129
- <Poptip
130
- v-if="operationItem.tipContent"
131
- :key="(operationItem._key || operationItem.type) + 'poptip'"
132
- :class="[
133
- index ? 'dsh-margin-left8' : undefined
134
- ]"
135
- trigger="hover"
136
- :title="operationItem.tipTitle"
137
- :content="operationItem.tipContent"
138
- word-wrap
139
- :width="operationItem.tipWidth || 220"
140
- popper-class="DshButtons-poptip"
141
- :transfer="true"
142
- >
143
- <bri-button
144
- :key="operationItem._key || operationItem.type"
145
- :style="operationItem.style"
146
- :class="[
147
- !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
148
- itemClass,
149
- ]"
150
- :propsObj="operationItem"
151
- @click="emit(operationItem)"
152
- >
153
- {{ operationItem.name }}
154
- </bri-button>
155
- </Poptip>
156
-
157
- <bri-button
158
- v-else
159
- :key="operationItem._key || operationItem.type"
160
- :style="operationItem.style"
161
- :class="[
162
- index ? 'dsh-margin-left8' : undefined,
163
- !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
164
- itemClass,
165
- ...(Array.isArray(operationItem.class) ? operationItem.class : [operationItem.class])
166
- ]"
167
- :propsObj="operationItem"
168
- @click="emit(operationItem)"
169
- >
170
- {{ operationItem.name }}
171
- </bri-button>
172
- </template>
173
-
174
- <!-- 更多 -->
175
- <dsh-dropdown
176
- v-if="moreList.length"
177
- class="DshButtons-dropdown"
178
- :list="moreList"
179
- trigger="hover"
180
- @click="emit($event)"
181
- >
182
- <slot name="more">
183
- <bri-button
184
- class="DshButtons-dropdown-more"
185
- :propsObj="moreBtnOperationObj"
186
- >
187
- <span class="DshButtons-dropdown-more-name">
188
- {{ moreBtnOperationObj.name }}
189
- </span>
190
- </bri-button>
191
- </slot>
192
- </dsh-dropdown>
193
- </template>
194
- </div>
195
- </template>
196
-
197
- <script>
198
- export default {
199
- name: "DshButtons",
200
- props: {
201
- mode: {
202
- type: String,
203
- default: "default",
204
- validator (val) {
205
- return ["default", "between"].includes(val);
206
- }
207
- },
208
-
209
- list: {
210
- type: Array,
211
- default () {
212
- return [];
213
- }
214
- },
215
- leftList: {
216
- type: Array,
217
- default () {
218
- return [];
219
- }
220
- },
221
- rightList: {
222
- type: Array,
223
- default () {
224
- return [];
225
- }
226
- },
227
- maxFlatNum: {
228
- type: [Number, String],
229
- default: 12
230
- },
231
- itemClass: String
232
- },
233
- data () {
234
- return {
235
- moreBtnOperationObj: {
236
- name: "更多",
237
- type: "more",
238
- size: "default",
239
- customIcon: "bico-gengduo",
240
- btnType: "linkText"
241
- }
242
- };
243
- },
244
- computed: {
245
- flatList () {
246
- return this.list.slice(0, this.maxFlatNum);
247
- },
248
- moreList () {
249
- return this.list.slice(this.maxFlatNum);
250
- },
251
- leftFlatList () {
252
- return this.leftList.slice(0, this.maxFlatNum);
253
- },
254
- leftMoreList () {
255
- return this.leftList.slice(this.maxFlatNum);
256
- }
257
- },
258
- created () {},
259
- methods: {
260
- emit (operationItem) {
261
- this.$emit("click", operationItem);
262
- }
263
- }
264
- };
265
- </script>
266
-
267
- <style lang="less" scoped>
268
- .DshButtons {
269
- &-flex {
270
- width: 100%;
271
- height: 100%;
272
- .dsh-flex-row-between-center();
273
-
274
- // 更多
275
- .DshButtons-dropdown {
276
- margin: 0 15px 0 0;
277
- font-size: 16px;
278
- font-weight: 400;
279
- color: @themeColor;
280
-
281
- &-more {
282
- display: flex;
283
- flex-direction: row;
284
- justify-content: center;
285
- align-items: center;
286
-
287
- &-name {}
288
- }
289
- }
290
- }
291
-
292
- &-item {
293
- > span {
294
- width: 100%;
295
- .dsh-ellipsis();
296
- }
297
- }
298
- }
299
- </style>
300
- <style lang="less">
301
- .DshButtons {
302
- &-poptip {
303
- .ivu-poptip-content {
304
- .ivu-poptip-arrow {
305
- &:after {
306
- border-top-color: @textColor;
307
- }
308
- }
309
-
310
- .ivu-poptip-inner {
311
- background-color: @textColor;
312
-
313
- .ivu-poptip-body {
314
- &-content {
315
- &-inner {
316
- color: @textWhColor;
317
- }
318
- }
319
- }
320
- }
321
- }
322
- }
323
- }
324
- </style>
1
+ <template>
2
+ <div
3
+ v-if="mode === 'default' ? list.length : true"
4
+ class="DshButtons"
5
+ >
6
+ <div
7
+ v-if="mode === 'between'"
8
+ class="DshButtons-flex"
9
+ >
10
+ <!-- 左侧按钮 -->
11
+ <div class="DshButtons-flex-left">
12
+ <template v-for="(operationItem, index) in leftFlatList">
13
+ <Poptip
14
+ v-if="operationItem.tipContent"
15
+ :key="(operationItem._key || operationItem.type) + 'poptip'"
16
+ :class="[
17
+ index ? 'dsh-margin-left8' : undefined
18
+ ]"
19
+ trigger="hover"
20
+ :title="operationItem.tipTitle"
21
+ :content="operationItem.tipContent"
22
+ word-wrap
23
+ :width="operationItem.tipWidth || 220"
24
+ :transfer="true"
25
+ >
26
+ <bri-button
27
+ :key="operationItem._key || operationItem.type"
28
+ :style="operationItem.style"
29
+ :class="[
30
+ !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
31
+ itemClass,
32
+ ]"
33
+ :propsObj="operationItem"
34
+ @click="emit(operationItem)"
35
+ >
36
+ {{ operationItem.name }}
37
+ </bri-button>
38
+ </Poptip>
39
+
40
+ <bri-button
41
+ v-else
42
+ :key="operationItem._key || operationItem.type"
43
+ :style="operationItem.style"
44
+ :class="[
45
+ index ? 'dsh-margin-left8' : undefined,
46
+ !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
47
+ itemClass,
48
+ ]"
49
+ :propsObj="operationItem"
50
+ @click="emit(operationItem)"
51
+ >
52
+ {{ operationItem.name }}
53
+ </bri-button>
54
+ </template>
55
+
56
+ <!-- 更多的 下拉按钮-->
57
+ <dsh-dropdown
58
+ v-if="leftMoreList.length"
59
+ class="DshButtons-dropdown"
60
+ :list="leftMoreList"
61
+ :trigger="'hover'"
62
+ @click="emit($event)"
63
+ >
64
+ <slot name="more">
65
+ <bri-button
66
+ class="DshButtons-dropdown-more"
67
+ :propsObj="moreBtnOperationObj"
68
+ >
69
+ <span class="DshButtons-dropdown-more-name">
70
+ {{ moreBtnOperationObj.name }}
71
+ </span>
72
+ </bri-button>
73
+ </slot>
74
+ </dsh-dropdown>
75
+ </div>
76
+
77
+ <!-- 右侧按钮 -->
78
+ <div class="DshButtons-flex-right">
79
+ <slot></slot>
80
+
81
+ <template v-for="(operationItem, index) in rightList">
82
+ <Poptip
83
+ v-if="operationItem.tipContent"
84
+ :key="(operationItem._key || operationItem.type) + 'poptip'"
85
+ :class="[
86
+ index ? 'dsh-margin-left8' : undefined
87
+ ]"
88
+ trigger="hover"
89
+ :title="operationItem.tipTitle"
90
+ :content="operationItem.tipContent"
91
+ word-wrap
92
+ :width="operationItem.tipWidth || 220"
93
+ :transfer="true"
94
+ >
95
+ <bri-button
96
+ :key="operationItem._key || operationItem.type"
97
+ :style="operationItem.style"
98
+ :class="[
99
+ !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
100
+ itemClass,
101
+ ]"
102
+ :propsObj="operationItem"
103
+ @click="emit(operationItem)"
104
+ >
105
+ {{ operationItem.name }}
106
+ </bri-button>
107
+ </Poptip>
108
+
109
+ <bri-button
110
+ v-else
111
+ :key="operationItem._key || operationItem.type"
112
+ :style="operationItem.style"
113
+ :class="[
114
+ index ? 'dsh-margin-left8' : undefined,
115
+ !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
116
+ itemClass,
117
+ ]"
118
+ :propsObj="operationItem"
119
+ @click="emit(operationItem)"
120
+ >
121
+ {{ operationItem.name }}
122
+ </bri-button>
123
+ </template>
124
+ </div>
125
+ </div>
126
+
127
+ <template v-else>
128
+ <template v-for="(operationItem, index) in flatList">
129
+ <Poptip
130
+ v-if="operationItem.tipContent"
131
+ :key="(operationItem._key || operationItem.type) + 'poptip'"
132
+ :class="[
133
+ index ? 'dsh-margin-left8' : undefined
134
+ ]"
135
+ trigger="hover"
136
+ :title="operationItem.tipTitle"
137
+ :content="operationItem.tipContent"
138
+ word-wrap
139
+ :width="operationItem.tipWidth || 220"
140
+ popper-class="DshButtons-poptip"
141
+ :transfer="true"
142
+ >
143
+ <bri-button
144
+ :key="operationItem._key || operationItem.type"
145
+ :style="operationItem.style"
146
+ :class="[
147
+ !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
148
+ itemClass,
149
+ ]"
150
+ :propsObj="operationItem"
151
+ @click="emit(operationItem)"
152
+ >
153
+ {{ operationItem.name }}
154
+ </bri-button>
155
+ </Poptip>
156
+
157
+ <bri-button
158
+ v-else
159
+ :key="operationItem._key || operationItem.type"
160
+ :style="operationItem.style"
161
+ :class="[
162
+ index ? 'dsh-margin-left8' : undefined,
163
+ !operationItem.loading && !operationItem.customIcon && !operationItem.icon ? 'DshButtons-item' : undefined,
164
+ itemClass,
165
+ ...(Array.isArray(operationItem.class) ? operationItem.class : [operationItem.class])
166
+ ]"
167
+ :propsObj="operationItem"
168
+ @click="emit(operationItem)"
169
+ >
170
+ {{ operationItem.name }}
171
+ </bri-button>
172
+ </template>
173
+
174
+ <!-- 更多 -->
175
+ <dsh-dropdown
176
+ v-if="moreList.length"
177
+ class="DshButtons-dropdown"
178
+ :list="moreList"
179
+ trigger="hover"
180
+ @click="emit($event)"
181
+ >
182
+ <slot name="more">
183
+ <bri-button
184
+ class="DshButtons-dropdown-more"
185
+ :propsObj="moreBtnOperationObj"
186
+ >
187
+ <span class="DshButtons-dropdown-more-name">
188
+ {{ moreBtnOperationObj.name }}
189
+ </span>
190
+ </bri-button>
191
+ </slot>
192
+ </dsh-dropdown>
193
+ </template>
194
+ </div>
195
+ </template>
196
+
197
+ <script>
198
+ export default {
199
+ name: "DshButtons",
200
+ props: {
201
+ mode: {
202
+ type: String,
203
+ default: "default",
204
+ validator (val) {
205
+ return ["default", "between"].includes(val);
206
+ }
207
+ },
208
+
209
+ list: {
210
+ type: Array,
211
+ default () {
212
+ return [];
213
+ }
214
+ },
215
+ leftList: {
216
+ type: Array,
217
+ default () {
218
+ return [];
219
+ }
220
+ },
221
+ rightList: {
222
+ type: Array,
223
+ default () {
224
+ return [];
225
+ }
226
+ },
227
+ maxFlatNum: {
228
+ type: [Number, String],
229
+ default: 12
230
+ },
231
+ itemClass: String
232
+ },
233
+ data () {
234
+ return {
235
+ moreBtnOperationObj: {
236
+ name: "更多",
237
+ type: "more",
238
+ size: "default",
239
+ customIcon: "bico-gengduo",
240
+ btnType: "linkText"
241
+ }
242
+ };
243
+ },
244
+ computed: {
245
+ flatList () {
246
+ return this.list.slice(0, this.maxFlatNum);
247
+ },
248
+ moreList () {
249
+ return this.list.slice(this.maxFlatNum);
250
+ },
251
+ leftFlatList () {
252
+ return this.leftList.slice(0, this.maxFlatNum);
253
+ },
254
+ leftMoreList () {
255
+ return this.leftList.slice(this.maxFlatNum);
256
+ }
257
+ },
258
+ created () {},
259
+ methods: {
260
+ emit (operationItem) {
261
+ this.$emit("click", operationItem);
262
+ }
263
+ }
264
+ };
265
+ </script>
266
+
267
+ <style lang="less" scoped>
268
+ .DshButtons {
269
+ &-flex {
270
+ width: 100%;
271
+ height: 100%;
272
+ .dsh-flex-row-between-center();
273
+
274
+ // 更多
275
+ .DshButtons-dropdown {
276
+ margin: 0 15px 0 0;
277
+ font-size: 16px;
278
+ font-weight: 400;
279
+ color: @themeColor;
280
+
281
+ &-more {
282
+ display: flex;
283
+ flex-direction: row;
284
+ justify-content: center;
285
+ align-items: center;
286
+
287
+ &-name {}
288
+ }
289
+ }
290
+ }
291
+
292
+ &-item {
293
+ > span {
294
+ width: 100%;
295
+ .dsh-ellipsis();
296
+ }
297
+ }
298
+ }
299
+ </style>
300
+ <style lang="less">
301
+ .DshButtons {
302
+ &-poptip {
303
+ .ivu-poptip-content {
304
+ .ivu-poptip-arrow {
305
+ &:after {
306
+ border-top-color: @textColor;
307
+ }
308
+ }
309
+
310
+ .ivu-poptip-inner {
311
+ background-color: @textColor;
312
+
313
+ .ivu-poptip-body {
314
+ &-content {
315
+ &-inner {
316
+ color: @textWhColor;
317
+ }
318
+ }
319
+ }
320
+ }
321
+ }
322
+ }
323
+ }
324
+ </style>