sh-view 2.8.1 → 2.8.2

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 (91) hide show
  1. package/.eslintrc.js +25 -20
  2. package/other.js +8 -8
  3. package/package.json +9 -6
  4. package/packages/components/index.js +91 -91
  5. package/packages/components/sh-alert/alert.ts +30 -0
  6. package/packages/components/sh-alert/index.vue +143 -168
  7. package/packages/components/sh-badge/index.vue +242 -242
  8. package/packages/components/sh-calendar/index.vue +650 -650
  9. package/packages/components/sh-card/index.vue +148 -148
  10. package/packages/components/sh-code-editor/index.vue +19 -19
  11. package/packages/components/sh-col/index.vue +92 -92
  12. package/packages/components/sh-corner/index.vue +230 -230
  13. package/packages/components/sh-count-to/index.vue +131 -131
  14. package/packages/components/sh-date/index.vue +301 -301
  15. package/packages/components/sh-drawer/index.vue +579 -579
  16. package/packages/components/sh-drawer/scrollbar.js +78 -78
  17. package/packages/components/sh-empty/index.vue +42 -42
  18. package/packages/components/sh-form/js/props.js +76 -76
  19. package/packages/components/sh-form/js/useForm.js +229 -229
  20. package/packages/components/sh-header/index.vue +261 -260
  21. package/packages/components/sh-icon/css/default/ionicons.svg +869 -869
  22. package/packages/components/sh-icon/css/font/iconfont.json +247 -247
  23. package/packages/components/sh-icon/index.vue +41 -41
  24. package/packages/components/sh-image/index.vue +133 -133
  25. package/packages/components/sh-list/index.vue +146 -146
  26. package/packages/components/sh-loading/index.vue +53 -53
  27. package/packages/components/sh-modal/index.vue +188 -188
  28. package/packages/components/sh-noticebar/index.vue +215 -215
  29. package/packages/components/sh-poptip/index.vue +597 -597
  30. package/packages/components/sh-progress/index.vue +276 -276
  31. package/packages/components/sh-pull-refresh/index.vue +289 -289
  32. package/packages/components/sh-result/index.vue +114 -114
  33. package/packages/components/sh-row/index.vue +66 -66
  34. package/packages/components/sh-split/components/trigger.vue +33 -33
  35. package/packages/components/sh-split/index.vue +342 -342
  36. package/packages/components/sh-table/components/importModal.vue +363 -363
  37. package/packages/components/sh-table/components/sh-column.vue +68 -68
  38. package/packages/components/sh-table/js/excel_to_json.js +313 -313
  39. package/packages/components/sh-table/js/props.js +305 -305
  40. package/packages/components/sh-table/js/tableMethods.js +167 -167
  41. package/packages/components/sh-table/js/useTable.js +636 -636
  42. package/packages/components/sh-table/table.vue +217 -217
  43. package/packages/components/sh-tabs/index.vue +426 -426
  44. package/packages/components/sh-tag/index.vue +168 -168
  45. package/packages/components/sh-toolbar/index.vue +182 -182
  46. package/packages/components/sh-tree/components/table-tree.vue +289 -289
  47. package/packages/components/sh-tree/mixin/treeProps.js +122 -122
  48. package/packages/components/sh-upload/index.vue +535 -535
  49. package/packages/components/sh-water-fall/index.vue +80 -80
  50. package/packages/components/sh-water-mark/index.vue +96 -96
  51. package/packages/css/index.js +4 -4
  52. package/packages/directive/index.js +19 -19
  53. package/packages/directive/module/click-out.js +14 -14
  54. package/packages/directive/module/draggable.js +42 -42
  55. package/packages/directive/module/line-clamp.js +22 -22
  56. package/packages/directive/module/prevent-click.js +18 -18
  57. package/packages/directive/module/resize.js +14 -14
  58. package/packages/directive/module/ripple.js +166 -166
  59. package/packages/index.js +39 -39
  60. package/packages/mixin/index.js +86 -86
  61. package/packages/other/sh-cron-modal/components/cron-content.vue +294 -294
  62. package/packages/other/sh-cron-modal/index.vue +81 -81
  63. package/packages/other/sh-cron-modal/mixin/cron-emits.js +1 -1
  64. package/packages/other/sh-cron-modal/mixin/cron-props.js +9 -9
  65. package/packages/other/sh-cron-modal/tabs/cron-week-box.vue +126 -126
  66. package/packages/other/sh-menu/index.vue +326 -326
  67. package/packages/other/sh-menu/menu-group-content.vue +136 -136
  68. package/packages/other/sh-menu/menu-item-content.vue +71 -71
  69. package/packages/other/sh-menu-card/index.vue +250 -250
  70. package/packages/other/sh-menu-card/menu-box.vue +87 -87
  71. package/packages/other/sh-preview/components/sh-excel.vue +163 -163
  72. package/packages/other/sh-preview/js/data-hook.js +41 -41
  73. package/packages/other/sh-preview/js/data-props.js +15 -15
  74. package/packages/other/sh-system-tip/index.vue +115 -115
  75. package/packages/utils/resize.js +69 -70
  76. package/packages/utils/transfer-queue.js +12 -12
  77. package/packages/vxeTable/index.js +193 -184
  78. package/packages/vxeTable/plugins/export.js +450 -450
  79. package/packages/vxeTable/render/cell/vxe-render-img.vue +27 -27
  80. package/packages/vxeTable/render/cell/vxe-render-table.vue +51 -51
  81. package/packages/vxeTable/render/cell/vxe-render-time.vue +44 -44
  82. package/packages/vxeTable/render/cell/vxe-render-tree.vue +70 -70
  83. package/packages/vxeTable/render/filters/vxe-filter-input.vue +26 -26
  84. package/packages/vxeTable/render/filters/vxe-filter-time.vue +26 -26
  85. package/packages/vxeTable/render/globalRenders.jsx +514 -514
  86. package/packages/vxeTable/render/mixin/cell-hooks.js +198 -198
  87. package/packages/vxeTable/render/mixin/cell-props.js +23 -23
  88. package/packages/vxeTable/render/mixin/filter-hooks.js +46 -46
  89. package/tsconfig.json +25 -0
  90. package/types/component.d.ts +1 -0
  91. package/types/index.ts +0 -0
@@ -1,289 +1,289 @@
1
- <template>
2
- <div ref="scroller" class="sh-pull-refresh" @touchstart="touchStart" @touchmove="touchMove" @touchend="touchEnd">
3
- <div class="sh-pull-refresh-container" :style="getStyle">
4
- <div class="sh-pull-refresh-container-topbox" :style="getHeightStyle">
5
- <div class="sh-pull-refresh-container-topbox-text">
6
- <slot v-if="status === 'pulling'" name="pulling">{{ pullingTxt }}</slot>
7
- <slot v-if="status === 'loosing'" name="loosing">{{ loosingTxt }}</slot>
8
- <slot v-if="status === 'loading'" name="loading">
9
- <i class="sh-pull-refresh-container-topbox-icon vxe-icon-refresh roll"></i>
10
- {{ loadingTxt }}
11
- </slot>
12
- </div>
13
- </div>
14
- <slot></slot>
15
- </div>
16
- </div>
17
- </template>
18
-
19
- <script>
20
- import { defineComponent, computed, onMounted, getCurrentInstance, ref, reactive, watch, nextTick } from 'vue'
21
- export default defineComponent({
22
- name: 'ShPullRefresh',
23
- props: {
24
- modelValue: {
25
- type: Boolean,
26
- default: false
27
- },
28
- pullingTxt: {
29
- type: String,
30
- default: '下拉刷新'
31
- },
32
- loosingTxt: {
33
- type: String,
34
- default: '释放刷新'
35
- },
36
- loadingTxt: {
37
- type: String,
38
- default: '加载中...'
39
- },
40
- // completeTxt: {
41
- // type: String,
42
- // default: ''
43
- // },
44
- headHeight: {
45
- type: [String, Number],
46
- default: 40
47
- },
48
- pullDistance: {
49
- type: [String, Number],
50
- default: 40
51
- },
52
- duration: {
53
- type: [String, Number],
54
- default: 0.3
55
- }
56
- },
57
- emits: ['change', 'refresh', 'update:modelValue'],
58
- setup(props, context) {
59
- const { emit, slots } = context
60
- const touch = reactive({
61
- startX: 0,
62
- startY: 0,
63
- moveX: 0,
64
- moveY: 0,
65
- deltaX: 0,
66
- deltaY: 0,
67
- offsetX: 0,
68
- offsetY: 0,
69
- direction: ''
70
- })
71
- let scrollParent = null
72
- const isPullRefresh = ref(false)
73
- const distance = ref(0)
74
- const status = ref('normal')
75
-
76
- const getPullStatus = computed(() => {
77
- if (status.value === 'pulling') {
78
- return !slots.pulling ? props.pullingTxt : ''
79
- } else if (status.value === 'loosing') {
80
- return !slots.loosing ? props.loosingTxt : ''
81
- } else if (status.value === 'loading') {
82
- return !slots.loading ? props.loadingTxt : ''
83
- }
84
- return ''
85
- })
86
- const getStyle = computed(() => {
87
- return {
88
- transitionDuration: `${props.duration}s`,
89
- transform: distance.value ? `translate3d(0,${distance.value}px, 0)` : ''
90
- }
91
- })
92
- const getHeightStyle = computed(() => {
93
- let styles = {}
94
- if (props.headHeight !== 40) styles.height = pxCheck(props.headHeight)
95
- return styles
96
- })
97
-
98
- const initMounted = () => {
99
- scrollParent = getScrollParent()
100
- }
101
- const pxCheck = value => {
102
- return isNaN(Number(value)) ? String(value) : `${value}px`
103
- }
104
- const timing = distanceValue => {
105
- const pullDistance = +(props.pullDistance || props.headHeight)
106
- let moveDistance = distanceValue
107
- if (distanceValue > pullDistance) {
108
- if (distanceValue < pullDistance * 2) {
109
- moveDistance = (distanceValue + pullDistance) / 2
110
- } else {
111
- moveDistance = pullDistance + distanceValue / 4
112
- }
113
- }
114
- return Math.round(moveDistance)
115
- }
116
- const setPullStatus = (distanceValue, isLoading) => {
117
- const pullDistance = +(props.pullDistance || props.headHeight)
118
- distance.value = distanceValue
119
- if (isLoading) {
120
- status.value = 'loading'
121
- } else if (distanceValue === 0) {
122
- status.value = 'normal'
123
- } else if (distanceValue < pullDistance) {
124
- status.value = 'pulling'
125
- } else {
126
- status.value = 'loosing'
127
- }
128
- emit('change', { status: status.value, distance: distanceValue })
129
- }
130
- const isElement = node => {
131
- return node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1
132
- }
133
- const isVertical = () => {
134
- return touch.direction === 'vertical'
135
- }
136
- const isHorizontal = () => {
137
- return touch.direction === 'horizontal'
138
- }
139
- const getDirection = (x, y) => {
140
- let MIN_DISTANCE = 10
141
- if (x > y && x > MIN_DISTANCE) {
142
- return 'horizontal'
143
- }
144
- if (y > x && y > MIN_DISTANCE) {
145
- return 'vertical'
146
- }
147
- return ''
148
- }
149
- const resetTouch = () => {
150
- touch.deltaX = 0
151
- touch.deltaY = 0
152
- touch.offsetX = 0
153
- touch.offsetY = 0
154
- touch.direction = ''
155
- }
156
- const startTouch = event => {
157
- resetTouch()
158
- touch.startX = event.touches[0].clientX
159
- touch.startY = event.touches[0].clientY
160
- }
161
- const moveTouch = event => {
162
- const touch = event.touches[0]
163
- touch.deltaX = touch.clientX - touch.startX
164
- touch.deltaY = touch.clientY - touch.startY
165
- touch.moveX = touch.clientX
166
- touch.moveY = touch.clientY
167
- touch.offsetX = Math.abs(touch.deltaX)
168
- touch.offsetY = Math.abs(touch.deltaY)
169
- if (!touch.direction) {
170
- touch.direction = getDirection(touch.offsetX, touch.offsetY)
171
- }
172
- }
173
- const getScrollParent = (el, root = window) => {
174
- let node = el
175
- const overflowScrollReg = /scroll|auto|overlay/i
176
- while (node && node !== root && isElement(node)) {
177
- const { overflowY } = window.getComputedStyle(node)
178
- if (overflowScrollReg.test(overflowY)) {
179
- return node
180
- }
181
- node = node.parentNode
182
- }
183
- return root
184
- }
185
- const getScrollTopRoot = () => {
186
- return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
187
- }
188
- const isCanTouch = () => {
189
- return !['loading', 'complete'].includes(status.value)
190
- }
191
- const isScrollTop = () => {
192
- if (scrollParent === window) {
193
- return getScrollTopRoot() === 0
194
- } else {
195
- return scrollParent && scrollParent.scrollTop === 0
196
- }
197
- }
198
- const touchStart = event => {
199
- if (!isCanTouch()) return
200
- if (isScrollTop()) {
201
- startTouch(event)
202
- isPullRefresh.value = true
203
- } else {
204
- distance.value = 0
205
- isPullRefresh.value = false
206
- }
207
- }
208
- const touchMove = event => {
209
- if (!isCanTouch()) return
210
- moveTouch(event)
211
- if (isVertical() && touch.deltaY > 0 && isPullRefresh) {
212
- event.preventDefault()
213
- setPullStatus(timing(touch.deltaY))
214
- }
215
- }
216
- const touchEnd = () => {
217
- if (isPullRefresh.value && isCanTouch() && touch.deltaY) {
218
- if (status.value === 'loosing') {
219
- setPullStatus(+props.headHeight, true)
220
- emit('update:modelValue', true)
221
- nextTick(() => emit('refresh'))
222
- } else {
223
- setPullStatus(0)
224
- }
225
- }
226
- setTimeout(() => {
227
- resetTouch()
228
- }, 0)
229
- }
230
-
231
- watch(
232
- () => props.modelValue,
233
- val => {
234
- if (val) {
235
- setPullStatus(+props.headHeight, true)
236
- nextTick(() => emit('refresh'))
237
- } else {
238
- setPullStatus(0)
239
- }
240
- }
241
- )
242
-
243
- onMounted(() => {
244
- initMounted()
245
- })
246
-
247
- return {
248
- getStyle,
249
- getHeightStyle,
250
- touchStart,
251
- touchMove,
252
- touchEnd
253
- }
254
- }
255
- })
256
- </script>
257
-
258
- <style scoped lang="scss">
259
- .sh-pull-refresh {
260
- height: 100%;
261
- overflow: hidden;
262
- &-container {
263
- position: relative;
264
- height: 100%;
265
- &-topbox {
266
- position: absolute;
267
- left: 0;
268
- width: 100%;
269
- height: 40px;
270
- transform: translateY(-100%);
271
- text-align: center;
272
- font-size: 14px;
273
- display: flex;
274
- align-items: center;
275
- justify-content: center;
276
- &-icon {
277
- margin-right: 4px;
278
- width: 16px;
279
- height: 16px;
280
- padding: 0;
281
- }
282
- &-text {
283
- font-size: var(--vxe-font-size);
284
- color: var(--vxe-primary-color);
285
- }
286
- }
287
- }
288
- }
289
- </style>
1
+ <template>
2
+ <div ref="scroller" class="sh-pull-refresh" @touchstart="touchStart" @touchmove="touchMove" @touchend="touchEnd">
3
+ <div class="sh-pull-refresh-container" :style="getStyle">
4
+ <div class="sh-pull-refresh-container-topbox" :style="getHeightStyle">
5
+ <div class="sh-pull-refresh-container-topbox-text">
6
+ <slot v-if="status === 'pulling'" name="pulling">{{ pullingTxt }}</slot>
7
+ <slot v-if="status === 'loosing'" name="loosing">{{ loosingTxt }}</slot>
8
+ <slot v-if="status === 'loading'" name="loading">
9
+ <i class="sh-pull-refresh-container-topbox-icon vxe-icon-refresh roll"></i>
10
+ {{ loadingTxt }}
11
+ </slot>
12
+ </div>
13
+ </div>
14
+ <slot></slot>
15
+ </div>
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+ import { defineComponent, computed, onMounted, getCurrentInstance, ref, reactive, watch, nextTick } from 'vue'
21
+ export default defineComponent({
22
+ name: 'ShPullRefresh',
23
+ props: {
24
+ modelValue: {
25
+ type: Boolean,
26
+ default: false
27
+ },
28
+ pullingTxt: {
29
+ type: String,
30
+ default: '下拉刷新'
31
+ },
32
+ loosingTxt: {
33
+ type: String,
34
+ default: '释放刷新'
35
+ },
36
+ loadingTxt: {
37
+ type: String,
38
+ default: '加载中...'
39
+ },
40
+ // completeTxt: {
41
+ // type: String,
42
+ // default: ''
43
+ // },
44
+ headHeight: {
45
+ type: [String, Number],
46
+ default: 40
47
+ },
48
+ pullDistance: {
49
+ type: [String, Number],
50
+ default: 40
51
+ },
52
+ duration: {
53
+ type: [String, Number],
54
+ default: 0.3
55
+ }
56
+ },
57
+ emits: ['change', 'refresh', 'update:modelValue'],
58
+ setup(props, context) {
59
+ const { emit, slots } = context
60
+ const touch = reactive({
61
+ startX: 0,
62
+ startY: 0,
63
+ moveX: 0,
64
+ moveY: 0,
65
+ deltaX: 0,
66
+ deltaY: 0,
67
+ offsetX: 0,
68
+ offsetY: 0,
69
+ direction: ''
70
+ })
71
+ let scrollParent = null
72
+ const isPullRefresh = ref(false)
73
+ const distance = ref(0)
74
+ const status = ref('normal')
75
+
76
+ const getPullStatus = computed(() => {
77
+ if (status.value === 'pulling') {
78
+ return !slots.pulling ? props.pullingTxt : ''
79
+ } else if (status.value === 'loosing') {
80
+ return !slots.loosing ? props.loosingTxt : ''
81
+ } else if (status.value === 'loading') {
82
+ return !slots.loading ? props.loadingTxt : ''
83
+ }
84
+ return ''
85
+ })
86
+ const getStyle = computed(() => {
87
+ return {
88
+ transitionDuration: `${props.duration}s`,
89
+ transform: distance.value ? `translate3d(0,${distance.value}px, 0)` : ''
90
+ }
91
+ })
92
+ const getHeightStyle = computed(() => {
93
+ let styles = {}
94
+ if (props.headHeight !== 40) styles.height = pxCheck(props.headHeight)
95
+ return styles
96
+ })
97
+
98
+ const initMounted = () => {
99
+ scrollParent = getScrollParent()
100
+ }
101
+ const pxCheck = value => {
102
+ return isNaN(Number(value)) ? String(value) : `${value}px`
103
+ }
104
+ const timing = distanceValue => {
105
+ const pullDistance = +(props.pullDistance || props.headHeight)
106
+ let moveDistance = distanceValue
107
+ if (distanceValue > pullDistance) {
108
+ if (distanceValue < pullDistance * 2) {
109
+ moveDistance = (distanceValue + pullDistance) / 2
110
+ } else {
111
+ moveDistance = pullDistance + distanceValue / 4
112
+ }
113
+ }
114
+ return Math.round(moveDistance)
115
+ }
116
+ const setPullStatus = (distanceValue, isLoading) => {
117
+ const pullDistance = +(props.pullDistance || props.headHeight)
118
+ distance.value = distanceValue
119
+ if (isLoading) {
120
+ status.value = 'loading'
121
+ } else if (distanceValue === 0) {
122
+ status.value = 'normal'
123
+ } else if (distanceValue < pullDistance) {
124
+ status.value = 'pulling'
125
+ } else {
126
+ status.value = 'loosing'
127
+ }
128
+ emit('change', { status: status.value, distance: distanceValue })
129
+ }
130
+ const isElement = node => {
131
+ return node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1
132
+ }
133
+ const isVertical = () => {
134
+ return touch.direction === 'vertical'
135
+ }
136
+ const isHorizontal = () => {
137
+ return touch.direction === 'horizontal'
138
+ }
139
+ const getDirection = (x, y) => {
140
+ let MIN_DISTANCE = 10
141
+ if (x > y && x > MIN_DISTANCE) {
142
+ return 'horizontal'
143
+ }
144
+ if (y > x && y > MIN_DISTANCE) {
145
+ return 'vertical'
146
+ }
147
+ return ''
148
+ }
149
+ const resetTouch = () => {
150
+ touch.deltaX = 0
151
+ touch.deltaY = 0
152
+ touch.offsetX = 0
153
+ touch.offsetY = 0
154
+ touch.direction = ''
155
+ }
156
+ const startTouch = event => {
157
+ resetTouch()
158
+ touch.startX = event.touches[0].clientX
159
+ touch.startY = event.touches[0].clientY
160
+ }
161
+ const moveTouch = event => {
162
+ const touch = event.touches[0]
163
+ touch.deltaX = touch.clientX - touch.startX
164
+ touch.deltaY = touch.clientY - touch.startY
165
+ touch.moveX = touch.clientX
166
+ touch.moveY = touch.clientY
167
+ touch.offsetX = Math.abs(touch.deltaX)
168
+ touch.offsetY = Math.abs(touch.deltaY)
169
+ if (!touch.direction) {
170
+ touch.direction = getDirection(touch.offsetX, touch.offsetY)
171
+ }
172
+ }
173
+ const getScrollParent = (el, root = window) => {
174
+ let node = el
175
+ const overflowScrollReg = /scroll|auto|overlay/i
176
+ while (node && node !== root && isElement(node)) {
177
+ const { overflowY } = window.getComputedStyle(node)
178
+ if (overflowScrollReg.test(overflowY)) {
179
+ return node
180
+ }
181
+ node = node.parentNode
182
+ }
183
+ return root
184
+ }
185
+ const getScrollTopRoot = () => {
186
+ return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
187
+ }
188
+ const isCanTouch = () => {
189
+ return !['loading', 'complete'].includes(status.value)
190
+ }
191
+ const isScrollTop = () => {
192
+ if (scrollParent === window) {
193
+ return getScrollTopRoot() === 0
194
+ } else {
195
+ return scrollParent && scrollParent.scrollTop === 0
196
+ }
197
+ }
198
+ const touchStart = event => {
199
+ if (!isCanTouch()) return
200
+ if (isScrollTop()) {
201
+ startTouch(event)
202
+ isPullRefresh.value = true
203
+ } else {
204
+ distance.value = 0
205
+ isPullRefresh.value = false
206
+ }
207
+ }
208
+ const touchMove = event => {
209
+ if (!isCanTouch()) return
210
+ moveTouch(event)
211
+ if (isVertical() && touch.deltaY > 0 && isPullRefresh) {
212
+ event.preventDefault()
213
+ setPullStatus(timing(touch.deltaY))
214
+ }
215
+ }
216
+ const touchEnd = () => {
217
+ if (isPullRefresh.value && isCanTouch() && touch.deltaY) {
218
+ if (status.value === 'loosing') {
219
+ setPullStatus(+props.headHeight, true)
220
+ emit('update:modelValue', true)
221
+ nextTick(() => emit('refresh'))
222
+ } else {
223
+ setPullStatus(0)
224
+ }
225
+ }
226
+ setTimeout(() => {
227
+ resetTouch()
228
+ }, 0)
229
+ }
230
+
231
+ watch(
232
+ () => props.modelValue,
233
+ val => {
234
+ if (val) {
235
+ setPullStatus(+props.headHeight, true)
236
+ nextTick(() => emit('refresh'))
237
+ } else {
238
+ setPullStatus(0)
239
+ }
240
+ }
241
+ )
242
+
243
+ onMounted(() => {
244
+ initMounted()
245
+ })
246
+
247
+ return {
248
+ getStyle,
249
+ getHeightStyle,
250
+ touchStart,
251
+ touchMove,
252
+ touchEnd
253
+ }
254
+ }
255
+ })
256
+ </script>
257
+
258
+ <style scoped lang="scss">
259
+ .sh-pull-refresh {
260
+ height: 100%;
261
+ overflow: hidden;
262
+ &-container {
263
+ position: relative;
264
+ height: 100%;
265
+ &-topbox {
266
+ position: absolute;
267
+ left: 0;
268
+ width: 100%;
269
+ height: 40px;
270
+ transform: translateY(-100%);
271
+ text-align: center;
272
+ font-size: 14px;
273
+ display: flex;
274
+ align-items: center;
275
+ justify-content: center;
276
+ &-icon {
277
+ margin-right: 4px;
278
+ width: 16px;
279
+ height: 16px;
280
+ padding: 0;
281
+ }
282
+ &-text {
283
+ font-size: var(--vxe-font-size);
284
+ color: var(--vxe-primary-color);
285
+ }
286
+ }
287
+ }
288
+ }
289
+ </style>