xt-element-ui 2.2.1 → 2.2.3

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 (139) hide show
  1. package/README.md +1 -1
  2. package/docs/README.md +10 -3
  3. package/docs/components/base/xt-button.md +11 -4
  4. package/docs/components/base/xt-card.md +5 -11
  5. package/docs/components/base/xt-config-provider.md +2 -0
  6. package/docs/components/base/xt-date-picker.md +7 -26
  7. package/docs/components/base/xt-flow.md +404 -0
  8. package/docs/components/base/xt-grid-box.md +34 -34
  9. package/docs/components/base/xt-multi.md +5 -5
  10. package/docs/components/base/xt-tabs.md +51 -6
  11. package/docs/components/base/xt-text.md +20 -3
  12. package/docs/components/business/xt-chart.md +1 -0
  13. package/lib/css/1.87a493be.css +1 -0
  14. package/lib/index.common.1.js +294 -0
  15. package/lib/index.common.2.js +141 -0
  16. package/lib/index.common.js +12125 -118823
  17. package/lib/index.css +1 -1
  18. package/lib/index.umd.1.js +294 -0
  19. package/lib/index.umd.2.js +141 -0
  20. package/lib/index.umd.js +12131 -118828
  21. package/lib/index.umd.min.1.js +1 -0
  22. package/lib/index.umd.min.2.js +1 -0
  23. package/lib/index.umd.min.js +1 -1
  24. package/lib/xt-badge/xt-badge.common.js +1 -1
  25. package/lib/xt-badge/xt-badge.css +1 -1
  26. package/lib/xt-badge/xt-badge.umd.js +1 -1
  27. package/lib/xt-button/xt-button.common.js +13 -8
  28. package/lib/xt-button/xt-button.css +1 -1
  29. package/lib/xt-button/xt-button.umd.js +13 -8
  30. package/lib/xt-button/xt-button.umd.min.js +1 -1
  31. package/lib/xt-card/xt-card.common.js +5 -5
  32. package/lib/xt-card/xt-card.umd.js +5 -5
  33. package/lib/xt-card/xt-card.umd.min.js +1 -1
  34. package/lib/xt-card-item/xt-card-item.common.js +4 -4
  35. package/lib/xt-card-item/xt-card-item.umd.js +4 -4
  36. package/lib/xt-card-item/xt-card-item.umd.min.js +1 -1
  37. package/lib/xt-chart/xt-chart.common.js +1969 -108924
  38. package/lib/xt-chart/xt-chart.css +1 -1
  39. package/lib/xt-chart/xt-chart.umd.js +1975 -108929
  40. package/lib/xt-chart/xt-chart.umd.min.js +1 -1
  41. package/lib/xt-config-provider/xt-config-provider.common.js +561 -107504
  42. package/lib/xt-config-provider/xt-config-provider.css +1 -1
  43. package/lib/xt-config-provider/xt-config-provider.umd.js +567 -107509
  44. package/lib/xt-config-provider/xt-config-provider.umd.min.js +1 -1
  45. package/lib/xt-date-picker/css/1.87a493be.css +1 -0
  46. package/lib/xt-date-picker/xt-date-picker.common.1.js +294 -0
  47. package/lib/xt-date-picker/xt-date-picker.common.2.js +141 -0
  48. package/lib/xt-date-picker/xt-date-picker.common.js +201 -332
  49. package/lib/xt-date-picker/xt-date-picker.css +1 -1
  50. package/lib/xt-date-picker/xt-date-picker.umd.1.js +294 -0
  51. package/lib/xt-date-picker/xt-date-picker.umd.2.js +141 -0
  52. package/lib/xt-date-picker/xt-date-picker.umd.js +201 -332
  53. package/lib/xt-date-picker/xt-date-picker.umd.min.1.js +1 -0
  54. package/lib/xt-date-picker/xt-date-picker.umd.min.2.js +1 -0
  55. package/lib/xt-date-picker/xt-date-picker.umd.min.js +1 -1
  56. package/lib/xt-flex-box/xt-flex-box.common.js +1 -1
  57. package/lib/xt-flex-box/xt-flex-box.umd.js +1 -1
  58. package/lib/xt-flow/demo.html +10 -0
  59. package/lib/xt-flow/index.js +1 -0
  60. package/lib/xt-flow/xt-flow.common.js +638 -0
  61. package/lib/xt-flow/xt-flow.css +1 -0
  62. package/lib/xt-flow/xt-flow.umd.js +648 -0
  63. package/lib/xt-flow/xt-flow.umd.min.js +1 -0
  64. package/lib/xt-form-schema/xt-form-schema.common.js +1 -1
  65. package/lib/xt-form-schema/xt-form-schema.umd.js +1 -1
  66. package/lib/xt-grid-box/xt-grid-box.common.js +1 -1
  67. package/lib/xt-grid-box/xt-grid-box.umd.js +1 -1
  68. package/lib/xt-grid-item/xt-grid-item.common.js +1 -1
  69. package/lib/xt-grid-item/xt-grid-item.umd.js +1 -1
  70. package/lib/xt-icon/xt-icon.common.js +1 -1
  71. package/lib/xt-icon/xt-icon.umd.js +1 -1
  72. package/lib/xt-input/xt-input.common.js +1 -1
  73. package/lib/xt-input/xt-input.umd.js +1 -1
  74. package/lib/xt-list/xt-list.common.js +1 -1
  75. package/lib/xt-list/xt-list.umd.js +1 -1
  76. package/lib/xt-map/xt-map.common.js +1 -1
  77. package/lib/xt-map/xt-map.umd.js +1 -1
  78. package/lib/xt-map-provider/xt-map-provider.common.js +1 -1
  79. package/lib/xt-map-provider/xt-map-provider.umd.js +1 -1
  80. package/lib/xt-page/xt-page.common.js +1 -1
  81. package/lib/xt-page/xt-page.umd.js +1 -1
  82. package/lib/xt-progress/xt-progress.common.js +1 -1
  83. package/lib/xt-progress/xt-progress.umd.js +1 -1
  84. package/lib/xt-scroll-arrow/xt-scroll-arrow.common.js +1 -1
  85. package/lib/xt-scroll-arrow/xt-scroll-arrow.umd.js +1 -1
  86. package/lib/xt-select-tree/xt-select-tree.common.js +1 -1
  87. package/lib/xt-select-tree/xt-select-tree.umd.js +1 -1
  88. package/lib/xt-step-price/xt-step-price.common.js +2 -2
  89. package/lib/xt-step-price/xt-step-price.umd.js +2 -2
  90. package/lib/xt-step-price-item/xt-step-price-item.common.js +1 -1
  91. package/lib/xt-step-price-item/xt-step-price-item.umd.js +1 -1
  92. package/lib/xt-tab-pane/xt-tab-pane.common.js +1 -1
  93. package/lib/xt-tab-pane/xt-tab-pane.umd.js +1 -1
  94. package/lib/xt-table/xt-table.common.js +2 -2
  95. package/lib/xt-table/xt-table.umd.js +2 -2
  96. package/lib/xt-tabs/xt-tabs.common.js +5 -27
  97. package/lib/xt-tabs/xt-tabs.css +1 -1
  98. package/lib/xt-tabs/xt-tabs.umd.js +5 -27
  99. package/lib/xt-tabs/xt-tabs.umd.min.js +1 -1
  100. package/lib/xt-text/xt-text.common.js +7 -4
  101. package/lib/xt-text/xt-text.css +1 -1
  102. package/lib/xt-text/xt-text.umd.js +7 -4
  103. package/lib/xt-text/xt-text.umd.min.js +1 -1
  104. package/lib/xt-time/xt-time.common.js +1 -1
  105. package/lib/xt-time/xt-time.umd.js +1 -1
  106. package/lib/xt-transfer-tree/xt-transfer-tree.common.js +1 -1
  107. package/lib/xt-transfer-tree/xt-transfer-tree.umd.js +1 -1
  108. package/lib/xt-upload/xt-upload.common.js +11 -11
  109. package/lib/xt-upload/xt-upload.umd.js +12 -12
  110. package/lib/xt-upload/xt-upload.umd.min.js +1 -1
  111. package/package.json +5 -6
  112. package/src/components/index.scss +7 -1
  113. package/src/components/xt-badge/style/index.scss +6 -6
  114. package/src/components/xt-button/index.vue +11 -6
  115. package/src/components/xt-button/style/index.scss +7 -5
  116. package/src/components/xt-card/index.vue +3 -3
  117. package/src/components/xt-card-item/index.vue +2 -2
  118. package/src/components/xt-chart/XtMulti.vue +8 -18
  119. package/src/components/xt-chart/XtPie.vue +1 -0
  120. package/src/components/xt-chart/utils.js +84 -50
  121. package/src/components/xt-config-provider/index.vue +56 -54
  122. package/src/components/xt-date-picker/component/Picker.vue +2 -46
  123. package/src/components/xt-date-picker/component/RangeDate.vue +4 -4
  124. package/src/components/xt-date-picker/index.js +1 -0
  125. package/src/components/xt-date-picker/index.vue +3 -23
  126. package/src/components/xt-date-picker/style/index.scss +62 -0
  127. package/src/components/xt-flow/flowable-parser.js +244 -0
  128. package/src/components/xt-flow/index.js +8 -0
  129. package/src/components/xt-flow/index.vue +226 -0
  130. package/src/components/xt-flow/style/index.scss +359 -0
  131. package/src/components/xt-input/style/index.scss +1 -1
  132. package/src/components/xt-tabs/index.vue +3 -174
  133. package/src/components/xt-tabs/style/index.scss +131 -121
  134. package/src/components/xt-text/index.vue +5 -2
  135. package/src/components/xt-text/style/index.scss +6 -6
  136. package/src/index.js +8 -13
  137. package/src/styles/css-variables.scss +73 -1
  138. package/src/styles/theme/index.scss +0 -1
  139. package/src/styles/theme/dark-variables.scss +0 -0
@@ -0,0 +1,359 @@
1
+ // ============================
2
+ // xt-flow 审批流程轨迹组件样式
3
+ // 全部使用 CSS 变量,无缝适配明暗主题
4
+ // ============================
5
+
6
+ .xt-flow {
7
+ position: relative;
8
+ padding: var(--xt-spacing-md, 16px) 0;
9
+ }
10
+
11
+ // ============================
12
+ // 节点主体
13
+ // ============================
14
+ .xt-flow__node {
15
+ display: flex;
16
+ align-items: flex-start;
17
+ padding-bottom: 0;
18
+ position: relative;
19
+
20
+ &:last-child {
21
+ .xt-flow__line {
22
+ display: none;
23
+ }
24
+ }
25
+ }
26
+
27
+ // ============================
28
+ // 时间线区域(左侧)
29
+ // ============================
30
+ .xt-flow__timeline {
31
+ display: flex;
32
+ flex-direction: column;
33
+ align-items: center;
34
+ flex-shrink: 0;
35
+ width: 40px;
36
+ margin-right: var(--xt-spacing-sm, 12px);
37
+ }
38
+
39
+ // ============================
40
+ // 节点图标
41
+ // ============================
42
+ .xt-flow__icon {
43
+ width: 24px;
44
+ height: 24px;
45
+ border-radius: 50%;
46
+ display: flex;
47
+ align-items: center;
48
+ justify-content: center;
49
+ flex-shrink: 0;
50
+ z-index: 1;
51
+ transition: background var(--xt-transition-duration-fast, 0.2s) ease;
52
+
53
+ // 默认圆点
54
+ &-dot {
55
+ width: 10px;
56
+ height: 10px;
57
+ border-radius: 50%;
58
+ display: block;
59
+ }
60
+
61
+ // 通过
62
+ &--approved {
63
+ background: var(--xt-color-primary-light-9, #e8f4ff);
64
+ .xt-flow__icon-dot {
65
+ background: var(--xt-color-primary, #1890ff);
66
+ }
67
+ }
68
+
69
+ // 驳回
70
+ &--rejected {
71
+ background: var(--xt-color-danger-light-9, #fef0f0);
72
+ .xt-flow__icon-dot {
73
+ background: var(--xt-color-danger, #f56c6c);
74
+ }
75
+ }
76
+
77
+ // 待办
78
+ &--pending {
79
+ background: var(--xt-color-warning-light-9, #fdf6ec);
80
+ .xt-flow__icon-dot {
81
+ background: var(--xt-color-warning, #e6a23c);
82
+ animation: xt-flow-pulse 1.5s ease-in-out infinite;
83
+ }
84
+ }
85
+
86
+ // 转办
87
+ &--transferred,
88
+ &--delegated {
89
+ background: var(--xt-color-info-light-9, #f4f4f5);
90
+ .xt-flow__icon-dot {
91
+ background: var(--xt-color-info, #909399);
92
+ }
93
+ }
94
+
95
+ // 撤回
96
+ &--recalled,
97
+ &--cancelled {
98
+ background: var(--xt-fill-color-light, #f5f7fa);
99
+ .xt-flow__icon-dot {
100
+ background: var(--xt-text-color-secondary, #909399);
101
+ }
102
+ }
103
+
104
+ // 发起
105
+ &--started {
106
+ background: var(--xt-color-primary-light-9, #e8f4ff);
107
+ .xt-flow__icon-dot {
108
+ background: var(--xt-color-primary, #1890ff);
109
+ }
110
+ }
111
+ }
112
+
113
+ @keyframes xt-flow-pulse {
114
+ 0%, 100% { opacity: 1; }
115
+ 50% { opacity: 0.4; }
116
+ }
117
+
118
+ // ============================
119
+ // 连接线
120
+ // ============================
121
+ .xt-flow__line {
122
+ width: 2px;
123
+ flex: 1;
124
+ min-height: 32px;
125
+ background: var(--xt-border-color-light, #e4e7ed);
126
+ margin: 4px 0;
127
+ transition: background var(--xt-transition-duration-fast, 0.2s) ease;
128
+
129
+ // 通过 - 实线主题色
130
+ &--approved {
131
+ background: var(--xt-color-primary-light-5, #8cc8ff);
132
+ }
133
+
134
+ // 驳回 - 虚线
135
+ &--rejected,
136
+ &--dashed {
137
+ background: repeating-linear-gradient(
138
+ to bottom,
139
+ var(--xt-color-danger, #f56c6c) 0px,
140
+ var(--xt-color-danger, #f56c6c) 4px,
141
+ transparent 4px,
142
+ transparent 8px
143
+ );
144
+ }
145
+
146
+ // 待办 - 浅色虚线
147
+ &--pending {
148
+ background: repeating-linear-gradient(
149
+ to bottom,
150
+ var(--xt-border-color, #dcdfe6) 0px,
151
+ var(--xt-border-color, #dcdfe6) 3px,
152
+ transparent 3px,
153
+ transparent 6px
154
+ );
155
+ }
156
+
157
+ // 转办/委托
158
+ &--transferred,
159
+ &--delegated {
160
+ background: var(--xt-border-color, #dcdfe6);
161
+ }
162
+
163
+ // 撤回/取消
164
+ &--recalled,
165
+ &--cancelled {
166
+ background: var(--xt-border-color-lighter, #ebeef5);
167
+ }
168
+ }
169
+
170
+ // ============================
171
+ // 节点内容区域
172
+ // ============================
173
+ .xt-flow__body {
174
+ flex: 1;
175
+ min-width: 0;
176
+ padding-bottom: var(--xt-spacing-md, 16px);
177
+ border-radius: var(--xt-border-radius-small, 4px);
178
+ transition: background var(--xt-transition-duration-fast, 0.2s) ease;
179
+ }
180
+
181
+ // ============================
182
+ // 节点头部
183
+ // ============================
184
+ .xt-flow__header {
185
+ display: flex;
186
+ align-items: center;
187
+ justify-content: space-between;
188
+ margin-bottom: 4px;
189
+ }
190
+
191
+ .xt-flow__title {
192
+ font-size: calc(14px + var(--xt-font-size-increment, 0px));
193
+ font-weight: var(--xt-font-weight-primary, 500);
194
+ color: var(--xt-text-color-primary, #303133);
195
+ line-height: 1.4;
196
+ word-break: break-all;
197
+ }
198
+
199
+ .xt-flow__status {
200
+ flex-shrink: 0;
201
+ font-size: calc(12px + var(--xt-font-size-increment, 0px));
202
+ padding: 1px 8px;
203
+ border-radius: var(--xt-border-radius-mini, 2px);
204
+ margin-left: var(--xt-spacing-xs, 8px);
205
+ line-height: 20px;
206
+ white-space: nowrap;
207
+
208
+ // 通过
209
+ &--approved {
210
+ color: var(--xt-color-primary, #1890ff);
211
+ background: var(--xt-color-primary-light-9, #e8f4ff);
212
+ }
213
+
214
+ // 驳回
215
+ &--rejected {
216
+ color: var(--xt-color-danger, #f56c6c);
217
+ background: var(--xt-color-danger-light-9, #fef0f0);
218
+ }
219
+
220
+ // 待办
221
+ &--pending {
222
+ color: var(--xt-color-warning, #e6a23c);
223
+ background: var(--xt-color-warning-light-9, #fdf6ec);
224
+ }
225
+
226
+ // 转办/委托
227
+ &--transferred,
228
+ &--delegated {
229
+ color: var(--xt-color-info, #909399);
230
+ background: var(--xt-color-info-light-9, #f4f4f5);
231
+ }
232
+
233
+ // 撤回/取消
234
+ &--recalled,
235
+ &--cancelled {
236
+ color: var(--xt-text-color-secondary, #909399);
237
+ background: var(--xt-fill-color-light, #f5f7fa);
238
+ }
239
+
240
+ // 发起
241
+ &--started {
242
+ color: var(--xt-color-primary, #1890ff);
243
+ background: var(--xt-color-primary-light-9, #e8f4ff);
244
+ }
245
+ }
246
+
247
+ // ============================
248
+ // 节点元信息
249
+ // ============================
250
+ .xt-flow__meta {
251
+ display: flex;
252
+ align-items: center;
253
+ flex-wrap: wrap;
254
+ gap: var(--xt-spacing-xs, 8px);
255
+ font-size: calc(12px + var(--xt-font-size-increment, 0px));
256
+ color: var(--xt-text-color-secondary, #909399);
257
+ line-height: 1.5;
258
+ }
259
+
260
+ .xt-flow__assignee {
261
+ display: inline-flex;
262
+ align-items: center;
263
+ gap: 2px;
264
+ }
265
+
266
+ .xt-flow__assignee-icon {
267
+ font-size: 12px;
268
+ }
269
+
270
+ .xt-flow__time,
271
+ .xt-flow__duration {
272
+ color: var(--xt-text-color-placeholder, #a8abb2);
273
+ }
274
+
275
+ // ============================
276
+ // 节点描述/审批意见
277
+ // ============================
278
+ .xt-flow__desc {
279
+ margin-top: 6px;
280
+ padding: var(--xt-spacing-xs, 8px);
281
+ font-size: calc(13px + var(--xt-font-size-increment, 0px));
282
+ color: var(--xt-text-color-regular, #606266);
283
+ background: var(--xt-fill-color-light, #f5f7fa);
284
+ border-radius: var(--xt-border-radius-small, 4px);
285
+ line-height: 1.6;
286
+ word-break: break-all;
287
+ }
288
+
289
+ .xt-flow__desc-label {
290
+ font-weight: var(--xt-font-weight-primary, 500);
291
+ color: var(--xt-text-color-primary, #303133);
292
+ }
293
+
294
+ // ============================
295
+ // 节点操作按钮
296
+ // ============================
297
+ .xt-flow__actions {
298
+ margin-top: 8px;
299
+ display: flex;
300
+ gap: var(--xt-spacing-xs, 8px);
301
+ flex-wrap: wrap;
302
+ }
303
+
304
+ // ============================
305
+ // 折叠/展开触发器
306
+ // ============================
307
+ .xt-flow__collapse {
308
+ display: flex;
309
+ align-items: center;
310
+ justify-content: center;
311
+ padding: var(--xt-spacing-sm, 12px) 0;
312
+ cursor: pointer;
313
+ user-select: none;
314
+ transition: color var(--xt-transition-duration-fast, 0.2s) ease;
315
+
316
+ &:hover {
317
+ .xt-flow__collapse-text {
318
+ color: var(--xt-color-primary, #1890ff);
319
+ }
320
+ }
321
+ }
322
+
323
+ .xt-flow__collapse-text {
324
+ font-size: calc(13px + var(--xt-font-size-increment, 0px));
325
+ color: var(--xt-text-color-secondary, #909399);
326
+ display: inline-flex;
327
+ align-items: center;
328
+ gap: 4px;
329
+ transition: color var(--xt-transition-duration-fast, 0.2s) ease;
330
+ }
331
+
332
+ .xt-flow__collapse-arrow {
333
+ font-size: 10px;
334
+
335
+ &--up {
336
+ transform: rotate(0deg);
337
+ }
338
+ }
339
+
340
+ // ============================
341
+ // 方形 / 圆形两套圆角
342
+ // ============================
343
+ .xt-flow--square {
344
+ .xt-flow__icon {
345
+ border-radius: 4px;
346
+ }
347
+ .xt-flow__icon-dot {
348
+ border-radius: 2px;
349
+ }
350
+ }
351
+
352
+ .xt-flow--round {
353
+ .xt-flow__icon {
354
+ border-radius: 50%;
355
+ }
356
+ .xt-flow__icon-dot {
357
+ border-radius: 50%;
358
+ }
359
+ }
@@ -44,7 +44,7 @@
44
44
  height: var(--xt-input-height);
45
45
  }
46
46
 
47
- .xt-input .el-input__inner {
47
+ .xt-input .el-input__inner {
48
48
  background-color: var(--xt-input-bg-color);
49
49
  border-color: var(--xt-input-border-color);
50
50
  color: var(--xt-input-text-color);
@@ -51,8 +51,8 @@ export default {
51
51
  },
52
52
  type: {
53
53
  type: String,
54
- default: 'card',
55
- validator: (val) => ['default', 'card', 'border-card'].includes(val)
54
+ default: '',
55
+ validator: (val) => ['', 'card', 'border-card'].includes(val)
56
56
  },
57
57
  position: {
58
58
  type: String,
@@ -198,175 +198,4 @@ export default {
198
198
  })
199
199
  }
200
200
  }
201
- </script>
202
-
203
- <style lang="scss" scoped>
204
- .xt-tabs {
205
- display: flex;
206
- flex-direction: column;
207
-
208
- &--top, &--bottom {
209
- flex-direction: column;
210
- .xt-tabs__header {
211
- width: 100%;
212
- }
213
- }
214
-
215
- &--left, &--right {
216
- flex-direction: row;
217
- .xt-tabs__header {
218
- flex-direction: column;
219
- width: auto;
220
- }
221
- .xt-tabs__nav {
222
- flex-direction: column;
223
- }
224
- .xt-tabs__nav-indicator {
225
- width: 2px;
226
- height: auto;
227
- }
228
- .xt-tabs__content {
229
- border-left: 1px solid #dcdfe6;
230
- border-top: none;
231
- }
232
- &--right .xt-tabs__content {
233
- border-left: none;
234
- border-right: 1px solid #dcdfe6;
235
- }
236
- }
237
-
238
- &--top .xt-tabs__nav-indicator {
239
- bottom: 0;
240
- }
241
- &--bottom .xt-tabs__nav-indicator {
242
- top: 0;
243
- }
244
- &--left .xt-tabs__nav-indicator {
245
- right: 0;
246
- }
247
- &--right .xt-tabs__nav-indicator {
248
- left: 0;
249
- }
250
-
251
- &--card {
252
- .xt-tabs__header {
253
- margin-bottom: -1px;
254
- }
255
-
256
- .xt-tabs__nav-item {
257
- border: 1px solid transparent;
258
- border-bottom: none;
259
- background: #f5f7fa;
260
-
261
- &--active {
262
- background: #fff;
263
- border-color: #dcdfe6;
264
- border-bottom-color: #fff;
265
- }
266
- }
267
- &--left, &--right {
268
- .xt-tabs__nav-item {
269
- border-bottom: 1px solid transparent;
270
- border-right: none;
271
- }
272
- .xt-tabs__nav-item--active {
273
- border-right-color: #fff;
274
- border-bottom-color: #dcdfe6;
275
- }
276
- }
277
- }
278
-
279
- &--border-card {
280
- border: 1px solid #dcdfe6;
281
- border-radius: 4px;
282
- overflow: hidden;
283
-
284
- .xt-tabs__nav-item--active {
285
- background: #ecf5ff;
286
- color: #409eff;
287
- }
288
- }
289
-
290
- &--editable {
291
- .xt-tabs__close {
292
- display: inline-block;
293
- }
294
- }
295
- }
296
-
297
- .xt-tabs__header {
298
- position: relative;
299
- display: flex;
300
- }
301
-
302
- .xt-tabs__nav {
303
- display: flex;
304
- flex-wrap: nowrap;
305
- }
306
-
307
- .xt-tabs__nav-item {
308
- position: relative;
309
- padding: 12px 20px;
310
- cursor: pointer;
311
- font-size: 14px;
312
- color: #606266;
313
- transition: all 0.3s;
314
- white-space: nowrap;
315
-
316
- &--active {
317
- color: #409eff;
318
- }
319
-
320
- &--disabled {
321
- cursor: not-allowed;
322
- color: #c0c4cc;
323
- }
324
-
325
- &--add {
326
- color: #909399;
327
- font-size: 20px;
328
- }
329
-
330
- &:hover:not(.xt-tabs__nav-item--disabled) {
331
- color: #409eff;
332
- background-color: #ecf5ff;
333
- }
334
- }
335
-
336
- .xt-tabs__nav-link {
337
- display: inline-block;
338
- }
339
-
340
- .xt-tabs__close {
341
- display: none;
342
- margin-left: 8px;
343
- font-size: 16px;
344
- line-height: 1;
345
- color: #909399;
346
- vertical-align: middle;
347
-
348
- &:hover {
349
- color: #f56c6c;
350
- }
351
- }
352
-
353
- .xt-tabs__nav-indicator {
354
- position: absolute;
355
- height: 2px;
356
- background-color: #409eff;
357
- }
358
-
359
- .xt-tabs__content {
360
- flex: 1;
361
- padding: 16px;
362
- border-top: 1px solid #dcdfe6;
363
- }
364
-
365
- .xt-tabs--border-card .xt-tabs__content {
366
- border-top: none;
367
- }
368
-
369
- .xt-tabs__pane {
370
- min-height: 40px;
371
- }
372
- </style>
201
+ </script>